banner

ニュース

May 03, 2023

主要な API セキュリティ リスクとそのリスクを軽減する方法

マイクロサービスの大幅な増加と、アプリケーションの迅速なデプロイを求める絶え間ない推進により、API はあらゆる起業家にとって頼りになる名前になりました。

しかし、シームレスなユーザー エクスペリエンスを実現するためにあらゆる小さな機能が他のソフトウェアや製品とリンクされるようになり、API がセキュリティ ハッキングのハブになることが増えています。 Gartner の「効果的な API セキュリティ戦略の構築方法」レポートでは、2022 年までに API セキュリティ リスクがデータ侵害につながる最も頻繁に発生する攻撃の 1 つになると予測しているほどです。

しかし、なぜ API セキュリティ戦略を持つことが現代の起業家にとって必須なのでしょうか? なぜこのテクノロジーが特別に注目されるのでしょうか? この記事では、これらに対する答えと API セキュリティ リスクを軽減する方法を説明します。

API は、ビジネスが真にデジタルになるのに役立ちます。 アプリケーションがどのようなものであっても、アプリケーション プログラミング インターフェイス (API) によって他のソフトウェアや機能と接続されるため、アプリケーションを最初から構築する時間を節約できます。

API に特別な焦点が当てられている理由は、API がビジネスの成功に与える影響のレベルにあります。

コストの削減: API を使用すると、企業は他社の機能やデータを利用できるため、それらの機能を社内で作成する必要がなくなります。 ソフトウェア開発コストの大幅な節約に役立つイベントです。

顧客サービスの向上: API は複数のソフトウェアをリンクすることにより、顧客と顧客が何を求めているのかについての包括的なビューを企業に提供します。 この情報は、企業が消費者とより適切に対話し、情報に基づいた意思決定を行うのに役立ちます。

業界レベルのコラボレーションの向上: API を使用すると、企業は業界を超えて他の企業とつながり、オンライン サービスとプラットフォームの堅牢化を支援できます。 これにより、パートナーシップが強化され、新たなビジネスチャンスが生まれ、ビジネス運営の効率が向上します。

ビジネス インテリジェンスのためのデータを収集する: 企業は API を利用して顧客の好みや行動を収集できます。 この情報は、現在の市場動向と顧客のニーズを深く理解するために分析されます。

新しい収益モデルの作成: API は、サービスやデジタル製品を宣伝および販売するための複数のプラットフォームを企業に提供します。 このモデルを通じて、企業は他の企業へのデータ販売から既存の API に基づいた新しいソフトウェアの構築まで、あらゆることを行うことができます。

ビジネスにおける API の利点は多岐にわたります。 ただし、API のセキュリティ リスクも同様です。 ハッカーが企業の API セキュリティ設計のテストを好む主な理由は 2 つあります。

ここでは、Web アプリ QA チームが特に注意を払う API の長所と短所を説明します。

ここで、API セキュリティのベスト プラクティスのリストが従来のセキュリティのベスト プラクティスとなぜ異なるのか疑問に思われたことと思います。 主要な API セキュリティ リスクとその軽減方法を検討する前に、次にその質問に答えましょう。

従来の Web アプリ セキュリティと Web API セキュリティのベスト プラクティスには大きな違いがあり、その違いはその構造に起因します。

堀がなく、複数の開口部がある城 – 以前は、従来のネットワークは 443 (HTTPS) や 80 (HTTP) などの共通ポートでのみ保護する必要がありました。 現在、Web アプリには、異なるプロトコルを使用する複数の API エンドポイントが付属しているため、API の機能セットが拡張されると、セキュリティの管理が困難になります。

頻繁に変更される受信リクエスト形式 – API は DevOps 環境下で常に進化しており、ほとんどの WAF はこの程度の弾力性に対応できません。 したがって、API が変更されるたびに、従来のセキュリティ対策は手動で再構成および調整する必要があり、これはエラーだらけの方法であり、リソースの時間がかかります。

クライアントは Web ブラウザを使用できません – マイクロサービス API の大部分は、モバイル アプリケーションまたはソフトウェア コンポーネントで使用されます。 クライアントはブラウザを使用しないため、Web セキュリティ ツールはブラウザ検証機能を使用できず、有害なボットを検出できません。

API 構造のこの違いにより、いくつかの API セキュリティ リスクが発生する可能性があり、Web アプリ開発者と QA チームにとって解決策を見つけてリアルタイムで API セキュリティを向上させることが重要であると考えられています。

リスクについて説明する前に、API セキュリティ チェックリストは明確なものではないことをお伝えしておきます。 抜け穴はすべて解決したと思っていても、また新たな抜け穴が出てくるでしょう。 この問題の解決策は、ハッカーの立場になって、アプリが API をどのように使用しているか、そして見落とされているギャップを再検討することにあります。

これは長期的かつ継続的なソリューションですが、最も一般的な API セキュリティ リスクを調べることから始めるのが良いでしょう。

ほとんどの API は、ユーザーやウィジェットなどのエンティティのリストであるリソースへのアクセスを提供します。 ブラウザ上でソフトウェアを使用するクライアントの場合、API は通常、このリストをフィルタリングしてページ分割し、クライアントに返される項目の数を制限します。

ただし、エンティティに PII またはその他の情報が付属している場合、ハッカーはエンドポイントをスクレイピングして、データベース内のすべてのエンティティのリストを取得することができます。 これは、エンティティが機密情報を誤って公開した場合に非常に危険な可能性があります。 また、ハッカーが Web アプリの使用状況統計を閲覧したり、メール リストにアクセスしたりできるようになります。

解決策: ページネーション攻撃から保護するには、リクエスト レベルではなく、ユーザーまたは API キーによって特定の期間内にアクセスできる単一リソースのアイテム数を追跡できる必要があります。 API リソースへのアクセスを個々のユーザー レベルで測定することで、「1 時間で 10,000 個のアイテムにタッチした」などのしきい値に達した場合に、API キーまたはユーザーをブロックできるようになります。

ほとんどの API は通常、JWT (JSON Web Token) または API キーを通じて保護されます。 これにより、セキュリティ ツールが異常な動作を特定し、API キーへのアクセスをブロックできるため、API を保護できます。 ただし、ハッカーは、Web ハッカーが DDoS 保護を妨害するために IP アドレスを使用する方法とまったく同じように、ユーザーから大量の API キーのプールを取得して利用することで、これらのアプローチを出し抜くことができます。

解決策: これらの攻撃を確実に防ぐ方法は、人間がサービスにサインアップして API キーを生成する必要があることです。 一方、ボットのトラフィックは 2 要素認証やキャプチャなどの要素を使用して保存できます。

API キーの使用方法によっては、ハッキングや漏洩が発生する可能性があります。

解決策: キーの公開を保護する方法は、1 つのトークンの代わりに 2 つのトークンを使用することです。 ここでは、リフレッシュ トークンが環境変数として保存され、有効期間の短いアクセス トークンの生成に使用できます。 これらのリフレッシュ トークンとは異なり、開発者はリソースにアクセスできる有効期限の短いトークンを使用できますが、その期間は限られています。

API によって、顧客がプログラムで API プラットフォームにアクセスできる新しいビジネス モデルが開かれるのは事実ですが、これにより DDoS 防御が困難になります。 DDoS 保護のほとんどは、DDoS 攻撃中に悪意のある者からのリクエストを吸収して拒否するように設計されています。 API 製品の場合、すべてのトラフィックがボット トラフィックのように見えるため、これはさらに困難になります。

解決策: このコンテキストにおける API セキュリティのベスト プラクティスは、API 内のみにあります。 Web アプリへのアクセスには必ず API キーが必要なので、API キーのないリクエストに遭遇した場合は、自動的に拒否できます。

サーバーの健全性を維持するという点では、API は Web サーバーとそれほど変わりません。 SSL 証明書の構成が間違っていたり、HTTPS 以外のトラフィックを通じてデータが簡単に漏洩する可能性があります。

最新の Web アプリの場合、非 HTTPS リクエストを受け入れる理由はほとんどありませんが、顧客が Web アプリまたは CURL から誤って非 HTTP リクエストを発行し、API キーが公開される可能性があります。

解決策: API セキュリティのベスト プラクティスでは、SSL テスト ツールを使用して SSL 実装をテストする必要があると記載されています。 さらに、ロード バランサーを介して非 HTTP をブロックする必要があります。

世界的な侵害に関する調査のほとんどでは、データ侵害の事例を特定するまでに 200 日以上かかることが判明しています。 API ログに関する API セキュリティのベスト プラクティスが定義されていない場合、ハッカーがその脆弱性を利用してさらなる脆弱性を作成する可能性があります。

解決策: 使用する API ログ メカニズムが API リクエストを追跡するだけでなく、動作分析のためにユーザーにリンクし、少なくとも 1 年間保存することを確認する必要があります。 これらのメカニズムは、データが削除されないように保護する必要があります。

API 開発者の大多数は、OAuth や API キーなどのグローバルな認証方法を追加して、ユーザーが誰であるかを確認しますが、認証とは異なる認可を作成して維持するのは困難です。

承認はアプリのロジックに固有であるため、開発者が Web アプリをテストするときに見逃される領域です。 現在、オブジェクト識別子に十分なエントロピーがない限り、ハッカーは反復によって異なる ID を簡単にテストし、システムに侵入することができます。

解決策: 認証したユーザーに、API 応答の生成に必要なリソースへのアクセスが許可されていることを確認してください。 これには、写真内のオブジェクトにリンクされたアクセス制御リスト (ACL) との照合が含まれる場合があります。

ここでは、Web アプリ開発者や起業家が遭遇する最も一般的な 7 つの API セキュリティ リスクとその解決策を紹介します。 ただし、前に述べたように、このリストは明確ではないにしても、Web アプリが古くなり API の機能が拡張されるにつれて、さらに多くの抜け穴が現れる可能性があります。

Appinventiv では、API を構築する際、開発プロセスを開始する前に API セキュリティ テストの大まかなチェックリストを作成します。 これに加えて、お客様のソフトウェアが長期的な堅牢性とセキュリティを確保できるように構築される最高の API 管理ツールを使用します。

私たちが従う API セキュリティ チェックリストは次のとおりです。

Web アプリ開発会社としての当社の特徴は、セキュリティ第一の開発アプローチに従っているという事実です。 つまり、アプリに API を構築または組み込むたびに、アプリのセキュリティを最大限に活用できることになります。 当社の QA 専門家チームは、Web アプリに抜け穴がなく、ハッキングの危険がないことを保証します。 これを保証する方法は、API セキュリティのベスト プラクティスの包括的なチェックリストを作成することです。

API のセキュリティを向上させる主な方法は、API ライフサイクルの安全でない領域を特定することです。 必要なのは、API をメンテナンスや機能の有効期限などの独自の開発段階を持つソフトウェア成果物として扱うことで、それを追跡することです。

API セキュリティ リスクにおける最大のギャップの 1 つは、認可と認証のアクセス制御です。 それを制御する強力な方法が OAuth です。 Appinventiv では、ユーザーの資格情報を表示せずにサードパーティのサービスがどの情報にアクセスできるかを許可するために、トークン駆動の承認フレームワークを使用しています。

一般に、トークンの使用は、API セキュリティに関する最良のベスト プラクティスの 1 つです。 開発者は、信頼できる ID への制御されたアクセスを確立するための効果的な方法として、ID に割り当てられたトークンを利用できます。

API のセキュリティを向上させる確実な方法は、Transport Layer Security (TLS) を使用してデータを暗号化することです。 私たちが API に取り組むとき、開発者は承認されたユーザーのみを介してデータの変更と復号化を確実に行うための署名も必要とするという慣行に従っています。

API の人気が高まるにつれて、DDoS 攻撃などのハッキングの可能性も高まっています。 DDoS 攻撃や、セキュリティやパフォーマンスに影響を与える問題などの API スパイクを防ぐために、開発者は API を呼び出す方法と頻度にレート制限を設けています。 このレート制限機能は接続を調整し、データ アクセスとデータの可用性のバランスをとります。

API ゲートウェイの使用は、API セキュリティの重要なベスト プラクティスの 1 つであると考えられます。 これは、API トラフィックの適用ポイントとして機能します。 当社は、企業がトラフィックを認証し、API の使用状況を制御および監視できるようにするゲートウェイを構築します。

API ゲートウェイに加えて、サービス メッシュを使用して Web アプリに管理レイヤーを追加します。これは、サービス メッシュがリクエストをあるサービスから別のサービスにルーティングするためです。 また、適切なアクセス制御、認証、セキュリティ対策が組み込まれていることを確認しながら、機能の連携方法も最適化します。

従来のセキュリティ モデルでは、単純な公式が使用されます。 「内部」のものは信頼されるべきであり、「外部」のものは信頼されるべきではありません。 しかし、現在ネットワークは複雑になっており、特にソフトウェアがリモート ユーザーによって使用されるため、ゼロトラスト モデル (ZTM) を持つことが重要になっています。 ZTM を通じて、セキュリティの焦点は場所からリソースとユーザーに移ります。

パラメーターの検証は、API セキュリティに関するベスト プラクティスの 1 つです。 これは、受信データが害を引き起こしていないことを確認するのに役立ちます。 このフレームワークの下では、データは、許容される入力のシステムを報告する厳格なスキーマに対して検証されます。

API セキュリティ リスクを軽減する方法のチェックリストの最後は、脅威のモデリングです。 これは、リスクを発見して評価するために当社が使用するアプローチです。 私たちはこれを、制御された方法でアプリの脆弱性を評価、軽減、防止するための予防的アプローチとして使用します。

これらの API ゲートウェイのセキュリティのベスト プラクティスにより、ユーザーが完全に自信を持って作業できる堅牢で安全なシステムを構築できます。 結果? 当社には、ハッキングやセキュリティ侵害が発生しないアプリを作成した実績があります。

企業がモノリシック システムをマイクロサービスに変換し続けるにつれて、API は脆弱性を抱えやすくなります。 これにより、ネイティブおよびクラウド API のセキュリティのベスト プラクティスに従うことが必須になります。

上で述べたリストは出発点としては適していますが、継続的なアップグレードが必要です。 すでに複数の期限とやりくりしている起業家や社内開発チームにとって、それらを把握し続けることは課題となる可能性があります。 ここで、100% ハッキング防止アプリを提供する実績を持つ企業と提携することが重要になります。 Appinventivのような会社。

ソフトウェアがどれほど複雑であっても、当社の広範な品質保証サービスにより、ソフトウェアを安全かつ堅牢にすることができます。 製品の安全な未来に向けて今すぐご連絡ください。

API のビジネス上の利点 ハッカーが API を好む理由 セキュリティ対策をバイパスする簡単なモード 従来のセキュリティと区別する API セキュリティ設計の重要な要素 1. 安全でないページネーション 2. 安全でない API キー生成 3. 偶発的なキーの公開 4. DDoS 攻撃 5. 間違ったサーバーセキュリティ 6. 不十分なロギング 7. 認証の未処理 1. 脆弱性の発見 2. OAuth の使用 3. トークンの使用 4. データ暗号化 5. レート調整と制限の使用 6. API ゲートウェイの使用 7. サービスメッシュの使用 8. ゼロトラスト方式9. パラメータの検証 10. 脅威モデルの構築 別れ際のメモ
共有