У USB-стек ядра Linux виявлені серйозні уразливості

09 листопада 2017, 04:18 | Технології
фото з InternetUA
Розмір тексту:

У USB-стек ядра Linux виявлений ряд серйозних вразливостей, які можуть бути проексплуатувати зловмисниками для виконання довільного коду і отримання контролю над призначеним для користувача пристроєм.

Більшість вразливостей було виявлено дослідником безпеки з Google Андрієм Коноваловим. Експерт повідомив співтовариство Linux про 14 вразливості, виявлених в USB-підсистемах ядра Linux. За словами Коновалова, кожна з них може бути проексплуатовано локальним зловмисником за допомогою спеціального шкідливого USB-пристрої.

В цілому досліднику вдалося виявити 79 проблем, пов'язаних з USB в Linux. Більшість з них призводять до відмови в обслуговуванні (Denial of Service, DoS), змушуючи ОС зависати або перезавантажуватися, проте деякі дозволяють зловмисникові підвищити привілеї на цільовій системі і виконати шкідливий код. Всі проблеми були виявлені за допомогою фаззінга-інструменту syzkaller, розробленого Google для пошуку вразливостей.

Раніше в цьому році дослідники безпеки з Лондонського університету представили інструмент для пошуку проблем в USB-стек Linux під назвою POTUS. Інструмент знаходить уразливості, встановлюючи віртуальну машину, універсальне USB-пристрій і тестуючи стек за допомогою таких методів, як внесення несправностей (fault injection), фаззінга (fuzzing) і символьне виконання коду (symbolic execution). За допомогою POTUS дослідники виявили дві уразливості в ядрі Linux. Перша вразливість CVE-2016-5400 приводила до витоку пам'яті в драйвері USB-пристрою, що використовується для зв'язку з програмним забезпеченням AirSpy Software Defined Radio (SDR). Друга вразливість (не отримала ідентифікатор CVE) існувала в драйвері Lego USB Tower в ядрі Linux з 2003 року.



Фаззінга (fuzzing) - техніка тестування програмного забезпечення, часто автоматична або напівавтоматична, що містить у передачі з додатком на вхід неправильних, несподіваних або випадкових даних.

Внесення несправностей - метод, який використовується в тестуванні програмного забезпечення. Передбачає штучне внесення різного роду несправностей для тестування відмовостійкості і, зокрема, обробки виключень.

Символьне виконання (symbolic execution) - техніка, що дозволяє проводити моделювання виконання програми, при якому частина вхідних змінних представляється в символьному вигляді.




Додати коментар
:D :lol: :-) ;-) 8) :-| :-* :oops: :sad: :cry: :o :-? :-x :eek: :zzz :P :roll: :sigh:
 Введіть вірну відповідь