※この記事は 2021 年 8 月 20 日公開のYouTube動画を元に記事化されました※
セキュリティの専門家が攻撃者と同じ視点でシステムに侵入し、機密情報、個人情報などの情報資産の奪取を試みる「ペネトレーションテスト」。脆弱性診断が網羅的にシステムの脆弱性を評価するのに対し、ペネトレーションテストは機密情報、個人情報などの情報資産に対する脅威への対策状況を評価します。
ホワイトハッカーで構成されたセキュリティ脆弱性診断企業、株式会社イエラエセキュリティによる「イエラエセキュリティ 脅威動向レポート」の第 6 回目は、イエラエセキュリティ 高度解析課 三村聡志氏と、イエラエセキュリティ ペネトレーションテスト課で実際にさまざまなペネトレーションテストに携わり、また「ペネトレーションテストの教科書」の著者でもある川田柾浩が「OSINT」について解説します。
●OSINTとは?
三村聡志(以下、三村):川田さんは本も出されていて、私も最近読みましたが、「OSINT」(オシント:Open Source Intelligence、公開されている情報をもとに、情報分析を行う手法)にかなりページが割かれていました。OSINT については、世の中に怪しげな情報も出回っていますが、実際のペネトレーションテストでの OSINT について教えてください。

●ドメイン、メールアドレス、SaaS
川田柾浩(以下、川田):最も一般的なところからご説明すると、まず一番最初に行うことは、お客様が管理されているドメインやネットワークを明らかにすることです。 お客様が管理されているドメインは、ペネトレーションテストを行う際にはエントリーポイントとなり得ますので、まずそこを洗い出します。また今後、ペネトレーションテストで攻撃していくうえで、お客様の管理下にないものを攻撃してしまうと契約上の問題にもなりますので、まず一番最初にお客様の管理下にあるアセットを洗い出します。
次にメールアドレスや、それに付随するパスワードを収集していきます。これらは、SaaS(サーズ:Software as a Service)にログインするために収集します。パスワードが付随していなくても、メールアドレスはペネトレーションテストでのフィッシングの対象となります。
お客様の管理下にあるドメインはサブドメインも含めて洗い出して、ポートスキャンや Web のスクリーンショットを集めます。こうした調査によって、サーバー上でどういったサービスが動いているか、古いソフトウェアが残っていないか、さらには SSL-VPN のような、お客様にとって重要性の高いソフトウェアを見つけることもできます。
あとはお客様によりますが、どういった SaaS が導入されているかを調査することもあります。例えば、Microsoft 365 であれば、365 を使っているかどうかは、API を使って調査できます。あとは MXレコードに、Google のメールサーバーが指定されていれば、Gスイートが導入されている可能性が高くなります。

●ツールだけではなく、手動でも調査
メールアドレスを収集する際に、対象となるドメインが新しい場合は、認証情報やメールアドレスが漏えい情報としてはまったく収集できないことがあります。そうした時は手動で情報を探っていく必要があり、Microsoft 365 であればログインページから任意のメールアドレスが存在するかどうかが調査できますので、コーポレートサイトから役員の氏名を収集して、メールアドレスの命名規則を推測しながらメールアドレスをチェックしていきます。
メールアドレスの命名規則が特定できれば、その次は LinkedIn(リンクトイン)やフェイスブック(facebook)から社員の氏名を集めれば、そこから命名規則に則ってメールアドレスを集めることができます。
これは実際にあったケースですが、調査対象の会社が保有していたネットワーク機器の IPアドレスを Google で検索すると、ある社員が技術系フォーラムにアップした質問が見つかり、IPsec-VPN の設定情報が一気に取れてしまったケースがありました。暗号化されたパスワードなどが含まれていて、その時はたまたま復元可能な形式だったので、IPsec-VPN の事前共有鍵が外部から取れてしまったわけです。
●漏えい情報の精査、GitHubのレポジトリ
少し前に SSL-VPN の脆弱性が話題になりました。その際、攻撃者が入手した認証情報をハッカーフォーラムにアップしたケースがあり、漏洩した認証情報の中にお客様の SSL-VPN に関する情報などが含まれていないかを調査したこともあります。
また今は SNS が当たり前になっており、SNS に GitHub のリンクを設定している人もいます。GitHub のレポジトリを確認して、業務に関わる機密情報が含まれていないかを調査することもあります。
また、SNS の ID などから、Gメールアドレスが推測できれば、そこから氏名の情報を取ることができます。社員が使っている Gメールから認証情報などが漏洩していないかを確認することもあります。
●多岐にわたるOSINT

三村:いろいろと濃密な話になりました。少し整理すると、SaaS をバックエンドで使っている場合は、どういったサービスを使っているかを探り、ドメインに「ms=」などと入っていたら Office 365 の可能性が高いとか、メールアドレス関連では、CNAME に Google が指定してあれば、Gスイーツを使っているだろうというふうに情報を探っていく。
さらには、VPN の情報を漏洩情報と関連づけて検索したり、サービスの脆弱性を調査したり、さらには Gメールから氏名情報が取れるという話もありました。
川田:ペネトレーションテストでは、OSINT は非常に重要な段階です。いかに有益な情報を取ってこれるかがその後のテストを大きく左右します。
三村:OSINT の段階でメールアドレスに加えて、誰が一番高い権限を持っていそうか、ある程度、推測もできます。
川田:フェイスブックなどに役職が書いてあれば、非常にわかりやすくて、特にシステム部門の部長、課長の SNS は重要な情報のひとつになります。
三村:ツイッターなどに、所属とか役職を投稿しているものですか?
川田:ツイッターよりも、フェイスブックやリンクトインのプロフィール欄です。社内でのポジションなどはプロフィール欄から取得するケースが多くなっています。
三村:フェイスブックには、あまりオープンにいろいろな情報を書かない方がいいですね。
川田:もちろんそうした情報のみでは、直接侵入に関わるような情報ではないですが、攻撃者が見ている情報ではあります。
●情報奪取のテクニック
三村:もうひとつお聞きしたいのですが、ドメイン上の設定から、Microsoft のサービスを使っているとか、Google を使っているなどがわかるとして、次にそれらのサービスから情報を奪取してくるような方法やテクニックは、どのようにして研究していますか。

川田:例えば Microsoft 365 であれば、研究がかなり進んでいます。指定したメールアドレスでログイン可能かが確認できる API が存在します。自分で検証したものでは、Outlook の Activesync という API があって、この API を使うと、メールアドレスとパスワードの組み合わせが Microsoft 365 へのログインに使われたかどうかがステータスコードからわかります。
しかし、Activesyinc の仕様が特殊で、特にユーザーが存在しない場合は、レスポンスコードは 403 になるのですが、403 は「認証情報は正しいけれど、ニ要素認証が導入されています」という際のレスポンスコードと今は同一になってしまっています。
なので、ここに関しては GitHub にあるような古いツールをそのまま使っても、認証情報が合っているのかは確かめられない状況になっています。そうしたことは自分で検証して気づいた点ですので、メールアドレスが Microsoft 365 のログインに使えるかどうかを検証できる API と組み合わせることで、認証情報が確認できるツールを自分で作ったりもしています。
SaaS以外のところでも、API については、具体的な案件がない時に、API のドキュメントを読んで、どういった情報を外部から取ることができるのかを研究しています。

三村:面白そうなことをされていますね。それと今話を聞いていてビックリしたのですが、Activesync はまだ使えるのですね。
川田:年内に廃止されるという話もあるので、さきほどの認証情報の確認方法は使えなくなるのですが、現状としては有効な手段として活用しています。
三村:古いAPI が残っていると、穴になる可能性があるという一例にもなります。収集用の API を調査・研究しているなかで、今、注目しているものはありますか。
川田:お客様が管理されているドメインの調査も行っていますが、ドメインについては情報収集を行っているオンラインツールが数多く存在するので、情報収集元がかなり豊富な状態です。一方、ネットワークに関しては、AS については比較的情報収集が可能なのですが、IPアドレスに関する WHOIS の reverse lookup というか、企業名から企業が管理している IPアドレスを WHOIS から取ることは、現状ではかなり難しくなっているので、いい API がないか、探しているところです。
●OSINTはイエラエへ
OSINT は、公開された情報を分析し、システムへの侵入が可能かどうかを検証します。調査結果を利用した侵入、情報奪取の試行も可能です。イライエのペネトレーションテストはお客様の想定脅威を確認し、OSINT をはじめ、標的型攻撃(疑似マルウェア型)、Webペネトレーションテスト、物理環境、調査特化型など、最適なプランをご提案します。