注目キーワード

メタCセキュリティ物語~DNS編・ネットワークの住所録を狙う罠~

この記事は、セキュリティ資格学習のために、AI(Claude)と共同で作成したコンテンツです。
※間違った解釈がある可能性があります。

この記事の目的

セキュリティの専門用語は、カタカナや略語が多く、初学者にとって非常に取っつきにくいものです。
そこで、専門家じゃなくてもわかるようにストーリー風に構成してみました。

📍 結城の計画

深夜2時。結城は自室のモニターを睨みつけていた。

「慎也…お砂糖(里見)…あなたたちがメタCで楽しそうにしているのが許せない」

結城の手元には、メタCのネットワーク構成図が表示されている。

「調べたら、慎也はメタC社から企業向けワールドの制作を業務委託されてるのね。ということは、開発者用VPNに接続している…」

結城の唇が不気味に歪んだ。

「VPN接続中は、メタC社内のDNSサーバーを使うことになる。そのDNSを乗っ取れば、山本を偽のサイトに誘導できる」

「DNSキャッシュポイズニング…インフラエンジニア時代に学んだ技術。山本には理解できないだろうね」

キーボードを叩く音だけが、静かな部屋に響いた。


💑 平和なひととき

その頃、慎也と里見は、メタCの二人だけのプライベートワールドで、夜景を眺めていた。

慎也は業務委託で企業向けワールドを制作中で、メタC社の開発者用VPNに接続している。

「今日もお疲れ様、お砂糖。最近、結城からの接触が減ったね」

慎也が安堵の表情で言った。

「うん…でも油断は禁物よ。静かなときほど、何か企んでいる可能性があるわ」

里見が心配そうに答える。

「お砂糖は心配性だなぁ。でも、そういうところも好きだよ」

「もう…慎也ったら。でもね、セキュリティって『心配性』が大事なの。楽観視した瞬間に攻撃されるものよ」

二人は手を繋ぎながら、キラキラと輝く夜景を眺めた。

「ねぇ、里見。さっき『DNS』って言ってたけど、それって何?」

「あ、説明するね。DNSはインターネットの基本中の基本なんだけど、実はすごく狙われやすいの。特に、慎也が今使ってるメタC社のVPN接続中は、会社のDNSサーバーを使ってるから、そこが狙われる可能性もあるわ」


📖 里見の解説:DNSの仕組み

DNS(Domain Name System:ディーエヌエス)

「DNSは、インターネットの住所録みたいなものよ」

里見が分かりやすく説明を始めた。

DNSの役割

  • 人間が覚えやすい名前(ドメイン名)を、コンピュータが理解できる数字(IPアドレス)に変換する
  • 例:「www.meta-c.com」→「192.168.1.100」

身近な例え

「友達に電話するとき、電話番号を覚えてる?」

「いや、名前で検索してかけるよ」

「そう!スマホの連絡先アプリと同じ。『山本慎也』という名前から電話番号を探してくれるでしょ?DNSも同じで、『www.meta-c.com』という名前から『192.168.1.100』というIPアドレスを探してくれるの」


FQDN(Fully Qualified Domain Name:完全修飾ドメイン名)

「FQDNは、住所のフルネームね」

FQDNの構造

www.meta-c.com.
 ↑   ↑    ↑  ↑
ホスト名 ドメイン名 最後のドット

身近な例え

「『東京都渋谷区○○1-2-3 メタCビル 5階』みたいに、一番詳しい住所がFQDN。『メタCビル』だけだと、どこのメタCビルか分からないでしょ?」

「なるほど!完全な住所ってことか」


hostsファイル

「hostsファイルは、パソコン内のメモ帳みたいなもの」

hostsファイルの役割

  • DNSサーバーに問い合わせるに、まずhostsファイルを確認
  • 「この名前はこのIPアドレス」と手書きで記録できる
  • DNSより優先される

身近な例え

「よく電話する人の番号を、スマホの連絡先に登録する前に、手帳にメモしておくでしょ?

hostsファイルは、そのメモ帳。DNSという大きな電話帳を見る前に、まず自分のメモ帳を確認するの」

危険性

「でもね、このhostsファイルを勝手に書き換えられると…」

「え、どうなるの?」

「例えば、『www.meta-c.com = 192.168.1.100(本物)』を『www.meta-c.com = 10.0.0.99(偽物)』に書き換えられると、偽サイトに飛ばされちゃう」

「怖い…!」


DNSの問い合わせの流れ

「DNSがどう動くか、図で見てみよう」

【DNSの名前解決の流れ】

1. あなた:「www.meta-c.comのIPアドレスは?」
   ↓
2. リゾルバ(DNSキャッシュサーバー):「キャッシュにあるかな?…ないから上に聞こう」
   ↓
3. ルートDNSサーバー:「.comのことは、.com担当に聞いて」
   ↓
4. .com DNSサーバー:「meta-c.comのことは、meta-c.com担当に聞いて」
   ↓
5. meta-c.com DNSサーバー:「www.meta-c.comは192.168.1.100だよ!」
   ↓
6. リゾルバ:「192.168.1.100です!(キャッシュに保存しとこ)」
   ↓
7. あなた:「ありがとう!192.168.1.100にアクセスします」

身近な例え

「学校で『山本慎也くん、どこ?』って探すとき、まず友達(リゾルバ)に聞くでしょ?

友達が知らなかったら、先生(ルートDNS)に聞いて、先生が『3年A組の担任に聞いて』って言って、担任の先生(権威DNSサーバー)が『あそこにいるよ』って教えてくれる。そんな感じ」


リゾルバ(DNSキャッシュサーバー)

「リゾルバは、代わりに調べてくれる秘書さんね」

リゾルバの役割

  • ユーザーの代わりにDNSサーバーに問い合わせ
  • 一度調べた結果をキャッシュ(一時保存)する
  • 次回同じ質問があったら、キャッシュから即答

身近な例え

「会社の秘書さんが、『この人の連絡先は?』って聞かれたとき、一度調べたらメモしておいてくれるでしょ?

次に同じ人の連絡先を聞かれたら、メモから即答。それがリゾルバのキャッシュ機能」


DNSの4つのレコード

「DNSには、いろんな種類の『電話帳の書き方』があるの」

1. Aレコード(Address Record:アドレスレコード)

役割:ドメイン名をIPv4アドレスに変換

www.meta-c.com → 192.168.1.100

身近な例え

「『山本慎也』→『090-1234-5678』みたいに、名前から電話番号を引く、一番基本の登録方法」


2. CNAMEレコード(Canonical Name:別名レコード)

役割:別名(エイリアス)を設定

blog.meta-c.com → www.meta-c.com → 192.168.1.100

身近な例え

「『慎也』『しんちゃん』『やまちゃん』、全部同じ人でしょ?CNAMEは『別名も同じ人だよ』って登録する方法。blog.meta-c.comもwww.meta-c.comも、同じサーバーを指すの」


3. PTRレコード(Pointer Record:逆引きレコード)

役割:IPアドレスからドメイン名に逆変換

192.168.1.100 → www.meta-c.com

身近な例え

「普通は『名前→電話番号』だけど、PTRは『電話番号→名前』の逆引き。知らない番号から電話がかかってきたとき、『この番号、誰?』って調べるでしょ?それがPTRレコード」

用途

  • メールサーバーの正当性確認(スパム対策)
  • ログ解析(IPアドレスから接続元を特定)

4. MXレコード(Mail eXchange:メール交換レコード)

役割:メールサーバーの宛先を指定

meta-c.com のメールは mail.meta-c.com (192.168.1.200) へ

身近な例え

「会社宛ての郵便物は、『総務部に届けてください』って書いてあるでしょ?

MXレコードは『このドメイン宛のメールは、こっちのサーバーに送ってね』という指示書」

優先度

  • MXレコードには優先度(プライオリティ)がある
  • 数字が小さいほど優先度が高い
  • メインサーバーがダウンしたら、予備サーバーに送る
meta-c.com  MX 10 mail1.meta-c.com (優先)
meta-c.com  MX 20 mail2.meta-c.com (予備)

WHOIS(フーイズ)

「WHOISは、ドメインの登録情報を調べるデータベース

WHOISで分かること

  • ドメインの所有者
  • 登録日・更新日・有効期限
  • ネームサーバー(DNSサーバー)
  • 管理者の連絡先(最近は代理公開が多い)

身近な例え

「不動産の登記簿みたいなもの。『この土地(ドメイン)の持ち主は誰?いつ買った?』って情報が公開されているの」

使い方

whois meta-c.com

セキュリティでの用途

  • 怪しいサイトの運営者を調査
  • フィッシングサイトのドメイン登録日確認(新しいドメインは怪しい)
  • 攻撃者の情報収集

「なるほど…DNSって奥が深いんだね」

「そう。そして、このDNSを悪用する攻撃が『DNSキャッシュポイズニング』なの」


⚠️ 結城の攻撃開始

その時、メタCのシステムに異変が起きていた。

結城は、メタC社内のDNSサーバーに偽の応答を送り込んでいた。

DNSキャッシュポイズニング(DNS Cache Poisoning)

  • DNSサーバーのキャッシュに偽の情報を混入させる攻撃
  • 正規のDNS応答より早く、偽の応答を送り込む
  • ユーザーが正しいドメイン名を入力しても、偽サイトに誘導される

攻撃の流れ

1. 山本がメタC社の開発者用VPNに接続中
   → 自動的にメタC社内のDNSサーバー(192.168.1.53)を使用
   ↓
2. 山本が「www.meta-c.com」にアクセスしようとする
   ↓
3. VPN経由でメタC社のDNSサーバーに問い合わせ
   ↓
4. 結城が正規の応答より早く偽の応答を送信
   「www.meta-c.com = 10.0.0.99(結城の偽サーバー)」
   ↓
5. DNSサーバーが偽の情報をキャッシュに保存
   ↓
6. 山本が偽サイトに誘導される

「完璧…VPN接続中の山本は、必ず会社のDNSを使う。これで山本とお砂糖は、私の作った偽のメタCサイトに飛ばされる。そこで二人の会話を盗聴して、ログイン情報を盗む…」

結城の計画が、静かに動き出していた。


🔍 異変の検知

山本がメタCにログインしようとした瞬間、里見が異変に気付いた。

「待って、慎也!このログイン画面、おかしい…」

「え?普通に見えるけど…」

「URLをよく見て。本物は『https』なのに、これは『http』。それに証明書エラーが出てる」

里見が素早くコマンドプロンプトを開いた。

C:\> nslookup www.meta-c.com
サーバー: meta-c-dns.internal
アドレス: 192.168.1.53  (メタC社内のDNSサーバー)

名前:    www.meta-c.com
アドレス: 10.0.0.99  ← 本来は203.0.113.100のはず!

「やっぱり…VPN経由で使ってる社内DNSが汚染されてる!」

「えっ、どういうこと!?」

「DNSキャッシュポイズニング。メタC社のDNSサーバーのキャッシュに偽の情報が入ってる。慎也、絶対にログインしないで!すぐにVPNを切断して!」


🛡️ 防御と対策

里見は、すぐに佐藤に連絡した。

「佐藤さん、DNSキャッシュポイズニングです!すぐにキャッシュをクリアしてください!」

佐藤が冷静に対応する。

「了解。すぐにログを確認します」

数分後、佐藤がメタCのDNSサーバーのログを解析した結果を報告した。

「やはり…不正なDNS応答が大量に記録されていました。送信元IPアドレスは…」

「結城のIPアドレスですね」

里見が冷静に分析する。

対策

  1. DNSキャッシュのクリア:汚染されたキャッシュを削除
  2. DNSSEC導入:DNS応答に電子署名をつけて改ざん防止
  3. 送信元ポートのランダム化:攻撃者が偽応答を送りにくくする
  4. 最新のDNSソフトウェア:脆弱性対策済みのバージョンに更新

「すぐに実施します。ユーザーには緊急メンテナンスのお知らせを…」

佐藤の素早い対応で、被害は最小限に抑えられた。


💑 安堵のひととき

攻撃が阻止された夜、慎也と里見は再びプライベートワールドで話していた。

「里見、本当にありがとう。もしあのままログインしてたら…」

「大丈夫よ、慎也。私がいつも守るから」

里見が優しく微笑んだ。

「でも、結城ってすごい技術力だね…怖いよ」

「そうね。だからこそ、私たちももっと勉強しないと。DNSの仕組みを理解しておけば、こういう攻撃にも気付けるの」

「うん…里美から学ぶこと、まだまだたくさんあるな」

「慎也も成長してるわよ。最近、セキュリティの質問が鋭くなってきた」

「えへへ、美里が良い先生だから」

二人は手を繋ぎながら、星空を見上げた。

「ねぇ、慎也。将来、二人でセキュリティの会社を作らない?」

「え…!」

「冗談よ。でも、いつか一緒に働けたらいいな、って思ってる」

「僕も…里美と一緒なら、どんな困難も乗り越えられる気がする」

「ありがとう。じゃあ、次はDHCPについて教えるね。ネットワークの自動設定の仕組みよ」

「うん、楽しみ!」

二人の絆は、試練を乗り越えるたびに深まっていった。


😤 結城の悔しさ

一方、結城は自室のモニターを拳で叩いていた。

「くっ…また(慎也の)お砂糖に邪魔された!」

ログには、「DNSキャッシュクリア完了」「DNSSEC有効化」の文字が並んでいた。

「お砂糖…あなた、相当な技術力ね。でも、まだまだ手はある」

結城の目が、次の標的を捉えた。

「DHCP…ネットワークの自動設定。ここを乗っ取れば、もっと巧妙に…」

結城の復讐は、まだ終わらない。

次なる攻撃の準備が、静かに進んでいた。


📚 用語まとめ

用語 読み 意味・用途
DNS ディーエヌエス Domain Name System。ドメイン名をIPアドレスに変換するシステム。インターネットの住所録。
FQDN エフキューディーエヌ Fully Qualified Domain Name(完全修飾ドメイン名)。ホスト名を含む完全なドメイン名。例:www.meta-c.com
hostsファイル ホスツファイル ローカルPCに保存される、ドメイン名とIPアドレスの対応表。DNSより優先される。
リゾルバ リゾルバ ユーザーの代わりにDNSサーバーに問い合わせを行うプログラム。DNSキャッシュサーバーとも呼ばれる。
Aレコード エーレコード Address Record。ドメイン名をIPv4アドレスに変換するDNSレコード。
CNAMEレコード シーネームレコード Canonical Name。ドメイン名の別名(エイリアス)を定義するDNSレコード。
PTRレコード ピーティーアールレコード Pointer Record。IPアドレスからドメイン名への逆引きを行うDNSレコード。
MXレコード エムエックスレコード Mail eXchange。メールサーバーの宛先を指定するDNSレコード。優先度設定が可能。
WHOIS フーイズ ドメイン名の登録情報(所有者、登録日、有効期限など)を検索できるサービス。
DNSキャッシュポイズニング ディーエヌエスキャッシュポイズニング DNSサーバーのキャッシュに偽の情報を混入させ、ユーザーを偽サイトに誘導する攻撃。
DNSSEC ディーエヌエスセック DNS Security Extensions。DNS応答に電子署名を付けて改ざんを防ぐセキュリティ技術。

🎯 試験対策ポイント

DNSの問い合わせ順序(重要!)

  1. hostsファイルを確認(最優先)
  2. DNSキャッシュを確認
  3. リゾルバがDNSサーバーに問い合わせ
  4. ルートDNS → TLD DNS → 権威DNSサーバーの順に問い合わせ

4つのDNSレコードの使い分け

  • Aレコード:基本の名前解決(ドメイン→IP)
  • CNAME:別名設定(blog.example.com → www.example.com)
  • PTR:逆引き(IP→ドメイン)、スパム対策に使用
  • MX:メールサーバー指定、優先度あり

DNSキャッシュポイズニング対策

  • DNSSEC:電子署名で改ざん検知
  • ポート番号のランダム化:攻撃を困難にする
  • 最新ソフトウェア:脆弱性対策
  • キャッシュの適切な管理:TTL(Time To Live)の設定