堀込泰三 - Webサービス,アイデア発想術,キーパーソン,仕事術 10:00 PM
既存インフラの活用を恐れずに:『Kali Linux』開発秘話
WiFiのパスワード突破やネットワークのセキュリティ脆弱性テストをしたことがある人は、「Kali Linux」のお世話になったのではないでしょうか。Kali Linuxは、セキュリティに特化したLinuxのバージョンで、ネットワークの弱点を見つけ、ネットワークの安全を確保するためのツールを数多く提供しています。
その起源は、主任開発者であるMati Aharoni氏が必要に迫られて開発したものでした。セキュリティ関連の仕事をしていたAharoni氏は、クライアントのシステムにソフトウエアをインストールせずに使えるセキュリティツールの必要性を感じ、Linuxを選んだと言います。
有名アプリの誕生にまつわる逸話を紹介する「Behind the App」シリーズ、今回は『Kali Linux』の主任開発者であるMati Aharoni氏に、Kaliの誕生秘話を聴きました。
── Kaliのアイデアは何がきっかけで生まれたのでしょうか。あなた自身が直面していた問題の解決策としてなのか、それとも別のきっかけがあったのですか?
「Linuxライブディストリビューションにたくさんのセキュリティツールを詰め込んでしまえ」というアイデアは、今から何年も前、セキュリティに関する厄介なジレンマに直面したときに、必要に迫られて生まれました。客先へのハードウエアの持ち込みが禁じられていたばかりか、ハードディスクに触らない、もしくは何もいじらないという条件でしか、お客様のコンピュータに触ることができなかったのです。
あれこれと考えた結果、ほぼ不可能だと思われた条件は、既存のブータブルLive Linux CD(Knoppix 2.0)にいくつかのツールを追加することで実現できると気がつきました。それができてしまえば、CDを持って客先に出向き、お客様のコンピュータをそのCDで立ち上げ、RAMを使わずに直接作業ができる。作業が完了したら、あまり心を痛めることなく、CDを破棄すればいいのだと。それが、今から10年前のことでした。
── アイデアを思いついたあと、次にした行動は何ですか?
この質問、Kaliの最新LinuxディストリビューションであるMatrixのサードイテレーションについてお答えしてもいいでしょうか。
Kali Linuxは、Linuxセキュリティディストビューション開発における8年間の経験を、まっさらな新しいキャンバスに応用する必要性を感じたことから生まれました。つまり、その時までやってきたすべてをいったん壊し、やり直すという作業に取り掛かったのです。それは、恐ろしくも解放的なプロセスでした。愛着のある「BackTrack」ディストリビューションを泣く泣く手放す一方で、現在のシステムを拡大して再構築し、いいモノを作る機会でもありました。
困難な決断を下した私たちは、仕事を任せられる人を巻き込んでいく必要があると実感しました。そこで、Debian開発者を1人呼び寄せ、ゼロからの開発インフラ構築を助けてもらいました。このプロジェクトの成功は、彼の貢献なくしてはありえなかったでしょう。
── ターゲットとするプラットフォームはどのように決定しましたか?
この質問は、Kali LinuxのARMイメージについてお答えします。
Kaliの目標のひとつに、「エキゾチックなハードウエア(主にARMベース)向けにも、OSイメージを提供する」があります。Raspberry Pi、タブレット、Android TVデバイスなどの、ユニークな特徴を持つハードウエアです。たとえばMK8o8は、デュアルコアCPUと1GBものRAMを搭載しながら、中くらいのサイズのUSBドングルというフォームファクターを持っています。つまり、バッテリー駆動のパワフルなコンピュータが、ポケットに収まるのです。
ターゲットとするARMハードウエアは、いろいろな要素によって決めています。最大の障壁は、可用性ですね。おもしろい方法でのセキュリティ評価に使えるハードウエアを見つけるたびに、Kaliを作ることにしています。おかげでKaliがサポートしているハードウエアは非常に幅広く、今でも毎月のように成長を続けています。
── もっとも大変だった点は? それをどのようにして乗り越えましたか?
BackTrackからKaliに移行するときの最大の懸念は、ブランドの再構築でした。「BackTrack」は、何年もの間セキュリティ界で大きな存在感を示しており、知らない人はいませんでした。これを急に変えてしまえば、間違いなくユーザーを混乱させてしまうでしょう。そこで私は、オープンソースの世界で、他の強豪がブランド再構築をした事例について、じっくり考えました。「Wiresharkは何年か前にリブランドしたけど、その前の名前は何だっけ?」。正しい答えを思いつくのに、2分もかかりました。そんな出来事から、リブランドは難しいけれど、不可能ではないことを知ったのです。
── ローンチした時はどのような感じでしたか?
Kali Linuxのローンチは、期待を上回るものでした。支えてくれる仲間がいて、信じられないほど大量のトラフィックをサポートしてくれる、適切なインフラがあって。おかげで、たった数日でものすごい数のダウンロードをしていただきました。
リリース前にナレッジソースを作ったり、フォーラムやバグトラッカーなどのコミュニティを作っておいたのが功を奏しました。
── ユーザーの要求や批判にはどのように対応していますか?
何年もの経験から、頑固なユーザーや批判全般に対して、忍耐強くなっています。一見ばかげたバグレポートでも、根底にある深刻な問題による一症状である可能性があることを学びました。そのようなレポートを尊重することで、時とともにより良く成長することができています。
── 現在は「新機能」と「既存機能」の開発に割く時間の比率はどれくらいですか?
この質問は、Kaliではディストリビューションに組み込むツールや機能に適用できます。これに関しては、具体的な手法は決めていません。便利なセキュリティツールを見つけたり、関連する便利そうなセキュリティ機能を見つけたら、シンプルにそれを追加しているだけです。ハードドライブの「自爆」を可能にする「LUKS NUKE」機能が、それを示す好例と言えるでしょう。
── 同じような試みをしようとしている人に、どのようなアドバイスを送りますか?
Unix由来のOSの世界は、偉大なる先人の努力のもとに成り立っています。Berkeleyのオリジナルソースに始まり、Linuxの初代カーネル、GNUツールセット、Debianディストリビューションに至るまで、ありとあらゆるLinuxディストリビューションが、コミュニティーの努力の結晶なのです。私からアドバイスをするなら、「恐れずに既存インフラを活用すること」ですね。既存のものを利用できるのに、それをわざわざ作り直す必要はありません。自分の目的に合うように、修正を加えるだけで十分です。
Andy Orin(原文/訳:堀込泰三)