第06回BasicSecCap阪大(Pythonによるマルウェア解析)のTweetまとめ
2017年6月5日の阪大BasicSecCapの講義のまとめです。講師はトレンドマイクロの新井さんです。
前半はPEファイルが実行されるまで、というテーマでPEファイルフォーマットの各ヘッダの概要について
PEfileの解析
pefileのヘッダ(TimeDateStampとか)でプロファイリングをするというのは、改ざんされている場合もあるので参考にならない場合もある。
OptionalHeader- AddressOfEntryPointにはエントリポイントがあるが、その前に実行するマルウェアのテクニックも存在する
- 最近はあまり見ない AddressOfEntryPoint
- これはOffset値
- ImageBase+AddressOfEntryPointni
- windows7以降にはASLRが実装されているため、ImageBaseが変更になるが、これがオフセットなのでプログラムは気にしなくてもいい
- ここにもCharacteristics
- セクションの属性がフラグとして存在している
- 暗号化、難読化されたmalwareはCharacteristicsがrwx全てにフラグがついていることが多い
- それがどのようなセクションかをわかりにくくする、自己書き換え用プログラムもrwxのすべてのフラグが立ってる
PE Format Poster.graffle
PEフォーマットをいい感じにまとめてくれてます
Pythonでpefileというライブラリを使ってハンズオンを行いました
リンク
msdn.microsoft.com
Peering Inside the PE: A Tour of the Win32 Portable Executable File Format
4 users
61
後半はマルウェア解析における基礎知識、注意すること、解析手法の課題や、実際に表層解析のハンズオンを行いました。
malwareの解析
- APIからどのようなマルウェアか推測できる
- APIの仕組みをちゃんと理解することが重要
- 現在はクラウド上で感染するものが多い為、仮想マシン上ではうまくいかないことも多い
- C2サーバーからの指令なども見れない
- リソース中の画像データを詳細に見ると、特定の国でのみ使用されている画像だった、など
- 抗解析機能の回避
- ハニーポットを運用する
- 低インタラクティブ(Cowrieとかのツール使用)
- 高インタラクティブ
- 感染マシンからも抽出できる
- hashlib
- pythonのhash値算出ライブラリ
- バッファの上限値が存在して、65536bytes
- ディレクトリ中のファイルをまとめてリストにぶっこめる
- 感染が疑わしいディレクトリをまとめてハッシュ値を算出できる
- 次回はvirustotal apiを使ったマルウェアの表層解析自動化のハンズオン!!!