Практично, кожна ІТ структура має уразливості, і цим не рідко, не проти скористуватися зловмисники. Цей допис сформовано, в якості додаткового «туторіалу-доповнення» до надзвичайно цікавої та корисної статті, розміщеної на нашому сайті поряд – «Реальний приклад необхідності тестування безпеки» Читайте обов’язково!
       Тож вперед, поїхали! Для початку розглянемо, що таке тестування безпеки?
    Тестування безпеки або Security and Access Control Testing – це стратегія тестування програмного забезпечення, основна мета якого знайти та знешкодити всі наявні ризики, що представляють явну загрозу WEB-додатку, й запобігти втраті даних у ньому. Логічно, використовується для перевірки безпеки системи: щоби своєчасного виявити прогалини у безпеці, проаналізувати потенційні ризики, пов’язані із забезпеченням цілісного підходу до захисту Web-додатків, від атак хакерів, вірусів, несанкціонованого доступу до конфіденційних даних.

Безпека програмного забезпечення узагалом базується на 3-х принципах:

  • конфіденційності;
  • цілісності;
  • доступності.

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

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

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

    Які точки будуть вразливими у конкретній програмній структурі – наперед складно передбачити, ми вже з Вами це обговорювали –  «людська фантазія та жадоба не мають меж», «закриються одні двері чи друге віконечко пролізти» хакери завжди перебуватимуть у пошуках альтернативного.

    По стратегіях Тестування Безпеки Програмного Забезпечення існує кілька міжнародно-визнаних класифікацій вразливостей програмного забезпечення.

З них  найбільш поширеними виділяють такі види вразливостей:

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


А ось скрипт, котрий робить редирект на заражену сторінку:


чи створює шкідливий об’єкт з вірусом тощо:


Якщо бажаєте дізнатися більшу кількість прикладів, рекомендуємо відвідати сторінку: XSS (Cross-Site Scripting)  Згодом ми постараємося розповісти Вам більше про роботу опенсорс спільноти Open Web Application Security Project (OWASP).

    XSRF/CSRF (Request Forgery) – вид вразливості, що дозволяє використовувати недоліки HTTP-протоколу. До речі, це одна з причин масового переходу на HTTPS-протокол. При цьому зловмисники працюють за такою схемою: ссилка на шкідливий сайт встановлюється на довіреній у користувача сторінці, а далі при переході по шкідливому посиланні виконується скрипт, який зберігає особисті дані користувача (паролі, платіжні дані і т.д.), або відправляється спам-повідомлення від особи користувача, чи змінюється доступ до облікового запису користувача, заради отримання повного контролю над ним.
Найбільш частими CSRF атаками є атаки з використанням тегу HTML <IMG> тегу або Javascript об’єкта image. Найчастіше атакуючий додає необхідний код в електронний лист або на веб-сайті викладається заражена картинка. Таким чином при завантаженні сторінки здійснюється запит, виконується шкідливий код. Ілюстрація:
IMG SRC

SCRIPT SRC

Javascript объект Image

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

Вставки виконуваного коду розглянемо на прикладі коду SQL.

Форма входу в систему має 2 поля – ім’я та пароль. Обробка відбувається в базі даних через виконання SQL запиту:

Вводимо коректне імя «tester», а в поле пароль вводиться рядок:

testpass’ OR ‘1’=’1

У підсумку, якщо у поля не має відповідної валідації або обробника даних, може проявитися вразливість, яка дозволить зайти в захищену паролем систему, бо SQL запит прийме наступний вигляд:

Умова ‘1’ = ‘1’ завжди буде правдивою й тому SQL запит завжди повертатиме багато значень.

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

Залежності від типу операційної системи, команди різняться. До прикладу розглянемо команду для ОС Linux, котра виводить на екран список її файлів:

  

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

    Яким чином? Припустімо є 2 користувача – А і Б. Користувач А може отримати доступ до документів користувача Б при простій реалізації, де при перегляді свого профілю, що містить конфіденційної інформацію, в URL сторінки передається ідентифікатор користувача – ID. А у випадку підстановки замість свого ідентифікатора, ідентифікатор іншого користувача – Ву-а-ля! Відображаються його дані – це значить Ви знайшли дефект 🙂 Вітаємо!

Бажаєте бути справжнім фахівцем у галузі тестування безпеки?

   Реєструйтеся Курси Тестування Безпеки (посилання активне, можна ознайомитися із програмою). Курс розрахований на 2 місяці у вечірній час,  18 занять по 3 години!!!

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

Related posts

Кілька слів про DoS-атаки

    Словосполучення DoS-атака у зловіщому ракурсі, точно раз за життя чув кожен. Але разом з тим, навіть теоретичне значення цього явища – невідоме...

Читати більше

Leave a Comment

Цей сайт використовує Akismet для зменшення спаму. Дізнайтеся, як обробляються ваші дані коментарів.