侵入調査方法のメモ。
企業システムはいろんなセキュリティ製品で守られているように見えるが、
実際に問題ないと言い切れるのか、もし未知の攻撃によって侵入されていたらどのように見つけるのか。
と思って調べてみました。
========================================================================
■ツールの用意
kstat.tgz
lkm-rootkitを検出するためソフトウェア
alamo-0.1a.tar.gz
alamoはlkm-rootkitによって改竄されたシステムコールテーブルを復旧し、正しい情報を表示させることのできるソフトウェア
chkrootkit.tar.gz
chkrootkitはシステムに仕掛けられたrootkitを検出することを目的とするソフトウェア
■1.コンピュータにログインする
rootでログインしないようにする。
pathの確認
path環境変数が正しく設定されているか確認する。
→PATH変数で指定されたコマンドのサーチ順を利用したトロイなどが仕掛けられているかもしれない。
コマンドファイルの確認
md5のハッシュ地による整合性チェック、rpmコマンドによる整合性チェック
→やらないよりはましレベル。
■2.ログイン、ネットワーク状況の確認
wまたはwhoコマンドを使用して、現在だれがコンピュータにログインしているか確認する。lastやlastlogコマンドで過去のログイン状況も調べてみる。
コンピュータに登録した覚えのない利用者がログインしていたり、正規の利用者であっても考えられない地域からログインしてないか、また不審な時間にログインしてないか。
続いてnetstatコマンドを実行してネットワークのセッション状況を確認。
考えられない地域からログインされていないか、サービスを行ってないポートがLISTEN状態になっていないか、サービスを行っていない
ポートに対して何者かが接続していないか。
netstat -anA inet
■3.プロセスの確認
psコマンドにパラメータを指定してできる限り詳しい情報を表示させる。
不審なプロセスが動作中でないか、syslogdのような重要なプロセスが停まってないかに注意する。
USER情報にも注意する。その利用者はそのようなプロセスを走らせる必要があるか。
ps -auxwww
■4.インターフェイス情報の確認
ifconfigコマンドを実行する。PROMISCと表示されていたら、ネットワークスニファがしかけられている可能性がある。
■5.lkm-rootkitの確認
lkm-rootkitによってシステム情報が操作されていたら、どんな正しいコマンドファイルを使用してシステム情報を確認したとしても、
徒労に終わってしまう。
これはrootユーザから行う。suに”-”や”-l”などのオプションを指定しないように注意する。
.bash_historyなどのコマンドヒストリを確認する。不正アクセス者がrootユーザで何らかの操作を行っていればその記録がコマンドヒストリに
残っている可能性がある。ただしたいていの不正アクセス者はコマンドヒストリを消去する。
次に、kstatでlkm-rootkitを調べてみる。
# ./kstat -s |grep “WARNING”
kstatを-sオプションと共に実行して、システムコールテーブルの内容を確認してみる。
いくつかのWARNINGが表示されるかもしれない。
これらは現在動作しているカーネルのオリジナルシステムコールテーブルが書き換えられていることを示している。
もちろんデバイスドライバなどのソフトウェアによって書き換えられていることもあるので、WARNINGが表示されたからといってlkmとは限らない。
この中で最も注意しなければならないのはsys_getdents。この割り込みがフックされていた場合は、何らかのプログラムによって
ディレクトリ情報が操作されてファイルやプロセスが隠されている可能性がある。
コンピュータがクリーンな状態で一度kstatを実行して正常な状態のシステムコールテーブルをバックアップしておくのがよい。
========================================================================
というようなことをやるみたいです。
ちょっと古い本のメモなので、ツールがあるのかどうか、最新のrootkitは別の名前かもしれないが詳しいことについては後で調べてみます。
※参考図書
不正アクセス調査ガイド -Oreilly-
以上