1.はじめに:API利用の拡大とセキュリティリスクの高まり
レイ・イージス・ジャパンの青木です。
最近APIの診断をご用命いただくケースが増えてまいりました。
外部に一般公開されているシステム、関連グループや特定の取引先にのみ公開されているシステムを問わず、様々なシステムでAPIを利用するケースが増えているということかと理解しております。
それに伴い、APIが攻撃対象として狙われるケースも増えてきているようです。
少し古いデータになりますが、2022年1月に実施された451 Research and Noname Security の調査によると、調査に回答した組織(従業員3000名以上のグローバル企業が多く含まれている)で使用されている平均的な API 数は15,564 個であり、直近の12カ月間の増加率は 201% となっています。
また、回答企業の 41% は、この12ヶ月間に API セキュリティ・インシデントを経験し、そのうち 63% はデータの漏洩/損失を伴うインシデントに遭遇したと述べています。
2023年に入ってからも、米国T-Mobile社は、3,700万件の個人情報とアカウント情報が、APIを経由して悪意のある攻撃者から不正にアクセスされたと発表し、Booking.comでOAuthの実装に設定ミスがあり、同サイトで深刻なアカウントの乗っ取り攻撃が可能になっていたという報告がありました。
何しろ、攻撃者から見ると、時間をかけてシステムに侵入し、特権昇格や横展開などの技を駆使してやっと目標としていたデータにたどり着くという手間のかかる作業が、APIの中身をわきから眺められれば機密情報が手に入るということになりますので、APIへの攻撃が増えるのも分かるような気がしますね。
次回はAPIについて少し解説してみたいと思います。
2.APIとは? 基本的なおさらい
さて、APIについて簡単におさらいしておきましょう。
APIは、Application Programming Interfaceという言葉の頭文字をとったものです。分かりやすく言うと、パソコンやスマホなどで動作しているアプリケーションやプログラム同士で、基本的にはhttpプロトコルでJsonやXMLなどを使ってデータをやり取りするための連携機能と理解すればよいのかと思います。データのやり取りに使われる形式としては、SOAP(Simple Object Access Protocol)、REST(Representational State Transfer)、GraphQLなどが多く使われているようですね。最近では多くのシステムがユーザーの利便性や開発の効率化などの理由からWeb化されていますが、その際に、利便性を高めるために、APIを活用するケースが増えています。
APIの良いところは、複数のサービス(Webやデータベースなどの他のアプリケーション、プラットフォームなど)が、マルチプラットフォームで(つまり異なるプラットフォームやデバイスの間で)容易にデータ連携ができるというところでしょうか。Webサイトからボタン一つで過去の購入履歴が表示されるというような使い方がされていますね。最近では、Webサイトの作り方そのものもAPIの塊のようなSPA的なものも増えてきているように見受けられます。また、モバイル、IoTやOTなどでもAPIの活用により利便性の高い使い方が試行されています。
しかし、これは攻撃者にとっても絶好のチャンスと見られています。
なにしろAPI通信内を個人情報や機密情報など、攻撃者にとって魅力的な情報が流れているのですから。従来であればWebサイトやアプリケーションサーバを侵害し、特権昇格などを行い、苦労して機密データにたどり着くという長いプロセスが必要だったのが、APIの中をのぞくだけで欲しい情報が無防備にながれているのですから。脆弱なAPIにおいては、端末からの問い合わせの文字列に余分な文字を追加するだけで自分の情報ではなく、他人の情報を表示させるというようなことが可能になります。あるいは、一般会員でアクセスしているのに、ボタンを押したときに流れるAPIのパラメータに自分は管理者であるというコマンドを追加したら管理者としてシステムが管理しているデータを全部見ることができてしまうというような芸当も可能になってしまうのです。
設定が甘かったり、脆弱な状態を放置しておくと、外部からデータが好きなように持ち出されるというようなことにもなりかねないので、脆弱性は放置してはいけないということで合意いただければ幸いです。
3.APIセキュリティの脅威と対策
本日は、脆弱性を放置しないための対策について簡単にお話ししたいと思います。
基本的な対策としては、Webサイトと同じで、まずは脆弱性をなくすところから始める必要があります。Webサイトの脆弱性についてはOWASP Top 10と呼ばれる有名なものがあります。APIについては、OWASP Top 10 API Security Risksというものが公開されていて、APIについてはこちらを意識して脆弱性対策を行うことが基本とされています。こちらについては、2023年6月に新しいVersionがリリースされました。参考のために以下に記します。
OWASP Top 10 API Security Risks 2023(2023年6月)
・オブジェクトレベルの認可の不備
・認証の不備
・オブジェクトプロパティレベルの認可不備
・制限のないリソース消費
・機能レベルの認可の不備
・機密性の高いビジネスフローへの無制限のアクセス
・サーバーサイドリクエストフォージェリ
・セキュリティの設定不備
・不適切なインベントリ管理
・APIの安全でない使用
Webサイトの脆弱性でSQLインジェクションなどのインジェクション系のものがあるのに、APIは気にしなくてよいというとらえ方はしないようにしましょう。あくまでもこれは上から優先度の高いものを10個並べただけですので、インジェクション系もWebサイトと同じように脆弱性を確認する必要があります。
Webアプリやモバイルアプリなどから使う目的で自社開発したAPIによるデータ連携などを行っている場合は、Webの脆弱性診断やモバイルアプリの脆弱性診断とAPIの診断をあわせて行うことで、セキュリティの第一歩を踏み出したということになります。なお、非常に機密性の高い情報を取り扱っているような場合には、資金と時間に余裕があれば、脆弱性診断にとどまらずペネトレーションテストという、診断員が攻撃者の視点で実際に侵入や情報の窃取ができないかまで試行するような診断サービスもありますので、検討してみるとよいかもしれません。
なお、APIを使っている場合でも、Google、Amazon、Facebookやその他SaaS型のサービスで提供されているAPIについては、提供側が十分に脆弱性の診断をしたうえで提供されていることになっていますので、ユーザー側での診断は通常おこないません。詳しくは提供ベンダーにお問い合わせください。
長くなりますので本日はこれくらいにして、次回でちょっと気になることを書かせていただきます。
4. API脆弱性対策の具体的な方法
API診断をしてみようとすると、診断会社からパラメータシートというものの提出を求められることがあると思います。
APIの数が少ない場合にはユーザーの負担もそれほどでもないかもしれませんが、数百に及ぶような場合は、パラメータシートを用意するのが非常に重たい作業となり、断念してしまうケースもあるようです。
診断会社によっては仕様書をお客様からお預かりしてパラメータシートをお客様に代わって作成してくれるようなサービスもあるようですので、そのようなサービスを使うと事前準備は大分楽になると思われます。
レイ・イージス・ジャパンでも何とかお客様の手間を減らす方法はないものかと検討しております。APIの一覧をいただき、お客様のサイトにアクセスをさせていただくことができる場合にはパラメータシートに落とし込むというサービスができないかを検討中ですので、今後の発表をお待ちください。
また、シャドーAPIと言われるような開発用に作ったが本番には使われなかったAPIの残骸が関係者の知らない中で残ってしまっているケースもあります。
これらが実際に機密情報にアクセスできる仕組みを持っていた場合には、攻撃者にとっての格好の攻撃対象となってしまいます。これらについては、APIのインベントリなどを行うようなサービスや製品もいくつか現れてきています。弊社でも2024年中にサービスあるいは製品として市場投入を予定しておりますので、プロトタイプでのお試しなどご興味のある方は弊社営業までお声がけください。
最後のほうで宣伝っぽくなってしまいましたが、今回も長い文章におつきあいいただきましてありがとうございました。
5.API診断における課題と解決策
ところでAPIに関してはWAFの有効性はどんなものなのだろうかと個人的に興味がわいてきました。
あまり声高にAPIも任せろと言っているベンダーは少ないようですが、クラウド型やオンプレミスのWAF製品でAPIに対応しているとの説明を二つほど目にしました。これらの製品が実際にどこまで対応できているのかご存知の方がいらっしゃったら教えていただけるとありがたいです。APIのインベントリを行うような製品は、ゲートウェイ型のソリューションなどいくつか出始めているようですが、まだ出始めのためか高額なもののようです。
今後色々なベンダーが参入してくるものと予測されますが、弊社でも米国や台湾の一部のお客様では、隠れAPIを見つけたり、危険なAPI通信を検知することのできる製品のプロトタイプを使っていただいております。
弊社も診断以外に、クラウド型のWAF、クラウド型のSandbox、SOCサービスなどの領域にも少しずつ手を出しておりますが、診断でまず一歩、防御メカニズムで第二歩といった感じで対策を考えてゆくべきなのだろうと思っております。
新しい製品やサービスなどについては、夏以降随時アナウンスしてゆくつもりでおりますので、弊社ホームページも時折眺めに来ていただけると幸いです。
また、面白そうな話題を見つけたらメールさせていただきます。
以上