このプレゼン資料の著作権一切は「犬のみっきー」にあります.無断転載,二次配布をお断りします.

 
 
3.不正アクセスを受けると

不正アクセスを受けたコンピュータでは,さまざまな被害を受けていることが予想できます.

システムやデータの破壊,改ざん,データを盗まれたり,プロクシやパスワードクラッカなどのプログラムを実行されたり,違法なファイル置き場として利用されるなどです.

また踏み台として使われ,他のコンピュータへ攻撃を行うための前線基地として使われたりする場合も考えられます.
 
4.不正アクセスの対応

これまで様々なドキュメントで,不正アクセスを防ぐための強固なシステムを構築する方法が紹介されてきました.確かに不正アクセスを受けないことが最良であることには間違いありません.

その一方で不正アクセスを受けたコンピュータに対しては「とにかく再インストールすること」以上のことについて触れようとする人は見られませんでした.理由は分かりません.
 
5.不正アクセスの事後対策

もちろんコンピュータを復旧させ,停止していたサービスを再開することは重要です.

不正アクセスを受けた場合の対処方法は再インストール以外に無いのでしょうか?それだけで十分なのでしょうか?
 
6.調査すべき事項

先程述べたように,強固なコンピュータ環境を構築する,コンピュータを復旧させるの2点は重要です.

でも,ちょっと考えてみましょう.そのコンピュータは本当に不正アクセスを受けたのでしょうか?

なにかの勘違いである可能性は無いのでしょうか?プログラムのバグによりコンピュータが異常な振る舞いをみせている可能性もあります.

また本当に不正アクセスを受けていたとしても,そのコンピュータだけが標的だったのでしょうか?他のコンピュータは大丈夫なのでしょうか?

それに不正アクセス者は何を行い,何か盗んだのかにも知る必要があります.もちろん不正アクセス者の正体を突き止めることも必要です.
 
7.ところが不正アクセス者は

一方,不正アクセス者も,そこらへんのことは予想してます.

ログを改ざんするとか,荒っぽくデリートするなどして自分の痕跡を消し去ろうとしますし,システムを改ざんする,偽のシステム情報とすり替えるなどして,コンピュータの管理者をかく乱しようとします.

不正アクセス者が使うツールやファイルがコンピュータの中に残されていることでしょうが,これらも非常にずるがしこく隠されていることでしょう.
 
8.不正アクセス者の手法

いくつかの例を紹介しましょう.

皆さんご存じのZap.wtmp,utmp,lastlogを改ざんするツールです.

logcleanerもおなじみですね.syslogdが記録するログを改ざんすることができます.また先ほどのwtmp,utmpを改ざんする機能ももちます.

それからUNYUN氏謹製のバックドアプログラム,tcpshellとudpshell.

このような不正アクセス者が利用する頻度の高いツールを使いやすくまとめたrootkitと呼ばれるツールキットが存在します.
 
9.不正アクセス者の手法

rootkitについては前回のADで紹介しましたが,もういちど簡単におさらいです.

不正アクセスの痕跡を隠すことにより,不正アクセス者はより長期にわたってコンピュータに住み続けることが可能となります.

それらを目的として,必要なツールをまとめたものがrootkitです.

主な機能としては,偽のシステム情報とすりかえ,ログを改ざんし,巧妙な仕掛けのバックドアを設置します.その他にIRCのプロクシを設置するとかイロイロありますが.
 
10.不正アクセスへの対応

私たちコンピュータの所有者や管理者も,それらの手法に対応できるだけの手法を知らなければなりません.
 
11.不正アクセスへの対応

といったわけで,これからは不正アクセスを防ぐための事前対応と同様に,実際に被害が発生した後の事後対処についても考えなければなりません.
 
12.事後対処の重要さ

ここでもういちど,事後対処の項目について考えてみましょう.
 
13.何が起きているか知る

本当に不正アクセスが発生しているのでしょうか?誤認によりサービスを停止するなどして,かえって損害が発生してしまう可能性も考慮して慎重に確認する必要があります.
 
14.被害を確認する

被害状況を確認することも重要です.

不正アクセス者は単にコンピュータに侵入しただけなのか.何か盗まれたのか.データやシステムは改ざん被害にあったのか.ほかのコンピュータは被害を受けていないのか.そして踏み台として利用され,他組織のコンピュータに被害を与えたりしていないのか.などなどです.
 
15.原因を知る

不正アクセスの原因を特定することも重要です.

システムの脆弱性が問題だったのか,脆弱なアカウントが問題だったのか.

何が原因で不正アクセスを受けたのかが解明されない限り,たとえコンピュータが復旧できたとしても安心できませんから.

また原因を特定し,その原因を取り除くことで不正アクセスの再発を防ぐことができます.
 
16.再発を防ぐ

先ほど説明したように不正アクセスの原因を特定することにより,再発を防ぐことが可能となります.

原因となった脆弱性をコンピュータから排除することにより,すくなくとも同じ手法によるコンピュータへの侵入は不可能となります.

もちろん脆弱性をそのまま残しておけば,たちまち不正アクセスが再発してしまいます.これはとてもおろかな事であることは,ここで言うまでもありません.
 
17.不正アクセス者を突き止める

そして不正アクセス者を突き止めたいと願う方は多いことでしょう.

可能であれば不正アクセスが原因となった損害の責任を取ってもらいたいことでしょう.それが不可能でも,謝罪の一言くらいは欲しいものです.
 
18.Forensicとは

長い前置きでしたが,ではForensicとはいったい何物でしょうか.

本当に不正アクセスを受けたのか
不正アクセス者は何を行ったのか
不正アクセス者は何者なのか
被害の範囲はどれほどか

フォレンジックとは,コンピュータを詳しく調査し,さまざまな要素から,過去に起きた事象を推測することを意味します.多くの場合,過去に起きた事象とは,不正アクセスを指すことになるでしょう.

以前とある雑誌の取材を受けたDanFarmerは「まるで遺跡を発掘してさまざまな遺留品を眺めながら「ここで人々はこんな暮らしをしていたんだなぁ」などと推測することに似ています」と語っていました.たしかヽ(;´Д`)ノ
 
19.Forensicの一例

では簡単なForensicの例を紹介しましょう.

OSに付属するコマンドでネットワークやプロセス状態などのシステム情報を参照し,不正アクセスの痕跡を確認します.おそらく普段から誰でも行っているシステムの確認作業ですが,これも立派なフォレンジックの一部なのです.
 
20.システム情報を収集する

これらはシステム情報を収集するコマンド類です.


ps, top, lsof
不正なプロセスが実行されてないか知ることができる

lsof
プロセスの状態(リンクするライブラリ,使用するリソース)

netstat
ネットワークの状態(通信状態,通信待ち受け)

lsmod
loadable kernel module の状態

/proc
システムに関する数多くの情報が得られる
 
21.ファイルを調べることで

続いてファイルを詳しく調べることで不正アクセス者が残したファイル・ディレクトリや影響を与えたファイル・ディレクトリを発掘することができます.

ls, find,stat
不正アクセス者の残したプログラムやデータを探し出すことができる

more, less
改ざんされたファイルを探し出すことができる
 
22.さらに詳しく調べることで

メモリやファイルシステムを詳細に調査することにより,不正アクセス者が残したファイルの断片や,過去に実行したプログラム,コンパイルしたプログラムの断片を発見することができるかもしれません.それらをひとつひとつ入念に調査・分析することにより,不正アクセス者がとった行動を推測することさえ可能です.
 
23.しかし残念なことに

このようにフォレンジックは不正アクセス者を追い詰めるために有益な数々の手法を提供します.しかし残念なことに,まだこれらの手法は完全には確立されていないようです.また私たちを導いてくれる有用なドキュメントも不足しています.特に邦文によるドキュメントは殆どといって良いほど存在しません.国内においてはフォレンジックは未開の分野なのでしょうか.
 
24.TCT

ここでフォレンジックのための有用なツールであるTCTを紹介しましょう.

TCTはフォレンジックに必要なデータを収集することを目的としてDanFarmerとWietseVenemaによって開発されました.

コンピュータフォレンジックのツールとして簡単に入手できるものとしては唯一であると言えるでしょう.

TCTは,先ほど述べたようなフォレンジックに必要な作業手順の一部を自動化し,また必要なツールを提供します.
 
25.TCT

TCTはこれら3つの機能を持ちます.

システム全体のスナップショットを取ります.

またシステム情報を収集しファイルシステム内に存在するすべてのファイルを調べ尽くします.
 
26.TCT

TCTは,grave-robber,unrmとlazarus,mactime,ils,icatなどのツールによって構成されます.
 
27.grave-robber

Grave-robber,直訳すると墓を暴く者となります.

grave-robber自身もほとんど言葉の意味どおりに,まるで墓を暴くかのようにシステムのスナップショットを取ります.

あらゆるシステム情報とファイルシステムの情報を収集します.ついでにそれらをMD5のハッシュとともに記録します.

これらの情報はOeder of volatilityに従って収集されます.
 
28.Order of Volatility
Order of Volatilityつまり失われやすい順にシステム情報を収集します.

grave-robberでのOOVはこれらの順で定めています.

1. CPU内の内容(レジスタ,キャッシュ)

2. メモリ

3. ネットワークの状態

4. 実行中のプロセス

5. ディスク装置

6. フロッピー,バックアップ

7. CD-ROMやプリントアウトした物

これらのうちgrave-robberは1.6.7.以外の情報を収集します.
 
29.unrm & lazarus

この2つのプログラムはファイルシステムの未割当領域を収集し,その中に存在するデータの欠片を拾い集めます.

また,拾い集めたデータの欠片を分類し,目に見える形にまで復元してしまいます.

これはまるで遺跡の発掘作業そのものです.
 
30.mactime

mactimeはgrave-robberによってかき集められた記憶装置上に存在するファイル・ディレクトリの情報から,時刻情報を元に検索をおこないます.

これら3種類の時刻情報による検索が可能です.

Last Modified Time
ファイルに変更が加えられた時刻

Last Accessed Time
アクセスされた時刻

Last Changed Time
i-node に変更が加えられた時刻

時刻情報は改ざんが容易ですが,これらの情報が信用できる状況下にあるのなら,時間情報は不正アクセス者の行動を推測するための重要な判断材料となります.
 
31.ils,icat,pcat,file....

これらはファイルシステム内を詳しく調査するためのツールで,主に Grave-robberから利用されるが,それぞれ単独で利用することも可能です.

主な機能はこの通りです.
i-node の内容を表示する

i-node からデータブロックを参照する

プロセスメモリのダンプ

ファイルタイプを調べる
 
32.tctutils & autopsy

この2つのソフトウェアはTCTのファイルシステム調査機能を大幅に強化してくれます.

unrmとlazarusがファイルシステムの未使用領域を対象としていたのに対して,tctutilsはファイルシステム全体を調査対象とします.

またautopsyはGUI環境を提供してくれます.

記憶装置のフォレンジック作業に大きな恩恵を与えてくれる素晴らしいソフトウェアです.
 
33.Forensicの影

これまでフォレンジックの良い面ばかりを強調してきましたが,それなりに陰の部分も存在します.

システムは巨大で複雑である
現在のコンピュータシステムは手作業で追って行くには,あまりにも巨大で複雑すぎます.ディスク装置を入念に調査しようなど,人生の無駄遣い以外の何物でもありません.

手法などが完全に確立されてない
これは先ほども言ったとおりです.まるっきり体制が整ってません.

ツールが殆ど無い
手法と同じ問題です.

データを集めるのは容易いけど……
先ほども紹介しましたが,TCTを利用することによりデータ収集に費やす時間を短縮することは出来ましたが,解析にはあいかわらず気の遠くなるような時間が必要です.TCTが入念にデータを収集すればするほどこの傾向が強くなって行きます.

作業領域を都合することが難しい
これも問題ですね.フォレンジックを受けたコンピュータ上での作業は,ファイルシステムに対して影響を与えます.
極端に言ってしまえば,OSが動いていればいるほど,過去の痕跡は消えて行きます.なんらかの作業,例えば何かのツールをコンパイルするとかすれば,あっと言う間にディスク上の貴重な痕跡が消え去るのです.
ですから作業領域を確保することは重要なのですが,なかなかこれといった良い方法がみあたりません.
 
34.参考資料

Dan と Venema によるフォレンジックとTCT関する講義の資料があります.こちらが参考になるでしょう.

あと「不正アクセス調査ガイド」 オライリ ISBN: 4873110793 \3,400 もよろしくね
 
35.今後必要なこと

今後はForensicの重要性を認識し,今後に備えて環境を整備しなければなりません.

調査手法の整備

調査手法のドキュメント化

必要ツールの開発

調査要員の教育
 
36.まとめ

ってなワケで,日本では少しお寒い状況です.

いくつか捕捉です

ADの会場でメモリの内容を正確に残したいと質問された方がおられました.
これについて,とある方から教えていただいたのですが,Sunなどシリアルコンソールでコントロールできるコンピュータの場合は,シリアルからSTOP+Aを送ってコアを吐かせてしまうそうです.
これなら確かにメモリの内容は得られますね.ファイルシステムは壊れるかもしれませんが.
ここら辺のネタについても,そのうち整理できたらなぁとか思ってますが,やっぱり趣味でやってるもんですから,遅々として進みませんなぁ.

何れにせよ,日本のセキュリティエンジニアの皆さんもForensicにもっと注目して欲しいもんです.