このページの本文へ

コード内で行う文字列操作の誤り(バグ)を修正、開発コスト削減にも寄与

インジェクション攻撃撲滅へ NTTと早稲田大がプログラム修正技術を共同開発

2024年10月29日 07時00分更新

文● 福澤陽介/TECH.ASCII.jp

  • この記事をはてなブックマークに追加
  • 本文印刷

 NTTと早稲田大学は、2024年10月28日、「インジェクション攻撃」の主要な原因である、プログラム中の文字列操作の誤り(バグ)を修正する技術を世界に先駆けて開発したことを発表した。

 インジェクション攻撃は、ソフトウェアの脆弱性を悪用するサイバー攻撃手法のひとつ。Webアプリケーションのデータベースなどに不正な入力データを送信することで、データベース内の個人情報を抜き取るなど、サーバー上で予期しない動作を引き起こす攻撃だ。

 こうした攻撃を防ぐために、通常はプログラム中で文字列関数を使い、予期しない(不正な)入力データのチェックや排除、無害化が行われる。ただし、文字列関数を利用して文字列操作を行うためには専門的な知識が要求され、その文字列操作に誤りがあれば脆弱性となってしまう。

 発表によると、今回開発された技術によって、専門知識を持たないソフトウェア開発者でも、文字列操作の誤りを修正できるようになるという。さらに、サービスの開発段階からその誤りを修正できるため、コスト削減と安全なサービス提供にもつながる。

 NTTと早稲田大学が共同開発したのは、プログラム中の文字列操作の誤りを、ソフトウェア開発者が与える入出力例を基に修正して、修正結果に誤りがないことを保証する技術だ。文字列関数に対する処理の流れは、以下の通りになる。

文字列関数に対する処理の例

 まず、文字列関数に期待する入出力の例を、入力と出力に加えて“入力のどの部分をどのように変換したいのか”を含めて表記する手法を用いて、適切な修正結果が出力できるようにする。

 さらに、“文字列関数の振る舞い”を理論モデルとして厳密に定義することで、修正対象の文字列関数に与える情報であるパラメータが、すべての入出力例を満たすための条件を導き出せるようにする。

 最後に、修正結果のパラメータとなり得る候補を、明らかに入出力例を満たさないものを除外しつつ、網羅的に探索する手法を用いて、現実的な時間内に修正処理を終えられるようにする。また、修正結果は、修正前のパラメータに対して最小限の変更に抑えられるため、ソフトウェア開発者の目視での確認を可能にする。

 今回の技術は、生成AIでプログラムを自動生成した場合でも、そのメリットを損なうことなくプログラムの安全性向上に寄与する。今後は、文字列操作に伴う脆弱性そのものを修正する技術の研究が進められる予定だ。

 NTTと早稲田大学では、10月30日に米国で開催されるソフトウェア工学分野の国際会議「IEEE/ACM ASE 2024」で本技術の詳細を発表する。

■関連サイト

カテゴリートップへ

アクセスランキング

  1. 1位

    ITトピック

    “VMwareショック”余波、IaaSベンダー撤退も/本音は「拒否したい」時間外の業務連絡/IT部門のデータメンテ疲れの声、ほか

  2. 2位

    データセンター

    首都圏のデータセンター枯渇、電力コストの高騰、エンジニア不足 課題から考える最新データセンター選び

  3. 3位

    デジタル

    なぜ大企業でkintoneの導入が増えているのか? DX推進と「脱・属人化」を実現するエンプラパートナーに聞いた

  4. 4位

    TECH

    【提言】「VPNの安全性」が通用しない時代 ZTNAへの困難な移行を経営層はサポートせよ

  5. 5位

    TECH

    自律的に動けないメンバーを持つくらいなら、一人で全部やったほうが幸せに働ける「管理職の憂鬱」に関する調査

  6. 6位

    TECH

    IT人材の約半数が「静かな退職」 正当に評価されないし心身の健康を優先

  7. 7位

    デジタル

    地方テレビ局が生成AIで記事作成を爆速に でもその裏で“10倍増えた”業務とは?

  8. 8位

    ビジネス

    トヨタ自動車はBacklogのAIアシスタントをこう使っている “現場の知見”を貯めるAI用データベースに

  9. 9位

    ビジネス・開発

    “保守地獄”からSEを解放する 富士通がソフトウェア改修の全工程をマルチエージェントで自動化

  10. 10位

    ビジネス

    行政DXを超え、デジタルで市民の力を引き出す“地域社会DX”へ 兵庫県豊岡市の挑戦

集計期間:
2026年02月24日~2026年03月02日
  • 角川アスキー総合研究所