Presentation is loading. Please wait.

Presentation is loading. Please wait.

Nick Guo, Ulysses Wang JavaScript 難読化解析エンジン – JDOE JavaScript の難読化解読を自動化する新しいアプローチ.

Similar presentations


Presentation on theme: "Nick Guo, Ulysses Wang JavaScript 難読化解析エンジン – JDOE JavaScript の難読化解読を自動化する新しいアプローチ."— Presentation transcript:

1 Nick Guo, Ulysses Wang JavaScript 難読化解析エンジン – JDOE JavaScript の難読化解読を自動化する新しいアプローチ

2 難読化とは アンチ難読化解除 ブラウザに関する知識 一般的な難読化解読手法 JDOE デモ 課題と改善点 内容

3 Phase I Review 難読化とは

4 コードを複雑にすることで、人間によるコードの分析と検知 からコードの意図を隠蔽 著作権保護 情報の秘匿 ( 例えばメールアドレス ) 検知からの回避 難読化

5 3種類の難読化 インジェクション型の難読化 パブリックなパッカーによる難読化 Exploit Kit による難読化 難読化の種類

6 “2007年の時点で、検出された悪意あるコードの80%が難 読化” ほとんどの難読化コードは単純 インジェクション : 83%, exploit kit: <1% 複雑な難読化コードの割合は少ない 難読化の手法はより複雑化 難読化 の種類

7 JDOE Prototype アンチ難読化解除

8 重要なコードをJavaScriptコード、HTML、外部スクリプ トのなかに分割して挿入 文字列の連結 – Var temp=“get”+”Elem”+”ent”+”ById” タグの連結 –,, の中に配置 – オープンソースの Exploit kit 断片化

9 ファイルの連結 – 重要な関数やデータを他のファイルに配置 – Phoenix Exploit Kit 2.5 転送による連結 – サーバにデータを保存し、クライアントはリクエストを発行 断片化

10 外部アクセスのフェッチと接続状態の確認 Ajaxで日付をフェッチ – ツイッタートレンド 接続状態の確認 – Neosploit exploit kit 外部へのアクセス

11 ブラウザの検出 uas=navigator.userAgent; while(uai<uas.length) {xor+=uas.charCodeAt(uai++);} IE6 Firefox コンディションの確認

12 時間のチェック getUTCFullYear() getUTCMonth() getUTCDate() プラグインのチェック new ActiveXObject('ShockwaveFlash.ShockwaveFlash'); (IE) navigator.plugins を確認 (IE 以外 ) コンディションの確認

13 指定秒後に関数を呼び出す setTimeout("alert(Hello!')",3000) setInterval("clock()",1000) イベントにより関数を呼び出す <button id="j_id" onclick="j_function2();" window.attachEvent または addEventListener プラグインから関数を呼び出す JavaScript の関数を Actionscript から呼び出す 関数の呼び出し

14 特殊なタグの使い方 CSS 内にコンテンツを保存 改ざんのチェック var hybxs = arguments.callee;hybxs = hybxs.toString(); 難読化解除ツールのバイパス

15 JDOE Prototype ブラウザに関する知識

16 ブラウザのコンポーネント

17 Webkit

18 DOM ツリー

19 Phase I Review 一般的な難読化解除手法

20 Jsunpack 軽量 Spidermonkey と Python JavaScript ファイルのフック DOM エミュレーション環境 検知モジュール (Yara) PDF と SWF のパーサ 侵入検知 (libnids) http://jsunpack.jeek.org/

21 Fireshark Firefox プラグイン メインウィンドウと子フレームのソースコード メインウィンドウと子フレームの DOM Tree Http リクエストとレスポンスのログ 悪意ある URL のチェック URL リダイレクトのグラフ http://fireshark.org/

22 Malzilla リサーチ用ツール Spidermonkey シェルコード解析 限定的な DOM サポート http://malzilla.sourceforge.net/

23 制約 Firefox ベース 限定的な DOM サポート 難読化の解除には制約 パフォーマンス

24 Phase I Review JDOE (JavaScript De-Obfuscation Engine)

25 我々に必要なエンジンは ? ハイパフォーマンス 優れた適用範囲 適切な出力とログのフォーマット 分析のためのプラットフォーム JDOE

26 JDOE は Google Chrome ベース 描画エンジン : Webkit スマートフォンブラウザでのシェア 85% デスクトップブラウザでのシェア 21% DOM ツリーとパーサを含む JavaScript エンジン : V8 JDOE

27 JDOE は Chrome 向けのテストプロジェクトがベース サーバサイドアプリケーションとして移植可能なコマン ドラインツール ブラウザの基本機能をシミュレート可能 全 DOM 機能をサポート HTML フォーマットに対する適切なフォールトトレランス HTML フォーマットの出力 プロトタイプ

28 JDOE アーキテクチャ HTMLパーサ ネットワークI/O

29 Chrome と Webkit がベース 強力なパーサ Full DOM サポート js の高速な実行速度 高い適用範囲 優れた拡張性 JDOE アドバンテージ

30 JDOE 難読化解除の手法 eval() のフック – JavaScript の内部状態を取得 最終的な DOM ツリーの表示 – 最終的な状態の取得 – Document.write はノードを DOM ツリーに追加 する 難読化解除の手法

31 Exploit kits のサンプル – exploit kits プロジェクトのトッ プ 10 からのサンプル – サンプル合計 : 22 JDOE での成功 : 20 – 適用可能率 : 90.9% Exploit kit 型への適用率

32 インジェクション型のサンプル – 難読化の ThreatID でマッチするも のからのサンプル – サンプル合計 : 9,544 JDOE での成功 : 8,450 – 適用可能率 : 88.5% インジェクション型への適用率

33 Demo デモ

34 Status and Next Step 課題と改善点

35 セキュリティ JDOE サーバをどのようにセキュアに保つか ? – アップグレードプラン – Sandbox – Javascript 監査 パフォーマンス 外部アクセスの無効化 適用範囲 特殊なサンプルには未対応 特殊なサンプルは出力フォーマットに問題がある 課題

36 PDF および SWF のパーサ シェルコードの検出 Javascript の監査 Cloud ベースでの統合 http://aceinsight.websense.com/ 自動解析プラットフォーム 改善点

37 Questions? 37 JDOE


Download ppt "Nick Guo, Ulysses Wang JavaScript 難読化解析エンジン – JDOE JavaScript の難読化解読を自動化する新しいアプローチ."

Similar presentations


Ads by Google