IOCによりメモリ内のプロセスを定義してみる練習
昨日の続きになりますが、RedLineでプロセス一覧を確認した中に、svchost.exe経由の高い権限で実行されているiexplore.exeがありました。
Redlineではプロセスの親子関係をツリー状態(階層)で表示してくれますので、注意深く見ていけば気がつくかもしれませんが、残念ながら私は最初に見た時にはこれを見逃しました。
親子関係と、プロセスの権限を注意深く見るというのも一つの対策ではあるのですが、ポカヨケの仕組みが入れたくなります。
本来の向きではないと思いますが、IOCの仕組みで何かできないか?と思いIOCeを落としてきて基本的なルールを書いてみました。
このルールでは、プロセス名とパスを定義し、合わせてプロセスのSecurity IDで S-1-5-18 を指定することで、高い権限での実行を検知する設定になっています。
当初は、この定義内容ではなく、親プロセスがsvchost.exeで子供がiexplore.exeになっているプロセスを検出するルールを定義したかったのですが、ProcessItemの中にParent Nameが無いんですよね、これ何故なのでしょうか?
Prent PIDの項目はあるのですが、Parent PIDは毎回変化するでしょうから、親のプロセス名を定義したかったのです。もし親のプロセス名を定義する方法をご存じの方がいらっしゃいましたらご教授いただければ助かります。
ひとまずIOCを作ってみましたので、これをRedlineで実行しIOC Reportを確認したところ、ヒットしている事を確認できます。何故、4件もヒットしてくるのかは謎です、4件とも同じ情報を表示してますけど、見えない何かが違っているのでしょうか?
IOCでヒットしたものが、Processesの画面でも反応してくれると良いのですが、そこは連携してない様で、特に変化が見受けられないですね。Analysis Data画面上でIOCの結果が反映されると見逃しが減ると思うわけです。
もう一つ、IOCをホワイトリスト的に使うことが出来ないか?という実験も兼ねていたのですが、既知パターンのファイルはKnownとしてIOCを定義して反応させる事で、これに一致しなかったものを注目してみるという考えです。
例えば、次のようにProcess Security IDをS-1-5-21-を含む形にすることで、一般ユーザー権限で実行されているものとSystemとの区別を付けて見やすくできないか?という使い方です。
Analysis Dataの画面上にIOC側で何がヒットしたのかを出してくれれば使い道があるのかもしれませんが、現状のRedline上の画面構成だとこれは無理ゲーですね。