IOCについて

はじめに

SECCON 2014 online予選 冬のforensic500 Confused analyteにてIOCについて知った。
当時はIOCの名前を聞いたことがある程度だったので、軽くまとめてみた。

IOCとは

IOC(Indicators of Compromise)とはマルウェアがシステムに残す痕跡の情報のことである。
C2サーバーのアドレスであったり、ファイルハッシュであったり。
フォーマットとしてMANDIANT社が作成したxmlベースで定義するOpen IOCという規格がある。Open IOCが出るまではマルウェアの能力を記述する共通の規格がなかったので、これによってマルウェアの解析結果を共有しやすくなったらしい。

OpenIOCで使えるツールには、IOC EditerIOC FinderRedlineがある。
IOC FinderやRedlineによってシステムにIOCが含まれているかどうか調査することができる。

IOC EditerでIOCを定義する様子。
f:id:TAKEmaru:20150131085935p:plain


実際に定義されるIOCは、変更されるレジストリキーやプロセスの名前、通信先のURIIPアドレスなどのユニークな値である。Open IOCのwebページに Indicator Termsの例が載っていた。

よく使われる Indicator Terms の一覧 - http://openioc.org/terms/Common.iocterms
全ての Indicator Terms の一覧 - http://openioc.org/terms/Current.iocterms


また、マルウェアを解析してIOCを定義していく様子が以下の文献に載っていて勉強になった。
https://www.mandiant.com/blog/creating-ioc-spot-duqu-family/
http://www.sans.org/reading-room/whitepapers/forensics/ioc-indicators-compromise-malware-forensics-34200

IOCについて書かれている日本語の文献としてIIJ Security Diary: OpenIOCを使った脅威存在痕跡の定義と検出がある。