Knot Resolver の permissive mode (寛容モード) は非常に危険なので、もしこれを普段使いしている人がいれば、即刻利用をやめることをお勧めします。
permissive mode は委譲を追いかける際に NS の A レコードが additional に付加されていたら、それをすべてノーチェックで信用することにより、検索を速くしようという趣旨のもののようです。
ふと悪い予感がしてある実験をしてみたところ、このモードが恐ろしく危険であることがわかりました。
以下はその実験の説明です。brau.jp へ毒入れを試みます。(すべて私が登録しているドメイン名です)
~% dig @ns.internat.jp -t txt brau.internat.jp +norec ; <<>> DiG 9.9.5 <<>> @ns.internat.jp -t txt brau.internat.jp +norec ; (1 server found) ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 53242 ;; flags: qr; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 1 ;; QUESTION SECTION: ;brau.internat.jp. IN TXT ;; AUTHORITY SECTION: brau.internat.jp. 300 IN NS ns.brau.jp. ;; ADDITIONAL SECTION: ns.brau.jp. 300 IN A 150.42.6.9これは internat.jp から brau.internat.jp の委譲応答ですが、同居ゾーンを用いて Additional Section に ns.brau.jp の偽の A レコードを加えてあります。これは glue ではないので安全に考慮した実装であれば無視すべきものです。本物の ns.brau.jp は 150.42.6.4 です。
~% dig @127.0.0.3 -t txt brau.internat.jp ; <<>> DiG 9.9.5 <<>> @127.0.0.3 -t txt brau.internat.jp ; (1 server found) ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 8904 ;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 4096 ;; QUESTION SECTION: ;brau.internat.jp. IN TXT ;; ANSWER SECTION: brau.internat.jp. 60 IN TXT "brau.internat.jp"本物の ns.brau.jp = 150.42.6.4 に brau.internat.jp ゾーンはありません。この TXT は 偽 ns.brau.jp = 150.42.6.9 に用意した brau.internat.jp ゾーンが応答したものです。minimal response なので分かり辛いのですがこの時点で 偽 ns.brau.jp = 150.42.6.9 がキャッシュされ、それに誘導されたものと考えられます。
~% dig @127.0.0.3 -t soa brau.jp (snip) ;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 4096 ;; QUESTION SECTION: ;brau.jp. IN SOA ;; ANSWER SECTION: brau.jp. 120 IN SOA ns.brau.jp. tss.e-ontap.com. ( 2020082501 ; serial 3600 ; refresh (1 hour) 600 ; retry (10 minutes) 86400 ; expire (1 day) 60 ; minimum (1 minute) )これは brau.jp の NS をキャッシュに入れるためです。NS を直接問い合わせてもよいです。Answer Section の SOA は本物の ns.brau.jp 由来のものです。Minimal response で分かり辛いですが、Authority Section から brau.jp IN NS ns.brau.jp. が、Additional Section から ns.brau.jp IN A 150.42.6.4 が返ってきているはずです。(パケットダンプで確認済)
~% dig @127.0.0.3 -t txt brau.jp (snip) ;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 4096 ;; QUESTION SECTION: ;brau.jp. IN TXT ;; ANSWER SECTION: brau.jp. 60 IN TXT "NG"この Answer Section の TXT "NG" は偽 ns.brau.jp 由来のものです。ステップ 2 で注入された偽 A レコードで誘導された結果だと考えられます。
以上からわかることは permissive mode の Knot Resolver には任意のドメインのキャッシュポイズニングが可能だということです。
そこで、開発元の NIC.CZ に問い合わせたところ以下の返事がありました。
Documentation for version 5.1.1 (at https://knot-resolver.readthedocs.io/en/v5.1.1/config-dnssec.html#mode) describes that "permissive mode" accepts all glue records without checks. This is definition of cache-poisoning security hole, so we can conclude that the permissive mode works as intended - and that's why it is not enabled by default.
要約すると「permissive mode はすべてのグルーレコードをノーチェックで受け入れる。これはキャッシュポイズニング脆弱性を意味している。貴方の指摘はその仕様どおりだと言える。我々がこのモードをデフォルトにしていない理由でもある」という回答です。
私はそんなことは承知で質問したのです。設計の趣旨はあくまで委譲を追いかけるための情報として referral に付随する A レコード (これを彼らは glue と読んでいますがそれは定義の間違い) を効率よく利用するためであり、もしその A レコードが悪意あるものだった場合に被害を受けるのは問い合わせ対象のドメインに限定されているはずだと考えていました。
ところが私の実験では特定条件下に置かれたドメインだけでなく、任意のドメインにキャッシュポイズニングができてしまいました。これは彼らの意図 (intended) から外れているのではないでしょうか。
まあ本当のところを追求すのは面倒なのでやめておきますが、permissive mode が危険なことは彼らも認めているわけなので、実験目的以外に使用するのは止めましょう。改めて文書を見るとこう書いてあります。
Knot Resolver uses secure configuration by default, and this configuration should not be changed unless absolutely necessary
なお、nic.cz からのメールの最後にはこうありました。(1.1.1.1 は?)
On the other hand we have not seen anyone relying on permissive mode for along time, so we might just remove it in next releases.
p.s.
ところでこの件は DNS 温泉常連の大塚さんのこのツイートに端を発しています。
これは 1.1.1.1 で私の実験のステップ 2 と同じ現象が起きていることを意味しているものです。1.1.1.1 は Knot Resolver を使用していると言われているのですが、これだけ見ても危険ではないかと疑われます。(どういう攻撃が可能であるかは解説を控えておきます)
そして私のゼミの M2 の太田くんから permissive mode で大塚さんの事例が再現できたという報告を受けたのが今回の実験の発端でした。
私の実験通りのことが 1.1.1.1 でも起きるとすれば大変なことなのですが、今のところ再現はできていません。さすがに permissive mode をそのまま運用しているわけではないでしょうが一抹の不安が残るところです。
labs.nic.cz にブログの翻訳を送って意見を求めたところ以下の返信がありましたので転載しておきます。(転載は彼らも歓迎とのことです)
私の記事はあくまで permissive mode が危険なことを確認したまでであり、normal mode までが危険だという主張はしていないことをここに記しておきます。彼らの文書からはどれほど危険なのかが読み取れなかったので実験を行い、このモードに関する注意喚起の意味でブログを書いたまでです。
From: Petr Špaček <petr.spacek @ nic.cz> To: "T.Suzuki" <tss @ e-ontap.com> Cc: knot-resolver @ labs.nic.cz, Masato OTSUKA , Kenya Ohta Subject: Re: [knot-resolver@labs] a vulnerability of permissive mode Date: Fri, 28 Aug 2020 09:22:35 +0200 Organization: CZ.NIC Hello, and thank you for sharing link to translation! Unfortunatelly nobody in our team speaks Japanese so we are not able to write an explanatory article with reaction. For that reason I ask you to amend the article so it starts with information that _default is secure_ and that _only an explicit configuration can make it insecure_. Rationale for this request: Translation of the current version seems unnecessairly alarmist to me. From my perspective the current text says: - Step 1: Explicitly configure Knot Resolver into insecure mode (which is documented). - Step 2: Test that the explicit configuration is really insecure. What is the purpose? I'm really confused, and I believe some readers might be confused as well. The only explanation I could see is that documentation might be unclear in some aspect. If it is that case please be constructive and point out what exactly what is unclear/confusing so we can fix it. Articles with statements like "it's too much trouble to pursue the truths" do not help to improve software or documentation quality. In similar spirit there could be an article saying "we disabled DNSSEC validation, and then our tests shown that this is insecure configuration, so do not use this configuration". It is exactly the same logic as the article above. Also your article seems to imply that 1.1.1.1 should behave exactly the same as Knot Resolver, which is incorrect assumption. Cloudflare is heavily customising our code so they can provide features unique to 1.1.1.1. This naturally causes divergence in behavior. In other words 1.1.1.1 is not equal to latest publicly available release of Knot Resolver. I would appreciate if you article clarified that aspect as well. I ask you to amend the article as indicated above and thank you for your time. Petr Špaček @ CZ.NIC
Copyright by T.Suzuki
Нарколог на дом в Казани — это возможность получить медицинского специалиста без посещения клиники, когда человеку нужна помощь при запое, интоксикации, тяжелом похмелья, абстинентном синдроме, употребления алкоголя или наркотиков. Врач приезжает на дом, проводит осмотр пациента, оценивает симптомы, подбирает препараты и дает рекомендации по дальнейшему лечению. <br>Подробнее - <a href=https://narkolog-na-dom-kazan21.ru/>нарколог на дом</a>
Самостоятельное лечение при запое рискованно. Человек может принимать несовместимые препараты, неправильно оценивать тяжесть состояния или пытаться облегчить симптомы новой дозой алкоголя. Такие действия усиливают интоксикацию, приводят к ухудшению здоровья и повышают риск серьезных последствий. Медицинский вывод из запоя позволяет действовать последовательно: сначала оценить состояние, затем провести снятие острых симптомов, восстановить организм и определить дальнейшую тактику лечения алкогольной зависимости. <br>Узнать больше - <a href=https://vyvod-iz-zapoya-moskva13-1.ru/>vyvod-iz-zapoya-moskva</a>
Вывод из запоя на дому в Сочи проводится анонимно: соседям, коллегам и третьим лицам не передается информация о состоянии пациента, диагнозе, курсе лечения, факте вызова врача или необходимости дальнейшего наблюдения. Документы оформляются только в пределах медицинской работы, а постановки на учет при обращении в частную клинику не происходит. <br>Подробнее тут - <a href=https://vyvod-is-zapoya-sochi24.ru/>вывод из запоя капельница на дому в сочи</a>
после вашего обращения наш врач приезжает по указанному адресу с медработниками в гражданской форме и на машине без опознавательных символов, проводит осмотр, собирает историю болезни (анамнез). <br>Получить больше информации - <a href=https://vyvod-is-zapoya-sochi24.ru/>вывод из запоя</a>
Вы получаете не просто разовую процедуру, а комплекс медицинской помощи. Врач нарколога может объяснить родственникам, как говорить с зависимым, что делать после капельницы, какие препараты принимать, когда необходимо лечение в клинике и почему кодирование алкоголизма или реабилитация часто становятся следующим этапом. Такой подход помогает не только вывести пациента из запоя, но и начать полноценное восстановление. <br>Получить дополнительную информацию - <a href=https://vyvod-iz-zapoya-kazan21.ru/>вывод из запоя на дому круглосуточно в казани</a>
Вывод из запоя на дому в Казани удобен, когда близкий человек не готов ехать в клинику, плохо переносит дорогу или находится в состоянии сильной слабости. Врач приезжает на дому, сохраняет анонимность, спокойно объясняет процесс и начинает лечение только после осмотра и согласия пациента. Вызов врача на дому особенно важен, если муж, отец, брат, мама или другой близкий уже не может перестать пить и нуждается в срочной помощи. <br>Получить дополнительные сведения - https://vyvod-iz-zapoya-kazan21.ru
Наркологическая помощь позволяет безопасно начать выведение токсинов, снизить интоксикации, восстановить водно-солевой баланс и подобрать дальнейшее лечение алкогольной зависимости. Нарколог проводит анализ состояния пациента, уточняет стаж употребления спиртного, причины запоя, наличие хронического заболевания, психических расстройств, противопоказаний и других ограничений. После диагностики врач выбирает схему: амбулаторно на дому, в стационаре клиники или с госпитализацией. <br>Получить дополнительные сведения - http://vyvod-is-zapoya-sochi20.ru/
Запоя вывод в клинике Сочи: лечение алкогольной зависимости, капельница, детоксикация, помощь нарколога на дому, кодирование и реабилитация анонимно <br>Подробнее - <a href=https://vyvod-is-zapoya-sochi20.ru/>вывод из запоя на дому круглосуточно</a>
Нарколог на дом в Балашихе с быстрым выездом специалиста, осмотром пациента и оказанием медицинской помощи в наркологической клинике «Частный Медик 24». <br>Изучить вопрос глубже - <a href=https://narkolog-na-dom-balashiha13.ru/>chastnyj-narkolog-na-dom-telefon</a>
Вывод из запоя — это экстренная наркологическая помощь, направленная на безопасное прерывание длительного употребления алкоголя и комплексное лечение алкогольной зависимости. Алкогольная зависимость — тяжёлая болезнь, которая разрушает здоровье и требует немедленного лечения. Вывод из запоя — первый и самый важный этап лечения алкоголизма, ведь без качественного вывода из запоя невозможно эффективное избавление от пагубного пристрастия. Наша наркологическая клиника в Москве предлагает срочный вывод из запоя на дому и в стационаре. Лечение запоя начинается с детоксикации — капельницы, которая очищает организм от токсинов и продуктов распада алкоголя. Опытный нарколог проводит осмотр, оценивает физическое состояние и возраст пациента, подбирает необходимые препараты и ставит капельницу. Лечение должно быть анонимным и безопасным, поэтому мы гарантируем полную конфиденциальность — ваше имя не разглашается, документы не передаются третьим лицам. Вывод из запоя — это лишь начало лечения алкоголизма, за ним следует длительная терапия, кодирование и реабилитация. Важно понимать: лечение зависимости — процесс не одного дня, но он станет первым шагом к полноценной жизни. Наши специалисты используют современные методики выведения из запоя , применяя эффективные , которые быстро восстанавливают организм после интоксикации алкоголя . <br>Подробнее тут - <a href=https://vyvod-iz-zapoya-balashiha13-1.ru/>вывод из запоя недорого балашиха</a>
Вывод из запоя — это экстренная наркологическая помощь, направленная на безопасное прерывание длительного употребления алкоголя и комплексное лечение алкогольной зависимости. Алкогольная зависимость — тяжёлая болезнь, которая разрушает здоровье и требует немедленного лечения. Вывод из запоя — первый и самый важный этап лечения алкоголизма, ведь без качественного вывода из запоя невозможно эффективное избавление от пагубного пристрастия. Наша наркологическая клиника в Москве предлагает срочный вывод из запоя на дому и в стационаре. Лечение запоя начинается с детоксикации — капельницы, которая очищает организм от токсинов и продуктов распада алкоголя. Опытный нарколог проводит осмотр, оценивает физическое состояние и возраст пациента, подбирает необходимые препараты и ставит капельницу. Лечение должно быть анонимным и безопасным, поэтому мы гарантируем полную конфиденциальность — ваше имя не разглашается, документы не передаются третьим лицам. Вывод из запоя — это лишь начало лечения алкоголизма, за ним следует длительная терапия, кодирование и реабилитация. Важно понимать: лечение зависимости — процесс не одного дня, но он станет первым шагом к полноценной жизни. Наши специалисты используют современные методики выведения из запоя , применяя эффективные , которые быстро восстанавливают организм после интоксикации алкоголя . <br>Разобраться лучше - <a href=https://vyvod-iz-zapoya-balashiha13-1.ru/>вывод из запоя на дому в балашихе</a>
Выведение из состояния запоя и последующее лечение и реабилитация от алкогольной зависимости в наркологической клинике «московский нарколог» делиться на два этапа – длительный и краткосрочный. Кроме того, вывод из запоя и детоксикационные мероприятия осуществляются каждому клиенту, решившему пройти полный курс лечения алкоголизма в клинике, как первый этап терапии. Экстренный вывод из запойного состояния и медикаментозное лечение не избавят человека от алкогольной зависимости, а лишь на время вернут к нормальной жизни. Именно поэтому мы рекомендуем пройти полный курс лечения алкоголизма, включающий не только снятие интоксикации, но и кодирование, психологическую поддержку и длительную реабилитацию. Опыт наших врачей показывает: стационарное лечение алкоголизма даёт наилучшие результаты, ведь в клинике созданы все условия для эффективной терапии и комфортного пребывания. Лечение зависимости — долгий процесс, но с профессиональным сопровождением он проходит легче и завершается стойкой ремиссией. Многие алкоголики годами страдают от запоя, но даже в самых сложных случаях можно добиться положительного результата. <br>Изучить вопрос глубже - <a href=https://vyvod-iz-zapoya-v-stacionare-balashiha13-1.ru/>вывод из запоя недорого</a>
Детоксикация от наркотиков в частной клинике — это сложный медицинский процесс, который требует обязательной госпитализации. В нашей клинике детоксикация от наркотиков обычно занимает 7-14 дней, лечение проходит только в стационаре. Это необходимо, чтобы круглосуточно контролировать состояние пациента, своевременно корректировать терапию и полностью исключить возможность срыва. Наши врачи-наркологи (в том числе Викторович, Юрьевич, Евгений Анатольевич, Марина, Татьяна, Ольга, Наталья Валерьевна, Андрей) и психиатры разрабатывают индивидуальную программу лечения, учитывая тип употребляемого вещества, длительность зависимости, возраст и общее состояние здоровья больного. Лечебно-реабилитационные мероприятия включают не только медикаментозную терапию, но и подготовку к дальнейшей психологической работе. При необходимости привлекается реаниматолог, терапевт, проводится ЭКГ и лабораторная диагностика. <br>Ознакомиться с деталями - <a href=https://detoksikaciya-narkomanov-moskva13-1.ru/>наркологическая помощь детоксикация москва</a>
Все необходимые услуги для сохранения здоровья пациентов нашей клиники оказывают высококвалифицированные специалисты с большим опытом работы. В штате центра — наркологи, психиатры, психотерапевты, клинические психологи, которые ежедневно помогают людям вернуться к здоровой жизни. Мы используем только сертифицированные лекарственные препараты и современное оборудование, что гарантирует безопасность и эффективность процедур. Персонал отделения — это опытные медсестры, которые обеспечивают комфортное пребывание и круглосуточный уход. Администраторы и координаторы всегда на связи, готовы ответить на любые вопросы и оформить запись на прием. <br>Получить дополнительную информацию - <a href=https://detoksikaciya-narkomanov-moskva13-1.ru/>детоксикация наркотиков</a>
Нарколог на дом в Балашихе нужен, когда человек после алкоголя, запоя, отравления, абстинентного синдрома или употребления наркотиков не может самостоятельно восстановиться и нуждается в медицинской помощи. Вызов врача на дом позволяет быстро оценить состояние пациента, провести осмотр, подобрать препараты, назначить лекарства, поставить капельницу и определить, возможно ли лечение в домашних условиях или требуется госпитализация в стационаре. <br>Получить больше информации - <a href=https://narkolog-na-dom-balashiha13-2.ru/>narkolog-na-dom-vyvod-iz-zapoya</a>
Ниже перечислены основные плюсы, которые получает каждый пациент при выборе стационарного лечения алкоголизма в нашей наркологической клинике. Все процедуры проводятся с использованием современного оборудования и сертифицированных лекарств, что абсолютно исключено при попытках лечиться на дому: <br>Ознакомиться с деталями - <a href=https://vyvod-iz-zapoya-v-stacionare-balashiha13-1.ru/>вывод из запоя клиника</a>
Нарколог на дом в Балашихе нужен, когда человек после алкоголя, запоя, отравления, абстинентного синдрома или употребления наркотиков не может самостоятельно восстановиться и нуждается в медицинской помощи. Вызов врача на дом позволяет быстро оценить состояние пациента, провести осмотр, подобрать препараты, назначить лекарства, поставить капельницу и определить, возможно ли лечение в домашних условиях или требуется госпитализация в стационаре. <br>Разобраться лучше - <a href=https://narkolog-na-dom-balashiha13-2.ru/>chastnyj-narkolog-na-dom-telefon</a>
Для срочного обращения подходит точная формулировка услуги: сегодня легко вызвать нарколога на дом в балашиху круглосуточно, просто позвонив по единому телефону нашего специализированного центра в любое время суток, любой день (даже в выходные и праздники). <br>Углубиться в тему - http://narkolog-na-dom-balashiha13-4.ru
Врач контролирует состояние пациента на протяжении всей процедуры — от первого введения препаратов до стабилизации самочувствия. Обычно уже через час после постановки капельницы уходит тошнота, нормализуется сон, снижается тревожность и тяга к спиртному. По завершении инфузионной терапии нарколог оставляет необходимые медикаменты на несколько дней, дает чёткие инструкции по их приёму и рекомендует дальнейшие шаги: амбулаторное наблюдение, кодирование или реабилитацию. После вывода из запоя обязательно даются рекомендации по продолжению лечения алкоголизма, включая кодирование и реабилитацию. Во многих случаях — да: в частной клинике платная помощь включает выездную стабилизацию, чтобы анонимно и быстро провести необходимые процедуры на месте. <br>Разобраться лучше - <a href=https://narkolog-na-dom-balashiha13-3.ru/>вызов нарколога на дом круглосуточно</a>
Вывод из запоя в клинике Сочи: лечение алкоголизма, капельница, детоксикация, помощь нарколога на дому и в стационаре анонимно, круглосуточно. <br>Выяснить больше - <a href=https://vyvod-is-zapoya-sochi23.ru/>наркология вывод из запоя сочи</a>