Application Programming Interfaces の略である API は、ここしばらくの間、最新のデジタル ソリューションのほとんどを支えてきました。ソーシャル ネットワーク通信から金融取引、天気予報や交通渋滞の確認まで、API は舞台裏で機能して貴重な洞察を提供し、重要な取引を実行します。
API もよりユビキタスになりつつあります。 報告 過去 12 か月で API トラフィック全体が 321% も大幅に増加したことが明らかになりました。しかし、この使用の増加に対応してサイバー脅威も増加しており、API 攻撃は同じ時間枠で 681% 増加しています。
API とは
API は、2 つの異なるアプリケーションが相互に通信できるようにするソフトウェアです。 1 つのアプリケーションが別のアプリケーションに要求を送信し、その特定のタスクを実行するための応答を受け取ります。 API には、実装に依存しない機能が定義されており、ソフトウェア開発のビルディング ブロックを形成します。
簡単に言えば、API は 2 つのソフトウェア システムが相互に対話するための手段です。
たとえば、フライトを検索できるアプリを考えてみましょう。オプションを入力して「予約」ボタンをクリックした後も、アプリは航空会社のデータベースで空席状況と料金を確認する必要があります。アプリケーションは、航空会社の API からこのデータを取得し、それを返して予約を続行することができます。
主流の API プロトコルとは?
API がシステム間の対話を可能にするには、データと特定のコマンドを交換する必要があります。この交換は、個々のユース ケースによって異なる一連のプロトコルとアーキテクチャによって管理されます。より主流の API プロトコルには次のものがあります。
- REST (Representational State Transfer) アーキテクチャ: 最も一般的なプロトコルの 1 つである REST は、API のフロントエンドとバックエンドを分離することで機能します。また、「ステートレス」であり、リクエスト間にデータやステータスが保存されないことを意味します。 REST 上に構築された API は、「RESTful API」として知られています。
- SOAP (シンプル オブジェクト アクセス プロトコル): これは、Web API を作成するために一般的に使用される標準であり、HTTP、SMTP、および TCP などのさまざまなインターネット プロトコルをサポートします。 RESTful API よりも構造化、制御、および定義されています。
- gRPC (Google リモート プロシージャル コール): Google が開発したオープン ソース フレームワークで、ほとんどの環境で実行できます。その独自性は、開発者が独自のカスタム関数を定義できることにあります。
- GRAPHQL (グラフクエリ言語):フェイスブックが開発。 GRAPHQL は、データベース クエリ言語のようにサーバーからデータをクエリします。パッケージ全体をインポートするのではなく、明示的に要求されたデータのみがクエリ要求に基づいて取得されるため、時間とリソースを節約できます。
API セキュリティとは何ですか?
API セキュリティには、API の整合性を保護し、悪意のある攻撃を防ぐための手段とソリューションが含まれます。これには、API のセキュリティ リスクと脆弱性を調査して軽減するプロセスが含まれます。
API がセキュリティで保護されていない場合、ハッカーによって悪用されて機密データが盗まれ、組織が経済的に打撃を受け、評判が損なわれる可能性があります。 API セキュリティでは、レート制限、認証、認可など、さまざまな手法が使用されています。しかし、これらの手法を超えて、企業はソフトウェア開発と API ワークフロー全体をカバーするセキュリティの文化を採用する必要があります。
API セキュリティが重要な理由
API セキュリティは、主に Web およびモバイル アプリケーション、SaaS 製品で広く使用されているため、今日のサイバー セキュリティの重要な部分になっています。これらのアプリケーションは、銀行から小売、エンターテイメント、ヘルスケア、さらには輸送まで、最も基本的なユースケースで見られます。 API に依存するアプリケーションには、多くの顧客向けポータルと、個人を特定できる情報 (PII) を含む機密データの収集も含まれます。
さらに複雑なことに、ほとんどの企業はこれらのアプリケーションをクラウドベースのストレージとコンピューティングに移行しています。これにより、どこからでもどのデバイスからでもアプリケーションにアクセスできるようになりますが、次のような問題もあります。 クラウド コンピューティングのセキュリティの課題、API は、ハッカーが認証を悪用してネットワークを侵害する方法になる可能性があるためです。これにより、API セキュリティはビジネスにとって不可欠な要件になります。
API認証のさまざまな方法は何ですか?
ビジネスは、API 認証のいくつかの方法に依存してセキュリティを強化できます。これらには以下が含まれます:
オープン認証 (0Auth)
OAuth は、パスワードなどの機密フィールドを公開することなく、Facebook や Twitter などのサードパーティ サービスがエンド ユーザーのアカウントの詳細を取得できるようにするオープン スタンダードです。これは、ユーザーがアカウント情報の共有を承認したことを確認するアクセストークンをサービスに提供することにより、本質的にエンドユーザーに仲介サービスを提供します。
多要素認証 (MFA)
MFA は、ユーザーの資格情報を検証する複数の方法を必要とする認証の形式です。たとえば、パスワードに加えて、このメソッドは、認証を続行する前に確認する必要がある電子メールまたはテキスト メッセージでユーザーに送信されるパスコードも要求します。
トランスポート層セキュリティ (TLS)
TLS は、相互に通信する 2 つのアプリケーション間で認証、プライバシー、およびデータの整合性を提供する、広く使用されているセキュリティ プロトコルです。これは、ブラウジング セッション、ファイルの転送、Voice over IP (VoIO) 通信など、ネットワークを介した安全なデータ交換を伴う Web ブラウザおよびアプリケーションに使用されます。
セキュリティ アサーション マークアップ言語 (SAML)
SAML は、ユーザー ID、認証、承認を含むデータを安全に共有するために使用されるもう 1 つのオープン スタンダードです。 Extensible Markup Language (XML) 標準で実装され、シングル サインオン (SSO) 実装のフレームワークを提供します。
トップの API セキュリティ脅威とは?
API の使用の増加とサイバー攻撃の巧妙化が相まって、企業はさまざまな API セキュリティの脅威に注意する必要があります。 Open Web Application Security Project (OWASP) は、サイバーセキュリティの専門家に情報とリソースを提供するオンライン コミュニティです。 2019 年の API セキュリティ脅威トップ 10、これには次のものが含まれます。
壊れたユーザー認証
これらの脅威は、認証メカニズムが正しく実装されていない場合に発生します。これにより、攻撃者は認証トークンを侵害したり、実装の欠陥を悪用して他のユーザーの ID を取得したりして、API セキュリティを侵害することができます。
注入
インジェクションの欠陥は、信頼できないデータがクエリでインタープリターに送信される場合に発生します。これらには、SQL、NoSQL、コマンド インジェクションなどの攻撃が含まれる可能性があり、インタープリターをだましてコマンドを実行させたり、適切な承認なしにデータにアクセスさせたりします。
壊れたオブジェクト レベルの承認
ユーザー入力を取り込んで API を使用してデータ ソースにアクセスする関数がある場合、エンドポイントが攻撃にさらされる可能性があります。これらの関数は、エンドポイントが標的にされるのを防ぐために、これらのオブジェクト レベルで承認を組み込む必要があります。
API セキュリティの仕組み
API セキュリティは、認証と承認の主要な要素を適用することによって機能します。最初に、クライアント アプリケーションの ID が安全であり、API を使用する権限があることを確認するために、認証が要求されます。この後、アプリケーションは認証に合格する必要があります。これにより、API との対話中にアクセスできるデータとアクションが決定されます。
API セキュリティのベスト プラクティス
API にはアプリケーション間の通信が含まれ、多くの場合、機密データを取得するためにユーザー入力を取り込むため、さまざまな種類の中間者攻撃の標的になる可能性があります。これを防ぐには、これらの重要な API セキュリティのベスト プラクティスに従う必要があります。
脆弱性を探す
API ライフサイクルの弱点を特定し、SQL インジェクションなどの署名ベースの攻撃によって悪用される可能性がある特定の脆弱性を探します。次の標準 脆弱性スキャン テクニックは、これらの弱点を発見するのに役立ちます。
アクセス制御にトークンを使用する
セキュリティ トークンは、API を保護するもう 1 つの方法です。これらは、アクセスを許可する前にトークンの認証を要求することで機能し、認証に失敗したプログラムまたはユーザーは拒否されます。
API 通信で暗号化を使用する
暗号化は、正しいキーを持つプログラムまたはユーザーのみが通信を解読できるようにする、実証済みのセキュリティ プラクティスです。キーを持たない権限のないユーザーがデータを読み取れないようにすることで、API を保護します。
クォータとスロットリングを設定する
スロットリングとクォータは、大量のデータを送信してシステムを圧倒することを目的とした分散型サービス妨害 (DDoS) 攻撃などの攻撃に対して効果的です。これらのクォータは、データ転送の速度を制限し、DDoS 攻撃を阻止して、システムの正常な機能を維持します。