Articles

企業インフラを分析する技術

1. はじめに

なぜ企業インフラを分析する必要があるのでしょうか。

それは標的型攻撃では多くの場合、攻撃者がサイバー攻撃を仕掛ける前にターゲットに対して偵察行為を行い、攻撃を組み立てているからです。
映画の中のように大量のウィンドウが目まぐるしく切り替わる画面を操作しながら物凄いスピードで攻撃を仕掛けているわけではありません。あれはフィクションです。現実ではじっくりとターゲットを調査し攻撃の準備をしています。

防御側も攻撃者と同じ目線で自組織のインフラを分析することによって放置されたネットワーク機器や露出したステージング環境を洗い出すことができます。

この記事は実際に洗い出すテクニックを紹介し自組織のセキュリティ向上に役立ててもらおうという趣旨で書かれています。

2. Passive ReconとActive Recon

Passive ReconとActive Reconは何が違うのでしょうか。

PassiveではDNSレコードや証明書の発行履歴などターゲットに直接リクエストを送らない形で調査します。Activeではポートスキャンやディレクトリサーチなどターゲットと直接やり取りをして現在の状態を確認できます。ただ、ログに残る、対象に負荷をかける可能性があるので許可と範囲管理が必要です。

例えばShodanを見る行為は調査者からすればPassiveですがデータ自体はShodanが能動的に収集したものです。また、DNSも問い合わせ先によっては対象側から観測される可能性があります。

Passiveでは蓄積された情報を広く調べるために使用し、ActiveではPassiveで収集した情報が現在も有効か確かめるために使用するという使い分けが良いと思います。

ただ、本記事ではActive Reconを扱いません。

3. 起点となるドメインを決定する。

起点となるドメインは会社のWebサイトもしくは名刺に書かれているメールアドレスのドメイン名が良いと思います。www.example.commail.example.comではなくて登録ドメインのexample.comを起点に調査を進めます。もし自社で運用しているサービスなどほかに起点となるドメインがあるならそれを含めるのもいいでしょう。

4. 公開情報から資産を洗い出す。

4.1 DNS Dumpster

ドメインを起点にサブドメインやDNSレコードを調べるためのツールはいろいろありますが、DNSDumpsterと呼ばれるサイトが便利です。

https://dnsdumpster.com/
company_osint/dnsdumpster

サブドメイン、使用しているミドルウェア、DNSレコードなどを列挙してくれます。

DNSDumpsterなどで得られたDNSレコードは、種類ごとに見るポイントが異なります。

レコード 分かること 調査で見る理由
A / AAAA ホスト名に対応するIPv4 / IPv6アドレス IPアドレスからASNやホスティング事業者をたどり、インフラの配置を把握できます。ただし、CDNやWAFのIPアドレスが表示されている場合は、接続先がオリジンサーバーとは限りません。
CNAME ホスト名が参照している別のホスト名 SaaS、CDN、クラウドサービスとの関連を推測できます。参照先のリソースが削除されている場合は、サブドメインテイクオーバーの手掛かりにもなります。
MX メールを受信するサーバー Microsoft 365やGoogle Workspace、メールセキュリティサービスなど、利用しているメール基盤を推測できます。
TXT SPF、DMARC、ドメイン所有確認などに使われる文字列 メール送信に利用しているサービスや、導入しているSaaS、クラウドサービスを推測できます。過去に利用していたサービスのレコードが残っている場合もあります。
NS ドメインの権威DNSサーバー 利用しているDNS事業者や、サブドメインが別のDNSへ委任されていることを確認できます。

サブドメインで注目すべきはstgやvpn,adminなど意味を持つサブドメインが割り当てられているかどうかです。

また、近年では企業は様々なSaaSを利用しています。 SaaSで独自ドメインを使用するためにはDNSに特定のTXTやCNANEレコードを追加して認証する方法がよくつかわれています。そのためTXTレコードを見ると導入しているSaaSが判明したりします。

余談ですが、SaaSに独自ドメインを登録したあと、SaaS側のプロジェクトだけを削除してDNSレコードを残すと、そのサブドメインが乗っ取られる可能性があります。DNSDumpsterの結果でHTTPステータスコードが404になっていると、単なるリンク切れとして見過ごしがちです。しかし、AレコードやCNAMEレコードが残ったまま参照先のリソースが削除されている兆候かもしれません。404だけで乗っ取り可能とは判断できませんが、参照先が現在も自組織の管理下にあるか確認したほうがよいでしょう。

4.2 証明書の発行を追う

ctlogs.devというサイトではCertificate Transparency(CT)ログに登録された証明書や発行前証明書を検索できます。

https://ctlogs.dev/ company_osint/ctlogs

検索結果のCNやSANを見ると、証明書の対象として登録されたサブドメインを確認できます。DNSDumpsterでは見つからなかったstg、dev、vpnなどのサブドメインが見つかることもあります。また、証明書の発行者や有効期間から利用している認証局や証明書の更新状況を推測できます。

ただし、CTログに登録された証明書が現在も使われているとは限りません。期限切れの証明書に記録されたサブドメインは過去に使われていた環境を知る手掛かりになりますが、現在も存在するとは限らないので注意が必要です。また、ワイルドカード証明書では個々のサブドメインまでは分からず、同じ証明書や発行前証明書が複数の結果に現れる場合もあります。

4.3 ネットワーク検索エンジン

Shodan、Censys、FOFA

company_osint/shodan

Shodan、Censys、FOFAは細かな違いはありますが、インターネット上に公開されているサービスを継続的に観測し、その結果を検索できるようにしている点では同じです。IPアドレスを検索すると、そのIPアドレスで観測されたポート、サービス、バナー、証明書などを確認できます。

DNSDumpsterで見つけたIPアドレスが外部からどのように見えているのか調べたいときに使います。調査者自身が対象へ直接アクセスせずに確認できますが、表示される情報は各サービスが過去に観測したものなので、必ずしも現在の状態と一致するとは限りません。

ip.thc.org

https://ip.thc.org/ company_osint/ip_thc_org

ip.thc.orgはIPアドレスとドメインの関係を検索できるサービスです。IPアドレスを入力すると、そのIPアドレスに紐づくドメインを収集データから一覧で確認できます。また、登録ドメインから既知のサブドメインを探したり、特定のホスト名を参照しているCNAMEレコードを検索したりできます。

DNSDumpsterやネットワーク検索エンジンで見つけたIPアドレスを起点に、別のドメインや見落としていたサブドメインを探すときに役立ちます。過去の名前解決結果が含まれる可能性もあるので、関連を判断するための手掛かりとして扱うのがよいでしょう。

これらのサービスでIPアドレスを起点に調査するときは、IPアドレスと企業の関係を慎重に判断する必要があります。CDNや共用ホスティングでは1つのIPアドレスを複数の組織が利用しているため、表示されたサービスやドメインがすべて対象企業の資産とは限りません。

4.4 求人サイトやTech Blog

自組織で利用している技術は把握していると思いますが、ここでの目的は、攻撃者が公開情報だけで技術構成や資産の役割をどこまで推測できるか確認することです。

求人情報には業務内容や必須スキル、歓迎スキルとして、企業が利用しているクラウドサービスやプログラミング言語、フレームワーク、データベースなどが書かれていることがあります。インフラエンジニアやSRE、セキュリティエンジニアの求人を見ると、コンテナ、IaC、CI/CD、監視サービスなどの構成を推測する手掛かりになります。

企業が公開しているTech Blogや登壇資料も有力な情報源です。システム構成、サービスの移行、障害対応などが具体的に紹介されていることがあり、DNSレコードやネットワーク検索エンジンから得た情報と組み合わせることで、外部から見える資産がどのような役割を持っているのか推測しやすくなります。

5. まとめ

ここまで企業のインフラを公開情報から洗い出す方法を紹介してきました。
ただ発見して終わるのではなく、発見した後に対策をしていくことも重要です。 例えばSaaSで独自ドメインを使っている場合、SaaSの利用をやめるときに、DNSレコードの削除をサービス廃止手順へ組み込むことも考えなければなりません。 一番大事なのは公開された情報から見つけたものに対してどんなアクションを取るかです。

これらの手法を使って外部の攻撃者からどのように見えるのか、狙いやすい箇所はどこかを確認するために役立てば私はうれしいです。