脆弱性がいっぱい出てきたね
Node.js、PHP、Tomcat……それ以外にもいろんなプラットフォームで脆弱性が上がってきている。AIの性能向上により、人間では見つけられないような脆弱性も見つかってきている。
ニュースを見て感じること
AIが見つける脆弱性に対して、人間が1つ1つパッチを当てていくように対応するのは不可能だと思う。かといって放置するわけにはいかない。なぜなら、脆弱性が報告された時点で、攻撃者にとっては攻撃の方法を教えているようなものだからだ。
ではどうすればよいのか。5年目SIer社員の思うところを無邪気に上げさせていただく。ご意見はぜひコメントでください。
AIによる自動検知+自動アップデート
保守対象のアプリケーションで使用している言語・ライブラリ・フレームワークなどの脆弱性報告を検知する仕組みを作る。検知したらAIによってアプリへの影響を評価し、必要あれば改修+プルリクまでつなげる。もはやプルリクを人間がレビューする猶予もないので、開発環境へのデプロイ+テストまでAIに自動化させるべきかと思う。
一番難しいのは「必要あれば」という部分。ここは人間の評価を入れざるを得ないか。CVEのように脆弱性のレベルが数値で表されているものは扱いやすい。閾値を用意して、一定のレベル以上の脆弱性であればAIによる自動改修+テストまでやってしまえばよいだろう。CVE以外の場合はどうしようかな〜、定性的な評価をAIにさせるか、人間が評価するか、、
RCE系への対策
RCEのように、リモートからコマンド・PGMが実行されてしまうのは実行基盤側でブレークスルーが起きないかな。もちろん5年目SIer社員に回答はない。
構築したアプリケーションのコードと、リモートから実行されるコマンドに色分けはできないものかなと無邪気に思っている。構築したアプリケーションコードには独自のメタ情報をつけておき、実行基盤側はそれを読み取って実行可否を判断するというようなブレークスルーはないだろうか。
性能に懸念があるかもしれないが、将来的に後手後手でセキュリティパッチを定期的に当てていくよりはマシな気もする。