Microsoft Defender for APIs を使ってみる
はじめに
またプレビュー機能の検証ネタですが、Microsoft Defender for APIs がパブリック プレビューとなりましたので、さっそく使ってみます。
仕様
保護対象は API Management 経由で 実行している API です。
詳細は公式ドキュメントを見てもらえればいいと思いますが、ざっくりできそうなことは以下になるかと思います。
- API Management で管理している API の可視化
- 長期間使用されていない API の棚卸
- API 実行時の認証有無の確認
- 外部からの API 実行確認
- API における機密情報の取り扱い
- API に対する脅威検知
事前準備
検証する前に API Management と API が必須なので、こちらを参考に作成しました。
注意が必要な点がいくつかあります。
- 一時的かもしれないですが、クオータ制限により App Service Plan 作成に失敗したため、setup.sh 内で指定しているリージョン japaneast を変更
- Defender for API は従量課金プランは対象外のため、API Management の SKU を Developer に変更
Defender for APIs の設定
こちらのドキュメントを参考にしています。
まず Defender for Cloud の [環境設定] からサブスクリプションを選択し、Defender プランのメニューで APIs を ON にします。
次に推奨事項の [強化されたセキュリティ機能を有効にする] の下にある [Azure API Management API を Defender for API にオンボードする必要がある] から API を選択して [Fix] をクリックします。現時点ではこれしか方法がないみたいです。
しばらくすると、[ワークロード保護] > [API セキュリティ] の下に分析結果が表示されます。
Defender for APIs ページの読み方
ドキュメントを見ながら、各項目を確認してみました。
API Collections: API Management における API
API Endpoints : API Management における API の中の Operations
30 days Unused: 30 日使われてない API をカウント
Authentication: Subscription キーや JWT などの認証が使われていない API をカウント
External traffic oberserved: インターネットからアクセスしている API をカウント
Sensitive data endpoints: 機密情報を含むデータをやり取りしている API をカウント
公式ドキュメントにはこちらに記載があります。
機密情報に関しては明示はないですが、おそらく Data sensitivity を使っているのでは、と考えています。(確証ないです)
詳細ページ確認
API Collection をクリックすると、各 API の詳細が確認できます。こちらのスクリーンショットの例では、意図的に API Management の Subscription キーの認証を OFF にして Unauthenticated の表示をさせています。こちらの詳細で注意が必要なのが以下の点です。
- Defender for APIs にオンボード後、API を実行しないと Awaiting Data の表示のままになる(=設定値を見ているわけではなく、実行ログをチェックしていると思われる)
- 上記のため、設定変更した後に API を再度実行しないと表示は更新されない
さらに API Endpoint をクリックするとリソース正常性が確認できます。
なお、機密情報の検出は API 実行時にテスト用のクレジットカード番号をつけてリクエスト投げてみましたが、いまのところ検出できていません。
脅威検知
Defender for APIs では脅威検知もできるようです。対象のアラートはこちら。
一番簡単そうな Tor 経由の API 実行ということで、Tor ブラウザから API を実行してみました。
以下のようなアラートが出力しました。なお、API 実行からアラート出力までに 1 時間くらいかかった気がします。
まとめ
一部検証しきれてないところがありますが、API Management の利用者にとってはかなり有用な機能ではないかと思いました。あとは価格体系が気になるところです。(API Call 単位なのか、リソース単位なのか)
Discussion