База знань

Тестування безпеки

Тестування безпеки – комплекс досліджень програмного продукту, спрямований на пошук і виявлення дефектів, пов’язаних із збереженням даних користувача, а саме:

Цілісність. Обмеження кола користувачів, що мають доступ до даних, визначення ступеня шкоди, завданої при втраті тих чи інших даних.

Доступність. Являє собою вимоги до того, що ресурси повинні бути доступні авторизованому користувачеві, внутрішньому об’єкту або пристрою. Як правило, чим більш критичний ресурс – тим вище рівень доступності повинен бути.

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

У ході тестування найчастіше тестувальник грає роль зловмисника та починає маніпулювати різними чином додатком:

    • Намагається дізнатися пароль за допомогою зовнішніх засобів.
    • Атакує систему за допомогою спеціальних утиліт, які аналізують захист.
    • Придушує, приголомшує систему (в надії, що вона відмовиться обслуговувати інших клієнтів).
    • Цілеспрямовано введить помилки в надії проникнути в систему в ході відновлення.
    • Переглядає несекретні дані в надії знайти ключ для входу в систему.

secur_test

Продовжуючи тему, можна виділити кілька основних видів вразливості:

XSS (Cross-Site Scripting) – це вид вразливості програмного забезпечення (Web додатків), при якій на сторінці, що генерується сервером, виконуються шкідливі скрипти з метою атаки клієнта.

XSRF / CSRF (Request Forgery) – це вид вразливості, що дозволяє використати недоліки HTTP протоколу. Зловмисники працюють за наступною схемою: посилання на шкідливий сайт встановлюється на сторінці, що користується довірою у користувача, при переході по шкідливому посиланню виконується скрипт, який зберігає особисті дані користувача (паролі, платіжні дані і т.д.), або такий, що надсилає СПАМ повідомлення від особи користувача чи змінює доступ до облікового запису – для отримання повного контролю над ним.

Code injections (SQL, PHP, ASP и т.д.) – це вид вразливості, при якому стає можливо здійснити запуск виконуваного коду з метою отримання доступу до системних ресурсів, несанкціонованого доступу до даних або виведення системи з ладу.

Server-Side Includes injection (SSI) Injection – це вид вразливості, що використовує вставку серверних команд в HTML код або запуск їх безпосередньо з сервера.

Authorization Bypass – це вид вразливості, при якому можливо отримати несанкціонований доступ до облікового запису або документам іншого користувача.