日常生活やビジネスで必要不可欠な存在となっているインターネット。その利便性を高めるために、Webアプリケーション、Webサイト間でAPI連携を行うケースが増えている。この記事では、Webアプリケーション、Webサイトを保護するためのソリューションであるWAFと次世代型のWAAPについて、それぞれの機能と違いを解説する。
WAFとは?
日常生活やビジネスにおいてインターネットは必要不可欠になっており、SNSや動画視聴、オンラインバンキングをはじめとした利便性の高いWebアプリケーションが数多く提供されている。そうしたWebアプリケーションをサイバー攻撃から保護するのがWAFだ。
WAFは「Web Application Firewall」の頭文字からなる略称であり、Webアプリケーションの防御を目的とするファイアウォールである。ハードウェア、あるいはソフトウェアとして導入することで、SQLインジェクションやXSS(クロスサイトスクリプティング)、ブルートフォース攻撃といったWebアプリケーションの脆弱性を狙った攻撃を検知し防御する役割を果たす。
WAFは主に、Webサイト、アプリケーションが格納されるサーバーの手前に設置され、事前に定義されたシグネチャと呼ばれるルールにより、外部からの不正なリクエストやレスポンスをフィルタリングすることで悪意のある攻撃から防御する。先述のように、日常生活やビジネスにおいてWebサイトの重要性が高まっている中で、WAFはWebサイトのセキュリティ対策に欠かせない存在となっている。
狙われるAPI連携とWAFの限界
Webサイトの防御策として重要な役割を担うWAFだが、API連携を狙った攻撃への対処は難しいという現実がある。APIとは「Application Programming Interface」の略であり、Webサイトやアプリ間でデータや機能の連携をするために用いられる、インターフェースあるいはプロトコルのことだ。
例えば、登録済みのSNSアカウントを使用して、別のサービスにログインする、といった際にAPIの仕組みが用いられる。あるいは、あるWebサイトで提供しているデータベース上の情報を別のWebサイトで表示する、といった際にも使われる。天気予報など外部の情報を一部加工して表示しているようなWebページでは、こうしたAPI連携が行われている可能性が高い。
APIを使ってアプリケーション同士を連携することで、事業者はユーザーにとって便利なサービスを提供することが容易になった。しかし、スムーズな連携が可能となる一方で、APIによる連携部分はサイバー攻撃の対象ともなりやすい。なぜ攻撃者がAPIを狙うのか。その理由を以下に挙げていく。
1)オープンアーキテクチャという特性
APIは当初、オープンアーキテクチャとして発展した。オープンアーキテクチャとは仕様を公開することで、開発を促進するアーキテクチャのこと。一時期、「APIエコノミー」という言葉で経済圏のように例えられることもあった。このオープンアーキテクチャという特性は相互連携がスムーズになる一方で、仕様が公開されることからAPIの仕様を攻撃者も把握できてしまうため、セキュリティリスクを抱えやすいという側面もある。
1)複雑で多様な仕様の存在
APIは提供事業者ごとに複雑で、多くの仕様が存在している。そのため、API利用側では網羅的にチェックを実施できないのが現状だ。その結果、一部のAPIの脆弱性が残されたままになる可能性は少なくない。攻撃者はこうしたAPIの多様性やチェックの不備を突いて攻撃してくる。
3)サービス間の連携に利用
APIはサービス間の連携に用いられることから、それらのサービスをダウンさせることで大きな被害を与えることが可能となる。そのため、DoS/DDoS攻撃などで狙われやすい。APIがDDoS攻撃などによってダウンした場合、関連するサービスが軒並み影響を受ける可能性もある。実際、過去にはそのようなインシデントも発生している。
このようにAPIには、オープンアーキテクチャである点やほかのサービスと連携されることに使われるといった、APIの特性に起因する潜在的な脆弱性が存在する。現在、APIは多くのWebアプリケーションで活用されており、APIが攻撃を受けることでサービスの遅延・停止といった大きな被害につながりかねない。
さらに、先述のようにAPIの仕様は提供事業者ごとに異なる傾向にあり、外部環境の変化に伴って仕様変更の可能性もあるため、WAFの特徴でもあるシグネチャでは効果的に防御できないケースも出てくる。こうした理由からAPIは狙われやすいのだ。では、実際にどのような被害が起こり得るのだろうか。
実際に起こったAPI関連のセキュリティインシデント
過去にAPIを狙った攻撃として、2つの事例を以下に紹介する。
1)シングルサインオン用のAPIを狙った攻撃
2021年6月、大手ソフトウェア会社のWebアプリケーションが外部からの不正アクセスを受けた。ここで狙われたのはSSO(シングルサインオン)用のAPIだった。同社が提供する関連アプリケーションだけでなく、連携している他社アプリケーションも対象となった。ユーザーアカウントやSSOのアクセストークンが外部に流出した可能性があったという。その後、問題は解消され、ログなどからも不正に悪用された形跡がなかったことが判明している。
2)大手SNSのAPIを狙った攻撃
2022年11月、大手SNSのAPIにおける脆弱性が悪用され、1,700万件以上のユーザーデータが漏えいしてしまった。このユーザーデータには、メールアドレスや電話番号などの非公開情報も含まれる。これらのユーザーデータは後日、ハッカー向けの闇サイトで販売されていたことがわかっている。なお、すでに脆弱性は修正済みである。
WAAPとは?
WAAPとは「Web Application and API Protection」の略で、WAFが進化したサービスと考えるとわかりやすいかもしれない。2017年にガートナー社が提唱した、次世代型のWebアプリケーションセキュリティソリューションの概念だ。
先述のように、APIには潜在的な脆弱性がある場合もあり、それらを攻撃されることで連携するWebアプリケーションにも被害が及びかねない。そのため、APIを含めてWebアプリケーションやWebサイトを包括的に保護する必要性に迫られている。
WAAPが有する機能は、先に解説したWAFの機能に加え、APIの脆弱性や不正なボット、高度なDDoS攻撃といった、巧妙化していくサイバー攻撃の脅威に包括的な対応を可能にする。
1)APIの脆弱性
WAAPではAPIの脆弱性を検出し、その脆弱性を狙う攻撃を防ぐことが可能だ。WAFがシグネチャで攻撃を検知するのに対し、WAAPはシグネチャでの検知に加えて、APIの挙動を分析して、通常の挙動と異なる場合にアラートを発出する。
2)不正なボット
WAAPでは、数あるボットのうち、不正なボットを識別してブロックする機能を備えている。具体的には、IPアドレス、ユーザーエージェントのブラックリストや、不正なアクセスパターンなどからボットのタイプを判別してブロックする。
3)DDoS攻撃
DDoS攻撃は大規模なアクセスを発生させることで、WebアプリケーションやWebサイトをダウン、あるいはサービス停止を狙う攻撃だ。UDPパケット(速度を重視した通信)を大量に送信する「UDPフラッド攻撃」や、送信元IPアドレスを偽装したリクエスト(SYNパケット)を大量に送信する「SYNフラッド攻撃」などが存在する。WAAPには、これらの攻撃からネットワーク帯域やサーバーリソースを保護する機能が搭載されている。
複数のWebアプリケーションでデータを共有・活用できるAPI連携。今後はより一層、API連携によるメリットを享受できるシーンが増えていく。その有用性を最大限活かしていくためにも、Webアプリケーション、Webサイト、そしてAPI連携の適切な保護が重要なポイントとなる。従来のWAFから進化したソリューションであるWAAPを導入して保護レベルを上げることも、選択肢の1つとして検討するとよいだろう。