Может ли кто-то использовать тот же DNS-сервер, что и я, взломать мои домены?

48

Когда я регистрирую новый домен, я отправляю его своему хостинг-провайдеру, назначая ему серверы доменных имен в настройках регистратора. Например, в Digital Ocean я ввожу следующее:

ns1.digitalocean.com
ns2.digitalocean.com
ns3.digitalocean.com

Затем я добавляю настройки домена в запись A моего сервера. Мне просто пришло в голову, что любой другой провайдер хостинга может добавить запись A с моим доменом.

Есть ли что-нибудь, препятствующее этому? если 2 разных сервера, использующих один и тот же сервер доменных имен, попытаются присвоить себе домен через записи A, где домен будет фактически разрешен при вводе его в браузере? что предотвращает конфликты доменных имен на одном DNS-сервере?

Эран Гальперин
источник
7
Digital Ocean предотвращает это, с одной стороны. Просто попробуйте ввести запись A для домена, который вам не принадлежит.
Майкл Хэмптон
4
Вопрос в том, откуда они знают, кому принадлежит домен? это первым пришел, первым обслужен? так что, кто бы ни добавил запись A первым, может использовать домен?
Эран Гальперин
16
@EranGalperin Привет! Я сотрудник DigitalOcean. Первый человек, добавивший домен в свою учетную запись, может установить для него записи, но у нас есть процедура для установления прав собственности в случае конфликтов.
Джейкоб
1
Подобные проблемы заключаются в том, почему крупные поставщики DNS (например, Network Solutions) также являются регистраторами DNS. Они могут обрабатывать оба шага одновременно и обеспечивать синхронизацию.
Бармар
Как сказал выше @Barmar, большинство регистраторов также предоставляют DNS-хостинг, что позволяет избежать описанной проблемы, даже если сценарий кажется маловероятным и тривиальным.
Фред Томсен

Ответы:

60

Не берите в голову раздел комментариев ниже, и никогда не возражаете против предыдущих ответов в истории редактирования. Примерно через час после некоторого разговора с друзьями (спасибо @joeQwerty, @Iain и @JourneymanGeek) и некоторого веселого взлома мы поняли как ваш вопрос, так и ситуацию в целом. Извините за грубость и неправильное понимание ситуации вначале.

Давайте пройдемся по процессу:

  1. Вы покупаете wesleyisaderp.com, скажем, на NameCheap.com.
  2. Namecheap как ваш регистратор будет там, где вы заполняете свои записи NS. Допустим, вы действительно хотите разместить зону DNS в Digital Ocean.
  3. Вы указываете записи NS вашего нового блестящего домена на ns1.digitalocean.comи ns2.digitalocean.com.
  4. Однако, допустим, я смог определить, что вы зарегистрировали этот домен, и, кроме того, вы изменили свои записи NS на Digital Ocean . Затем я перевел вас на учетную запись Digital Ocean и добавил зону wesleyisaderp.com к своей.
  5. Вы пытаетесь добавить зону в * вашу * учетную запись, но Digital Ocean сообщает, что зона уже существует в их системе! О нет!
  6. Я CNAME wesleyisaderp.comдля wesleyisbetterthanyou.com.
  7. Веселье наступает.

Некоторые друзья и я только что разыграли этот точный сценарий, и да, это работает. Если @JoeQwerty покупает домен и указывает его на серверы имен Digital Ocean, но у меня уже есть эта зона, добавленная в мою учетную запись, то я владелец зоны и могу делать с ней все, что захочу.

Однако учтите, что кто-то должен будет сначала добавить зону в свою учетную запись DNS, а затем вам нужно будет направить свои записи NS на серверы имен того же хоста, чтобы произошло что-то ужасное. Более того, как владелец домена, вы можете в любое время переключать записи NS и переносить разрешение с хоста «плохой зоны».

Вероятность того, что это произойдет, немного ниже, если не сказать больше. Говорят, что, по статистике, вы можете перетасовать колоду из 52 игральных карт и получить приказ, который ни один другой человек никогда не получал, и никакой другой человек никогда не получит. Я думаю, что такое же рассуждение существует здесь. Вероятность того, что кто-то воспользуется этим, очень мала, и существуют более быстрые ярлыки, которые, вероятно, не произойдут в дикой природе случайно.

Кроме того, если у вас есть домен у регистратора и кто-то случайно создал зону на таком провайдере, как Digital Ocean, с которым вы сталкиваетесь, я уверен, что если вы предоставите подтверждение права собственности, они спросят человека, который сделал зоны в своей учетной записи, чтобы удалить его, поскольку нет никаких причин для его существования, поскольку они не являются владельцами доменных имен.

Но как насчет записи

Первым, кто будет иметь зону, например, Digital Ocean, будет тот, кто будет ее контролировать. Вы не можете иметь несколько одинаковых зон в одной и той же инфраструктуре DNS. Так, например, используя указанные выше глупые имена, если у меня есть wesleyisaderp.com в качестве зоны на Digital Ocean, никто из DNS-инфраструктуры Digital Ocean не может добавить его в свою учетную запись.

Вот самое интересное: я действительно добавил wesleyisaderp.com в свою учетную запись Digital Ocean! Идите и попробуйте добавить его в свой. Это не повредит ничего.

В результате вы не можете добавить запись A на wesleyisaderp.com. Это все мое.

Но что насчет...

Как @Iain указал ниже, моя точка № 4 на самом деле слишком многословна. Мне не нужно ждать или сюжет или схему вообще. Я могу просто сделать тысячи зон в учетной записи, а затем сидеть сложа руки и ждать. Технически. Если я создаю тысячи доменов, а затем жду, пока они будут зарегистрированы, и надеюсь, что они используют хосты DNS, на которых я установил свои зоны ... может, я смогу сделать что-то плохое? Может быть? Но, вероятно, нет?

Извиняюсь перед Digital Ocean & NameCheap

Обратите внимание, что Digital Ocean и NameCheap не являются уникальными и не имеют ничего общего с этим сценарием. Это нормальное поведение. Они безупречны на всех фронтах. Я просто использовал их, так как это был пример, и они очень известные бренды.

Wesley
источник
2
Я полагаю, если вы действительно хотите пообщаться с кем-то, вы можете настроить, например, a Aи MXRR с очень длинными TTL, указывая на хост, которым вы управляете, и использовать обычные общедоступные DNS-серверы (например, Google, может быть?). Вариант отравления кэша ...
CVN
4
Кроме того, тривиально показать владение доменом, имея возможность изменить, на какие серверы ns указывают, так что даже если кто-то это сделал, его можно относительно быстро очистить, если его обслуживание клиентов хорошее.
JamesRyan
3
@JamesRyan TXT-записи используются для подтверждения права собственности в подобных случаях.
user9517 поддерживает GoFundMonica
4
@ Уэсли Это правильно. У нас есть процедура для обработки зонных конфликтов с нашей службой DNS.
Джейкоб
7
Странная ситуация, когда это может быть более вероятным, - это когда домен был ранее зарегистрирован и использовался в Digital Ocean, а затем истек / не был продлен, но зона не удалена из digitalocean. Кто-то позже использует его как «новый» домен (не подозревая, что он ранее принадлежал), а затем пытается создать зону в Digital Ocean. Это можно предотвратить только в том случае, если узел DNS периодически удаляет зоны, для которых он больше не является сервером имен. (без вышеупомянутых методов разрешения конфликтов)
Эшли
32

В дополнение к отличному ответу Уэсли, я хотел бы добавить, что уже есть решение для предотвращения этого. Это называется DNSSEC.

Основы таковы:

  • Вы регистрируете свой домен (здесь я wesleyisaderp.comприведу именитое имя , просто потому что.)
  • Вы регистрируете свои серверы имен у своего регистратора, обычно через веб-интерфейс, который вы аутентифицируете с помощью комбинации имени пользователя и пароля.
  • Вы также создаете пару открытый / закрытый ключ и загружаете свой открытый ключ своему регистратору в форме записи DNSKEY. (Таким образом, регистратор может настроить цепочку доверия для корневых серверов для домена верхнего уровня - в данном случае для корневых серверов .com.) Опять же, вы загружаете это, когда вы входите в систему со своим собственным именем пользователя / паролем комбинированный, поэтому он связан с вашим доменом (ами), а не с чужим.
  • Вы заходите на сервер имен, вводите свои записи и подписываете полученный файл зоны своим закрытым ключом. Или, если у вас есть веб-интерфейс к службе DNS-хостинга, вы загружаете на них закрытый ключ, чтобы они могли подписать им файл зоны.
  • Когда Уэсли так грубо пытается захватить ваш домен и присвоить ему CNAME wesleyisbetterthanyou.com, его записи не будут приняты серверами корневых доменов .com, поскольку они не подписаны правильным ключом. Если ваш провайдер DNS-хостинга умен, он сразу же проверит это и даже не позволит ему попытаться добавить записи в этот домен, если у него нет подходящего закрытого ключа.
  • Когда вы вводите свои собственные записи, они будут подписаны правильным ключом, поэтому они будут работать.
  • Теперь вы можете сидеть сложа руки и смеяться над Уэсли.

(В оригинальном случае, описанном Уэсли, основной ошибкой было бы то, что Digital Ocean не подтвердил право собственности на домен, прежде чем разрешить кому-то настраивать DNS-записи для него. К сожалению, они не одиноки в этом; я знаю, хотя бы одного шведского регистратора с такими же проблемами.)

Дженни Ди говорит восстановить Монику
источник
1
Любопытно, как любой хост-провайдер DNS-зоны, не относящийся к DNSSEC, может подтвердить владение, прежде чем разрешить создание зоны? Я также попробовал это с помощью Amazon Route53, и я могу создать любую зону, какую захочу.
Уэсли
Они, вероятно, не захотят, это потребует отложенной пробной версии и проверки ошибок. Просто догадываясь, удаление-на-ошибке все еще возможно с некоторыми (дымовой завесой) хитростями UX.
Сампо Саррала
@ Уэсли, я не рассматривал механику. Но, по крайней мере, сработала бы какая-то проверка записи whois или такая же проверка, как у дешевых продавцов SSL-сертификатов. Если они могут это сделать, почему хостинг-компании не могут?
Дженни Ди говорит восстановить Монику
1
@JennyD Удобство, в основном! Этот тип перехвата доменов является достаточно редким и достаточно детектируемым, поэтому его легче исправить, когда это произойдет, чем заставить любого законного пользователя перепрыгнуть через обручи, чтобы предотвратить это.
Сумерки
@duskwuff Когда удобство и безопасность конфликтуют, удобство обычно побеждает ... Я согласен, что захват домена, вероятно, будет редким - но как насчет простых ошибок, без злого умысла? IMAO, DNS-хостеры безрассудно не делают никаких проверок.
Дженни Ди говорит восстановить Монику
6

С вами все будет в порядке, если вы будете требовать владения доменом в DigitalOcean (то есть связать его с вашей учетной записью), прежде чем вы скажете регистратору использовать их серверы имен.

Если кто-то уже связал ваш домен со своей учетной записью, вы узнаете об этом, прежде чем серверы имен DigitalOcean станут авторизованными. И если это произойдет, поговорите с DigitalOcean об удалении этого человека из их аккаунта.

В соответствии с передовой практикой {ns1, ns2, ns3} .DigitalOcean.com не действуют как рекурсивные преобразователи для доменов, размещенных в других местах. Если бы они это сделали, и если бы серверы, размещенные в DigitalOcean, использовали эти серверы в качестве распознавателей общего назначения, то возникла бы гораздо более серьезная проблема. Несмотря на то, что это, как известно, является плохой практикой, вероятно, не так сложно найти хостинг-провайдеров, которые ошибаются, что открывает возможности для злоупотреблений.

mc0e
источник
Так что, если DigitalOcean еще не является авторитетным для домена, и несколько потенциальных клиентов утверждают, что владеют доменом, как DigitalOcean узнает, кто из потенциальных клиентов говорит правду? Собираются ли они предоставить первому доступу для создания записей и крайнему сроку обновления записей NS, чтобы доказать контроль над доменом? Или они собираются предоставить каждому из потенциальных клиентов различное подмножество авторитетных серверов для включения в записи NS?
kasperd
2
@kasperd законные владельцы указывают на записи NS, где они хотят, а затем настраивают, например, запись TXT, которая подтверждает, что они являются владельцами, поскольку она содержит уникальную информацию, которую предоставляет им поставщик услуг. По общему признанию, немного обманщик, но для редких случаев, когда это может случиться, это несколько легче, чем заставить всех доказать право собственности, прежде чем принести их на борт.
user9517 поддерживает GoFundMonica
@kasperd Часто запись whois идентифицирует законного владельца, хотя у людей иногда есть причина скрывать эту информацию. В любом случае, если вы скажете DO связать домен с вашей учетной записью, чтобы вы могли сделать его авторитетным, DO предположительно предоставит самозванцу временные рамки для обновления регистратора или отказа от ассоциации домена в DO. Законному владельцу, возможно, придется немного подождать, вот и все.
mc0e
0

Я думаю, что эта проблема означает, что никто не должен использовать такие серверы имен (такие как Digital Ocean) в качестве своих распознавателей, поскольку любой может создать сервер имен для существующего домена на них. Борьба за контроль над доменом не имеет значения, поскольку владение доменом может быть легко доказано, но тот факт, что кто-то может, например, направить любой существующий домен, который уже НЕ размещен на Digital Ocean, куда угодно.

Итог: не доверяйте DNS-серверам любой хостинг-службы, которая не требует подтверждения владения доменом (легко и быстро это делается, например, с помощью метода, предложенного выше: сначала добавьте запись TXT с определенным значением в домене). это то, что Microsoft O365 и Google делают, например).

MuchWorseThanTheySay
источник