API(アプリケーションプログラミングインターフェース)は、急速に進むデジタルトランスフォーメーションの推進に欠かせない存在です。実際に、API無しでのソフトウェアは難しくなっています。APIを使うことで、開発とデプロイメントをサポートし、アプリケーションを効率的に組み合わせることができます。その結果、ユーザーにとってより良いアプリケーションを提供することができます。注意すべき点として、APIは適切に管理されなければ、さまざまなリスクの可能性があるということです。
APIは攻撃者に多くの攻撃ポイントを与えてしまい、ビジネスロジックへの影響だけでなく、攻撃の自動化にも利用されてしまいます。このような事例は日々増えています。2023年のBad Bot Reportによれば、2022年には17%の攻撃がビジネスロジックを悪用しようとするボットからのものであり、21%は他の種類の自動化されたAPIへの攻撃でした。これからも、OWASP (Open Web Application Security Project)が注目する脆弱性の中にAPIが含まれるのは十分に理解できます。しかし、APIが攻撃対象として注目される理由は何なのでしょうか?
ますます活用されるAPI機能
APIはモダンなソフトウェア開発において不可欠な存在です。MuleSoftによれば、現在、98%の組織がAPIを利用していると言われています。Impervaの調査結果によれば、1つの組織が利用しているAPIは最低でも300以上存在することがわかりました。さらに、開発者の70%は今年中にさらにAPIを活用する予定だと述べています。APIの利用が増えるにつれて、攻撃の標的も広くなることになります。つまり、攻撃者は今後の攻撃のターゲットとしてAPIを選択することが予想されます。
組織内でAPIが把握できていない
APIには以下のような特徴があります:
- すべてのAPIとAPI機能がわからない
- APIの全トラフィックの内、ボットからのトラフィックの割合がわからない
組織は利用しているすべてのAPIを把握するべきです。現在、多くのAPIが公開されていますが、その管理が不十分です。こうしたAPIはシャドウAPIと呼ばれており、非推奨の古いAPIが残り、認識されていない新しいAPIが登場することもあります。さらに、開発者が誤って非公開のAPIをインターネット上に公開してしまうという問題も存在します。Imperva Threat Researchによると、すべてのAPIのトラフィックの14%がシャドウAPIであると報告されています。では、こうした認識されていないAPIにどのように対策すべきでしょうか?
正しいアクセスと攻撃のトラフィックを見分けるのは非常に困難です。この問題の難しさは、APIから見ると自動化されたクライアントはすべてボットと見えるためです。これにより、APIを攻撃から守ることは組織にとって困難になっています。さらに、APIは大量のリクエストを処理する一方で、セキュリティ機能が不十分なことも多く、攻撃者が検出されずにボットによる悪用が可能になっている原因でもあります。
しかし、ボットの不正アクセスを防ぐために、APIの利用者を事前に定める方法があります。多くのAPIは、スマートフォンやWebブラウザにデータを提供するために設計されています。このようにAPIの利用者を事前に定めることで、セキュリティチームは不正なAPI利用を防ぐことができます。
APIを利用した機密情報へのアクセス
APIは、機密情報やビジネス資源につながる経路として利用される場合があります。Impervaの分析によると、APIの13%がクレジットカード番号、社会保障番号、住所などの非常に機密性の高い情報を扱っていることがわかりました。攻撃者がこのような機密情報を扱っているAPIへのアクセスが可能となった場合、APIが扱うことができる全てのデータにアクセスが可能となり、重大なデータ侵害が発生する可能性もあります。
攻撃の対象となりやすいAPIの性質
APIはシステムからアクセスしやすく設計されており、デベロッパーにとっては分析しやすく、攻撃者にとっても利用しやすい性質を持っています。簡単に言えば、攻撃者は通常のアクセス手段を使って自動化されたツール(例えば、ボット)を APIに対して使用でき、複雑なアクセス方法は必要ありません。APIはSQLに似ており、公開されたアクセス方法を使ってデータへの問い合わせを簡単にします。
APIのもう一つの欠点は、一般的なWebアプリケーション(ステートフル)とは異なり、ステートレスであるということです。ステートレスのアプリケーションはセッション情報を保持しないため、ステートフルなアプリケーションよりもリスクが高いです。これは各リクエストが独立したアクセスとして扱われ、アプリケーションは同じユーザーからの以前のリクエストに関する情報を保持しません。
APIへのアクセスが容易になったこととボットを使った攻撃の組み合わせが、攻撃を手軽かつ低コストで行うことを可能にしています。
軽視されがちなAPIによるビジネスロジックへのアクセス
Postmanによれば、APIのデベロッパーの44%は開発経験が2年未満とのことです。また、APIデベロッパーの48%は、APIを設計から1週間以内で本番リリースまで行います。APIのセキュリティを考える場合、ビジネスロジックは軽視されがちで、特別なルールを設けることなく設計されてしまいます。APIが適切な認証と認可の機能を持っていても、攻撃者はボットを使ってAPIを悪用することができてしまいます。
例えば、悪意のあるボットによって検索用のAPIがスクレイピングされ、データが収集される可能性があります。また、ログイン用のAPIが攻撃されてユーザーアカウントへの不正なアクセスを可能にすることもあります。具体的なケースとして、APIは認証にトークンを使用するため、トークンや他の認証形式が攻撃者によって盗まれ、アカウントやデータへの不正なアクセスを得るために使用されることがあります。
デベロッパーは、ボットの攻撃によるリスクを軽減するために、アクセス制限、シグネチャベースの検出、プロトコルのブロックなど、よく使用されるセキュリティツールを活用することが一般的です。ただし、高度なボット攻撃に対してはあまり効果がありません。
ビジネスロジック以外への影響
APIのビジネスロジックを悪用するボットは、スクレイピングやアカウント乗っ取りのケースが多いです。さらに、DDoS攻撃にも頻繁に利用されます。ボットはAPIに対して大量のトラフィックを発生させ、ユーザーがサービスを利用できないようにすることも可能です。特に、GraphQLベースのAPIは柔軟なクエリが可能なため、DDoS攻撃の対処が問題となります。バックエンドデータベースへの非効率なリクエストが送信され、大きな負荷をかけることにもなります。
ボットは、APIの脆弱性を探るためにも利用されることがあり、SQLインジェクションやクロスサイトスクリプティングなどがあります。これらは、直接的な攻撃ではなく、攻撃を行うための準備段階となります。このように、ボットはAPIにさまざまな悪影響を及ぼす可能性があることを考えると、十分な注意が必要です。
多くのビジネスロジックレベルの脆弱性は、APIの欠陥と関連しています。例えば、必要以上のデータが公開される脆弱性は、OWASPが発表するAPIセキュリティに関するリスクの中でトップ10に挙げられております。攻撃者は、ビジネスロジックの脆弱性を見つけるために積極的にボットを利用しております。
組織はAPIをさらに活用するようになり、その活用は急速に広まっています。そのため、セキュリティを強化する範囲も広がっています。不正行為を目的としたボットは日々進化しており、APIが利用されてビジネスロジックが攻撃される頻度は今後ますます増加すると予測されます。
Imperva のボット攻撃やオンライン詐欺からAPIを守る取り組み
Imperva Cloud Application Securityプラットフォームは、ボットとAPIを利用した攻撃に対して、高度なセキュリティを構築するための有効なソリューションとなります。全体的な多層防御のソリューションを提供することで、組織の重要な資源を日々高度に進化する脅威から守ることが可能となります。
Imperva Advanced Bot Protectionは、ユーザーに影響を与えることなくウェブサイト、モバイルアプリ、APIをボットの攻撃から守ります。このサービスは、正当なアクセス経路を保護し、不正なボットのトラフィックを可視化し制御することができます。また、詳細な設定、最先端のテクノロジー、セキュリティの専門知識を組み合わせることによる全てに行き届いたサービスです。
Imperva API Securityは、セキュリティチームの業務を効果的にサポートするために、機密情報の可視化と分類、APIの公開・非公開・シャドウAPIの検知・保護を提供します。さらに、機械学習と自動化によって、APIの変更も迅速に検出・分類し、変更によるリスクを評価することで、DevOpsチームのサポートもできます。
Impervaを無料でトライ
Impervaで30日間、あなたのビジネスを守る。