ファームウェアバイナリコードに潜在する悪用可能な脆弱性の静的解析 A Study on Static Taint Analysis for Exploitable Vulnerabilities in Firmware Binaries

thumb image

ネットワークを通じてアクセス可能な情報通信機器、例えばWi-Fiルーター等は外部から攻撃されるという危険に晒されています。攻撃者は機器の制御を担うファームウェアの一部のプログラム(バイナリーコード)に潜在する不正機能や脆弱性を悪用し、不正なデータを送り込み攻撃の足掛かりとします。こうした不正データをテイントデータと呼び、テイントデータが(プログラムの実行を表現したグラフ構造において)流れる経路をテイントパスと呼びます。テイントデータは最終的にテイントシンクと呼ばれる脆弱性の源となる点に到達しバッファーオーバーフロー等を引き起こします。プログラムの実行中には様々なデータが様々な経路を通り流れてゆきますが、そのような経路を網羅すると膨大な量となります。その中からテイントパスを同定するのはまさに至難の業で「干し草の山から針を探す」ようなものです。このプロジェクト1 では、テイントパスの候補を効率的に列挙するための解析技術に関する研究開発に取り組んでいます。

1 2024年9月より、経済安全保障重要技術育成プログラム(K Program)「サプライチェーンセキュリティに関する不正機能検証技術の確立(ファームウェア・ソフトウェア)」領域の研究課題「バイナリー静的解析による不正機能および脆弱性の検証技術の研究」において、科学技術振興機構(JST)より委託を受け研究分担者として実施中。

ICT devices accessible through networks, such as Wi-Fi routers, are at risk of attack. Attackers exploit malicious functions and/or vulnerabilities in firmware programs (binary executables/libraries) to send malicious data for further processes. Such malicious data is called tainted data, and a path through which tainted data flows (in a graph structure representing program execution) is called a taint path. Tainted data eventually reaches taint sinks or sources of vulnerabilities such as buffer overflows. The number of paths through which various data flows during program execution can be massive. Identifying taint paths among those paths is a demanding task, like finding a needle in a haystack. In this project, we study static taint analysis techniques for efficiently enumerating possible taint paths.

The project is supported by JST K Program Grant Number JPMJKP24K1, Japan.

2025.07.09

Members