Це перевірка зміцнення команд, яку можна запустити в постачальнику безкоштовного хостингу OnWorks за допомогою однієї з наших численних безкоштовних робочих станцій, таких як Ubuntu Online, Fedora Online, онлайн-емулятор Windows або онлайн-емулятор MAC OS.
ПРОГРАМА:
ІМ'Я
hardening-check - перевірка бінарних файлів на наявність функцій посилення безпеки
СИНТАКСИС
Hardening-check [опції] [ELF ...]
Вивчіть заданий набір двійкових файлів ELF і перевірте наявність кількох функцій посилення безпеки,
невдач, якщо вони не всі знайдені.
ОПИС
Ця утиліта перевіряє заданий список двійкових файлів ELF на наявність кількох функцій посилення безпеки
який можна скомпільувати у виконуваний файл. Це:
становище Незалежний Виконуваний
Це вказує на те, що виконуваний файл був побудований таким чином (PIE), що «текст»
розділ програми можна перемістити в пам'ять. Щоб скористатися цим у повній мірі
функція, виконуюче ядро повинно підтримувати рандомізацію текстового адресного простору
(ASLR).
Стек захищений
Це вказує на те, що є докази того, що ELF був складений з ПКУ(1)
варіант -fstack-протектор (наприклад, використовує __stack_chk_fail). Програма буде
стійкий до переповнення його стека.
Коли виконуваний файл був створений без виділення символьних масивів
стека, ця перевірка призведе до помилкових тривог (оскільки немає користі від
__stack_chk_fail), незважаючи на те, що він був зібраний з правильними параметрами.
Укріпити Source Функції
Це вказує на те, що виконуваний файл був скомпільований з -D_FORTIFY_SOURCE=2 та -О1
або вище. Це викликає певні небезпечні функції glibc з їх безпечнішими
аналоги (напр strncpy замість strcpy), або замінює виклики, які є
можна перевірити під час виконання за допомогою версії перевірки під час виконання (наприклад __memcpy_chk замість цього
of memcpy).
Коли виконуваний файл був побудований таким чином, щоб укріплені версії glibc
функції не є корисними (наприклад, використання перевіряється як безпечне під час компіляції або використання
неможливо перевірити під час виконання), ця перевірка призведе до помилкових тривог. В
намагаючись пом’якшити це, перевірка пройде, якщо буде знайдена будь-яка посилена функція,
і вийде з ладу, якщо будуть знайдені лише неукріплені функції. Також неперевірені умови
пропуск (наприклад, функції, які можна було б посилити, не знайдено або не пов’язано з ними
glibc).
Тільки для читання переїзди
Це вказує на те, що виконуваний файл був зібраний з -Wl,-z,relro мати ELF
позначки (RELRO), які просять компонувальник часу виконання позначити будь-які регіони переміщення
таблицю як "лише для читання", якщо вони були вирішені до початку виконання. Це зменшує
можливі області пам’яті в програмі, які може використовуватися зловмисником
виконує успішну спробу пошкодження пам’яті.
негайний обов'язковий
Це вказує на те, що виконуваний файл був створений з -Вл,-з, зараз мати маркування ELF
(BIND_NOW), які просять компонувальник часу виконання вирішити всі переміщення перед запуском
виконання програми. У поєднанні з RELRO вище, це ще більше зменшує
області пам’яті, доступні для атак пошкодження пам’яті.
ВАРІАНТИ
--нопіє, -p
Ні, не вимагає, щоб перевірені двійкові файли були побудовані як PIE.
-- nostackprotector, -s
Немає вимоги, щоб перевірені двійкові файли були створені за допомогою захисту стека.
--непідтверджувати, -f
Ні, не вимагає, щоб перевірені двійкові файли були створені за допомогою Fority Source.
--норелро, -r
Ні, не потрібно, щоб перевірені двійкові файли були побудовані за допомогою RELRO.
--nobindnow, -b
Ні, не вимагає, щоб перевірені двійкові файли були створені за допомогою BIND_NOW.
--спокійно, -q
Повідомляйте лише про невдачі.
-багатослівний, -v
Детально повідомляйте про невдачі.
--звітні функції, -R
Після звіту відобразіть усі зовнішні функції, необхідні ELF.
--find-libc-функції, -F
Замість звичайного звіту знайдіть libc для першого ELF у команді
і повідомити про всі відомі «укріплені» функції, експортовані libc.
-колір, -c
Увімкнути кольоровий вихід статусу.
--лінтіан, -l
Переключити звітність на вихідні дані lintian-check-parsable.
--відлагоджувати Повідомте про деякі налагодження під час обробки.
--допомога, -h, -?
Надрукуйте коротке повідомлення довідки та вийдіть.
-- чоловік, -H
Роздрукуйте сторінку посібника та вийдіть.
ПОВЕРНЕННЯ VALUE
Коли всі перевірені двійкові файли мають усі перевірені функції зміцнення виявлено, ця програма
завершиться з кодом виходу 0. Якщо будь-яка перевірка завершиться невдало, код виходу буде 1.
Окремі перевірки можна вимкнути за допомогою параметрів командного рядка.
Використовуйте перевірку затвердіння онлайн за допомогою служб onworks.net