Знайдена в systemd уразливість призводить до відмови в обслуговуванні Linux


Дізнайтесь більше про нові кар'єрні можливості в EchoUA. Цікаві проекти, ринкова оплата, гарний колектив. Надсилайте резюме та приєднуйтеся до нас.

Діра в DNS-перетворювачі (DNS Resolver) може призвести до атаки типу “відмова в обслуговуванні” (denial-of -service) на вразливі системи.

Уразливість DNS Resolver

Згідно з заявами дослідників, які знайшли пролом, вона може бути використана в такий спосіб: уразливу систему примушують відправляти DNS-запит на DNS-сервер зловмисників. Він, у свою чергу, повертає спеціально оброблений запит, який примушує systemd запустити нескінченний цикл. Саме він і завантажить ЦП системи до 100 %. Знайдена вразливість отримала ідентифікатор CVE-2017-15908.

Є багато способів змусити машину користувача відправити запит на контрольований DNS-сервер. Найлегший з них – примусити користувача зайти на скомпрометовану веб-сторінку. Цього можна добитися за допомогою вірусу або соціальної інженерії.

Ключ до безпеки

За словами Уільяма Гамазо Санчеза, дослідника вразливостей комп’ютерних систем, найефективнішим способом боротьби зі знайденим проломом є, як не дивно, патч systemd.

Ми виявили цю вразливість ще в липні 2017 року і відразу ж повідомили відповідні вендори через програму Zero Day Initiative (ZDI). Їх своєчасна реакція на нашу знахідку дала змогу запобігти повсюдному поширенню атаки. Багато дистрибутивів Linux отримали патчі, в тому числі й Ubuntu.

Аналіз уразливості

За час існування DNS до неї було додано багато функцій, які підвищують безпеку. Одним з нових типів записів ресурсів, доданих до DNS Security Extensions (DNSSEC), як визначено в документі RFC 4034, був NSEC (Next Secure).

Уразливість полягала в обробці бітів, що представляють псевдотипи у бітовій карті NSEC. На рисунку зображені розділ коду і стековий кадр, на якому виділений рядок continue показує, де саме while переходить у нескінченний цикл. Реалізація dns_packet_read_type_window () знаходиться у файлі resolve - dns - packet.c.

Зверніть увагу на те, що вказана вище функція dns_packet_read_type_window () викликається з dns_packet_read_rr (), коли типом запису є DNS_TYPE_NSEC. На рисунку показаний розділ коду dns_packet_read_rr () у файлі resolved - dns - packet.c.

Proof-of-concept

Щоб протестувати цю вразливість, був створений спеціальний DNS-сервер, що відправляє зловмисно сформовані відповіді. Кожен з них містив запис NSEC, призначений для запуску вразливості:

Щойно система, яка використовує systemd для перетворення DNS, отримає цей спеціально створений пакет, завантаження ЦП досягне 100 %:

Оскільки деякі великі дистрибутиви випустили виправлення, користувачам рекомендується встановити їх якнайскоріше. Системні адміністратори також можуть заблокувати потенційно шкідливі пакети вручну. Варто перевірити відповіді вхідних DNS на наявність специфічних записів, зазначених у розділі 4 документа RFC 4034.

Джерело: блог TrendLabs Security Intelligence

Київ, Харків, Одеса, Дніпро, Запоріжжя, Кривий Ріг, Вінниця, Херсон, Черкаси, Житомир, Хмельницький, Чернівці, Рівне, Івано-Франківськ, Кременчук, Тернопіль, Луцьк, Ужгород, Кам'янець-Подільський, Стрий - за статистикою саме з цих міст програмісти найбільше переїжджають працювати до Львова. А Ви розглядаєте relocate?


Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *