開発者の中で「『SAST』ツールの代替として『ChatGPT』が使えるのではないか」といった期待が高まっている。ChatGPTは脆弱性を正確に見つけ出し、SASTを超えることができるのか。
テキストや画像などを自動生成する人工知能(AI)技術「生成AI」(ジェネレーティブAI)が注目を集めている。その代表格である「ChatGPT」は、ソフトウェア開発分野に大きな変革をもたらした。ソースコード生成はもちろん、ソースコードの分析や問題点の検出などにも活用できるのだ。これは従来のSAST(静的アプリケーションセキュリティテスト)ツールに取って代わる可能性がある。
では、ChatGPTをSASTツールとして活用する場合、どのような課題があるのか。ソフトウェア開発現場で生成AIを効果的に活用するためには、何に注意すればいいのか。筆者の経験を基に、実践的なアドバイスを交えながら、これらの問いに答える。
筆者がChatGPTをSASTツールとして使用した率直な感想は「かなり有望」だ。ChatGPTはソースコード内の脆弱(ぜいじゃく)性を特定し、その脆弱性を排除した修正版のソースコードを提示した。
ただし、生成AIが出力した結果を再度修正するために入力として使い続け、修正が終わらない「堂々巡り」問題はまだ残っている。出力結果を入力として生成AIに与え続けることで、より良い結果が得られるのか。結果はまちまちだ。ChatGPTであれば、明確に文書化された答えがない質問に対して、回答をでっち上げる場合があること(ハルシネーションが起こること)は既知の事実だ。
重要なのは、セキュリティ専門家と開発者は、ChatGPTが指摘したエラーや出力したソースコードを人の目で見て検証、確認する必要があるということだ。
ChatGPTを使用してソースコードのエラーを大まかに確認すると、筆者の感覚ではだいたい100個中80個は問題やエラーを指摘できるが、残りの20個は見落としたり誤った判断に基づいていたりする。ChatGPTはソースコードのエラー修正の効率を上げるには良いツールだが、原稿執筆時点ではまだ、「SASTツールに取って代わる存在」とは言い切れない。
米国TechTargetの豊富な記事の中から、開発のノウハウや技術知識など、ITエンジニアの問題解決に役立つ情報を厳選してお届けします。
ピザハットが新展開 まさかのTikTok動画活用法とは?
Pizza HutがUAEを中心に「トレンド払い」キャンペーンを展開している。TikTokのトレンド...
「レシピチェック」「少額決済」はデジタルが多数派に 逆にアナログでないとだめな活動とは?
博報堂生活総合研究所は、直近1年間における暮らし全般のデジタル化の度合いを調べる「生...
ホワイトペーパー制作が続かない! 苦しまず量産するため、どうすればいい?
前編ではB2B企業にとって本来あるべきホワイトペーパーの役割と成果を出すための3つの使...