#4

あけましておめでとうございます。

気分で始めたこのブログですが,できる限り続けていきたいと思っているので今年もよろしくお願いします。

さて,2024年はのっけから大変なことが多い年になっていますね。災害に遭われた方のご無事をお祈りします。

自分は年明け早々ひどい風邪を引いてしまい,一向に熱が下がらず,つい昨日までずっと寝込んでいた。

思うに,元旦に初日の出を見に行ったのだが,日が昇るまで薄着で寒い海岸で耐え忍んでいたのが良くなかったのだと思う。高校時代も似たようなことで風邪を引いたことがあった。来年はうんと暖かくして行くか,家でぬくぬくしていよう。

それに加えて今卒論の締切が迫っているのでちょっと焦っている。原稿自体は年末には書き終えていて,大晦日あたりに指導教員にチェックしてもらい,年明けに仕上げをしようとのんびり構えていたら風邪で全然動けなくなり,今慌てて修正作業をしている。

多少スケジュールには余裕があったのだが,油断は禁物……。

近況報告はこんなところ。

でセキュリティの勉強としては,前述の通り卒論作業に追われてあまりできていないのだが,CTFに手を出した。

といってもド初心者にイベント型のCTFなんて全然解けないので常設CTFのCpawCTFというサイトにチャレンジしている。

今のところレベル2まで埋めたくらいの段階で(Level2の一問目だけはどう考えてもわからずスキップした)全然進んでいないのだが,結構楽しい。

問題を解く環境としてはVirtual Boxに入れたUbuntuを使っている。そうそう,以前はVirtual Boxがめちゃめちゃ重たくて困っていたのだけど,年末にグラボを替えたら爆速になった。まぁGTX900番台からRTX3000番台への移行なのでそりゃそうよね。

ジャンルの傾向としては,予想通り数学っぽい知識を要求されるCryptoは苦手気味で,NetworkやWebは他よりちょっと解ける範囲が広い気がする。

で今悩んでいるのは考えても解けない問題の扱い。

こういうのはさっさとWrite upを読んで次に進んだほうがいいのか?それともとことん悩み抜いたほうがいいのか?という点で迷っている。昔大学受験の勉強をしていたときは,とにかく問題数をこなす方が大切だから,わからない問題はすぐ答えを読んで解き方を覚える,という方針でやってきたのだけど,それでちゃんと力がついたのかは微妙なところ。

まぁCTFは解き方のパターンを覚えたほうがいい気がするのである程度悩んでわからない問題は調べる方針にしようかなぁ。

CTF以外だと吉川孝志さんの『マルウェアの教科書』を読んだ。

書名からして一般向けの本かなと思っていたら,マルウェアの識別名やら,サイバー犯罪者の組織の系譜図やら,すごいマニアックな知識がたくさん書いてあって驚いた。知的好奇心を刺激される面白い本だった。図書館で借りてきたのだけど,ぜひ買って手元においておきたいと思った。

あとはオライリーの『初めてのマルウェア解析』も借りてきたがこっちはまだ積んでいる。

こういう本を読んでいて思うのは,やっぱりセキュリティ関連に携わるならセキュリティエンジニアのような専門職につくしか現状手がないんだろうなーというところ。ただ今後のキャリアの中でそういう職種にチャレンジするかと言われるとちょっと勇気が出ない。自分の勝手なイメージとして,セキュリティエンジニアは大学院までガッチリその分野で研究してきたような人がそのまま就くものというのがあり,全然関係のない分野にいた自分がなれるのか?と……。

まぁしばらくはこうやって趣味の範囲で色々試行錯誤していこうと思う。

#3

引き続き『自作エミュレータで学ぶx86アーキテクチャ』を読み進めている。第三章まで読了。しかし内容が理解できているとは言い難い感。

とりあえずコードを動かしながら一通り読み通してみようとは思っているが,アセンブリ言語の覚えることの多さに脳のキャパオーバーが起きている。加えてCの知識も求められるのがつらい。

そして特に目的なくこのあたりの勉強を続けるのはちょっと厳しいなと思い始めた。OS自作をしたいとか,組み込み機器のプログラミングをするとか目的があればいいんだろうけど,あいにく自分にはそういうモチベはない。どちらかといえば低レイヤの知識を道具として使えるようにしたい,という気持ちが強い。

今後勉強を続けていくためには何かしら達成したいことを定めたほうがいいなと思い,考え直してみると,自分はやはり情報セキュリティに詳しくなりたいというモチベーションが強い。そういうわけでブログの名前を情報セキュリティ全般のことがかけそうな「情報セキュリティ屋さんになりたい人のメモ」*1に変えてみた。

我ながら呆れるくらいの適当さだが,まぁ独学なのでこれくらいでちょうどいい。

 

*1:よくお世話になっている某ブログをリスペクトした

#2

『自作エミュレータで学ぶx86アーキテクチャ コンピュータが動く仕組みを徹底理解!』を読み進め中。ちょうど第二章が終わるくらいまで読んだ。

途中,C言語の知識が必要と思ったので昔買って積んでいた『スッキリわかるC言語』を読み返した。ようやっとポインタの意味を理解できた。

このシリーズの『スッキリわかるJava入門』はすごく良かった。確か高校の頃初めてちゃんと読み通した技術書だったような。

Java自体プログラミング言語としては初めて体系的に勉強した言語だったので,とてもお世話になった。自分がオブジェクト指向の概念に(一応)つまづかなかった(未だに全部理解しているわけでは無いが)のはこの本のおかげ。

「スッキリわかるC言語」もわかりやすいが,プログラミング初学者向けということでポインタの解説の章で意図的に専門用語を隠してる感じがあって,ちょっとモヤモヤする。自分は他の本やWebで調べ直した。

個人的には,現代でC言語が最初のプログラミング言語です,みたいな人は少ないように思うので,専門用語はそのまま出してよかったんじゃないかな~とは思う。

で,自作エミュレータの方は,まだまだ内容の半分くらいしか理解できていない感。

特にアセンブリ言語が出てくるとわけわからんになる。そもそも全然用語がわからないので,一度もっと簡単な別の本で基礎を固めたほうがいいのか……

#1 学習内容を考える

これまで雑に調べていた内容を整理して学習する内容を考え直してみる。

 

自分の興味の原点としては「情報セキュリティに関連する分野をやりたい」→「マルウェア解析をできるようになってみたい」といったところ。

マルウェア解析」をキーワードに調査。

 

するとこんな資料を発見

マルウェア解析に必要な素養 - HackMD
https://hackmd.io/@K-atc/S1kLEr5x#%E5%B0%8E%E5%85%A5

東大院生,現セキュリティエンジニアの方が書いてくださっている資料。
ざっと見た感じ何を勉強すべきなのかがとてもわかりやすくて天才だと思った。

 

資料を見て現状勉強したほうが良さそうな分野(キーワード)を列挙
システムコールプロセス,メモリ管理など
etc...
OSのことを調べているとよく解説にアセンブリが使われているので最初にアセンブリから入るべきかな~と思う。
しかしアセンブリ言語の本を見るとCを前提知識にしてる場合もあり,同時並行的にやったほうがいいのかも。
 
書籍としては
『セキュリティコンテストチャレンジブック CTFで学ぼう!情報を守るための戦い方』
 
『自作エミュレータで学ぶx86アーキテクチャ コンピュータが動く仕組みを徹底理解!』
 
『コンピュータの構成と設計 第5版 上』
このあたりを読みつつ,CTFにチャレンジするのも良さそう。
 

#0 自己紹介

秋三月(あきみつき)と言います。

関東の大学で情報科学を専攻している大学生です。

在学中学んできたのが上位レイヤ中心だったので,卒業までにコンピュータ・サイエンスの基礎,低レイヤの内容を自習しておきたいと考えています。

低レイヤの中でも特にセキュリティに関連する分野,マルウェア解析等に興味があります。

といっても飽きっぽい性格で独学だとサボりがちなので学習の記録としてこちらのブログを開設しました。

 

ブログに書く内容は特に決めておらずその時時で自習している内容を記載する予定です。