「日本電信電話株式会社(NTT)」と「早稲田大学」は、インジェクション攻撃と呼ばれる深刻なセキュリティ脅威の原因となる文字列操作のエラーを修正する新技術を共同で開発。
専門知識のないソフトウェア開発者でも、開発段階で文字列操作におけるエラーを容易に修正できるものになっている。
インジェクション攻撃は、データベースなどに不正なデータを入力して予期しない動作を引き起こし、情報流出やサービス停止の原因となる攻撃手法で、主な原因はプログラム中の文字列操作のミスが挙げられる。
従来の技術では、専門知識がないと修正が難しいケースがあったが、今回の新技術によりこの問題が解消される見込みだという。
新技術の仕組みとして、ソフトウェア開発者が文字列関数に期待する入出力例を入力として与え、その例に基づき自動的にエラーを修正するという。
特に「Programming by Examples(PBE)」と呼ばれるメソッドを活用し、修正対象を適切に定義することで、入出力例をすべて満たすように文字列関数のパラメータを調整可能となっている。
これにより、修正が開発段階で完結するため、後から発生する修正コストを大幅に削減できるメリットも期待されるとのこと。
画像内容は新技術の処理までの流れが示されている。
まず、バグのある文字列関数が入力され、期待される入出力例に従って列挙と判断のプロセスが進む。
パラメータ候補の中から入出力例を満たすものを選択し、最終的に期待される結果を出力することで、セキュリティ上の脆弱性が改善される仕組みとなっている。
今後は、開発段階でのエラー修正を容易にし、運用段階でのコスト削減と安全なサービス提供の実現に寄与するとされている。
また、AIを利用した自動プログラム生成においても、初心者が作成したプログラムに含まれるエラーを自動的に修正する可能性も秘めているとのことで、文字列操作による脆弱性を防ぐための研究が進められる。