RSA NSA は、アプリケーション内部を調べてセキュリティホールやその他のバグを探し出すために使用できる、自社開発のオープンソース リバース エンジニアリング スイート Ghidra をリリースしました。
ネタバレ注意: これは Apache 2.0 ライセンスで、ここからダウンロードできますが、Java ランタイムが必要です。また、FDA はスイートにバックドアは仕掛けていないと断言しています。
火曜日、サンフランシスコで開催された今年のRSAカンファレンスで、クリスマスライトハッカーとして名高いNSA長官のサイバーセキュリティ顧問、ロブ・ジョイス氏が、満員の聴衆を前にコード解析ソフトウェアを公開した。NSAはこのオープンソースコードがセキュアソフトウェア研究のルネサンスを巻き起こすことを期待しているとジョイス氏は述べ、不正行為は一切行われていないことを参加者に保証した。
「Ghidraにはバックドアはありません」と彼は宣言した。「バックドアが仕込まれたものを、この手のものを狙って攻撃してくるような人たちにリリースするのは、絶対に避けたいコミュニティです」
NSA が、朝食を囲んで脆弱性を発見する人々を対象に、意図的にリモートからアクセスできる脆弱性をソフトウェア スイートに忍び込ませる可能性はほとんどないが、疑惑は高まっている。
英国のセキュリティ企業Hacker Houseの共同創業者、マシュー・「HackerFantastic」・ヒッキー氏は、The Register紙に対し、このプログラムに少し奇妙な点を発見したと語った。デバッグモードで実行すると、ローカルネットワークにポート18001が開かれ、接続可能なあらゆるマシンからのリモートコマンドを受け入れて実行する。デバッグモードはデフォルトで有効になっていないが、提供されている機能である。
でも、心配しないでください。この問題はバックドアというよりバグドアに近いもので、ランチャーのシェルスクリプトを変更して、ソフトウェアがネットワーク経由のマシンではなく、ホストマシンからのデバッグ接続のみをリッスンするようにすることで、無力化できます。ただし、システムの改良やバグ修正を行い、デバッグを有効にして起動する場合は、この点に注意してください。
Ghidra は JDWP をデバッグ モードで開き、ポート 18001 をリッスンします。これを使用してリモートでコードを実行できます 🤦♂️.. 修正するには、support/launch.sh の 150 行目を * から 127.0.0.1 に変更します https://t.co/J3E8q5edC7
— Hacker Fantastic (@hackerfantastic) 2019年3月6日
RSAイベント会場のNSAブースにいた広報担当者は、このオープンポートはチームがネットワークを介して同時に共同作業を行い、情報やメモを共有できるようにするためのものだと述べた。しかし、ヒッキー氏は、この機能は別のネットワークポートによって提供されていると述べた。
「共有プロジェクトは別のポート13100を使用しているため、同じ機能ではありません。Ghidraのデバッグモードを有効にする際に、localhostの代わりに*を入力してしまったのです」とHickey氏はThe Regに語った。
核心
ジョイス氏は講演の中で、GhidraはNSA内部で開発されたもので、マルウェアを含むソフトウェアを解析し、実行バイナリ内に何が潜んでいるかを正確に突き止めるために開発されたと述べた。これは、スパイが製品やプロジェクトのセキュリティ上の弱点を見つけ出し、それを悪用して諜報活動の標的を攻撃するために使用するツールの一種である。
おい、スイート...GhidraがWindowsデスクトップ上の実行ファイルを調査している
このプログラムの120万行のコードは、コンパイラのプロセスを逆コンパイルし、実行コードをアセンブリリストにデコンパイルし、最終的に近似Cコードに変換するように設計されています。また、関数内の制御フローをグラフ化したり、シンボルや参照を検査したり、変数やデータなどの情報を特定したりといった機能も備えています。IDA、Hopper、Binary Ninja、Radare、Capstone、Snowmanなどの類似のリバースエンジニアリングツールに慣れている方なら、これらの機能はすべて非常に馴染み深いものとなるでしょう。
このプラットフォームはプロセッサに依存せず、x86、Arm、PowerPC、MIPS、Sparc 32/64、その他多数のプロセッサを対象としたコードを解析でき、Windows、macOS、Linuxで動作します。Javaで構築されていますが、コードはJavaで書かれたものだけでなく、Pythonベースのプラグインも処理できます。Joyce氏によると、NSAのアナリストがJavaを好まなかったため、Pythonのサポートを追加したとのことです。
こちらの Twitch ストリームで、Marcus "MalwareTechBlog" Hutchins がこのソフトウェアを操作している様子を見ることができます。
NSAは世界中のコンピュータネットワークに「5万のマルウェア潜伏細胞」を設置
続きを読む
グラフィカルユーザーインターフェースの有無にかかわらず使用でき、スクリプト作成も可能です。前述のように、コードに独自のコメントを記入できるだけでなく、ネットワークベースの共同作業機能を通じて他のチームメンバーからのメモを取り込むこともできます。
新規ユーザー向けには詳細なヘルプ ファイルが提供されており、NSA はこれを広く使用される適切なツールにしたいと考えているため、コミュニティがさらに多くの機能やスクリプトを追加して共有できることを期待していると Joyce 氏は述べています。
「Ghidraはリリースされましたが、これで終わりではありません」と彼は約束した。「これはNSAにおける健全な開発の継続であり、GitHubリポジトリを公開することが私たちの目標です。ビルド可能な環境は必ず提供され、貢献も受け付けます。」
ジョイス氏は、将来的にはNSAが統合デバッガ、強力なエミュレータ、そして改良された解析ツールをリリースすると約束した。これは米国納税者の税金が使われているため、これらの内部ツールを使いこなせるようになれば、NSAへの人材獲得にも役立つ可能性があると彼は述べた。
一つ疑問が浮かびます。一体なぜ、これを地球上のすべての人に無料で公開しているのでしょうか?NSAの敵対勢力はより優れた、あるいは類似のツールを持っていると想定されているのかもしれませんし、NSA内部ではより高度なツールへと移行し、Ghidraが一般公開されるのを待っているのかもしれません。®