ソフトウェア開発で生産性向上へのAI活用が進み、安全性の観点では「DevSecOps」が提唱されている。AIはセキュリティの改善にも寄与し、他方でリスクへの懸念もある。そうしたソフトウェア開発でのAIとセキュリティの状況を専門家はどう見ているのか。GitLabの最高情報セキュリティ責任者(CISO)を務めるJosh Lemos氏に見解を尋ねた。

GitLab 最高情報セキュリティ責任者のJosh Lemos氏
Lemos氏は、約20年にわたるセキュリティチームのリーダー経験を持ち、GitLabの社内外に関するセキュリティプログラムの実行、製品開発におけるセキュリティからの支援、対外的なセキュリティ啓発活動などに携わっている。
GitLabは、主要なメッセージの1つにDevSecOpsを位置付けている。まず開発者へのDevSecOpsの浸透度をLemos氏に聞くと、「われわれの定期的な調査の結果から、多くの開発者がソフトウェア開発におけるセキュリティへの理解を高めている」と話した。ソフトウェア開発でのセキュリティは、パフォーマンスや信頼性、オブザーバビリティ(可観測性)などに並ぶ重要なキーワードになり開発者の共通認識だという。
では、ソフトウェア開発でのAIやセキュリティの課題は何か。Lemos氏は2つ挙げた。1つは、既知のセキュリティに関する問題をAIで改善、解決すること。もう1つは、ソフトウェア開発でAIが新たな「アタックサーフェス」(攻撃対象領域)になる可能性だ。
「1点目は、例えば脆弱(ぜいじゃく)性をAIが特定し、開発者が速やかに修正などの対応ができるようになるということ。既にある諸問題をより早く特定、改善する効果になる」
「2点目は、AIの持つ非決定論的な性質に起因する。AIは常に同じ回答を出すわけではない。以前のソフトウェア開発は、(経験則や確実性の高い手法に基づく)マニュアルな手作業だったが、AIの使用でソフトウェアを予見することが難しくなる。AIのモデル自体にアタックサーフェスが追加され、開発者はモデルに講じられた『ガードレール』に頼りながら信頼できる回答を得ようと努力している。ただ、AIのモデルから生まれる回答は統計的な確率に従う」
1点目においてGitLabは、「GitLab Duo」プラットフォームで、AIによる脆弱なコードの検出や修正、AIチャットボットによる開発者への提案など多くの機能を提供。ソフトウェア開発での安全性を開発パイプライン全体で担保できるよう支援している。
Lemos氏によれば、これらの支援的なセキュリティ機能などは、経験の浅い開発者ほど活用している。ベテラン開発者も活用する、自身が培ってきた経験やノウハウを大切にする傾向も強いそうだ。
「Duoの機能を全ての開発者が利用でき、ユーザーは毎月着実に増えている。あくまで私見だが、ベテランは信頼できる非常に頼りになるやり方を学び、それが長年うまくいってきたので、それを変えることにあまり積極的ではない。一方で、学習中の若い開発者は、より迅速に動こうとしており、新しいアイデアに対してより受容的なのだと思う」
2点目に関してLemos氏は、現時点はあくまでAIモデルの性質に起因する潜在的なリスクであると補足する。例えば、コーディング支援AIは、過去の膨大な学習データから開発者に最適なものを提案して開発生産性の向上に貢献すると期待され、既にその効果を示すような結果も出されているが、常に確実かつ正確なコードだけを提案する保証はまだない。AIの生成コードにサイバー攻撃者の悪用可能な脆弱性が混入する可能性もある。Lemos氏は「だからこそマシンと人間が連携することは非常に重要だと考えている」と話す。
Lemos氏が言及した「ガードレール」は、一定水準の安全性を担保するポリシーやルールなどに基づき、そこから逸脱する恐れのある状態や操作、設定などを監視したり防いだりするセキュリティのための仕組みだ。「適切なガードレールを提供すれば、開発者がシニアでもジュニアでも問題が少なくなり、われわれ最も安全な道筋を選択し提供しようとしている」
Lemos氏は、ソフトウェア開発でのセキュリティとは、ソフトウェアの品質だと述べる。「GitLabは、品質が高く信頼のあるソフトウェアを開発者が構築するために存在し、それには高度なセキュリティの品質も含まれる。現在までAIを使うことによる品質の低下は認められておらず、ソフトウェア開発ライフサイクルに優れたセキュリティチェックが組み込まれていれば、安全性を担保できるだろう」
また、注目を集めるAIエージェントのセキュリティにも目を向ける必要がある。
「AIエージェントが開発者の代わり変更を行える場合、エージェントはソフトウェアを変更するための独自の権限セットを持つことになる。権限が正しく設定されていない場合、ソフトウェアが信頼できないものになる可能性がある。AIを使って開発し、ソフトウェアにAIを導入するには、権限を適切に扱いそれが人であろうとエージェントであろうと、セキュリティの原則を適用することが非常に重要だ」