LINE Developer Meetup in Fukuoka #20参加レポート

こんにちは。LINE Fukuokaで開発エンジニアをしているyouheiです。

9月1日にLINE Fukuokaで開催いたしました、LINE Developer Meetup in Fukuoka #20の参加レポートをお送りします。

今回は、Unix開発の歴史を解説した『Unix考古学 Truth of the Legend』の著者である藤田昭人さんにお越しいただき、「情報セキュリティの考古学」と題してご講演いただきました。

講演スライドはこちらからご覧になれます。

当日は弊社セミナールームで開催していた「セキュリティキャンプ九州 in 福岡 2017」の初日だったこともあり、サイバーセキュリティに関心のある学生の皆さんにも多数お集まりいただけました。

Unix考古学について

藤田さんが2016年に出版された『Unix考古学』では、Unix誕生からその後の歴史について、さまざまな文献などからその事実関係が解き明かされています。

私も昨年読みましたが、一般的な技術書とは違った趣があり、当時のUnixに関わった人たちの偉大さがわかる本です。機会があればぜひお読みください。

今回の講演でも、同様の切り口で情報セキュリティの歴史を掘り下げてお話しいただき、とても興味深く拝聴しました。

情報セキュリティの起源

情報セキュリティは1980年代に浮上した課題です。藤田さんの見解では、情報セキュリティはKen Thompsonの1983年のチューリング賞受賞時のスピーチ「Reflection on Trusting Trust」を発端に、広く社会に知られるようになったとのことです。

藤田さんには、1980年代にあったエポックメイキングな3つの出来事をケーススタディとして、情報セキュリティが社会問題として認知されていく過程を紐解いていただきました。

その出来事とは以下の3つです。

  • Ken Thompsonによるトロイの木馬の指摘
  • 『カッコウはコンピュータに卵を産む』の出版
  • Morris wormの拡散

皆さんはいくつ知っていたでしょうか?

Ken Thompsonによるトロイの木馬の指摘

Ken ThompsonはDennis Ritchieと共にUnix開発の功績を認められ、1983年にACMチューリング賞を受賞しています。Ken Thompsonはその受賞スピーチで、過去のUnixにトロイの木馬が仕掛けられていたことを暴露し、システムに侵入する手法を明らかにしました。

その手法は、コンパイラのバイナリを改変してloginコマンドを侵入可能なコードに差し替えるというもので、現在ではコンパイラバックドアとして知られています。

彼の洗練されたハックはKTH=Ken Thompson Hackと呼ばれており、KTH対策に関する論文も多数あるそうです。

藤田さんによれば、Ken Thompsonは「バイナリとソースがバンドルされていると、バンドルされているソースからバイナリが作られたと人は信じ込む」という、「人間は信用を信頼する」(Trusting trust)という根本的な問題を指摘しつつ、同じ1983年に誕生したインターネットの将来に対して警鐘を鳴らしていたのではないかということです。

『カッコウはコンピュータに卵を産む』の出版

続いて『カッコウはコンピュータに卵を産む』で、これは1989年に出版された書籍のタイトルです。

著者のClifford Stollは、西ドイツからバークレー研究所のサーバーが侵入されアメリカ軍の軍事情報が盗み出されていたのを、1986年に発見しました。

彼は西ドイツの政府やFBIと手を組み侵入者の行為を監視します。そして偽の計画書をでっち上げて時間を稼ぎ、なかなか痕跡を残さなかった侵入者の特定に成功しました。この手法は現在のハニーポットの原型ですね。

当時「西ドイツのハッカーがアメリカの軍事施設に侵入している」と報道されたようですが、まだ社会の反応は薄いものだったそうです。

そしてその半年後にMorris wormが現れます。

Morris wormの拡散

Morris wormは世界初のワームともいわれ、1988年11月2日にマサチューセッツ工科大学(MIT)から放たれ、およそ6000台のサーバーが感染したとされています。当時のインターネット全体のサーバー台数が6万台なので、全体の10%が感染したと考えると、感染力の強さがわかりますね。

この強力なワームですが、関係者の尽力によりわずか3日間で収束します。たまたま11月3日にカリフォルニア大学バークレー校でUnixの主要な開発者が集まるワークショップがあり、ただちにドリームチームを結成して問題解決に取り組めたということが大きかったようです。

Morris worm製作者の、当時コーネル大学の学生だったRobert T. Morris(現MIT終身教授、Y Combinator創業者)は有罪の判決を受けましたが、この事件はインターネットの情報セキュリティの再考を促し、CERT Coordination Center発足の契機となりました。

本講演では、藤田さんにMorris wormのソースコードの簡単な解説をしていただきました。socketでつないでワーム本体をコピーしてから、痕跡を残さないように本体をファイルシステムからunlinkする、というシンプルなC言語のコードでした。侵入の方法は複数あり、その1つはMorris自身が1985年に報告していた、rshの既知の脆弱性をついたものだったそうです。

なお、Morris wormのソースコードはこちらで公開されています。

情報セキュリティという課題

以上の3つの事例を通して、情報セキュリティは1980年代に浮上した社会問題だということがわかりました。

しかし、この問題が社会一般に認識されるまで長い時間がかかりました。Ken Thompsonが1983年に問題提起をしてから1988年にMorris wormによる大きな被害が出るまでの、年単位の時間を要したのです。

藤田さんは、情報セキュリティ人材の育成が現在急務になっている中で、仮に人材育成ができたとしても、倫理観の教育もまた難しい課題ではないか、そして、倫理観を保つために過去に同じようなことがあったと説明できるのは良いことなのではないかとお話しになりました。私も、コンピュータの歴史を知る意義のひとつがそこにあるかもしれないと感じました。

懇親会

講演の後はそのままカフェで懇親会が開かれました。藤田さんを囲み熱心に話に聴き入るベテランのエンジニアの方が多数いらっしゃいました。

またこの日は特に若い方が多かったこともあって、カフェはまるで大学の食堂のような雰囲気でした。

最後に

Meetup全体を振り返ってみて、「コンピュータもその登場から長い時間を経て、ようやく歴史の話ができるようになってきた」という藤田さんのコメントがとても印象的でした。また、技術の本質というものは昔から変わっていないので、歴史を知ることは単に知識を得るだけにとどまらず、セキュアなコーディングを考える上でも役に立つものだと思いました。

最後になりますが、LINE Fukuokaではセキュリティエンジニアを随時募集しております。東京オフィス・京都オフィスでもセキュリティエンジニアを募集しておりますので、興味のある方は是非ご応募ください。