1. トップ
  2. 新着ニュース
  3. 経済
  4. プレスリリース

インジェクション攻撃による被害を防ぐためのソフトウェア修正技術を世界にさきがけて実現 ~専門知識を持たない開発者でもソフトウェア開発段階で文字列操作の誤りを容易に修正~

Digital PR Platform / 2024年10月28日 10時7分

2.研究の成果 
 これまでNTTと早稲田大学は共同で、プログラム中で文字列を扱う操作により発生し得る脆弱性や誤りを自動修正する技術の研究を行ってきましたが、その対象は正規表現に限定されていました(※3、※4)。
 本成果では、プログラム中の文字列関数を使った文字列操作の誤りを、ソフトウェア開発者が与える入出力例を基に修正する技術を世界で初めて実現し、正規表現を含む文字列操作にまで修正対象を広げることを可能としました。

役割
NTT:問題の形式化と修正手法の考案。
早稲田大学理工学術院 寺内多智弘教授:NTTが考案した手法の理論的な正確さの検証。

3.本技術のポイント
 本技術は、インジェクション攻撃の主要な原因であるプログラム中の文字列操作の誤りをソフトウェア開発者が与える入出力例を基に修正し、修正結果に誤りがないことを保証する技術です。
本技術のポイントは、以下の通りです(図1)。
① 文字列関数に期待する入出力例を表記する方法を考案
 従来的な入出力のみを提示する例を用いた場合と比べ、ソフトウェア開発者が文字列関数に期待する入出力例を入力と出力だけでなく入力のどの部分をどのように変換したいのかも含めて表記できるようになり、適切な修正結果の出力に寄与します。この表記は、プログラムが満たすべき入出力の例を基にプログラムを生成する「Programming by Examples (PBE)」メソッド(※5)を用いて与えます。
② 文字列関数の振る舞いを理論モデルとして厳密に定義
 この定義を用いることで、修正対象の文字列関数に与える情報であるパラメータがすべての入出力例を満たすための条件を導き出すことが可能となります。本技術では、Webアプリケーションなどで広く利用されている ECMAScript 2023 (※6) に準拠した文字列関数の振る舞いを厳密に定義しました。これにより、修正結果がすべての入出力例を満たすことを保証できるようになります。
③ 理論モデルに従い、例を全て満たす形に文字列関数のパラメータを修正する技術を考案
 修正結果のパラメータとなり得る候補を、明らかに入出力例を満たさないものを除外しつつ網羅的に探索する手法を考案しました。この手法では、現実的な時間内に修正処理を終えることが可能となります。また修正結果が修正前のパラメータに対して最小限の変更による修正が可能となり、ソフトウェア開発者が目視で容易に修正結果を確認できるようになります。
 本技術により、ソフトウェアの脆弱性を悪用した攻撃の中でも重大な脅威とされているインジェクション攻撃の主要な原因とされている文字列操作の誤りを開発段階で修正可能となるため、修正コストの軽減とソフトウェア開発の品質向上に貢献できるものと期待されます。

この記事に関連するニュース

トピックスRSS

ランキング

複数ページをまたぐ記事です

記事の最終ページでミッション達成してください