| Project/Area Number |
20K20625
|
| Research Category |
Grant-in-Aid for Challenging Research (Pioneering)
|
| Allocation Type | Multi-year Fund |
| Review Section |
Medium-sized Section 60:Information science, computer engineering, and related fields
|
| Research Institution | Japan Advanced Institute of Science and Technology |
Principal Investigator |
小川 瑞史 北陸先端科学技術大学院大学, 先端科学技術研究科, 教授 (40362024)
|
| Co-Investigator(Kenkyū-buntansha) |
NGUYEN MinhLe 北陸先端科学技術大学院大学, 先端科学技術研究科, 教授 (30509401)
寺内 多智弘 早稲田大学, 理工学術院, 教授 (70447150)
関 浩之 名古屋大学, 情報学研究科, 教授 (80196948)
結縁 祥治 名古屋大学, 情報学研究科, 教授 (70230612)
|
| Project Period (FY) |
2020-07-30 – 2026-03-31
|
| Project Status |
Granted (Fiscal Year 2024)
|
| Budget Amount *help |
¥25,870,000 (Direct Cost: ¥19,900,000、Indirect Cost: ¥5,970,000)
Fiscal Year 2025: ¥4,290,000 (Direct Cost: ¥3,300,000、Indirect Cost: ¥990,000)
Fiscal Year 2024: ¥4,290,000 (Direct Cost: ¥3,300,000、Indirect Cost: ¥990,000)
Fiscal Year 2023: ¥4,160,000 (Direct Cost: ¥3,200,000、Indirect Cost: ¥960,000)
Fiscal Year 2022: ¥4,290,000 (Direct Cost: ¥3,300,000、Indirect Cost: ¥990,000)
Fiscal Year 2021: ¥4,290,000 (Direct Cost: ¥3,300,000、Indirect Cost: ¥990,000)
Fiscal Year 2020: ¥4,550,000 (Direct Cost: ¥3,500,000、Indirect Cost: ¥1,050,000)
|
| Keywords | バイナリコード / 記号実行器 / マルウェア / ARM / x86 / アンドロイド / 脆弱性検出 / 動的記号実行 / 命令セット / 自然言語処理 / RE-DOS攻撃 / プライバシー / マルウェア解析 / 記号実行 / API / ネィティブコード / マルウェア意味解析 / 形式的意味自動抽出 / 形式仕様自動抽出 / 深層学習 |
| Outline of Research at the Start |
人間には解釈困難なバイナリコードに対し(1)操作的意味はレジスタ・フラッグ・メモリ・スタック上の状態遷移系として定義可能、(2)各命令仕様はリジッドな自然言語記述、(3)エミュレータ等テスト環境が完備などの観察に立脚し、英文マニュアルから命令の操作的意味自動抽出によりBE-PUM(x86), Corana(ARM), SiMIPS(MIPS)等のツールをGitHubで公開してきた。 本研究は、多数のMPU/MCUの動的記号実行器の自動生成に加え、構造隠蔽前のペイロードの自動復元・抽出を行い、教師無し学習による特徴抽出、自然言語処理を用いた意味解釈を通じた新規感染手法検出・系統樹生成を目的とする。
|
| Outline of Annual Research Achievements |
本年度は、(1)ARM上のAndroid/apkファイルに対する異環境(Dalvikバイトコード, ARM native, Android OSライブラリ関数)間をシームレスに記号実行を行うHybridSEの開発・実装、ならびに(2)記号実行器により得られたバイナリコードの制御フローグラフ(Control Flow Graph, 以下CFG)の生成に基づく(2-a)ANdroid/apk における Stalkerware 解析、(2-b)x86/Windowsにおけるシステムの脆弱性解析について研究を進めた。 (1)については、前年度までに開発・実装を進めてきたARM上の記号実行器Coranaを基盤として、DalvikバイトコードからJavaバイトコードへの変換を用いた既存Java記号実行器SPF(Symbolic Path Finder)と組み合わせることでHybridSE(github.com/hybridse/HybridSEにて公開中)へ拡張している。現在、さらに(2-a)ロレーヌ大学(Jean-Yves Marion教授)と共同で実世界Stalkerwareの解析を進めている。 また近年、機械学習や深層学習を用いた脆弱性検出は多く行われているが、主にC/C++などプログラミング言語レベルである。バイナリコードの記号実行器はCFGを自動生成できることを用いて、(2-b)ではx64の既存記号実行器ANGRによりコンパイルドコードのCFGを生成し、CFGの特徴付けを用いてバイナリコードレベルの脆弱性検出を試みた。結果は良好であり、さらなる実験と論文投稿を準備中である。 これらに付帯し、ブラックボックス環境への関数呼び出しの際の経路条件について相対健全性の記述を目指し、awareness演算子を用いた様相論理表現ならびにNash equilibriumの利用について検討した。
|
| Current Status of Research Progress |
Current Status of Research Progress
2: Research has progressed on the whole more than it was originally planned.
Reason
ARM上の Android/apkの記号実行器 HybridSEの開発実装や、記号実行器を用いて生成したバイナリコードの制御フローグラフの特徴付けを用いたマルウェア解析・脆弱性検出などの応用実験などは順調に推移しており、特に HybridSE(github.com/hybridse/HybridSEにて公開中)は現在、Android/apkファイル形式を異環境間にわたる実用的なマルウェア解析器として、ほぼ唯一のツールとなている。ただし論文化・論文投稿が遅れており、現在準備を進めている。
|
| Strategy for Future Research Activity |
ARM上のAndroid/apkファイルの記号実行器HybridSEや、過去に開発したx86/Windows上の BE-PUMやx64上の既存記号実行器により生成されるマルウェアの制御フローグラフの特徴付けに基づき、マルウェア解析・脆弱性検出の応用に注力する。具体的には、(1)実世界における Android上のStalkerwareの解析(特に情報流出のシナリオの解析)、(2) Android マルウェアの自動分類、(3) IoTデバイスの脆弱性検出(Firmware等の解析に基づく)を木目的とする。(1), (2) については、現在の研究の方針を継続し、分担者の Nguyen教授(JAIST)と機械学習・深層学習の応用について共同で行う。 (3) については新たな知見も必要となることを予想している。これらに加え、基礎理論として異環境への記号実行の継続の際、ブラックボックスの際の経路条件の扱い(ブラックボックスのため入出力の因果関係が不明)の相対健全性について、分担者の寺内教授(早稲田大)、関教授(武庫川女子大)、結縁教授(名大)らと共同で進める。
|