Найвідоміші вразливості веб застосунків. XSS та SQL ін’єкції, вразливості автентифікації

У сучасному світі слово «кібербезпека» звучить все частіше. Хакери шукають нові вразливості інформаційних систем та способи обійти захист застосунків, компаній чи користувачів. Серед найбільш розповсюджених сценаріїв: використання вразливостей вебзастосунків або експлуатування вразливостей операційної системи, фреймворків чи бібліотек, які застосунки використовують. Коли ми ведемо мову про атаки типу XSS, в разі успішного експлуатування вразливостей системи хакер може налаштувати редірект запитів користувачів на шкідливі вебсторінки, а у випадку з SQL-ін’єкціями, отримати доступ баз даних сайту.

Еволюція кібератак — нові труднощі для security-спеціалістів та розробників. Про те, як тестувати безпеку застосунків й сервісів розповідає Надія Клименко, Senior Application Security Engineer в Bizzabo та викладачка SET University. В межах SET Workshops — серії благодійних воркшопів присвячених кібербезпеці та блокчейну.

SET University в партнерстві з Teach for Ukraine проводить серію благодійних онлайн воркшопів. В межах першого івенту ми розповімо про найбільш розповсюджені вразливості веб застосунків. А саме — XSS ін’єкції, SQL ін’єкції та вразливості автентифікації.

Кожен воркшоп включатиме теорію вразливості. Чому вона виникає. Які існують види ін’єкцій, вектори атак. Як дану вразливість шукати та експлуатувати. Які ризики вони несуть в собі. А також, способи захисту від даного типу вразливостей. Всі зібрані кошти будуть спрямовані на придбання ноутбуків для 37 викладачів зруйнованої школи в Бородянці.

Розвиток кібербезпеки, від брандмауерів до PEN-тестування.

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

Одним з перших рішень були фаєрволи — це мережеві фільтри між корпоративною і зовнішньою (Інтернет) мережею. Ці фільтри були здатні блокувати лише підозрілі мережеві пакети на мережевому і канальному рівнях аналізуючи IP-адресу джерела та призначення, міток фрагментації й номери портів.

Сучасніші системи — такі як IPS / IDS (система запобігання вторгнень / система виявлення вторгнень) — здатні аналізувати вміст мережевих пакетів і порівнювати цей вміст з сигнатурами відомих атак. Проте більшість атак сьогодні — це експлуатація вразливостей самого застосунку, а не вразливостей фреймворків та бібліотек. Зі збільшенням кількості вебдодатків з’явилася ще одна проблема — сукупне число наявних вразливостей набагато більше, ніж кількість сигнатур в базах сучасних IPS — систем.

Для надійного захисту застосунку необхідний кардинально інший підхід: з глибоким аналізом змісту пакетів і хорошим знанням структури вебзастосунків, включаючи URL-параметри, хедери, форми введення даних і ін. Таким умовам задовольняє Web Firewall Application — брандмауер для застосунків, які здійснюють передачу даних через HTTP і HTTPS.

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

Результатом пошуку рішення, як ефективно запобігати новішим типам кібератак стало PEN-тестування. Якщо говорити узагальнено, то в основі цього методу проста гіпотеза, щоб ефективно вдосконалювати системи та способи захисту продуктів від кібератак, необхідно розуміти, яким чином шукають ту чи іншу вразливість, і як вона влаштована зсередини. Іншими словами — щоб захиститися від хакерської атаки, потрібно усвідомлювати, за якими сценаріями вона може відбутися й де шукати головні слабкості системи. Саме завдяки активному аналізу системи на вміст дефектів коду чи в площині безпекових рішень можна виявити потенційні вразливості. Важливо, що PEN-тестування завжди проводиться з позиції потенційного нападника і може включати активне використання вразливостей. Тобто це контрольоване проникнення в систему. Про деякі з потенційних вразливостей ми поговоримо нижче.

XSS ін’єкції: що це та які наслідки експлуатування вразливості

XSS (або ще міжсайтовий скриптинг) ін’єкції — досить поширена вразливість, яка зустрічається у багатьох застосунках. Головна ідея XSS в тому, що зловмиснику вдається додати на сторінку JavaScript-код, якого до цього не було. Цей код буде виконуватися щоразу, коли жертви (тобто користувачі) заходитимуть на сторінку застосунку, де цей код додав зловмисник.

XSS вразливість виникає при генерації HTML-сторінки, коли розробнику потрібно помістити туди дані, вказані користувачем. Якщо хакер зможе розмістити довільний HTML-код, то отримає доступ до змін та керування відображенням вебсторінки з правами самого сайту.

Типи цих вразливостей:

  1. Stored (збережена) XSS ін’єкція виникає, якщо шкідливий сценарій постійно зберігається на цільовому сервері. Сторонній код, який впроваджено в сеанс користувача, знаходиться на вебсервері та чекає на відвідування користувача. Коли користувач запитує дані, що зберігаються в базі даних, програма може надіслати шкідливий сценарій користувачеві.
  2. Reflected (відображений) XSS виникає, коли вебпрограма приймає вхідні дані від користувача, а потім негайно повертає ці дані користувачеві в небезпечний спосіб.

Наслідки від XSS ін’єкції можуть бути критичними. Так, дана ін’єкція не впливає безпосередньо на застосунок, вона спрямована на користувача. Проте зловмисник може вкрасти авторизаційні cookie користувача застосунку і тим самим його сесію. Також може перенаправити користувача на власний сайт, де розмістить форми вводу, схожі на оригінальні. І якщо користувач введе свої дані, то вони опиняться у зловмисника. Можливість для безперешкодного експлуатування XSS ін’єкції у застосунку може призвести до витоку даних та суттєвих репутаційних втрат для компанії.

SQL ін’єкції: що це та які наслідки експлуатування вразливості

SQL ін’єкція (SQLi) — це тип ін’єкційної атаки, яка дозволяє модифікувати SQL команди для отримання даних або виведення з ладу програми. Зловмисники можуть модифікувати команди SQL, які впливають на ваш застосунок, через деякі вхідні дані на вашому сайті, наприклад, поле пошуку.

Успішне виконання SQL ін’єкції може призвести до неавторизованого доступу до конфіденційних даних (це може бути дуже «чутлива» інформація — наприклад, паролі, адреси, дані кредитних карток і так далі). За останні кілька років багато випадків витоку інформації стали результатом саме SQL ін’єкцій.

Автентифікація користувачів: як та чому виникає вразливість

Автентифікація — це дії, вжиті для встановлення або перевірки чогось або когось. Це процедура встановлення належності користувачеві інформації в системі пред’явленого ним ідентифікатора. В інформаційній безпеці автентифікація є частиною процедури надання доступу користувачу для роботи в застосунку, наступною після ідентифікації та передує авторизації.

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

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

  • атака перебору імені користувача та пароля
  • відсутність перевірки складності пароля
  • некоректний менеджмент сесії
  • неправильна реалізація функціонала зміни та відновлення пароля
  • атаки на JWT токени тощо.

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

Розуміння механізмів та природи даних вразливостей допоможе зробити Інтернет більш безпечним місцем. Якщо вам цікаво дізнатися детальніше про кожну з них та на практиці розібратися в тонкощах PEN-тестування — переходьте за посиланням та долучайтеся до благодійних воркшопів SET University.

Дисклеймер: вся інформація представлена виключно з метою навчання. Воркшопи вчать перевіряти свій застосунок на вразливості. Однак використання вразливостей на чужих ресурсах є незаконним. Пам’ятайте про це.

👍ПодобаєтьсяСподобалось1
До обраногоВ обраному0
LinkedIn
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter

Підписатись на коментарі