12 июня было опубликовано исследование о серьезной уязвимости в ПО для реестров доменных имен. Программное обеспечение CoCCA используется для управления доменами в таких зонах, как .ai, .ms и .td. Для коммуникации с регистраторами доменных имен, которые должны вносить изменения в реестр, оно применяет стандартизированный протокол EPP (Extensible Provision Protocol). Уязвимость в обработчике XML-запросов позволяла перехватить контроль над целой доменной зоной и, например, менять записи для существующих доменных имен или создавать новые.


Авторами материала стала команда во главе с Сэмом Карри, экспертом по безопасности, который не только умеет находить нестандартные уязвимости, но и подробно рассказывает о процессе их обнаружения. Предыдущая публикация Сэма, например, рассказывала об уязвимостях в сетевых сервисах автопроизводителей. Его новый материал также представляет интерес благодаря подробному описанию выявленных проблем. Главный вывод авторов отчета: критическая инфраструктура Интернета очень часто недофинансирована. Более ранние исследования по «угону доменов», как правило, фокусировались на взломе DNS-серверов. Однако в этом случае все получилось проще и опаснее: зачем атаковать DNS, если можно модифицировать любую информацию прямо в реестре доменной зоны?

По сравнению с предыдущими исследованиями Сэма Карри и команды, здесь процесс поиска уязвимости описывается достаточно кратко: ее, судя по всему, обнаружили очень быстро. EPP-сервер CoCCA оказался уязвим для атаки типа XML External Entity Processing (XXE). По этой ссылке приводится вот такой типовой сценарий атаки:

<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE foo [
<!ELEMENT foo ANY >
<!ENTITY xxe SYSTEM "file:///dev/random" >]>
&xxe;


Реально работающий код для уязвимого EPP-сервера выглядит так:

print(conn.call("<?xml version=\"1.0\" standalone=\"no\"?> <!DOCTYPE foo [ <!ENTITY xxe SYSTEM \"file:///etc/passwd\"> ]> <epp xmlns=\"urn:ietf:params:xml:ns:epp-1.0\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:schemaLocation=\"urn:ietf:params:xml:ns:epp-1.0 epp-1.0.xsd\"> <command> <poll op='req' /> <clTRID>&xxe;</clTRID> </command> </epp>".format(ip)))

Как правило, коммуникация регистратора доменов с реестром надежно защищена. Перед предоставлением доступа к базе данных инициируется сложный процесс авторизации. Однако запрос в приведенном выше примере возвращал содержимое файла /etc/passwd на сервере с реестром доменных имен в обход всякой авторизации. Программное обеспечение CoCCA написано на Java, а данные хранятся в СУБД Postgres. Встроенный обработчик XML-запросов не имел никакой защиты от атак типа XXE. Развить атаку получилось с помощью еще одной уязвимости: исследователи нашли сегмент кода, который обращался к некоей базе названий городов. Его оказалось возможным перенацелить на загрузку любого файла на сервере.

Дальнейшие исследования проводились на примере доменной зоны .ai. Исследователи смогли вытащить множество файлов из уязвимой системы, включая приватный ssh-ключ одного из администраторов. С администратором удалось связаться, и он подтвердил, что легко взламываемый сервер позволяет менять любые записи в реестре доменов. Но и это еще не все: при дальнейшем изучении кода CoCCA был обнаружен скрипт, который загружает бэкап базы данных на сервер разработчика. Как это обычно бывает, сервер с бэкапами оказался общим для всех пользователей ПО. После того как разработчика уведомили об уязвимостях, все проблемы были закрыты в новой версии программного обеспечения.

Авторы работы приводят Nomulus в качестве примера чуть более защищенного ПО для управления доменной зоной. Nomulus — разработка Google с открытым исходным кодом. И вот там показано, как надо обрабатывать XML-запросы, исключая атаки XXE:

private static XMLInputFactory createInputFactory() throws FactoryConfigurationError {
// Prevent XXE attacks.
XMLInputFactory xmlInputFactory = XMLInputFactory.newFactory();
xmlInputFactory.setProperty(XMLInputFactory.IS_SUPPORTING_EXTERNAL_ENTITIES, false);
xmlInputFactory.setProperty(XMLInputFactory.SUPPORT_DTD, false);
return xmlInputFactory;
}


Что еще произошло:

В новых публикациях эксперты «Лаборатории Касперского» подробно описывают сервисы malware-as-a-service и анализируют вредоносное ПО для кражи криптовалют.

Вышли сразу два новых исследования атак по сторонним каналам. Здесь рассказывается о возможности вычисления координат абонента по уведомлениям о доставке SMS. А в этой работе исследователи смогли расшифровать данные, наблюдая за мерцаниями светодиода на считывателе смарт-карт.

Western Digital предупреждает пользователей сетевых накопителей MyCloud с устаревшей прошивкой о неминуемом отключении от облачных сервисов тех, кто не установит обновление. Причина — серьезная уязвимость в ПО, которая обеспечивает неавторизованное выполнение произвольного кода. Если обновление не установить, будет возможен только локальный доступ к файлам.

Комментарии (0)