Тестування безпеки
![]() | Ця стаття є сирим перекладом з іншої мови. Можливо, вона створена за допомогою машинного перекладу або перекладачем, який недостатньо володіє обома мовами. (серпень 2019) |
Тестування безпеки (англ. Security testing) - оцінка вразливості програмного забезпечення до різних атак.
Комп'ютерні системи дуже часто є мішенню незаконного проникнення. Під проникненням розуміється широкий діапазон дій: спроби хакерів проникнути в систему із спортивного інтересу, помста розсерджених службовців, взлом шахраями для незаконної наживи. Тестування безпеки перевіряє фактичну реакцію захисних механізмів, вбудованих в систему, на проникнення. У ході тестування безпеки випробувач грає роль хакера, який намагається знайти в системі вразливі місця. Йому дозволено все:
- Спроби дізнатися пароль за допомогою зовнішніх засобів;
- Атака системи за допомогою спеціальних утиліт, які аналізують захищеність;
- Подавлення, перевантаження системи (в надії, що вона відмовиться обслуговувати інших клієнтів);
- Цілеспрямоване введення помилок з ціллю проникнути в систему в ході відновлення;
- Перегляд несекретних даних з метою знайти ключ для входу в систему.
При необмеженому часі і ресурсах хороше тестування безпеки взламає будь-яку систему. Завдання проектувальника системи - зробити ціну проникнення більш високою, ніж ціна одержуваної в результаті інформації.
Тестування безпеки являє собою процес, який використовується для визначення захисту даних інформаційної системи при збереженні функціональності.
Шість основних аспектів безпеки, з яких складається тестування безпеки є: конфіденційність, цілісність, аутентифікація, доступність, авторизації і безвідмовність. Тестування безпеки як термін має кілька різних значень і може бути інтерпретований різними способами. Таксономія безпеки допомагає нам зрозуміти ці різні підходи і значення, надаючи базовий рівень, з якого можна розпочинати роботу по забезпеченню безпеки.
Конфіденційність
- Міра безпеки, яка захищає інформацію від розкриття іншим сторонам, крім одержувача. Ця міра в жодному разі не є єдиним способом забезпечення безпеки.
Цілісність
- Дозволяє клієнту визначити, що інформація, яку він отримує від системи, є правильною.
- Схеми цілісності часто використовують деякі з основних технологій, як конфіденційність схеми, але вони зазвичай включають інформацію в повідомлення на основі алгоритмічних перевірок, а не кодування всього канала.
Ідентифікація
- Цей етап включає в себе підтверждення особи, простежуючи хід виконання тих чи інших дій. Також, ця міра гарантує, що ПЗ надає клієнту таку інформацію, яку має надавати.
Авторизація
- Процес визначення того, чи є дозвіл в користувача отримувати ту чи іншу послугу або виконати операцію.
Управління доступом є прикладом авторизації.
Доступність
- Забезпечення того, що інформація та комунікаційні сервіси будуть готові для використання тоді, коли очікується.
- Інформація повинна бути доступна для авторизованих осіб, в будь-який момент.
Безвідмовність
- Відносно цифрової безпеки, безвідмовність означає запевнення того, що повідомлення, яке передається, було відправлено і отримано саме тими сторонами, які цим займалися. Безвідмовність гарантує те, що відправник і отримувач повідомлення не зможуть згодом відмінити свої дії.
Таксономія тестування безпеки
Загальні терміни, які використовуються в тестуванні безпеки:
- Визначення - Метою даного етапу є визначення системи в межах її обсягу та послуг, які при цьому задіяні. Цей етап не призначений для виявлення вразливих місць. Визначення версії допомагає знайти зміни з попередніх версій програмного забезпечення і таким чином вказати на потенційні вразливості.
- Пошук вразливостей - Після етапу виявлення цей етап перевіряє на наявність відомих проблем безпеки за допомогою автоматизованих засобів відповідно до умов. Рівень повідомлень ризику встановлюється автоматично за допомогою інструменту, без ручної перевірки або втручання тестувальника. Також, цей етап може бути доповнений певним скануванням, яке базується на ідентифікації. Воно слідкує за деякими помилковими спрацьовуваннями системи за допомогою облікових даних для перевірки (наприклад, локальні облікові записи Windows).
- Оцінка вразливості - цей етап визначає і використовує сканування для пошуку вразливостей, які згодом розміщує в контексті навколишнього середовища. Прикладом може служити видалення загальних помилкових спрацьовувань із звіту та виявлення рівня ризиків, які повинні бути застосовані до кожного спрацьовування для покращення розуміння системи та її контексту.
- Оцінка безпеки - базується на оцінці вразливості, за рахунок додавання ручної перевірки для підтвердження експозиції, але не включає експлуатацію вразливостей, щоб отримати більш широкий доступ. Перевірка може проводитися у вигляді несанкціонованого доступу до системи, щоб підтвердити налаштування та захист системи, задіяти системний лог, повідомлення про помилки, коди і т.д. За допомогою оцінки безпеки тестувальники прагнуть отримати широке представлення системи, але без подробиць про її внутрішню функціональність.
- Випробування на проникнення - Тест проникнення імітує напад зловмисників. Ґрунтуючись на попередніх етапах та включаючи в себе використання знайдених вразливостей, тест намагається отримати більш широкий доступ до системи. При використанні цей підхід приводить до розуміння того, як зловмисник отримає доступ до конфіденційної інформації та повпливає на цілісність даних. Кожен тест розрахований на використання постійної та повноцінної методології таким чином, що дозволяє тестеру використовувати свої здібності, щоб вирішувати проблеми, які виходять за межі дії їх інструментів, їх власних знань та досвіду. Це допомагає знайти ті вразливості, які б не були ідентифіковані ні одним автоматизованим засобом. Цей підхід ґрунтується на типі атаки в порівнянні з оцінкою безпеки системи, яка охоплює більш широку зону системи.
- Аудит безпеки - це функція, яка дивитися на конкретний елемент керування або дотримання його специфіки. Охарактеризований вузькою сферою, цей тип взаємодії може використовувати як будь-який з підходів, що обговорювався раніше (оцінка вразливості, оцінка безпеки, тест проникнення).
- Огляд Безпеки - підтвердження того, що галузеві стандарти або внутрішня безпека були застосовані до компонентів системи або продукту. Це, як правило, робиться в ході аналізу недоліків і використовує побудову / огляд коду або виконується шляхом перегляду проектної документації та архітектури діаграм. Ця дія не використовує будь-яку з попередніх підходів (оцінка вразливості, оцінка безпеки, тест проникнення, аудит безпеки).
Посилання
- Тестування безпеки — protesting.ru
- Тестування вразливості — MSDN Magazine
- Особливості тестування безпеки ПЗ (рус.)
- Біла книга: Тестування безпеки для фінансових інститутів