きみに読んでほしい3冊:セキュリティブックガイド 第一回 NRIセキュアテクノロジーズ 小田島 潤「計算機基礎」 | ScanNetSecurity
2021.06.20(日)

きみに読んでほしい3冊:セキュリティブックガイド 第一回 NRIセキュアテクノロジーズ 小田島 潤「計算機基礎」

実はセキュリティでもアセンブラはすごく大事です。セキュリティエンジニアが、機械語で書かれたマルウェアをちゃんと解析しようと思ったら、アセンブラを読める必要があります。

特集 コラム
「セキュリティの仕事は、なぜこうなるのかというのを、徹底的に追求していく」NRIセキュアテクノロジーズ株式会社 代表取締役社長 小田島 潤 氏
「セキュリティの仕事は、なぜこうなるのかというのを、徹底的に追求していく」NRIセキュアテクノロジーズ株式会社 代表取締役社長 小田島 潤 氏 全 1 枚 拡大写真
 この連載は、セキュリティエンジニア、セキュリティリサーチャー、ペネトレーションテスター、マルウェア解析者、セキュリティコンサルタント、プリセールスなど、セキュリティ業界のさまざまなキャリアを目指す有為の若者に、現場の第一線で活躍する先輩たちが、学生時代やキャリア初期に是非読んで欲しい本を推薦します。

 第 1 回は NRIセキュアテクノロジーズ株式会社 代表取締役社長 小田島 潤 氏による、計算機の基礎を理解する3冊です。

●1冊目 「こんにちはマイコン」

すがや みつる著
「こんにちはマイコン」小学館 (1982年)
絶版

すがや みつる著
「こんにちはマイコン 2」小学館 (1983年)
絶版

 ぼくらが小学校高学年くらいのときに「ゲームセンターあらし」という漫画が大流行しました。その作者のすがやみつる氏が、自身でパソコンを使いたくてこの企画を立ち上げたそうです。NECの「 PC6001 」というパソコンを使って、BASIC プログラムの組み方を一から説明する内容で、最初は簡単な計算をさせて、最後にはブロック崩しやテニスゲームを作るところまでできるようになる内容でした。

こんにちはマイコンについて(Mitsuru Sugaya Homepage)
「ゲームセンターあらし」公式Webサイト(Mitsuru Sugaya Homepage)

 ぼくが買ってもらったのは PC6001 ではなく、イギリスのシンクレアという会社の「 Sinclair ZX81 」というキーボードがペコペコの安いパソコンでしたが、中味は BASIC ですし、全く一緒ではないものの文法は変わりません。当時電波新聞社が出していた雑誌「マイコンBASICマガジン」も手に入れて、掲載されていた読者投稿のゲームプログラムのソースコードを ZX81 に入力してゲームをして遊んでいました。やがて、既存のソースコードを組み合わせて、自分オリジナルのロボット対戦ゲームを作るところまで手を出すようになり、ゲームの背景処理部分を BASIC で書くと遅いので、機械語で記述して速くするなど、プログラム作りにすっかりはまってしまい、これが自分にとっての原体験になりました。

 その後小学校中学校と野球部に所属し、高校ではテニス部に入りましたので、パソコンに全くさわらない生活になりましたが、大学に進学する際の学部選びのときに、情報工学科を選ぶきっかけのひとつになりました。というのは、どうやったらバグの無いプログラムを書けるかが、小学生なりの課題意識だったことを思い出し、バグの無いプログラムの書き方を大学で勉強できないか、と考えたのです。

 「こんにちはマイコン」は、今見てもすごくわかりやすい。当時の性能と比べると何百倍、何万倍のコンピュータが現在は買えますが、原始的だったがゆえに、ハードウェアに近いレイヤというか、原理的なところからプログラムまでの距離が近かったため、下から上までわかる経験ができたと思います。

●2冊目「Switching & Finite Automata Theory」

Kohavi Zvi 他 著
「 Switching & Finite Automata Theory 」
Cambridge University Press 刊 (2010年)


 大学に入ってまず最初に、コンピュータがどうやってできているのか、そのおおもとである論理回路を学びましたが、その教科書がこの「 Switching & Finite Automata Theory 」でした。たとえば「 AND 」という、条件が 2 つ成り立たないと真にならない論理演算をするとき、 1 AND 1 だと 1 に、1 AND 0 だと 0 に、0 AND 1 だと 0 に、0 AND 0 だと 0 にそれぞれなります。「 NAND 」はそれをひっくり返したもので、AND の否定です。0 と 0 だと 1 に、0 と 1 でも 1 に、1 と 0 でも 1 に、1 と 1 だと 0 になります。

 コンピュータには AND や NAND 、OR などの論理の組み合わせが電子回路で実装されていて、それをいろいろ組み合わせることで、「 1 足す 2 は 3 」のような計算が出来るようになります。それをさらに、その論理回路の出力と入力をぐるっともう一回戻してあげれば、ある数字をずっと覚えさせられることができて、これがメモリーです。単純なロジックの回路を組み合わせれば電卓のようなものを作れるし、ずっとデータを記憶させておくメモリ(電源が切れると消えますが)も作れます。それらをもっともっと高度化するとコンピュータ、CPU になります。

 「 Switching & Finite Automata Theory 」は、論理回路の成り立ちと理論を勉強させてくれる本で、パソコンの一番ボトムのところである電子回路=物理の世界と、デジタルの足し算の世界=論理の世界を結びつけてくれる理論が書かれています。日本語版は残念ながらまだありませんが、わかりやすい英語で書かれていて、書いてあることはすごく単純です。頑張って読んでみる価値があります。

●3冊目「The Art of Computer Programming」

Donald E.Knuth 著
「 The Art of Computer Programming Volume 1 Fundamental Algorithms Third Edition」
KADOKAWA 刊 (2015年)


 歴史的名著であるこの本には、コンピュータサイエンスを勉強するにあたって最低限必要な数学、整数論、集合論、組み合わせの数を数えるやりかたなどが最初に書いてあって、そのあとに仮想的な CPU のモデルを決めて、その CPU の上で仮想的なアセンブラ言語を定義して、いろんな処理をやらせます。

 仮想的な CPU を用いるのは、CPU にはいろいろなバリエーションがあって、有名なのはインテルの x86 や ARM の CPU などですが、個別の CPU について学んでしまうと他の CPU のことがわからなくなるので、著者のクヌース先生は、自分で勝手に仮想的な CPU をモデルとして作ったわけです。

 アセンブラ言語は BASIC よりもずっと低水準な言語なので、1 つの処理をするために BASIC なら一行で済むものが、アセンブラで書くと 10 行くらい書かなければいけない。とても大変なのですが、しかし一度これにあたっておくと、たとえば組み込まれている CPU の能力が低くメモリも少ないため、速く動かすための処理効率などをアセンブラの世界で調整しなければならない IoT のような領域にとても役立ちます。

 実はセキュリティでもアセンブラはすごく大事です。マルウェアの多くはバイナリ(機械語)形式ですから、機械語を解読しなければならないのですが、機械語はアセンブラには簡単になるのですが、アセンブラからさらに C とか Java などの高級言語に変換するのは、それをやるのが学術研究になっているぐらい難しい。セキュリティエンジニアが、機械語で書かれたマルウェアをちゃんと解析しようと思ったら、アセンブラを読める必要があります。

 「 Switching & Finite Automata Theory 」と「 The Art of Computer Programming 」は両方古典ですが、土台から最上部まで、電子回路から高級言語の手前のアセンブラまでを、この 2 冊を頑張って読めば相当なレベルまで理解することができるでしょう。

 高級言語とか新しいものは、仕事をやっているうちにイヤでもやらなきゃいけません。それよりも下のところを一度きちんとやっていくことに意味があります。

 また、セキュリティの仕事は、なぜこうなるのかというのを、徹底的に追求していかなければいけない仕事なので、ここまでわかっていないと気が済まないタイプの人が向いている、というのもあります。


小田島 潤:
1971 年、岩手県生まれ。1996 年 3 月京都大学大学院工学研究科を修了、同年 4 月に株式会社野村総合研究所に入社。テクニカルエンジニアとして、電子現金の社内実験や公共系大規模システム構築プロジェクトなどに携わる。2000 年 8 月、NRIセキュアテクノロジーズ株式会社の設立と同時に出向。認証局システム構築、Web アプリケーションの診断サービス開発、セキュリティ運用監視サービスなどに従事。2009 年 4 月エンタープライズセキュリティサービス部長、2014 年 4 月 MSS 事業本部長を経て、2015 年 4 月代表取締役社長に就任。

《ScanNetSecurity》

関連記事

この記事の写真

/
PageTop

特集

アクセスランキング

  1. スポーツクラブNASへランサムウェア攻撃、会員管理システムに障害発生

    スポーツクラブNASへランサムウェア攻撃、会員管理システムに障害発生

  2. パラマウントベッド従業員の仮想デスクトップ環境がウイルス感染、過去のやりとりを装った不審メールを確認

    パラマウントベッド従業員の仮想デスクトップ環境がウイルス感染、過去のやりとりを装った不審メールを確認

  3. 富士通のプロジェクト情報共有ツールへの不正アクセス、総務省でも被害確認

    富士通のプロジェクト情報共有ツールへの不正アクセス、総務省でも被害確認

  4. 「糖質制限ドットコム」に不正アクセス、1年分の決済情報が流出

    「糖質制限ドットコム」に不正アクセス、1年分の決済情報が流出

  5. 富士フイルムへのランサムウェア攻撃、外部への情報流出の痕跡は確認されず

    富士フイルムへのランサムウェア攻撃、外部への情報流出の痕跡は確認されず

  6. クラウドの脅威はプロバイダ起因から利用者起因にシフト…CSAJの11大脅威

    クラウドの脅威はプロバイダ起因から利用者起因にシフト…CSAJの11大脅威

  7. イトーヨーギョーのサーバにランサムウェア攻撃、現時点で情報流出は確認されず

    イトーヨーギョーのサーバにランサムウェア攻撃、現時点で情報流出は確認されず

  8. やけど虫の駆除方法、体液が皮膚に付いてしまった場合の対策について

    やけど虫の駆除方法、体液が皮膚に付いてしまった場合の対策について

  9. 病院向け情報管理システム OpenClinic GA に複数の脆弱性

    病院向け情報管理システム OpenClinic GA に複数の脆弱性

  10. PDF の契約書を署名段階で改竄、「邪悪なる注釈」そして「密かなる署名」攻撃とは? ~ 26 種類の PDF ソフトのうち 24 にオマケの脆弱性も

    PDF の契約書を署名段階で改竄、「邪悪なる注釈」そして「密かなる署名」攻撃とは? ~ 26 種類の PDF ソフトのうち 24 にオマケの脆弱性も

ランキングをもっと見る