こんにちは、ひろかずです。
前回の記事で実施した、DNSレコードの棚卸しがまあまあ面倒でした。もう少し楽にできたらなと思ったので、一筆書きます。
忙しい人向けの要約
- BlackpandaのIR-1という製品のASM機能を使って、検出されたDNSレコードを中心に棚卸しするというアプローチです。
- スキャンからレポートの作成まで、ゼロクリックでした。
- DNSレコードの厳密な棚卸しとは趣が異なりますが、リスクのあるDNSレコードや外部に公開しているリソースを検出し、それをトリガーにDNSレコードを緩く管理するアプローチはアリなのではないでしょうか。
なにが起きたの?
「サブドメインテイクオーバーされてますよ」というEthical Disclosure(倫理的な開示)を起点として、影響のありそうなDNSレコードを棚卸しを行いました。(前回記事:CN、サブドメインテイクオーバーされたってよ)
たくさんあるDNSレコードから、AレコードとCNAMEレコードを対象にひとつひとつアクセスして、どのような挙動をするのかを確認するのが手間だったわけです。
対象のドメインはひとまず棚卸しできたのですが、それ以外のドメインについても同様に確認する必要があり、少し面倒だなと思っていました。
どうしたの?
ちょうどその頃、Blackpandaというサービスについて中の人と会話する機会があり、ASM機能 ( Attack Surface Management ) に年一回のインシデント対応チケットが付帯している「IR-1」というサービスの紹介を受けたことを思い出しました。
ASM機能で検出したサブドメインテイクオーバーのリスクがあるドメインを中心に調査すれば、少しは楽になるのではないかと考えたわけです。
ASM ( Attack Surface Management ) ってなに?
令和 5 年 5 ⽉ 29 ⽇に経済産業省 商務情報政策局 サイバーセキュリティ課が公開している「ASM (Attack Surface Management)導⼊ガイダンス」によると、以下のように定義されています。
組織の外部(インターネット)からアクセス可能な IT 資産を発⾒し、 それらに存在する脆弱性などのリスクを継続的に検出・評価する⼀連のプロセス
ASM (Attack Surface Management)導⼊ガイダンスより
ここでは、外部(インターネット)からアクセス可能なIT資産のことを特に「攻撃表面」と定義しています。
- 一方で、NIST SP800-53「Security and Privacy Controls for Information Systems and Organizations」では、特に外部・内部については言及されていません。
Blackpanda IR-1はASMで何をしてくれるの?
Blackpanda IR-1は、登録したDNSゾーン(FQDN)のDNSレコードに対して、以下のような行為を行います。これは、ペネトレーションテスト(侵入テスト)ではなく、攻撃者が外部のシステムやサービスから企業を攻撃するのがどれほど簡単か / 困難かを推定するために使う、最初のスキャンによく似ています。
- Target identification and enumeration(ターゲットの識別と列挙)
- 対象となる攻撃サーフェスの発見・列挙のためのOSINTスキャン(公開情報からの検索や分析)
- ポートスキャン
- ネットワーク脆弱性スキャン
- Web脆弱性スキャン
Blackpanda IR-1は、検出事項をレポートとしてまとめ、提供してくれます。
Blackpanda IR-1を試してみる
善は急げです。BlackpandaにASM機能でスキャンする対象ドメインと管理者の連絡先を伝えて申し込みました。
- 対象ドメインは、まだ棚卸しをしていない開発で使われているものを選択しました。
テナント発行のメールが来てから5時間くらいでASMスキャン完了のメールが来ました。
早速ログインして、内容を確認してみると、スキャン結果のサマリーが掲載されています。
- 重大の検出もありますね。

レポートを読んでみる
全体として非常に読みやすいレポートでした。
検査項目に対して、問題がなかった項目と検出された項目が一目でわかる内容となっています。
レポートの目次は以下のような内容でした。
アセスメントの概要
発見事項
- 公開されたサービス
- リモートアクセスサービス
- データベースサービス
- システムサービス
- Webサービス
- ファイアウォールの問題
- システム セキュリティ
- 古いソフトウェア
- ソフトウェアの既知の脆弱性
- ソフトウェアの設定ミス
- SSL/TLS設定
- Webセキュリティ
- Webアプリケーションの脆弱性
- Webデータ漏えい
- Webサーバーのヘッダー
- Cookie(クッキー)の設定
- 侵害された資産
- Eメールの侵害
- 感染したホスト
- 不審な動き
- DNS設定
- DNSセキュリティ
- Eメール認証
検出されたIT資産とサブドメイン
アセスメントの方法
免責事項
お目当ての検出を発見
重大な検出事項として、DNSレコードの古さを理由に、サブドメインテイクオーバーの可能性があると指摘されています。
- もちろん、サブドメインテイクオーバーされているかどうかは、自分で確認する必要があります。

その他にも脆弱性が指摘される
検証環境で使っているメールドメインにDKIMとDMARCのDNSレコードが設定されていないことが指摘されていますね。

サービスインフラで利用しているSSLの脆弱性についても指摘されています。

開発サーバーの存在や、停止しているシステムについても指摘がなされました。
- 本来は本番ドメインに対してスキャンをかけるので、本番ドメインに混ざっている開発環境を見つける上では役に立ちそうですね。
- サブドメインの名前から類推して指摘する場合もあるようです。

DNSレコードの棚卸しは楽になったの?
通常の棚卸しとは違う、「リスクベースでの棚卸し」という形にはなりましたが、DNSレコードの一覧を眺めて、ひとつひとつ確認する作業をするよりは、遙かにやりやすくなりました。
- ひとつの検出事項を皮切りに、今はもうあまり使われていない古いシステムが見つかった場合は、システムごと棚卸しするチャンスでもあると言えます。
- 棚卸しというと、年に1~2回行う退屈なイベントになりがちですが、脆弱性の検出と対応が重なると張り合いが出てくるのは私だけでしょうか?
もちろん、検出事項は鵜呑みにできず、それぞれ何に使われているのか、所有者は誰なのか、設定したのは誰なのか確認する必要はあります。なにより、ここまでのレポートが出るまでゼロクリックだったのが嬉しいところです。
おまけ
Blackpanda IR-1が嬉しいユースケース
今回は、DNSレコード棚卸しの切り口でBlackpanda IR-1を利用しましたが、本来であれば以下のようなユースケースで使うと嬉しいのではないのでしょうか。
公開サービスの脆弱性スキャンが定期的にできる
自社がインターネットや顧客にサービスを公開している場合、それらの脆弱性管理には気を遣うところです。
侵入テストは別途行う必要はありますが、攻撃の取り掛かりとなる攻撃表面をあらかじめケアするきっかけが得られるのは嬉しいと思います。
設定ミスや放置された脆弱性を検出できる
ファイアウォールの設定ミスやトラブルシュートで一時的にIP制限が解除したまま戻し忘れているリソースや、VPN装置の脆弱性が放置されていることを気づくのはなかなか難しいです。
これらのアタリをつけてもらえるだけでも、価値あるものと言えるでしょう。
フォレンジックサービスの先行予約チケットが1枚付いてくる
インシデントレスポンスの際、侵害されたPCやサーバーをフォレンジックする場合、専門のフォレンジック業者に依頼することになります。
しかし、どのフォレンジック業者に連絡するか?どのような手続きが必要になるか?を整理していないケースをよく見かけます。
- しかも、フォレンジック業者が忙しく、対応を断られることもままあります。
もしもの備えとして、フォレンジックサービスの先行予約チケットが1枚ついてくるのは、悪くはない話ではないでしょうか。
DNSレコードからリソースの管理者を特定する
検出事項に基づいてDNSレコードを調査する過程や是正のタイミングで、リソースの管理者にヒアリングしたくなる場面があります。
そんなとき、Slackなどで社内に呼びかけると思いますが、昔に設定されたDNSレコードやリソース名ではピンとこないこともありそうです。
検出されたDNSレコードの向き先がS3に静的ホスティングされたWebサイトだったので、その作成者を探すことにしました。
CloudTrail Lakeを使って、DNSレコードが指し示しているS3の作成者を特定する。
プロンプトで「<バケット名>を作ったユーザーを教えてください」という意味の文章を英語で入力してクエリを生成すると、意図通りの検索クエリーが生成されました。

実行してみると、バケットを作成した人を特定できるユーザー名が表示されました。

担当者に直接連絡して、対応完了です。

おわりに
今回はASMを使って、リスクベースのアプローチでDNSレコードを棚卸しを楽にしてみました。
まだまだ改善の余地がありそうですので、いろいろ試していきたいですね。
今日はここまでです。
お疲れ様でした。