r2con 2018 と BlueHat v18 の紹介

Posted by Takahiro Matsuki on 2018-10-10
SecurityConference

はじめに

松木です。セキュリティカンファレンスが世界的に一番盛り上がるのは 8 月ですが、9 月も面白いセキュリティカンファレンスがありました。

今回は 9 月に開催された r2con 2018BlueHat v18 という 2 つの技術系カンファレンスについて、公開情報や講演資料を調べた概要を紹介します。

r2con と radare2 について

r2con は radare2 略して r2 という開発が活発なオープンソースのリバースエンジニアリングツールの開発者や愛用者などが集うカンファレンスです。

セキュリティカンファレンスは年々増加していますが、r2con のように 1 つのツールに特化したものは珍しいです。

radare2 はコマンドラインで操作するデバッガー、逆アセンブラであり、マルチプラットフォームで動作し、多数のアーキテクチャに対応しているのが特長です。

リリースされた当初は、IDA が使えない状況やマイナーなアーキテクチャのコードを解析する際に使われるイメージでしたが、最近では標的型攻撃マルウェア検体の解析Black Hat USA 2018 のリバースエンジニアリング研究成果の発表内でも名前が出てくるなど、実用的なツールになっている印象です。

GUI や逆コンパイラも開発中であり、今後の機能強化が楽しみなツールです。

私自身 radare2 は非常に気になっているのですが、業務でリバースエンジニアリングを担当することが減っており、まだ十分試せていない状況です。

続いて、r2con 2018 中で注目した発表を紹介します。

r2dec How to not write a decompiler

r2dec は x86-64, arm, mips, v850 などアセンブリ言語を擬似 C 言語コードに逆コンパイルする radae2 のプラグインです。

発表では r2dec の概要のほか、設計や拡張方法についても説明されています。

Duktape という JavaScript エンジンを使っており、r2dec のほとんどのコードは JavaScript で書かれているそうです。

逆コンパイラの作り方に興味がある人は資料とコードを調査してみると良いでしょう。

Cutter A graphical user interface for radare2

Cutter は CLI を好まないユーザーでも radare2 を使えるようにする GUI です。

当初の Cutter はリバースエンジニリングに有用でない機能も多かったのですが、直近の 1 年間でコードをほぼすべて書き換え、クラス、V テーブルのリスト、Jupyter スクリプティングなど実用的な機能が追加されました。

現在はプラグイン機構やデバッガのサポートなどが鋭意開発中で今後もいろいろな機能が追加されそうです。

多くの人々が実世界の課題解決のために Cutter を使用していますが、開発者はより多くのユーザーのフィードバックを求めています。

よりユーザーを増やすためにはマニュアルなどのドキュメントの整備が課題のようです。

Reversing a Japanese Wireless SD Card With r2

Black Hat USA 2018 の Briefings でも発表された日本メーカーの Wireless SD カードのリバースエンジニアリングについての発表です。

発表の内容は Black Hat とほぼ同一のため割愛しますが、ファームウェアのリバースエンジニアリングの過程と結果は非常に興味深く、成果を得るためのメインのツールとして radare2, r2scapy, jupyter-radare2 が使われています。

発表を行った Guillaume Valadon 氏は、r2con 2016 のスピーカーであり、radare2 にプルリクエストを出している開発者でもあります。

BlueHat について

BlueHat は Microsoft が主催しているセキュリティカンファレンスです。

過去に ROP 緩和技術の kBouncer や ROPGuard が発表され、多額の賞金が支払われたり、技術が Windows に採用されたりしたことで注目を集めました。

Call for Papers で募集される講演のテーマは、Windows プラットフォームのセキュリティに限定されていませんが、採択されるものは Windows のセキュリティに関連があるものや Microsoft 社員によるものが比較的多いです。

そのため、Windows セキュリティに関する最新動向を知るには良いカンファレンスで、Microsoft の社員と外部のセキュリティ研究者が交流する機会にもなっているようです。

先週開催された BlueHat v18 の講演資料はまだあまり公開されていませんが、2 件の発表を紹介します。
BlueHat v17 の講演資料のいくつかは SlideShare で見ることができますので、v18 の他の講演資料も後日公開される可能性があります。

WSL Reloaded

WSL (Windows Subsystem for Linux) は便利ですね、私の用途ではネイティブの Linux の代わりとして使えています。

しかし、WSL の機能を利用するマルウェア、WSL マルウェアなんてものが出現する心配をしています。

そんな WSL にモダンなファジングを行って脆弱性を発見したという発表がありました。

Microsoft は Trinity という Linux system call fuzzer を使って過去に WSL をテストしていますが、発表者らは Syzkaller のようなモダンなファザーを推奨しています。

モダンなファザーの利点として下記が挙げられています。

  • マシンを監視し、クラッシュダンプを抽出後に状態を復元してファジングを継続できる

  • 再現や分析を行うツールがある

  • チューニングテンプレートがある

  • コードカバレッジに関する統計が得られる

  • 最小テストケースを探索できる

発表者らは Syzkaller を WSL 向けに適用する方法を検討し、Intel PT という技術を用いたようです。

彼らが Syzkaller によるファジングで発見した WSL の権限昇格の脆弱性の例として、CVE-2018-8441 の解説が行われています。

その他に WSL をファジングしようとした動機やファジングのアプローチについても考察されており、興味深いです。

また、彼らは WSL はサンドボックス化されていないため将来攻撃者に簡単に狙われるだろうと指摘し、WSL にはバグがまだありそうだと述べています。

First STRONTIUM UEFI Rootkit Unveiled

標的型攻撃に使われた UEFI ルートキットが初めて見つかったという発表です。

発表した ESET の研究者によると UEFI ルートキットがコンセプトではなく実際の攻撃で初めて使われた点と使ったのが高度な標的型攻撃を続けている Sednit (APT28, STRONTIUM, Sofacy, Fancy Bear) と呼ばれる攻撃グループであるという点から注目されています。

発見された UEFI ルートキット は LoJax と呼ばれ、UEFI ファームウェア内に実装される LoJack という盗難防止ソフトウェアの仕組みを模倣し、OS の再インストールやハードドライブを交換してもマルウェアへの感染を永続化します。

LoJax は UEFI ファームウェアを改ざんするために無料のユーティリティにバンドルされる有効なコード署名証明書で署名されたカーネルドライバ (RwDrv.sys) を使うそうです。

そして、標的のプラットフォームの UEFI ファームウェアが更新可能ならば、そのまま改ざんし、そうでなければ、Intel のチップセットの既知の脆弱性 (CVE-2014-8273) を悪用して UEFI ファームウェアを改ざんします。

Sednit の UEFI ルートキットへの感染を防ぐにはセキュアブートが有効です。
セキュアブートが有効になっている場合、システム起動時に UEFI ファームウェアの署名検証により改ざんが検知され、マルウェアの侵入を防ぐことができます。

LoJax と Sednit についてのより詳しい分析情報は ESET のリサーチペーパーをご確認ください。

UEFI / BIOS それらに関する設定や脆弱性を調査したい場合は、過去の FFRI Monthly Research で紹介した CHIPSEC というツールを使ってみるのもおすすめです。