もう人間の目では限界? 脆弱性の発見とコードレビューの課題
前編記事では、API認証・認可に未知の脆弱性が生じてしまう避けがたい理由や、WAFでは検知が難しいAPI攻撃が存在する根本的な仕組みを解説した。今回は、誰もが知るサービスで発見されたAPI特有の脆弱性の例や、APIの脆弱性を悪用する攻撃に対抗するために進化した、防御側の最新テクノロジーを見ていこう。
Web APIの代表的なリスクをまとめたランキングであるOWASP API Security Top10。この中で上位を占める、API認証・認可に関する脆弱性や、セキュリティ上やり取りされるべきではないデータをレスポンスの中に含めてしまう「データの過度な露出」などの欠陥。こういった課題は、アプリケーションの利便性を高めるために開発者が”よかれ” と思って行った実装などが原因であり、多くのサービスで日常的に発生している可能性がある。
このような脆弱性は、サービスごとにその内容が異なるため、基本的には開発プロセスの中でサービスを提供する事業者(または開発担当)が自ら見つけて修正していくことが求められる。いわば、”脆弱性パッチ”を自ら作り、適用する取り組みが必要というわけだ。一般的な予防策としては、「セキュアなプログラミング」や「第三者によるコードレビュー」、「脆弱性テストの徹底」などが推奨されている。
しかし、ただでさえ難しいAPI認証・認可のセキュリティを理解したうえで、自社の環境に照らし合わせて的確に問題点を洗い出し、指摘ができるエース級のエンジニアの確保はどんな企業でも簡単ではない。その証拠に、この数年以下のような、Meta, Amazonなどのエンジニアリッチだと思われる超有名なハイテク企業ですら、隠れていたAPIの脆弱性が次々と発見されており、中には大規模なユーザー情報の漏洩事件につながったと考えられる例もある。
これらの事例から、人間の目には限界があり、マイクロサービス化などで複雑に組み上げられた現在の商用システムにおいて日々生じているAPIの脆弱性を洗い出していくことは、困難であることがわかる。