今日は先日実施した以下の勉強会でkmrrさんが発表したmDNSの動作について調べてみました。
・第9回 初心者のためのセキュリティ勉強会(オンライン開催)
なお、記事にする上で、kmrrさんの了解は頂いていますので、ご安心下さい。
また、内容については個人的な見解であり、悪用を促したりする内容ではありません。
mDNSについて
まずはmDNS(マルチキャストDNS)についてです。
コンピュータネットワークにおいて、マルチキャストDNS(mDNS) はローカルネームサーバーの存在しない小さなネットワーク内でホスト名からIPアドレスを解決するプロトコルである。Zeroconfサービスであり、基本的にユニキャストのDomain Name System (DNS) と同じプログラミングインターフェース、パケットフォーマット、意味論をもつ。Stuart Cheshire(英語版)はmDNSをスタンドアロンプロトコルとして設計したが、標準的なDNSサーバーと協調して動作することもできる。
※Zeroconfサービス:Zeroconf(ゼロ・コンフィギュレーション・ネットワーキング)は、人手による操作を介さず、かつ特別なコンフィギュレーションサーバを使わずに、利用可能な Internet Protocol (IP) ネットワークを自動的に作成する一連の技法である。
出典:https://ja.wikipedia.org/wiki/%E3%83%9E%E3%83%AB%E3%83%81%E3%82%AD%E3%83%A3%E3%82%B9%E3%83%88DNS
とういうことです。
RFCももちろんありますので、詳細を確認したい方は以下のリンクから確認してください。
・RFC 6762 – Multicast DNS 日本語訳
なぜ検証しようと思ったのか
以下のtwitterの投稿とkmrrさんの勉強会の発表がきっかけです。
ブラウザのアドレスバーで検索できて便利やん。でもね、会社でつかうのはやめとき。
mDNSで同じLAN居る人全員に、このアドレス知りませんか?って検索ワードで聞きおるで。
Firefoxは検索窓がアドレスバーの右にあるからアドレスバー検索使う人少なめだろうけど。Chromeの検索窓どやってだすの? pic.twitter.com/NerKXZ57uo— akira_you (@akira_you) July 25, 2021
ブラウザのURLバーに検索ワードを打ち込むとmDNSで、同じNW内にいるマシンにブロードキャストで問い合わせに行く動作になるとのこと。
実際にローカルのマシン(windows)にWiresharkを立て、ブラウザのURLバーに検索をかけてみると以下のようになりました。
※プロトコル「mdns」で引っ掛けています。
「検索ワード.local」といった感じでmDNSプロトコルによってブロードキャストされるようです。
ただし、「検索ワード1 検索ワード2」といった、スペースが入っている場合については該当の動作は発生しません。
また、私の環境においては以下の4つのブラウザで動作検証を行いましたが、mDNSが発生しないブラウザもありました。
・Chrome:mDNS有
・Firefox:mDNS有
・Microsoft Edge:mDNS有
・Internet Explorer:mDNS無
※なぜIEだけ発生しなかったかは不明
何が問題なのか
皆さん会社で仕事用のPCで作業していることでしょう。
その際に、業務に関連する(または近い)内容の検索であれば問題ないかもしれませんが、業務外の内容も検索してしまう場合もあるでしょう。(きっと)
完全に自分の趣味の内容だったり、アダルトな内容であった場合はそのワードは隠したいと思うのが普通です。
※そもそも仕事中に仕事PCでやるなというのはもちろんありますが。うっかりする場合もあるので
また、カフェやコアワーキング等で作業する人も最近は多く、作業場所で検索ワードとして個人情報や機密情報を入力してしまう可能性もあります。
それが同じNW内の他人のマシンにさらされていたとしたら・・・
これは怖いですね。
Twitterの投稿では「ちゃんと検索窓で検索する」とか、「?をつければいいよ」等の記載がありましたが、Windows側の設定で防ぐことが可能だったので、それを紹介します。
※なんかエンジニアっぽくていいやん
なお、設定して不具合が発生しても責任はとれませんので、あくまで自己責任で行ってください。
mDNSを無効にする
mDNSについてはGPO(グループポリシーオブジェクト)の設定を変更することで無効にすることが可能です。
具体的にどこの設定を変えるかというとこの記事を参考にしてやってみます。
Windowsの左下の検索窓に「グループポリシー」と入力すると以下のように「グループポリシーの編集」という機能が表示されるので、これをクリックします。
グループポリシーエディタの以下を選択していきます。
コンピュータの構成>管理用テンプレート>ネットワーク>DNSクライアント
DNSクライアントの一覧に「マルチキャスト名前解決をオフにする」という項目があるので、こちらをダブルクリックします。
クリックすると以下のようになりますので、「有効」にチェックを入れ、適用を押します。
これで、先ほどと同じように検索を行ってもmDNSは送信されないようになっているはずです。
実際に先ほどと同じようにURLバーから検索ワードを入力して検索を行っても、以下のようにWiresharkにはmDNSは表示されません。
これで心置きなく個人的な内容を検索できますね!
最後に注意
mDNSの動作やその制御について記事にしました。
ちなみに社内の規則によっては業務と関係ない検索等を行っていた場合、処分される組織もありますのでちゃんとルールを確認してください。
また、勝手に社用PCのグループポリシーを変更するのは規則的にもセキュリティ的にも危険なので、やらない方がいいです。
変更する場合でも自分で管理している個人PCで行うようにしてください。
不明点や要望やこういったこともやって欲しいとの要望があれば、お問い合わせページやコメント、ツイッターからでも結構ですので、気軽にご連絡ください。
コメント