Ghidra忍者入門(勉強会/ハンズオン)に行ってきました
はじめに
大和セキュリティさん主催の以下勉強会に行ってきました。 yamatosecurity.connpass.com
目的
マルウェア解析のためのリバースエンジニアリング手法ですが、組込みソフト屋も製品セキュリティを意識した取り組みとスキル向上が必要になってきましたので。
ちなみに以下も参加してました(ブログに書きそびれた)。
2019年 大和セキュリティ MAIR忍者チャレンジ(神戸) (9月22日) - connpass
概要
Allsafe*1の方がGhidra*2の使い方をマルウェア解析を題材に解説する勉強会&ハンズオン(6時間程度)
Ghidra(ギドラ)の基本的な機能と操作を聞いた後、実際にリバースエンジニアリングの問題を解いていく形です。 IDA(アイダ)との違いも詳しく説明されていました。
Ghidraの概要は↓にも書いてあります(今回の勉強会の資料とは別です) https://www.netagent.co.jp/study/blog/hard/20190530.html
内容
Ghidraの使い方説明(インストールは各自事前対応済)
Ghidraを使った簡単なCrackme*3を5問解く。
Ghidraを使ったマルウェア解析(静的解析) マルウェア検体はMAIR忍者チャレンジの時と同じ内容(以下はWrite up)
Monero Miner-Malware Uses RADMIN, MIMIKATZ to Infect, Propagate via Vulnerability - TrendLabs Security Intelligence Blog
以下のオンラインサンドボックス(動的解析)と並行して確認。 any.run
有名なマルウェア(EternalBlue関係)の解析説明
※この辺りから難しくてついていくのがやっと、、、N-day Exploit GhidraのVersion Tracking機能を使ってセキュリティアップデートされる前後のモジュールを比較。 Ghidraで修正した脆弱性内容を具体的に(関数レベルで)特定する
感想
Ghidraのデコンパイラ結果を修正するシーンが結構あった(特に構造体など)。
→ 自分でアセンブラを見て修正する必要がある。アセンブラを読むスキルは必要。Crackmesを解くときにSloverプログラムを作ったが自分はとりあえずgccで書いちゃうけど周りはPythonで書いてた。内容的に言語はどっちでもいいんだけど、時代に取り残されてる感じがした。
自分でSloverプログラムを書くのではなくCyberChefというオンラインツールがあるらしい。最初は使い方わかりづらかったが高機能で便利。
www.slideshare.net
最後に
IoTセキュリティも色々なところで見かけるようになってきました
- 2019/11/20(水)~22(金) 組込み総合技術展 & IoT総合技術展@パシフィコ横浜(CCDS のIoTセキュリティセミナー) http://www.jasa.or.jp/expo/conference2019/confpage-ccds.html
2019/12/29(日)@大阪で以下の勉強会もあるようです。 naniwasecurity.connpass.com