7月分のリアルタイムCTF前夜

  おおよそ日報のようなもの。明日から2日間、クラスメートと一緒にリアルタイムのCTFに参加することになっているので、昨日今日はpicoCTFのWeb問題を解いたりしていた。リアルタイムCTFには月に一回出場して、合間は常設CTFの問題を解いていく、というスタイルで今は練習している。前回のSECCON Beginnersに参加して以降の2ヶ月間でpicoCTFの問題をそこそこ解いてきてた。

 今回参加するCTFはcorCTFというもので、2年前の夏に参加して手も足も出ない感じだったCTFである。自分がどれくらい成長できているかがわかると思う。今だったらRev、Forensicsなど、問題内容が複雑でなければ手を出すことができるかもしれない。ネットワークについても半年間でかなり勉強してきたので、じっくりとパケットを解析して手掛かりを掴みたい。

 明日の9時から48時間、できる限りのことをやりたいと思う。

見積なき清掃

 おおよそ日報のようなもの。昨日は学校の清掃活動を行ったりしていた。そろそろ夏休みが近づいてきて高校生がオープンキャンパスに来たりする時期になっているということで、せめて自分の学部の周りくらいは清掃しましょうという話になったらしい。そこでゼミの学生と教員とでビニール袋と火バサミをもってゴミを探索した。ただ、探索を始めた結果、キャンパスは意外と綺麗ということがわかってしまい、なかなかにゴミが集まらない。我々一行は同じところを3周くらいしてみたものの、ついぞ袋に何も入らず。流石にこのままでは清掃の成果を主張できなくなり色々とまずいので、木の麓に落ちている放っておいても問題なさそうな落ち葉とかを拾い始めてことなきを得た。とりあえず今日は清掃活動という体が保たれていてればよかったのである。きちんと清掃したいなら、どこにどれくらいの清掃が必要なのかあらかじめ分析しておくべきだった。それをしなかったらから不必要に労働力を多く動員することになり、かつ、動員された人間(我々)もとりあえず成果らしいものを見せるために重要度の低いアクションを取らざるを得なかった。なんだか、公金が重要度の低い事業のために流出していくのも結局はこういう構図なのだろうということが肌感覚として理解できた、微妙な感じの体験だった。

picoGymと漏水問題、夏休みの取り組み事項など

 おおよそ日報のようなもの。昨日はpicoCTFの問題を解いたり、天井からの漏水問題に対応したり、夏休みに取り組みたいことを整理したりした。

 picoCTFの中にはpicoGymという過去問をまとめたページがあって、ここの問題を解いている。全体で330問程度の問題が用意されていて、それらを日に3問くらいのペースで解き進めている。回答数は機能の段階で96問なので、問題数だけで言えば1/3弱くらいのところにきている。スコア上では進捗は全体の1/6程度になっていて、問題数の割には少ないと感じるが、基本的には後半にいくにつれて問題も難しくなっていくので実際のところは1/6のほうが正確なのかもしれない。picoCTF内でクラスルームを作ることもできるので、そこで(リアルの)クラスメートと(picoCTFの)クラスルームを作って、毎週なにかしらの問題を宿題に設定して解いたり、といったことをして楽しんでいる。そろそろリアルタイムCTFもあれこれ参加したいということで、来週末にクラスメートと予定を合わせてcorCTFに取り組むことにした。2年くらい前は手も足も出なかった印象だが、果たして二年間でどれくらい成長したのだろうか。今後の方針としては、定期的にリアルタイムCTFに参加し(1月に1回とか)、それ以外の日はpicoGymの問題を解くという感じ、少なくともpicoGymの問題を全部解き終えるまではそれでやっていくつもりだ。

宅習帳を埋める大学生

 おおよそ日報のようなもの。答えのない問い、あるいは簡単には答えが出そうにない問いについて考えるのはなかなか重労働である。そして、重労働であることがわかっているので着手も遅れがちだ。

 この頃はこのブログでも何度も書いている卒業研究のための考え事がそれに対応している。これは僕の場合に限らないようで、卒業研究について調べてみると、いかに現実逃避を抑えて研究活動に身を引き戻すかについて説明する文章が散見される。

 今のところ、ノートのページ数を決めて、それが埋まるだけの考え事をすれば良しというスタイルが暫定的な最善手だと感じている。僕の場合はWord換算で3ページを日の目標にしている。最初の一行目に何について考えるかを表題として書いて、2行目以降であれこれ思索をしながら文章を書いてページを埋めていく。〜について考える、というのは難しそうだが、〜について〜ページ書く、だといかにも簡単そう。簡単そうに感じるというのはとても大切で、人は基本的には簡単なものを好むものなので、取り掛かりの心理的ハードルが下がる。

 そして、ノートを書いているとそれ以外にも色々と恩恵を受ける部分がある。書いているうちに考えていることの方向性とか前提とかに誤りがあることに気付いたり、対策を部分的に思いついたり、さらに考慮すべき部分に気づいたりする。やはり、思考はテキストベースで行われた方がきちんと地に足をつけて進める感じがして安心だ。頭だけで考えていると、少なくとも僕の場合は途中の過程が抜けて結論が飛躍したり、前提を途中ですり替えたり、ということがおこって変な結論を導きがちなのである。

 このように書いていて、日に〜ページ書くというのは小中高と続けてきた宅習帳(自学帳のこと、宮崎県の県北では良く聞く言葉だがこれはどうやら方言の一種らしい。)に非常に似ていることに気付いた。なんだ、僕は大学に来てまで宅習帳を埋める作業をしているということなのか。

Study with meの次

 コロナ渦の真っ最中の頃はよく"study with me"というのをタイトルに含んだ動画よく投稿されていて、実際僕もそういう動画をよく見ていた。ほとんどは自分が勉強している様子をカメラで長尺で撮影して、そこにlofiとかjazzとかのBGMを付与した動画である。画面の端に置いてチラチラと見ながら一緒に勉強するというのが基本的な使い方だ。
 自分が元気で、余裕を持って長時間集中できるという時は何も見ないのがベストなのだが、いつもいつも元気というわけにはいかない。日常で色々あって集中できない時とか、単純に体力が落ちてて集中できない時とかもあるわけで、そういうときにこういう動画群はとても役に立つ。画面の中の人(lofi girlとかの場合はキャラクタだが)が熱心に勉強しているのを見ていると、とりあえず自分も何かしら始めようという気になってくる。
 そして、最近とてもよいコンテンツを見つけてしまい、それが"code with me"である。study with meは確かに良かったのだが、その多くはipadとか参考書を使って勉強している動画であり、パソコン作業をやっている自分とはどうしてもギャップが出てきてしまう。最近は書き物とかプログラミングとか、セキュリティ関連のあれこやこれやをやっていることが多くてもっぱらパソコン作業(そしてどちらかというとアウトプット作業)なので、パソコン作業をやっている動画のほうが良い。自分とやっていることが近いし、いわゆるパソコン作業で悩んでいる人の、途中で手が止まっている人のあの感じが再現(?)されていてとても共感できる。共感できれば一緒に作業しているグルーブ感が出てきて、それによってノリでダラダラと数時間勉強できたりする。数時間集中できればかなり良いのではないか。
 具体的なチャンネル名を出すと、まさしく名が体を表している "Code with me"とかがおすすめかな。他にも色々とコンセプトを持ったチャンネルがありそうなので、探して活用していきたい。

活動的になるためのタスクカテゴライズ

 タスクの単位で1日を管理するスタイルがとても気に入っていて、その日にやらなければならないことはもちろんのこと、習慣的な動作やスキルアップのために取り組むこと、娯楽のための行動などなんであれタスクとてして定義して、日のTodoリストに組み込むのである。
 タスクを考える上で潜在的には、できるだけ活動的でありたいということと、多様性が維持できるようになりたいという2つの願望が強くあって、それらを達成するためにタスクのカテゴライズが活かせるのではないかということを考えた。タスクの方向性ごとにタスクをカテゴライズして、それらの割合をうまく調整していく(特定のカテゴリ成分が少ない場合には意識的に増やして、逆の場合は減らして他のカテゴリが入るようにするということ)ことで、自分を活動的にも多様にでもできるかもしれないということである。
 で、色々考える過程はすでに経たので結果だけ示す。経験則として僕の周りで発生するタスクは基本的にはすべて以下のカテゴリーで分類できる

バルサンとUnity

 おおよそ日報のようなもの。昨日は家で発生した虫たちを駆除したり、書店で本を探したりした。

 温度と湿度が共に高い時期にであり、こう言った時期には水回りをきちんとしておかないとコバエの大量発生を許すことになってしまう。昨年度の反省もあって戸棚で野菜管理をするのをやめたので、それが発生源になることはなかったのだが、今年はゴミ箱の影が発生源になった。ゴミ箱の配置は変えていないので、実は昨年も発生していたのかもしれないが、ゴミ箱の裏側の壁にコバエがたくさん止まっているのを発見した。そのあと殺虫剤を使って、その場にいた虫たちはあらかた片付けたのであるが、居場所を失ったコバエの残党が部屋の中を飛び回って手がつけられない状態になった。しばらくは頑張って戦っていたのだが、途中で各個撃破は諦めて、バルサンを炊くことにした。バルサンを炊く時の注意だが、一戸建てならいざ知らず、アパートで炊くときは、煙が多いものについては事前に周囲の許可採りが必要だ。調べてみると、煙の少ないバルサンもあるらしい。燻煙タイプ、水タイプ、霧タイプとあって、霧タイプであれば、薬剤をガス圧で噴射するだけなので煙が出ずに素早く使えるらしい。店に行ってみるとアースレッドの霧タイプが売られていた。早速購入。使い方は簡単で、部屋の中心においてペダルを踏むだけ。ペダルを踏むと缶の入り口が切られてガス圧で薬剤が散布されるという仕組み。ペダルを踏んだ後は1時間部屋を空けておく必要がある。数時間後帰ってきてみると、床中にコバエの死体が転がっていて、効果があった模様。今後は死角で虫が湧かないようにトラップ等をうまく使って対策をしていきたいと思う。

 バルサンを炊いている間が暇すぎるので、本屋に行ったりしていた。Tクラスで作っているゲーム開発にUnityを取り入れることにしたので、Unityプログラミングバイブルを買おうかと思って見に行ったのである。目的のブツは無事発見できたのであるが、想像以上に効果な代物だったので断念して、別の本を買った。併せて小説なども買った。レジ横に氷菓が置いてあって、買うつもりはなかったのに衝動的に買ってしまった。

漏水問題の進展と作業雑談会

  おおよそ日報のようなもの。昨日は漏水問題に対応したり、部屋の片付けをしたり、研究に関わる論文を読んだりした。ゲーム開発会議と銘打った毎週のただの作業雑談会では、おすすめの映画作品を色々と紹介された。

 漏水問題に進展があった。上階の住人の日程と僕自身の日程を合わせて、来週の土曜日に補修が行われることになった。天井板が腐食しているくらいなので、これはきちんと漏水問題なのだが、僕の主な居住空間への影響は現状まだあまり大きくない。問題が大きくならないうちに対処ができそうで、ひとまずは安心したという感じだ。

 研究に関わる論文はこの頃ほとんどチェックが進んでいなかったのだが、ゲーム開発会議と銘打ったただの作業雑談会においてダラダラと読み進めて、夕方ごろに何とか読み終えることができた。読み終えた論文の最終的な結論についてはまだ更なる検討が必要だという感想を持ったが、考察の一部分は自分の研究とも通づる部分があり、今後方針を考える際に参考にしたいと思った。

 また、作業雑談会でいくつか映画作品を紹介された。その中で僕が気になったのは、”ミッドサマー”、”菊次郎の夏”、”メトロポリス”である。”ミッドサマー”は普段あまり見ないサイコホラーというジャンルで、予告編を見る限りある集団の中では常識とされているものの外部から見ると異常、とそう言ったジャンルのホラーのようである。なかなか狂気じみていて面白そうだ。ということで来週はこれを見ることにする。

漏水案件の進展

 おおよそ日報のようなもの。漏水の件について、ようやく業者と連絡があった。管理会社とは別会社の人が業者を連れて〜、とか言っているので複数の業者が関わって修理を行うのかもしれない。とりあえず配管の交換と天井板の交換をきちんとやって欲しい。上階の住人との日程を合わせる必要があるので、折り返しの電話待ちだ。
 昨日はこれくらい。今日はこれ以上何かを書く気にならないのでこれくらいにしようと思う。相変わらず研究に大きな進捗はない。問題と手法は決まっているので、実装スタイルと評価方法を決めることが現在の問題だ。

ForensicsとSF

 おおよそ日報のようなもの。昨日はあんまり意識のはっきりしていない1日だった。何をやっていたのかあんまり思い出せない。picoCTFの問題を解いたり、華氏451度を読み返したり、マイノリティレポートを見たりした気がする。

 picoCTFのプレイリストの一つである、Forensics in CTF'sをコンプリートした。PicoCTF内のForensics問題の主要なジャンルについての導入的な内容となっている。内容としては、ファイル内のメタデータのチェック、ディスクの解析、画像ファイルの解析、ステガノグラフィ、ネットワークパケットの解析などである。メタデータのチェックなどで使うユーティリティは他カテゴリとも共通なので、この分野での知識が他でも活かせると思う。画像ファイルの解析についてもバイナリ解析と被る部分があるので、同分野が得意ならスラスラと解けるだろう。ただし、ステガノグラフィについては有効なツールを知っているかどうかで勝敗が決まる知識ゲー感があるので、https://0xrick.github.io/lists/stego/ あたりを読んでどのファイルに対してどのツールが有効か知っておくことが重要だと思う。ネットワークパケット解析についてはネットワークの知識とWireSharkの使い方が第一には重要だが、実際問題として、何が起こっているかを把握して、それに対して、何をフィルタリングすればその原因に迫れるのか、というのはまた別問題のような気がする。CTF問題が解ければいいんだったら過去問を解くとか色々やりようはある気がするが、現実問題としてネットワークパケットの解析ってどういう流れで進んでいったらいいんですかね。良い教材とかあったら知りたいですね。

バイナリ解析の学習を再開

 クラスメートがバイナリ解析の勉強を始めたので、便乗して僕もバイナリ解析の勉強を始めることにした。この分野に自分は何度も挫折している。そろそろ克服したい。一応説明を書いておくと、バイナリ解析とはマシン語によって構成されるバイナリファイルを解析して、その内容を動作を理解したり、動作の変更を試みたりするための解析技術のことである。
 挫折の理由は色々あるが、大きくは2つで、1つはこの分野が少なくとも僕にとっては難解であるということ、2つには、周りに学習内容とその感想を共有できる相手がいないからである。

漏水再発とIoTセキュリティ

  おおよそ日報のようなもの。昨日はアパートの漏水問題に対処したり、あれこれ取り留めのない勉強をしたりしていた。

 前者の漏水問題については未解決である。昨日の夕方に管理会社と提携している業者(?)が来て原因を調べていったので、正確には原因はすでにわかっているのだが、今すぐに対処できる問題ではなく、管理会社の判断が必要ということで、昨日は何もせずに帰っていった。この部屋ではかつて(2年前)にも漏水問題があり、この時はシンク下のタンクに破損が原因だったわけだが、今回は給湯器に続くパイプに問題があって、ここから水が漏れているらしい。大体500~1000ml程度の水が床に滴っているという状況であり、僕が1日在宅の時は水を受けている容器をとっかえれば良いだけなのだが、僕も常に家にいるわけではないわけで、そう考えるとなかなか問題なのである。たとえば長期休暇で1ヶ月家を空けるとか、その場合は500*30=15000ml程度は最低でも水が差すことになる。そこまでくると水浸しになって迷惑とか、そういう次元でもない。居住空間としてどうなの。とりあえず、昨日の調査結果を踏まえてなんらかの連絡を管理会社がよこしてくるはずなので、今日は1日家にいて、電話が来たら即座に反応する体制を保つつもりだ。なんとしても早急に対処させたい。来月には帰省するつもりなので、1ヶ月以内の対処を望む。

日誌

 夜から朝にかけて、凄まじかった。

雷は真昼のごとく点滅で空を照らし続け、滝のような雨が長いこと続いた。周りには高い建物があるので雷はそっちに行くだろうし住んでるアパートが床上浸水するには、まず2m以上は冠水する必要があるので大丈夫だろうと思っていた。

しかしあまりにも轟音が続き流石に不安を覚えた。Twitterを見れば「この世の終わり」か何かが福岡のトレンド入りしていた。

そんな中、私は願った。「学校休みになれ」と。本日の5限に微分方程式の期末テストを控えていたのだ。正直、勝算はあった。中間で90を超えたからだ。しかし、今回ノー勉だったのだ。休みに関するワードもトレンド入りしてたなぁ。

午前2時、時間はまだある。しかし、滅茶苦茶に眠い。ここ二日ほど、寝てもHPが回復してない。よって寝ることにした。大丈夫だ、2限と3限を後ろの席で勉強して過ごせばいけるかもしれないと言い聞かせて身体からの命令に身を委ねた。

8時起床。

学校のサイトにアクセスする。結果は……。

PC周りの整理とBinary Intro

 おおよそ日報のようなもの。昨日は机の周りを片付けたり、CTFの練習をしたり、本棚を整理したりしていた。

 机の右側にアルミラックを置いていて、そこにデスクトップPCを置いていた。mac miniを購入後もctfや実験プログラムの動作のためにx86_64の実行環境は残しておく必要があって、そのために8年ほどの前からつかっているデスクトップPCがずっと横に置いてあった。ただ、調べてみるとUTMでもx86_64の環境を作れるようであり、ubuntuのamd64バージョンを入れてみたら無事インストールできてしまった。Virtualboxは引き続き使い物にならないので、仮想マシン同士のネットワークは単一ソフトでは作れないが、まぁなんとかなるだろう。ということで早速不要になったデスクトップPCを撤去。これでかなりデスクの右側が綺麗になった。若干殺風景な感もあるが、これでいいのだ。必要なものだけが置いてあるというがクールなのだ。

Window管理と作業雑談

 おおよそ日報のようなもの。昨日はゲーム開発会議という名目のただの作業雑談会議に参加してCTFの問題を解いたり、GNU Globalの環境を揃えたり、自分の問題と関わりのありそうな論文を調べたりしていた。

 それから、Macにおいてwindow管理をするより良い方法を見つけた。僕の1画面内でのWindow管理はStage Manager + Rectangleでかなり改善されたのであるが、ここにMission Controlを加えるともっともっと良くなることがわかった。まず、Rectangleで今見ている作業画面を分割する。そこにStage Managerを加えると複数の分割済み画面を切り替えてることが可能になる。これが非常に便利なのである。そして、分割済み画面の切り替えにMission Controlである。これでマウスカーソルを毎回左側に持っていく必要がなくなるのである。Mission Controlは素早く呼び出せるようにマウスにショートカットを入れておくのがおすすめである。僕はホイールクリックをしながらボールを上方向に回転させることでMission Controlを呼び出せるようにした。ついでなのでトラックボールのジェスチャーもちゃんと作ろうと思って色々とコマンドを登録した。ホイールクリック+ボールをした方向へ回転でLanchPadが立ち上がり、ホイールクリック+ボールを右回転で”進む”、ホイールクリック+ボールを左回転で”戻る”、マクロボタンの2つには”コピー”と”ペースト”を設定した。これでまた作業環境がより良くなったと思う。とても嬉しい。

 作業雑談会議は作業用クラシック音楽と、作業用讃美歌を延々とループしながらやっていたため、割と順調にやることをこなせた。途中で話が脱線して人工衛星の話をしたりして、人工衛星の作り方とか調べたら出てこないかなとか言って検索したら、当然のように作り方の本が出てきてとても盛り上がったりした。

ファームウェアとTOEIC、2001年宇宙の旅

Stanly Kubrick, "2001: a space odyssey"(1968)

 おおよそ日報のようなもの。 昨日は研究のための環境を整備したり、TOEICの結果を受け取りに行ったり、本を読んだり映画を見たりしていた。

 研究の環境としてOpenWrtというのを使おうとしている。これはLinuxカーネルが動くルータ向けのファームウェアで、なかなか面白い。ファームウェアは特にハードウェアの制御において重要な役割を持っているソフトだが、OpenWrtの場合はかなり高いレイヤについてもインタフェースも備えており、ルータをまさしくLinuxコンピュータのように扱うことができる。このOSに習熟することで、ルータという非常にコンパクトなコンピュータシステムをハックすることが可能であり、これによってかなりコンピュータの知識を底上げできるのではないかという期待感が湧き立っている。ちょっと研究が楽しくなってきたかもしれない

SIYを読んだ

 Google社で作られたSearch Inside Yourserlf(SIY)というプログラムについて書かれたチャンディーメン・タン著の"Search Inside Yourself"を読んだ。このプログラムは教育プログラムの一種で、マインドフルネス瞑想の実践によって情動的知能を高め、これによって自身の幸福度の向上や職場での人間性の改善などを行おうというコンセプトで作られたものである。本の中では瞑想が情動的知性に深い関連があることが繰り返し述べられており、それによって瞑想が科学的根拠に基づく行為であることを強く主張している。SIYにおいてどのようなトレーニングを実践しているか、それが何のために行われるトレーニングか、ということについてもかなり整理して書かれており、トレーニングの内容と関連がスムーズに理解できる。マインドフルネスをこれから始めようとしている人にも勧められる内容になっていると思う。マインドフルネスを織りなす精神性というか、そういったものについてはあまり触れられていない(というか、あえて触れていないのだと思う)ので、関心がある人はティクナット・ハン著の”<気づき>の奇跡:暮らしの中の瞑想入門”あたりを読むと良いのではないか。僕はこの本は5年くらい前に読んだ記憶があるが、自分自身があまり精神性から物に入っていく質ではないので、懐疑的な印象を抱いていた印象がある。今読んだらまた感想も変わってくるのかもしれない。それからどの本でも必ず言及されているJ.カバットジンの"マインドフルネスストレス低減法"は今後必ず読むことにしたい。

大学院入試と実験プラットフォーム

 おおよそ日報のようなもの。昨日は大学院の口述試験を受けたり、実験に使うためのプラットフォームをあれこれと調べたりしていた。

 大学院の口述試験は当然ながら面接形式で質問に答えるというもの。以前はこういうのは口頭諮問的に専門分野についての問題を出されてその場で答える、みたいなものを想像していたわけだが実際は違っていて、普通の面接という感じ。内容も基本的には自分の研究への取り組みがどういうものかを順に聞かれて答えていくというものであり、学生 - 教員 間で行われるものだからというのもあると思うが、かなり事務的な印象を受けた。他の人の話では、テーマの意義とか、手法の妥当性について突き詰めて聞かれたらしいが、自分の場合はそんなこともなく、特に引っかかりもなく流れたという感じだった。大丈夫か?まぁ大丈夫だと信じて結果まではとりあえず目先のことに集中しようと思う。仮に大学院に落ちるなんてことがあった日には、たぶん本屋とPC屋のパート掛け持ちで生きていくフリーターになります。

 実験について使うプラットフォームについて調べている。実験内容により適したプラットフォームに変えたほうが良いかもしれない、という話を担当教員として、それ以降色々とプラットフォームを探している。ただし、実際に世にある他のプラットフォームを見てみても、乗り換えるほど特別メリットがあるものか、と聞かれるとそこまででもないだろうというのが現状の自分の意見だ。テーマとの整合性の問題もあるし、変に範囲を広げてその範囲の中で別のプラットフォームを選ぶと、背景の説明との組み合わせがおかしなことになるからな。

アウトラインと本屋巡り

  おおよそ日報のようなもの。昨日はアウトラインを整備しながら今後の実験の詳細を考えたり、本探しをしたりしていた。

 研究のための考え事について、アウトラインを整備しながら考えを広めていくというのはかなり有効だと感じる。全体像を見失いにくいし、それぞれのフェーズで何を考慮すべきかについても深く掘り下げやすい。アウトラインは初めは小さなものから始めて、詳細を詰めながら分割を繰り返して徐々に大きくしていく。この流れは非常にプログラミングにも似ていて、どうにも新しいことをしているのに、非常に慣れたことをやっているような安心感が得られる。このアウトラインの作り方については戸田山和久の"論文の教室"を参考にしているので読んでみると良いと思う。論文以外でも長文を書く際には役立つのではないか。