28
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Cisco Systems JapanAdvent Calendar 2020

Day 3

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

Last updated at Posted at 2020-12-02

今回は、小ネタですが、表題の通り 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

  1. https://support.mozilla.org/en-US/kb/canary-domain-use-application-dnsnet

  2. https://www.chromium.org/developers/dns-over-https

28
1
0

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
  3. You can use dark theme
What you can do with signing up
28
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?