〜rootkitを検出するために〜
連載:インシデントレスポンスはじめの一歩
第1回
攻撃手法の代表格「バックドア」と「トロイの木馬」と「rootkit」を知る
新井悠
ラック
2003/3/29
今回のindex
|
本連載では、まず攻撃者の侵入で仕掛けられることの多いバックドアやトロイの木馬、rootkit(ルート・キット)について解説する。その後、rootkitのしくみを解説し、それを検出するための実践的なオペレーションワーク手順を解説し、理解していただくことを目標とする。読者の方にとって「インシデントレスポンス」の参考としていただければ幸いだ。
なお、あらかじめ断っておくが、本連載は攻撃者を育成するためのものではない。サーバ管理者に攻撃者の手口(心理)を知ってもらうことで、より効果的なサーバの運用管理に役立ててもらうことを目的としている。
※ご注意 他社および他組織のWebサイトなどへのポートスキャンおよびデータの取得などの行為で得た情報を侵入などに悪用するか、または同じ目的を持つ第三者に提供した時点で違法となります。ご注意ください。 本稿の内容を検証する場合は、必ず影響を及ぼさない限られた環境下で行って下さい。また、本稿を利用した行為による問題に関しましては、筆者、筆者の所属先企業、および株式会社アットマーク・アイティは一切責任を負いかねます。ご了承ください。 |
「バックドア」や「トロイの木馬」あるいは「rootkit」は、セキュリティ用語として頻繁に使われている。ただ、これらの用語はその解釈が以前より広がっており、その区別さえもよく分からなくなっていることが多い。そこでまずは、バックドアの意味について考えてみることにしよう。
攻撃者にとって格好の利用手段である「バックドア」 |
もともとは、システム管理者がコンピュータシステムにアクセスするために、あるいはプログラマがソフトウェアにアクセスするために用意した秘密の手段のことを指して「バックドア(back door)」と呼んだ。これは “trap door”や“wormhole”とも呼ばれ、この「秘密の手段」を事前に知っている攻撃者にとっては、システムに手軽に侵入するための格好の利用手段となり得る。なぜならば、バックドアはアクセス制御を迂回(うかい)して、アクセスを許す要素にほかならないからだ。
このようなバックドアが利用された代表的なセキュリティインシデントといえば、1988年の“The Internet Worm”である。当時 Cornell 大学の大学院生であったRobert Tappan Morris氏によって作成され、最初にMIT(マサチューセッツ工科大学)のホストに仕込まれたこのワームは、圧倒的な繁殖力でインターネット(当時は 「ARPANET」)に接続しているホストに感染していった。感染に利用された手段は3つあったが、そのうちの1つが当時のsendmailが提供する機能の中に存在していた隠しモードである“DEBUG”であった。これを利用することで、ワームはリモートから任意のコマンドをroot権限で実行できたのであった。当時のsendmailの機能に含まれていたという事実から考えて、これはバックドアである、ということができるだろう。
ところで、この「秘密の手段」がシステム管理者などではなく、攻撃者によって設置された場合はどうなるであろうか? あるシステムの管理者権限を手に入れることに成功した攻撃者は、そのシステムに後から戻ってこられるように、アクセス制御を迂回し、再度アクセスを許す要素を作りあげることができる。そう、このように攻撃者によって不正に作成されたアクセス手段もまた、近年においては「バックドア」と呼ばれるようになっているのだ。そして攻撃者が再度アクセスすることを欲しているのは、単純な興味、スニッフィングによる電子メールやパスワードの取得、あるいは管理者権限を得ることのできたシステムからさらに別のシステムを攻略することを目的としているなどの理由があるからだ。
このバックドア設置の具体例については、「連載:不正侵入の手口と対策 第4回 攻撃者が侵入後に行うバックドアの設置例」を参照してほしい。
セキュリティの破綻をもたらす悪意あるプログラム |
さて、バックドアと混同されやすいのがトロイの木馬である。トロイの木馬とは、ファイルの一覧を表示するプログラムや、ファイルの圧縮および解凍(伸長)プログラム、ゲーム、あるいはウイルスを検出して駆除するプログラムなどの、正当なプログラムであるかのように偽装しているが、実際にはセキュリティの破たんをもたらす悪意あるプログラムのことを指す。では「正当のものであるかのように偽装しているプログラム」とは、どのようなものであろうか?
●トロイの木馬の具体例:バイナリの置き換え
インストール直後にユーザーが利用できるような、OS付属のバイナリを別のモノに置き換える。ユーザーがこのバイナリを実行した結果は意図したものではあるが、その「背後」で別の仕掛けが作動する。例えば、telar氏によって作成されたf_ps.cがある(http://packetstormsecurity.nl/UNIX/utilities/f_ps.c)。このプログラムをコンパイルし、生成されたバイナリで通常のpsを上書きすることで、プロセスの一覧を改ざんしてから出力させることができる。
これは、どのような結果をもたらすのだろうか? より具体的に説明するために、「連載:不正侵入の手口と対策 第4回 Page2」で詳述されているnetcatを使用したバックドア設置を例にすることにしよう。
攻撃者(ユーザー名:intruder)がローカルから次のようにnetcatを使用し、TCP 2003番ポートで接続を待ち受けるバックドアを設置したとする(ここではプラットフォームとしてLinuxシステムを例とする)。
# nc -vv -l -p 2003 -e /bin/sh |
このとき、改ざんされていないpsのバイナリをコンソールからログインしたrootユーザーが実行した場合、次のように表示されるはずだ。
USER PID %CPU %MEM VSZ RSS TTY STAT
START TIME COMMAND |
このように、下から2番目の行に、“intruder”という名前のユーザーがnetcatを使用してバックドアを起動させていることが分かる。
ここで、前述のf_ps.cプログラムが利用され、psバイナリを置き換えられてしまっていたとしよう。この置き換えられたバイナリを、コンソールからログインしたrootユーザーが、気付かないまま実行した場合は以下のようになる。
USER PID %CPU %MEM VSZ RSS TTY STAT
START TIME COMMAND |
前述のユーザー名“intruder”によって起動されたnetcatプロセスは表示されていない。また、in.telnetdが起動されていることも表示されない。さらに、このf_ps.cに少しだけ手を入れれば、netstatを置き換えるためのバイナリも作成することができるので、ネットワーク接続の状態を隠ぺいすることもできる。同様に、lsバイナリを置き換えてしまえば、ファイルの隠ぺいも可能となる。
さらに、ファイルやプロセスなどを隠ぺいするだけにとどまらず、ほかのアクティビティを発生させるようなケースも想定される。このアクティビティにはバックドアの設置などが含まれてくる。すなわち、バックドアがトロイの木馬に含まれる場合があるということである。
このようなバイナリを置き換えてしまう方法を使えば、ほかにも/bin/shなどのシェルを置き換えて、ユーザーの入力をすべて取得することができるだろう。ちなみに、このようにユーザーのキー入力を取得するプログラムは通称「キーロガー」と呼ばれる。
攻撃者の時間と手間を省くためのツール「rootkit」 |
バイナリの置き換えを行うことができると、さまざまな情報を隠ぺいすることができることはお分かりになられたことと思う。このような隠ぺい手段を用いることができれば、システムに侵入していることを管理者によって検出されることを免れる可能性を生み出せるので、攻撃者はそのシステムに居座り続けることができる公算が高くなる。ただ、このようなバイナリを1つ1つ上書きしていく作業は、非常に単調である。そのうえ、侵入に成功したシステムを踏み台にし、さらにほかのシステムを攻略するためには、ツールをダウンロードするなどの必要がある。この単調作業をパッケージ化することで解決するのがrootkitと呼ばれるツールである。
rootkitをインストールすることで、攻撃者は時間と手間を省けるのだ。再侵入に使用するためのバックドアも手間が省けるという理由でrootkitに含まれることが多々ある。
ちなみに、歴史的な経緯からいえば、さまざまなトロイの木馬が1つにまとめられ、SunOS 4用に“Root Kits”という形で作成された。このような歴史的背景から、rootkitは典型的なトロイの木馬の例として挙げられることがある。ただ、近来作成されているrootkitはさまざまなツールの集合体となっている。
◇
今回はバックドア、トロイの木馬、そしてrootkitに触れ、それぞれの概念の説明を行った。ここでもう一度、思い出してみよう。バックドア | 正規の手順とは異なる方法でシステムへアクセスするための方法・手順 |
トロイの木馬 | 正当なプログラムであるかのように偽装しているが、実際にはセキュリティの破たんをもたらす悪意あるプログラム |
rootkit | 不正アクセスの痕跡を消し去り、それを隠ぺいし、さらなる標的を攻撃することを可能とするツール群 |
次回からは、rootkitについて詳述していく。
【参考資料】
the Jargon File, version 4.3.1(GNUのmiscfilesパッケージの一部)
http://www.gnu.org/directory/miscfiles.html
NSA Glossary of Terms Used in Security and Intrusion Detection
http://www.sans.org/resources/glossary.php
“Root Kits” and hiding files/directories/processes after a break-in
http://staff.washington.edu/dittrich/misc/faqs/rootkits.faq
「第2回」へ |
index | |
第1回 攻撃手法の代表格「バックドア」と「トロイの木馬」と「rootkit」を知る | |
攻撃者にとって格好の利用手段である「バックドア」 | |
セキュリティの破綻をもたらす悪意あるプログラム「トロイの木馬」 | |
攻撃者の時間と手間を省くためのツール「rootkit」 |
関連記事 | |
連載:Webアプリケーションに潜むセキュリティホール | |
特集:クロスサイトスクリプティング対策の基本 | |
連載:不正侵入の手口と対策 |
「連載 インシデントレスポンスはじめの一歩」 |
- Windows起動前後にデバイスを守る工夫、ルートキットを防ぐ (2017/7/24)
Windows 10が備える多彩なセキュリティ対策機能を丸ごと理解するには、5つのスタックに分けて順に押さえていくことが早道だ。連載第1回は、Windows起動前の「デバイスの保護」とHyper-Vを用いたセキュリティ構成について紹介する。 - WannaCryがホンダやマクドにも。中学3年生が作ったランサムウェアの正体も話題に (2017/7/11)
2017年6月のセキュリティクラスタでは、「WannaCry」の残り火にやられたホンダや亜種に感染したマクドナルドに注目が集まった他、ランサムウェアを作成して配布した中学3年生、ランサムウェアに降伏してしまった韓国のホスティング企業など、5月に引き続きランサムウェアの話題が席巻していました。 - Recruit-CSIRTがマルウェアの「培養」用に内製した動的解析環境、その目的と工夫とは (2017/7/10)
代表的なマルウェア解析方法を紹介し、自社のみに影響があるマルウェアを「培養」するために構築した動的解析環境について解説する - 侵入されることを前提に考える――内部対策はログ管理から (2017/7/5)
人員リソースや予算の限られた中堅・中小企業にとって、大企業で導入されがちな、過剰に高機能で管理負荷の高いセキュリティ対策を施すのは現実的ではない。本連載では、中堅・中小企業が目指すべきセキュリティ対策の“現実解“を、特に標的型攻撃(APT:Advanced Persistent Threat)対策の観点から考える。
|
|