search
LoginSignup
0

More than 1 year has passed since last update.

posted at

updated at

DoH(DNS over HTTPS) を Cisco Umbrella で扱う

今回は、小ネタですが、表題の通り DoH(DNS over HTTPS) を Cisco Umbrella で扱ってみたいと思います。

はじめに

DoH(DNS over HTTPS)自体の詳細の説明は、いろいろな記事がネット上に転がっているので割愛しますが、ざっくり言うとDNSのプライバシー向上のための技術で、これまでDNSといえば port 53 を使っていた通信を、HTTPS の通信の中でやってしまうという技術です。

最近の Firefox や Chrome ではすでにサポートされています。

プライバシー向上のための技術ですが、DNSレイヤでのペアレントコントロールや、ドメインレピュテーションなど、セキュリティ施策を行う環境においては、アプリケーションが直接HTTPSの通信の中で名前解決を行うため制御が難しいという課題や、またDNSという通信に重要な設定をOSの設定を利用せずにアプリケーションがDoHを管理することで、ブラウザごとの実装の違い、更新などの管理的な課題など、いくつかの課題が議論されています。

また、Firefox の version63 から北米ではデフォルトでDoHを有効にするということでも多くの話題を生んでいます。

Cisco Umbrella も DoH に対応しているので、色々動作について確認してみました。

この記事でやること

  • Firefox / Chrome で DoH を設定し、Umbrella で制御
  • Cisco Umbrella DoH サーバーを使ってみる
  • Dig like DoH クライアントを使ってみる

Firefox / Chrome で DoH を設定し、Umbrella で制御

先に、いくつかの課題を挙げましたが、企業内におけるDNSでのセキュリティ施策をバイパスしてしまうという課題について、例えば、Firefox では canary domain と呼ばれる 'use-application-dns.net' というドメインに対し、名前解決を実行し、名前解決に失敗すれば、DoH を行わないという実装により、回避策を提供しています。
上記、実装に関して Cisco Umbrellaなど、DNSサーバー側で対応済みであれば、デフォルトで、DoHが有効になりません。ただし、ユーザーがマニュアルでDoHを有効にする場合は、canary domain は使われない という仕様1 になっており、上記課題が残ります。
Chromeにおいては、上記のcanary domain の手法を取っていません(この手法を取り入れる予定もないとのこと2)。Chromeでは、より保守的なアプローチとして、システム側のDNSとして設定されているDNSサーバーが DoH に対応している場合に限りDoHをプライバシー向上の手段として使います。

Umbrella での DoH のブロック

Cisco Umbrella においては、設定で、DoHをブロックすることができます。
Cisco Umbrella のポリシー設定において "Proxy/Anonymizer" カテゴリをブロックします。そうすることで、DoHのサーバーに対する名前解決を制限し、結果として、ブラウザは、アプリ内で設定したDoHはなく、システムで設定された DNS を利用します。

実際に DoH をブロックするポリシーが設定された環境で、DoH を使うとどうなるか見てみましょう。

下記のように、Umbrella のレポート上では、設定したPolicy によって DoH のサーバーへの通信がブロックされます。

image.png

ブロックの動作としては、Umbrella 側で、DNS のレスポンス変更しています。 Googleが提供する DoH サーバー dns.google に対して 名前解決をしてみると... 
レスポンスが本来の 8.8.8.8 ではないのがわかると思います。

$ dig dns.google

; <<>> DiG 9.10.6 <<>> dns.google
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 65103
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;dns.google.            IN  A

;; ANSWER SECTION:
dns.google.     0   IN  A   146.112.61.106  <--- 本来の 8.8.8.8 が書き換わっている

;; Query time: 7 msec
;; SERVER: 208.67.222.222#53(208.67.222.222)
;; WHEN: Tue Dec 01 11:35:44 JST 2020
;; MSG SIZE  rcvd: 55

ブラウザではこの状態でも、ブラウジングに問題はありません。通信に DoHのサーバーではなく、システムのDNSサーバーを使っています。

上記の通り、Umbrellaが提供する DoH のブロックは、あくまで DoH サーバーへの名前解決のレイヤで Cisco Umbrella がコントロールを行っています。

Cisco Umbrella DoH を使ってみる

2020年の5月に Umbrella も DoH に対応しました。
下記のURLを ブラウザ内の カスタムDoH設定として入力することで、Cisco Umbrella の DoH サーバーを使うことができます。

https://doh.umbrella.com/dns-query

こちらのDoHサーバを利用する場合は、Cisco Umbrella のポリシーに基づく コントロールが可能になります。

設定した状態で、https://doh.umbrella.com へアクセスすると、ブラウザの設定が doh.umbrella.com に対して有効なっているか、確認できます。

image.png

Dig like DoH クライアント を使ってみる

OpenDNS (現Cisco Umbrella) のGithubのリポジトリに dig like な dohクライアントがあります。それを使って、動作確認してみます。

GitHub - opendns/doh-client

インストール

git clone https://github.com/opendns/doh-client.git
cd ./doh-client
pip3 install -r requirements.txt --user
cp doh.py /usr/local/bin/doh

早速、このツールを使って yahoo.co.jp の名前解決をしてみます。

$ doh yahoo.co.jp  
; <<>> DoH Client 0.1 <<>> yahoo.co.jp
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 1212
;; flags: QR RD RA

;; QUESTION:
yahoo.co.jp. IN A

;; ANSWER:
yahoo.co.jp. 194 IN A 182.22.59.229
yahoo.co.jp. 194 IN A 183.79.135.206

;; Server: https://doh.opendns.com
;; Query time: 84 msec

このコマンドでは、デフォルトの DoH サーバーは Cisco Umbrella (doh.opendns.com) を使うため、上記で設定したブロックポリシーにはかかりません。
ただし、ブロックしてある DoH サーバーを使って、DoH してみると...

$ doh yahoo.co.jp @dns.google
; <<>> DoH Client 0.1 <<>> yahoo.co.jp @dns.google
Error<urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1122)>

この通り、名前解決に失敗します。
設定通り、 Umbrella のポリシーが効いていることが確認できます。

まとめ

Cisco Umbrella での DoH 周りの動作確認をしてみました。

DoH 自体は、すでに巷で議論されている通り、現在のところ、技術としての選択肢であり、セキュリティのための要件ではありません。
企業ユースにおいては、DoH積極的に使うというよりは、こういった技術を どのように管理していくかという観点で、FWの設定やエンタープライズグループポリシーなども含めて、考慮点は多いのかなと思います。

参考リンク

Firefox DNS-over-HTTPS | Firefox ヘルプ

DoH! What's all the fuss about DNS over HTTPS? - Cisco Umbrella

Web Browsers and DNS over HTTPS default – Cisco Umbrella

GPO and DoH – Cisco Umbrella

Using DNS over HTTPS (DoH) with Umbrella – Cisco Umbrella

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
What you can do with signing up
0