Вони виявили проблеми безпеки в патчах ядра Linux, запропонованих співробітником Huawei

Розробники проекту Grsecurity оприлюднив інформацію з питань безпеки які були знайдені у запропонованому патчі для поліпшення безпеки ядра Linux співробітником Huawei, наявність тривіально експлуатованої вразливості в наборі виправлень HKSP (Самозахист ядра Huawei).

Ці виправлення “HKSP” були опубліковані співробітником Huawei 5 днів тому і включають згадування про Huawei у профілі GitHub і використовують слово Huawei при декодуванні назви проекту (HKSP - Huawei Kernel Self Protection), хоча emplado зазначає, що проект не має нічого спільного з компанією і є його власним.

Цей проект провів моє дослідження у вільний час, ім’я hksp дав я сам, це не пов’язано з компанією Huawei, немає продукту Huawei, який використовує цей код.

Цей код виправлення був створений мною, оскільки одній людині не вистачає енергії, щоб покрити все. Тому бракує забезпечення якості, такого як перевірка та тестування.

Про HKSP

HKSP включає такі зміни, як рандомізація структура компромісів, захист від атак простору імен ідентифікатор користувача (pid простору імен), процес поділу стека з області mmap, функція kfree виявлення подвійного виклику, блокування витоків через псевдо-FS / proc (/ proc / {модулі, ключі, користувачі ключів}, / proc / sys / kernel / * та / proc / sys / vm / mmap_min_addr, / proc / kallsyms), покращена рандомізація адрес в користувацькому просторі, додатковий захист від Ptrace, покращений захист від smap і smep, можливість заборони відправки даних через необроблені сокети, блокування адрес Недійсний для сокетів UDP та перевірки та цілісність запущених процесів.

Структура також включає модуль ядра Ksguard, призначений для ідентифікації спроб запровадження типових руткітів.

Ці патчі викликали інтерес до Грега Кроах-Хартмана, відповідальний за підтримку стабільної гілки ядра Linux, хто буде попросив автора розділити монолітний патч на частини для спрощення огляду і просування до центральної композиції.

Кіз Кук (Kees Cook), керівник проекту з просування технологій активного захисту в ядрі Linux, також позитивно висловився про виправлення, а питання привернули увагу до архітектури x86 та характеру повідомлень багатьох режимів, які лише записують інформація про проблему, але не спробуйте заблокувати її.

Патч-дослідження розробників Grsecurity виявив багато помилок та недоліків у коді Це також показало відсутність моделі загроз, яка дозволяє адекватно оцінити можливості проекту.

Для ілюстрації того, що код був написаний без використання безпечних методів програмування, Приклад тривіальної вразливості наведено в обробнику файлів / proc / ksguard / state, який створюється з дозволами 0777, що означає, що кожен має доступ до запису.

Функція ksg_state_write, яка використовується для синтаксичного аналізу команд, записаних у / proc / ksguard / state, створює буфер tmp [32], в якому дані записуються на основі розміру переданого операнда, незалежно від розміру буфера призначення та без перевірки параметр із розміром рядка. Іншими словами, щоб перезаписати частину стека ядра, зловмисникові потрібно лише написати спеціально створений рядок у / proc / ksguard / state.

Отримавши відповідь, розробник прокоментував сторінку GitHub проекту “HKSP” ретроактивно після виявлення вразливості він також додав, що проект прогресує у вільний час для досліджень.

Дякуємо команді безпеки, що знайшла багато помилок у цьому патчі.
Ksg_guard - це зразковий біт для виявлення руткітів на рівні ядра, комунікація між користувачем та ядром запускає інтерфейс proc, моє вихідне призначення - швидко перевірити ідею, тому я не додаю достатньо перевірок безпеки.

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