web application security testing guide
як викликати функцію в основному python
Завдяки величезному обсягу даних, що зберігаються у веб-програмах, і збільшенню кількості транзакцій в Інтернеті, належне тестування безпеки веб-додатків стає дуже важливим з кожним днем.
У цій статті ми детально дізнаємося про ключові терміни, що використовуються в тестуванні безпеки веб-сайтів, та його підхід до тестування.
Що ви дізнаєтесь:
- Що таке тестування безпеки?
- Деякі ключові терміни, що використовуються при тестуванні безпеки
- Рекомендовані засоби перевірки безпеки
- Підхід до тестування безпеки
- Методи тестування веб-безпеки
- Висновок
- Рекомендована література
Що таке тестування безпеки?
Тестування безпеки це процес, який перевіряє, чи є конфіденційні дані залишаються конфіденційними чи ні (тобто він не піддається фізичним / юридичним особам, для яких він не призначений), і користувачі можуть виконувати лише ті завдання, які вони уповноважені виконувати
Наприклад, користувач не повинен мати можливість заборонити функціональність веб-сайту іншим користувачам, або користувач не повинен мати змогу ненавмисно змінювати функціональність веб-програми тощо.
Деякі ключові терміни, що використовуються при тестуванні безпеки
Перш ніж продовжувати далі, буде корисно ознайомитися з кількома термінами, які часто використовуються у тестуванні безпеки веб-додатків:
Що таке “вразливість”?
У цьому полягає слабкість веб-програми. Причиною такої 'слабкості' можуть бути помилки в додатку, ін'єкція (код SQL / скрипт) або наявність вірусів.
Що таке 'Маніпулювання URL-адресами'?
Деякі веб-програми передають додаткову інформацію між клієнтом (браузером) та сервером у URL-адресі. Зміна деякої інформації в URL-адресі може іноді призвести до ненавмисної поведінки сервера, і це називається Маніпулювання URL-адресами .
Що таке “ін’єкція SQL”?
Це процес вставки операторів SQL через користувальницький інтерфейс веб-програми в якийсь запит, який виконується сервером.
Що таке “XSS (міжсайтові сценарії)”?
Коли користувач вставляє HTML / скрипт на стороні клієнта в користувальницький інтерфейс веб-програми, ця вставка є видимою для інших користувачів і називається як XSS .
Що таке 'спуфінг'?
Закликається створення обманних схожих веб-сайтів або електронних листів Підробка .
Рекомендовані засоби перевірки безпеки
# 1) Acunetix
найпоширенішим програмним пакетом для створення простих діаграм є
Acunetix є наскрізним сканером безпеки веб-додатків. Це дасть 360-градусний огляд безпеки вашої організації. Він здатний виявляти 6500 типів уразливостей, таких як ін'єкції SQL, XSS, і слабкі паролі тощо. Він використовує передову технологію запису макросів для сканування складних багаторівневих форм.
Платформа інтуїтивно зрозуміла і проста у використанні. Ви можете запланувати і визначити пріоритети повного сканування, а також додаткового сканування. Він містить вбудовану функціональність управління уразливістю. За допомогою інструментів CI, таких як Jenkins, нові збірки можна сканувати автоматично.
=> Спробуйте Acunetix для захисту веб-додатків
# 2) Кіуван
Знайдіть та виправте вразливості у своєму коді на кожному етапі SDLC.
Кіуван відповідає найсуворішим стандартам безпеки, включаючи OWASP, CWE, SANS 25, HIPPA та ін.Інтегруйте Kiuwan у свою IDE для миттєвого зворотного зв’язку під час розробки. Kiuwan підтримує всі основні мови програмування та інтегрується з провідними інструментами DevOps.
=> Скануйте свій код безкоштовно
Підхід до тестування безпеки
Для того, щоб провести корисний тест безпеки веб-програми, тестер безпеки повинен добре знати протокол HTTP.
Важливо мати розуміння того, як клієнт (браузер) і сервер взаємодіють за допомогою HTTP.
Крім того, тестувальник повинен принаймні знати основи введення SQL та XSS.
Сподіваємось, кількість дефектів безпеки, присутніх у веб-програмі, не буде високою. Однак вміння точно описати всі дефекти безпеки з усіма необхідними деталями, безумовно, допоможе.
Методи тестування веб-безпеки
# 1) Злом пароля
Тестування безпеки на Веб-додаток може бути розпочато 'Злом пароля'. Для того, щоб увійти до приватних областей програми, можна або вгадати ім'я користувача / пароль, або скористатися яким-небудь інструментом злому паролів для того самого. Список загальних імен користувачів та паролів доступний разом із програмами зломщиків паролів з відкритим кодом.
Якщо веб-програма не застосовує складний пароль ( Наприклад, з алфавітами, цифрами та спеціальними символами або принаймні з необхідною кількістю символів), може не знадобитися дуже багато часу, щоб зламати ім’я користувача та пароль.
Якщо ім’я користувача чи пароль зберігаються у файлах cookie без шифрування, зловмисник може використовувати різні методи викрадення файлів cookie та інформації, що зберігається в файлах cookie, таких як ім’я користувача та пароль.
Детальніше див. У статті “ Тестування файлів cookie веб-сайту '.
# 2) Маніпулювання URL-адресами за допомогою методів HTTP GET
Тестер повинен перевірити, передає програма важливу інформацію у рядок запиту чи ні. Це трапляється, коли програма використовує метод HTTP GET для передачі інформації між клієнтом та сервером.
Інформація передається через параметри в рядку запиту. Тестер може змінити значення параметра в рядку запиту, щоб перевірити, чи приймає його сервер.
За допомогою HTTP-запиту GET інформація користувача передається на сервер для автентифікації або отримання даних. Зловмисник може маніпулювати кожною вхідною змінною, переданою цим запитом GET на сервер, щоб отримати необхідну інформацію або пошкодити дані. У таких умовах будь-яка незвична поведінка програми або веб-сервера є дверним отвором для того, щоб зловмисник потрапив до програми.
# 3) Введення SQL
Наступним фактором, який слід перевірити, є SQL Injection. Введення однієї лапки (‘) у будь-яке текстове поле має бути відхилено програмою. Натомість, якщо тестер виявляє помилку в базі даних, це означає, що введення даних користувача вставляється в якийсь запит, який потім виконується додатком. У такому випадку додаток вразливий до введення SQL.
Атаки введення SQL дуже важливі, оскільки зловмисник може отримати важливу інформацію з бази даних сервера. Щоб перевірити точки введення SQL у вашу веб-програму, дізнайтеся код із вашої кодової бази, де в базі даних виконуються прямі запити MySQL, приймаючи деякі введені користувачем дані.
b дерево і b + дерево
Якщо введені користувачем дані створюються в запитах SQL для запиту до бази даних, зловмисник може вводити оператори SQL або частину операторів SQL як вхідні дані користувача для вилучення життєво важливої інформації з бази даних. Навіть якщо зловмисник успішно завершує роботу програми, через помилку запиту SQL, що відображається у браузері, зловмисник може отримати інформацію, яку шукає.
У таких випадках слід спеціально обробляти / захищати спеціальні символи від введених користувачем даних.
# 4) Міжсайтові сценарії (XSS)
Тестер повинен додатково перевірити веб-програму на наявність XSS (міжсайтовий сценарій). Будь-який HTML Наприклад, або будь-який сценарій Наприклад, не повинні бути прийняті заявкою. Якщо це так, то програма може бути схильна до атаки міжсайтовими сценаріями.
Зловмисник може використовувати цей метод для запуску шкідливого сценарію або URL-адреси в браузері жертви. Використовуючи міжсайтові сценарії, зловмисник може використовувати такі сценарії, як JavaScript, для викрадення користувацьких файлів cookie та інформації, що зберігається в файлах cookie.
Багато веб-додатків отримують корисну інформацію та передають цю інформацію в деяких змінних з різних сторінок.
Наприклад, http://www.examplesite.com/index.php?userid=123 & запит = xyz
Зловмисник може легко передати зловмисне введення або як параметр '& query', який може дослідити важливі дані користувача / сервера у браузері.
Важливо: Під час тестування безпеки тестувальник повинен бути дуже обережним, щоб не змінити жодного з наступного:
- Конфігурація програми або сервера
- Сервіси, що працюють на сервері
- Існуючі дані користувача або клієнта, розміщені додатком
Крім того, слід уникати перевірки безпеки у виробничій системі.
Висновок
Метою тесту безпеки є виявлення вразливостей веб-програми, щоб розробники могли видалити ці вразливості із програми та зробити веб-програму та дані безпечними від будь-яких несанкціонованих дій.
Рекомендована література => Різниця між SAST / DAST / IAST / RASP
Не соромтеся ділитися своїми коментарями / пропозиціями щодо цієї статті.
Рекомендована література
- Посібник для початківців для тестування на проникнення веб-додатків
- Тестування безпеки (повний посібник)
- Альфа-тестування та бета-тестування (повний посібник)
- Тестування мережевої безпеки та найкращі інструменти мережевої безпеки
- Найкращі засоби тестування програмного забезпечення 2021 р. (Інструменти автоматизації тестування якості)
- Повне керівництво з тестування перевірки складання (тестування BVT)
- Найкращі 4 інструменти тестування безпеки з відкритим кодом для тестування веб-додатків
- Функціональне тестування проти нефункціонального тестування