APIs Create New Security Headaches
2021/08/24 SecurityBoulevard — API への移行とは、セキュリティ・チームにとって最大の頭痛のタネであると同時に、脅威を生み出す新たな遊び場でもある。その背景には、ソフトウェア開発を加速し、一刻も早くソフトウェアをリリースしたいと考える、組織のマインドセットがある。Baffle の VP of Products and Marketing である Harold Byun は、「このような環境では、シフトレフト・モデルが加速する中で、セキュリティの評価や見直しが回避される可能性が高い。
公開された API が存在することで、システムやデータにアクセスするために、攻撃者が悪用する方法が増える一方で、開発およびデプロイメントのプロセスに、セキュリティを緊密に統合する方法を、組織は模索しなければならない」と電子メールで述べている。しかし、開発にセキュリティを組み込むためには、どこに最大のリスクがあるのかを知る必要がある。
API がもたらすセキュリティ・リスク
API の普及により、アプリケーションや、マイクロサービス、コンテナ、サーバーレス機能が強化されたが、その一方では、今日の企業が直面する最大のセキュリティ・リスクの原因を生み出している。その理由は、セキュリティを扱うのは、開発チームの責任ではないからという、とてもシンプルなものだ。しかし、セキュリティ運用チームはAPI を可視化できないため、見えないものは守れないということになる。Imperva のCTO Head of API Security である Lebin Cheng は、API が組織にセキュリティリスクをもたらす、3つの主要な原因について指摘している。
・最初は内部使用のために導入されたレガシー・アプリケーションが、基本的な認証と認可しか行わないゲートウェイを介して外部に公開され、深刻なデータ流出に対する保護が不十分になっている。API は多くの場合、データソースにダイレクトに接続されているため、攻撃者による機密データへのダイレクトなアクセスを許す可能性がある。
・最近のアプリケーションでは、外注したコンポーネントやサービスを用いて構築されるケースが増えてきている。つまり、アプリケーションス・タックの大部分が、企業により所有されていない状況を意味する。それらのコンポーネントをつなぐのは API だが、API コールを監視するための可視性や、ランタイムで API を保護する能力が、企業側に欠落しているケースが多い。
・ソフトウェア開発のスピードは、セキュリティ・チームにとってのアキレス腱だ。開発者側は迅速に行動し、API とドキュメントを公開していく必要がある。しかし、脆弱性のためのペネトレーション・テストという従来からのアプローチは、実施に時間がかかりすぎるため、最新のアプリケーション開発のワークフローでは実現不可能が。そのため、社内においては、DevOps と SecOps の両チーム間で綱引きが行われてしまう。
Lebin Cheng は、「侵害された API や脆弱な API を介したデータ流出は、組織が最も心配すべきリスクだ」とインタビューで語っている。Imperva Research Labs の調査によると、従来からの脆弱性が減少する一方で、API に関連する新たな脆弱性の件数が増加しており、API の悪用と関連するデータ侵害の件数は、2024年までに約2倍になると予測されている。
ハッカーの登場
Web トラフィックの 4分の3近くを占める API トラフィックは、ハッカーにとって格好のターゲットであり、悪用の可能性も高くなる。現実に Gartner は、2021年末までにサイバー攻撃の 90% が、API に関連したものになると予測している。今日のセルフ・サービス型の顧客やパートナー・モデルをサポートするために、社内のアプリケーションやサービスを API ゲートウェイを介して外部のユーザーに提供する Backends for Frontends (BFF) パターンへのトレンドが加速している。つまり、外部ユーザーに対して内部システムへのアクセスを提供するため、大きな問題を生じることになる。誤って構成されたゲートウェイまたは、構成されていないゲートウェイを探す機会が、脅威アクターに与えられ、バックエンドを悪用したデータ収集を許すことになる。
また、シャドー API も、セキュリティ上の脅威として増大している。Lebin Cheng は、セキュリティ・レビューや適切な管理をパスしたかたちで API を公開/更新すると、それらは、セキュリティ・チームやAPIゲートウェイから見えなくなると説明している。シャドー API は、明確に定義されたオープン・エンド・ポイントの中に隠れ、アプリケーションの未知の脆弱性を露出させ、ハッカーにアクセスを許し、ネットワークをクロールする機会を与えることになる。
Lebin Cheng は、「ソフトウェアのサプライチェーンを狙った攻撃が多発しているが、これらの攻撃の多くは、API が侵害された結果であるため、組織は注意が必要だ」と付け加えている。たとえば、SolarWinds を破壊した SUPERNOVA の脆弱性には、ハッカーが脆弱なAPIをコマンド・チャネルとして利用して、悪意のコードをリモートで実行できるようにする、認証バイパスが含まれていた。Lebin Cheng は、「犯罪者は、誰にも知られることなく、ソフトウェアの API を武器にして C2 サーバーと通信していたため、この広く知れ渡った事件は、特に憂慮すべきものである」と述べている。
APIセキュリティの課題への対応
API を保護するためには、API の動作を完全に可視化し、異常を監視するとともに、API ゲートウェイをサポートするソリューションが必要となる。SecOps チームは、不審な活動を監視するための、継続的な可視性を必要としており、悪質な行動が検出された場合には直ちに対応する必要がある。Lebin Cheng は、API に関連するものとして、以下のことを目指すべきだと言う。
・API とデータ交換パターンを完全に可視化し、常に最新のインベントリーを作成する。
・可能な限り、開発やテストの初期段階で、アプリケーションの API 動作を自動的にプロファイリングすること。データ交換パターンには特に注意を払い、常に最新の動作ベースラインに基づき、ランタイム・プロテクションを有効にすること。
・ランタイム・プロテクションは、厳格なルールに依存するのではなく、自動化された自己適応型の異常検知を前提とする。
・API の設計やセキュリティ・テストを強化することで、開発者が脆弱性に効率的に対処するためのフィードバック・ループを確立。
Lebin Cheng は、「ある意味、API がもたらすセキュリティ・リスクとは、世界経済が追求する集団的なイノベーションとデジタル・トランスフォーメーションの結果として、自ら招いたものである。今こそ、API の開発プロセスにおいて、セキュリティの優先順位を高める必要がある」と述べている。
なんというか、耳の痛い話の連続ですね。もう少し、余裕を持って、いまの立ち位置を俯瞰しないと、同じところをグルグル回るだけで、なにも解決しないような気がします。以下も、ご参考にしてください。
8/18: ゼロトラストを API セキュリティに適用するには
8/03: API セキュリティのためのベスト・プラクティスを策定する
7/23: 覚醒必須:API の脆弱性を先回りして特定する