2022/06/14 SecurityAffairs — ユーザー組織におけるエコシステムは、API を介して急速にオープン化され、データへのシームレスなアクセスや、外部のソフトウェア・コンポーネント/サービスとの相互作用が保証されるようになってきた。API とは、組織内のデータに対して、高度なセキュリティを提供するためのゲートウェイである。また API は、異なるアプリケーション間における通信を可能にすることで、タスクの自動化などを実現し、業務を容易にする。しかし、組織はデータを保護するために、API に対する攻撃から身を守る必要性に常に直面している。
API の利用が増加するにつれて、過去 12ヶ月における API 攻撃のトラフィック量は 681% 増加している。API エコシステムは、悪意のある者にとって有利な攻撃対象になっている。したがって、これらの攻撃を適切に予測/防止するためには、目的に応じたテクノロジー/セキュリティの戦略を導入する必要がある。

API を保護する適切なセキュリティ戦略を構築するためには、API に対する一般的な攻撃を理解する必要がある。ここでは、OWASP (Open Web Application Security Project) が決定した、最も一般的な API 攻撃の Top-10 リストを紹介していく
- Broken Access control
- Cryptographic failures
- Injection
- Insecure design
- Security misconfiguration
- Vulnerable and outdated components
- Identification and authentication failures
- Software and data integrity failures
- Security logging and monitoring failures
- Server-side request forgery
これらの攻撃にういて、その詳細に理解することは、組織や顧客のデータ・セキュリティを確保するための、ツールやプロセスを開発/実装する上で有益となる。
組織の API を改善/保護するためのベスト・プラクティス
API の保護は難しく、従来のセキュリティ・ソリューションでは、API エコシステムの技術的な問題に対して、適切な対応がとれない。そのため、以下のベスト・プラクティスを実施することで、セキュリティ体制を改善し、API と 組織を保護していくべきだ。
セキュリティの優先順位付け
API のセキュリティは後回しにすべきではない。API の開発/開始から配備/統合に至るまで、セキュリティを優先させることが、API のセキュリティを確保する鍵である。専用の API セキュリティ・ツールに従い、API のセキュリティを強化することで、API を構築/統合する際の、セキュリティ要件が概説される。
安全な API 設計/開発の推進
安全とは言えないデザインは、OWASP が強調する攻撃ベクターの1つになる。API を開発するための安全なコーディング/コンフィグレーションのプラクティスを作成する必要がある。それは、OWASP のアプリケーション・セキュリティ検証基準に従うことで実現される。
組織の API を文書化する
API をセキュアにする前に、まず組織で稼働している、すべての API を把握する必要がある。最適なアプローチは、API トラフィックを継続的にスキャンし、動的なインベントリを作成する API セキュリティ・ツールの活用である。 このようなツールは、API の文書化や、設計のレビュー、セキュリティのテスト/保護に役立つ。
強力な認証/許可ソリューションの実装
OWASP が述べるように、典型的な API 攻撃を引き起こす認証/許可の失敗は、不十分あるいは存在しない認証/認可に起因する。API は、組織のデータベースへのゲートウェイになり得るため、強力な認証/認可を実装した厳格なアクセス制御を行う必要がある。OAuth や OpenID Connect のような強固な認証ソリューションを、可能な限り統合する必要がある。
最小特権原則の導入
情報セキュリティにおいて、ユーザー/プログラム/プロセス/デバイス/システムは、最小限の情報に対するアクセスのみに制約する必要がある。それぞれにとって、タスクを完了するために必要な、最小限のアクセスのみを許可する必要がある。この原則は、API にも適用される。開発者とセキュリティ・チームに適切なアクセス権を与え、タスクが完了した時点で、そのアクセス権を剥奪する。
API セキュリティ・テストの実施
API を実運用に移す前に、API における脆弱性の有無を調べるために、API テストを実施する。このようなテストにより、API の脆弱性は、悪用される前に特定される。
ランタイム・プロテクションの導入
動的なランタイム保護は、ビジネス・ロジックのギャップを狙った攻撃からの保護に役立つ。それらの攻撃方法は、実運用へ移行する前の API セキュリティ・テストでは見つけられない。開発者が完璧なコードを書くことはあり得ないと捉え、脅威アクターによる API 操作を阻止するための、API ランタイム保護が必要になる。
暗号化によるネットワーク制御の実装
API により送信されるデータを暗号化することは、API セキュリティにとって不可欠である。トラフィックは TLS (Transport Layer Security) を使って暗号化する必要がある。API はアプリケーション間で機密データを交換するため、API のペイロードを暗号化する必要がある。
入力の検証
エンドポイントから API を介して入力されたデータは、サーバーに受け入れられる前にチェックされ、検証されるべきだ。SQL インジェクションや XML ボムを防ぐために、JSON や XML スキーマの検証を行い、パラメータを確認する必要がある。
まとめ
API は、最新のアプリケーションを構築する上で不可欠なものとなっている。API がハッキングされると、データ漏洩につながり、セキュリティ・インシデントを引き起こす可能性が生じる。API は、一般的に、機密性の高いソフトウェア機能やデータへのアクセスに使用されるため、徐々に主要な攻撃対象になってきている。組織の最終目標は、強力な API セキュリティ・ポリシーを確立して実装し、それを積極的に管理することになる。
文中でも参照されている OWASP API Top-10 ですが、2021年10月に詳細な記事をポストしていますので、よろしけれは ご参照ください。過去 12ヶ月における API 攻撃のトラフィック量が 681% 増加しているという、VentureBeat の記事 Report: 681% increase in API attacks for customers in 2021 は、2022年3月に発行されているものなので、この数値は 2021年を通したものだと推測できます。

You must be logged in to post a comment.