Ghidra(ギドラ)とは?NSA開発のリバースエンジニアリングツールが重要な理由
Ghidra(ギドラ)とは?
新しいウイルスに対応するうえで重要な作業のひとつが、その仕組みを解明することです。そのためにはリバースエンジニアリング(逆向き解析)が必要になります。米国国家安全保障局(NSA)はこの種の作業を日常的に行っているため、それを支援する独自ツール「Ghidra(ギドラ)」を開発しました。
ちなみに発音は「ギードラ」です。2019年3月5日、サンフランシスコで開催されたRSAカンファレンスにて、無料かつオープンソースとして一般公開されました。NSA上級顧問ロバート・ジョイス氏によるGhidraの発表資料も閲覧できます。
Ghidraの公開がなぜ画期的なのかを理解するには、まずリバースエンジニアリングとは何か、何に使われるのかを知る必要があります。
リバースエンジニアリングとは何か?なぜ使われるのか?
一般にリバースエンジニアリング(RE)とは、モノを分解して作られ方を解明するプロセスを指します。自宅の小型家電を直すために分解した経験がある人もいるかもしれません。ここで話題にするのはプログラムのリバースエンジニアリングです。「プログラムはただのコードなのだから、元のコードを見ればいいのでは?」と思うかもしれませんね。
実は、C言語やJavaなどでプログラムを書いた場合、書いてからコンピュータ上で実行できるようになるまでに、もう一段階の工程があります。プログラミング言語は人間には読めても、コンピュータにはそのまま理解できません。コンピュータが扱える形式へ変換する必要があり、この工程を「コンパイル」と呼びます。
そしてプログラムは、一度コンパイルされると人間には読めないものになります。
そのプログラムがどう動いているのかを解明したいなら、中身が見えるレベルまで分解しなければなりません。そのためには専用のツールキットが必要です。ちょうど、小型家電やエンジンを分解するのにドライバーやレンチ一式が必要なのと同じです。
そこで登場するのがGhidraです。ソフトウェアを分解して内部の仕組みを調べるための「道具箱」と言えます。IDA、Radare、Binary Ninjaなど、類似のツールはすでに存在します。
NSAはGhidraを活用し、ウイルス、マルウェア、その他国家安全保障に脅威となりうるプログラムを解析しています。そして分析結果をもとに、脅威への対処計画を立案します。近年は国家支援型のサイバー攻撃が頻繁に報道されることを考えれば、この取り組みがいかに重要かが分かるでしょう。
誰でもGhidraを使えるのか?
必ずしもそうではありません。少なくともプログラミングの基礎的な習熟度は求められます。ソフトウェアエンジニアである必要はありませんが、大学でプログラミングの講義をいくつか受けた程度の知識があれば、独学でGhidraを使いこなせるようになることは十分可能です。
さらに、Ghidraの公式サイトにはインストールガイド、クイックリファレンス、Wiki、イシュートラッカー(課題管理)が整備されています。これらを公開する狙いは、誰もが学べる環境を作り、悪意あるハッカーから世界を守る取り組みに皆で参加できるようにすることにあります。
ロバート・ジョイス氏の発表資料によると、NSAは「サイバーセキュリティツールの向上」および「Ghidraに熟練し、その成長に貢献する研究者コミュニティの構築」を目指して公開を行ったとしています。
なぜGhidraが大きな注目を集めるのか?
まず挙げられるのは、GhidraがNSA製であるという点です。米国連邦政府機関並みのリソースを持つ企業がどこにあるでしょうか。世界最強の国家の安全を担う機関と比べれば、一流のセキュリティ企業といえど経験や蓄積では及ばないでしょう。
つまり、極めて強力なツールなのです。セキュリティ研究者のJoxen Coret氏は「GhidraはIDAを除けば、他のあらゆるREツールを圧倒している」とツイートしました。
次に、無料である点も大きいです。最強クラスのREツールを無償で入手できるようになったことで、セキュリティ研究への参入障壁は「パソコンとインターネット環境さえあればよい」というレベルまで下がりました。
これはNSAが公開した理由の一部でもあります。新世代の研究者がGhidraに習熟し、将来的にNSAでのキャリアを志すきっかけになればという期待があるのです。
さらに、オープンソースである点も見逃せません。政府機関がその裏側を公にしないのには理由があります。やり方を知られれば、対抗策を講じられやすくなるからです。それにもかかわらず、Ghidraの全ソースコードは公開されており、誰でも精査してその仕組みを正確に確認できます。
もちろん、政府によるバックドア(不正侵入の仕掛け)が組み込まれたという報告は一切ありません。ロバート・ジョイス氏は即座にこう述べています。セキュリティ研究コミュニティは「バックドアを仕込んだソフトを公開してはいけない最後の相手だ。彼らこそ、そうしたものを探し出して分解しようとする人々なのだ」と。
教育の観点からも、Ghidraには大きな価値があります。若手ソフトウェアエンジニアが既存のプログラムを分解して仕組みを学び、その知見を自身のプロジェクトに応用できるのです。他人のコードを読んで学ぶことは、プログラマーがスキルアップするための古典的かつ有効な手法です(もちろん、コードが公開されている場合に限りますが)。
おそらく最大の特長は、Ghidraが共同作業を前提に設計されていることです。同僚や友人と共有リポジトリを作成すれば、複数人が同じプロジェクトに同時に取り組めます。これにより分析作業は劇的に高速化されます。
今後の展望
米国連邦政府は、今後さらに多くのセキュリティ関連ソフトウェアを公開する方針を示しています。Ghidraのように高度に技術的なものもあれば、セキュリティ強化版Androidのように一般ユーザー向けのものもあります。
これは、データインフラストラクチャを可能な限り安全に保つための、政府と民間の協働という新時代の幕開けを告げるものと言えるでしょう。
参考資料:U.S. Secret Service – https://www.secretservice.gov/data/press/reports/USSS_FY2013AR.pdf
https://media.defense.gov/2012/Apr/27/2000157039/-1/-1/0/120417-F-JM997-405.JPG
-
splwow64.exeとは?Windowsで実行される理由とエラーの直し方を徹底解説
タスクマネージャーを開いたら、「splwow64.exe」という見慣れないプロセスが動いていて戸惑ったことはありませんか?このプロセスが何なのか、なぜ自分のPCで実行されているのか気になっている方も多いはずです。 この記事では、splwow64.exeの正体、実行されている理由、そして問題が発生した場合の具体的な対処法まで、初心者にもわかりやすく解説します。 splwow64.exeとは何か まず安心してほしいのですが、splwow64.exeはウイルスではありません。これはMicrosoftが公式に提供しているWindowsのシステムプロセスで、プリンタースプーラーサービスとの接続や管理を担
-
ハードドライブキャッシュとは?仕組みとPC性能への影響を徹底解説
「機械は、故障したときに初めて自分がどれほど強力であるかを思い知らせてくれる」――この言葉に心当たりはありませんか?機械は何千、何百万もの部品で構成されており、あまりにも複雑なため、一人の人間がその全体を隅々まで理解することは困難です。バックグラウンドでは膨大な処理が行われ、それらすべてが一瞬のうちに完了する。それこそが機械の真の魅力だと言えるでしょう。OSを使用していると、「キャッシュメモリ」という言葉を耳にする機会は多いのではないでしょうか。キャッシュメモリはシステムの中でも最速クラスのメモリの一つで、一時的な保存領域として機能します。この領域は主に、使用頻度の高いデータを保存し、プロセッ