動的情報フロー追跡

近年、電子商取引の拡大や公的な手続きの電子化に伴い、個人のコンピュータを利用しての個人情報の取り扱いはその頻度を爆発的に増加しながらも、そこで扱われている情報は決して漏洩していいものではなくなってしまっている。
機密情報を漏洩させないための考え方として「怪しいプログラムやユーザを機密情報に触れさせない」という考え方がかつては一般的であったが、インジェクションアタックなどのシステムの脆弱性を突くような攻撃が多数みられる昨今においては十分ではない。そこでその脆弱性を塞ぐ目的で、動的情報フロー追跡(DIFT)が注目されている。DIFTを用いれば、外部からの攻撃かもしれないコードがSQLクエリに紛れ込むのを追跡することに加え、複数の悪意あるアプリケーションを経て暗号化された機密情報が外部へと送信されようとすることすら検出することができる。
本研究室では、「プログラマの制御の下でのユーザの選択」が実現されている場合には、文字列から文字列への直接的な変換が行われないことを見出した。そこで、命令ごとではなく、文字列操作を認識して文字列ごとにtaint bitを伝播させるSWIFT (String-Wise Information Flow Tracking) を提案している。PHPエンジン上に実装したSWIFTの上で脆弱性のあるサーバプログラムを動作させ、誤検出も検出漏れも発生しないことを確認した。
また、PHP-SWIFTをその提案後に報告されたWordpressの脆弱性に対して適用し、実装漏れを改善、多くの未知の攻撃(ゼロデイアタック)に対して有効であることも示した。