セキュアなLinux環境への近道――Damn Vulnerable Linuxの無防備さを極めろ!

Damn Vulnerable Linux(DVL)には、セキュアなLinuxディストリビューションであれば備えていては“いけない”あらゆる要素が取りそろえられている。DVLの開発陣は、セキュリティホールの原因となる穴だらけの旧式ソフトウェアを意図的に寄せ集めることで、外部からの攻撃に対して無防備極まるLinuxディストリビューションをわざわざ生み出したのだ。もっともこのディストリビューション、一般ユーザのデスクトップ環境で使われることを前提としている訳ではなく、コンピュータセキュリティ用の教材として作られたのであるが。

DVLは、1枚のライブCDに収められた容量150MBのISO形式で配布されている。その母体とされたのは、コンパクトなLinuxディストリビューションとして人気の高いDamn Small Linux(DSL)であるが、その選定理由はこうしたサイズの小ささだけではなく、2.6カーネルに比べて脆弱度を発揮させやすい2.4カーネルを使用しているためである。同梱されているプログラム群についても、旧バージョンのApache、MySQL、PHP、FTPデーモン、SSHデーモンのうちで特に攻撃に弱いものが厳選されており、その他にも、GCC、GDB、NASM、strace、ELF Shell、DDD、LDasm、LIDaなど、これらのサービス上で使用されるアプリケーション群に対するコンパイルとデバッグおよび“攻撃”をするための各種ツールが取りそろえられている。

DVLというディストリビューションは、Secure Software Engineering(S²e)およびInternational Institute for Training, Assessment, and Certification(IITAC)のThorsten Schneider氏がFrench Reverse Engineering TeamのKryshaam氏と協力して立ち上げたものである。

「DVLという構想の基礎となったのは、私が受け持つ大学の講義で使うトレーニング用のシステムを構築することでした」とSchneider氏は説明をする。その際に同氏が考えていたのは、コードのリバースエンジニアリングバッファオーバーフローシェルコード開発、Web攻撃、SQLインジェクションなどのトピックを学ぶための教材として使える、可能な限り脆弱なLinuxシステムを用意することであった。

Schneider氏はDVLというディストリビューションについて、セキュリティ系ツール群およびトレーニング用オプションをできるだけ多くユーザに提供することのみがその存在理由であり、それ以外の用途は無いとしている。「DVLの作成には、色々と悪い意味でのハッカー経験を持つ人々が携わっており、ReverseEngineering.netおよびCrackmes.deといったコミュニティの協力も得ています。これは、過去に蓄積されてきた膨大な経験の集大成であり、Crackmes.deのコミュニティメンバが編み出してきた各種のソリューションや、様々な教訓について紹介がされています」

「作成時に目指したのは、プラグアンドプレイ型のシステムでした。つまり仮想マシン上でDVLを実行すれば、それだけで必要なすべてのツールがインストールされ、(受講者の手には)その場で使える実用的なトレーニング教材一式がそろうという訳です」

同様の説明は、セキュリティ専門家としてSPI Dynamicsで働くと同時にSecurityDistro.comの編集者を務めているJosh Sweeney氏からも聞くことができる。「当時DVLのスタッフが感じていたのは、インターネットで入手できるこの種のチュートリアルは、どれも一般のユーザにとって理解しづらかったり、実用的でなかったり、内容が高度すぎるということでした。そこでこの種のテーマに関連するツール、演習問題、テキスト系チュートリアル、およびエクスプロイト(exploit:セキュリティ上の弱点に関する情報)を集めて、手軽に扱える1つのライブLinuxディストリビューションとしてパッケージ化しようという活動になったのですが、このプロジェクトでは独自のビデオ版チュートリアルまで製作しています」。

Sweeney氏は、DVLという教育用ディストリビューションの使用法として、OWASP LabRatやHakin9などのセキュリティ系ディストリビューションと組み合わされて利用されるケースが多いだろうと見ている。「LabRatの特徴は、WebアプリケーションのセキュリティおよびOWASPツールに特化したものだということです。Hakin9も教育用CDとしては優れているのですが、雑誌の付録という形でしか入手できません。ISO版をダウンロードすることも可能ですが、雑誌版にあるチュートリアルの一部は除外されています。私の知る限り、教育活動を主目的としたライブ形式のセキュリティ系ディストリビューションは、他に作られていないはずです。例えばBackTrack、nUbuntuKnoppix-STDなどは、セキュリティの専門家が実務で使うことを前提としています。これらに関しても教育目的では絶対に使えないという訳ではありませんが、最初からその目的で作られたものとは比べるべくもないでしょう」

DVL screenshot
クリックで拡大

DVLには、不正侵入の手口に関する一連の演習問題および、それらのソリューションとエクスプロイトがまとめられている。ここに用意されている演習は、PHP攻撃を行うための様々なエクスプロイトを実演したもので、通常のWebブラウザを用いたアクセスが可能である。なお、これらのエクスプロイトを使用する際には、コマンドラインを始め各種のCLIおよびGUI系ツールを使い分けることになる。

ここまでの解説を読んでこのディストリビューションに興味を持ったという読者については、手始めにDVLのWebサイトに用意されているイントロダクション用のビデオを見てみることをお勧めする。First Steps with DVLというページにアクセスすると、DVLディストリビューションの内容および収録ツールの機能を簡潔に解説したビデオを再生することができる。DVLの概要を把握できたらYour First DVL Lessonのページに進めばいい。ここにリンクされているビデオにはバッファオーバーフローの詳細が解説されている。

残念ながらこれらのビデオは、配布サイズを軽量化する関係上、ディストリビューション側には収録されていない。可能であるならば、ツール群のみを収録したDVLのvanillaバージョンと、ビデオも収録したDVLのextendedバージョンというように、2つのバージョンが用意されていたらいいと思うのだが。

具体的に何を学ぶことができるのか

一口にセキュリティと言ってもカバーするべき分野は広大であり、むしろセキュリティに関係しない要素を探す方が難しいくらいだ。そのためSchneider氏は、チュートリアルを3つのパートに分けたとのことである。「1番目のパートは、バイナリ攻撃、バッファオーバーフロー、書式文字関連の脆弱性、シェルコードに関するものです。2番目のパートは、SQLインジェクションやパス検索など、Webを介した攻撃の手口を解説したもので、Webサイトにまつわるセキュリティ問題も説明しています。3番目のパートは、コードのリバースエンジニアリングおよびコピープロテクト解析に関するもので、現在用いられているコピープロテクトがいかに脆弱であるかが理解できるでしょう」

「DVLを際だたさせているのは、バッファオーバーフローおよび逆アセンブルという手口に焦点を当てていることです」とSweeney氏は語る。同氏によると、バッファオーバーフローやリバースエンジニアリングと併せて語られるケースが多いのが逆アセンブルであるとのことだ。「ここで言う逆アセンブルとは、より詳細な分析が行えるように、プログラムを解読してそのアセンブルコードを入手することです。こうした行為に成功すると、根幹レベルでのコード解析が可能となり、セキュリティ上の欠点も見つけられやすくなります。この分野に関しては、かなり以前より優れた内容の論文が出回っているのですが、自己完結して操作性に優れたトレーニング用ツールという形態で利用することはほとんど不可能でした」

将来的なリリースとビデオの追加

DVLという非常に異質なディストリビューションに対して、開発サイドがどのようなアップデート計画を考えているのかを、Schneider氏に尋ねてみた。同氏が確約したのは、今後行うリリースではMetasploit Frameworkなどのツールの追加を行うが、より将来的にはトレーニング教材などの充実に焦点を当てていくということだ。「次回のリリースでは、ツールの1つを追加することがメインの変更となりますが、併せて若干のトレーニング教材の追加も行います。それ以降のリリースでは、チュートリアルセクションの増強をするつもりです。また近いうちに行うリリースのいずれかで、Linuxカーネルの脆弱性をよりいっそう強化することになるでしょう。その他の計画としては、ハッキング・ウォーゲーム的な要素をDVLに取り込むことも検討しています」

過去において多くのプロジェクトが、壮大な目標をかかげながらも志半ばで挫折している。そしてDVLの場合も、同Webサイトにリンクされている解説用ビデオは内容的には見応えがあるものの、現状では2種類だけしか用意されておらず品揃え的には貧弱だと言わざるを得ない。こうしたビデオのラインナップについてSchneider氏は、「トレーニング用ビデオのセクションは、近日中に充実させていきます」と約束している。「ただしこの種のビデオ製作はかなりの時間を要する作業なので、外部の人から見ると遅々として進展していないよう感じられるかもしれません。ですから、できるだけ進捗ペースを上げるよう努力してみるつもりです。またテキスト系のチュートリアルに関してはコミュニティからの貢献に頼っているので、このセクションの充実ぶりは、どれほど多くの協力をコミュニティから得られるかにかかっています。その他にも独自の協力を申し出る方がおられましたら、Crackmes.deのWebサイトにて受け付けております。そうした協力が増えるほど、DVLのチュートリアルの充実はより速やかに進展していくでしょう」

DVLというディストリビューションは、その設立目的からして極めて異色な存在となっている。私自身セキュリティに関する特別に深い知識を持っている訳ではないのだが、DVLにあるバッファオーバーフローについての説明やそのエクスプロイトに関する演習はきちんと理解することができた。こうしたDVLに用意されているすべての教材を実践するとなると、かなりの時間を割かれると覚悟しておいた方がいいだろう。Schneider氏が語っていたように、今後これらの教材が定常的なペースで増強されていくとすれば、DVLは非常に充実したトレーニングツールへと成長していくはずだ。

NewsForge.com 原文