web application security testing guide
как да намеря мрежов ключ за сигурност
Благодарение на огромното количество данни, съхранявани в уеб приложения и увеличаването на броя на транзакциите в мрежата, правилното тестване на сигурността на уеб приложенията става много важно всеки ден.
В тази статия ще научим подробно за ключовите термини, използвани в тестването на сигурността на уебсайта и неговия подход за тестване.
Какво ще научите:
- Какво е тестване на сигурността?
- Някои ключови термини, използвани при тестване на сигурността
- Препоръчителни инструменти за тестване на сигурността
- Подход за тестване на сигурността
- Методи за тестване на уеб сигурността
- Заключение
- Препоръчително четене
Какво е тестване на сигурността?
Тестване на сигурността е процесът, който проверява дали поверителните данни остават поверителни или не (т.е. не е изложен на физически / юридически лица, за които не е предназначен) и потребителите могат да изпълняват само онези задачи, които са упълномощени да изпълняват
Например, потребителят не трябва да може да откаже функционалността на уебсайта на други потребители или потребителят не трябва да може да променя функционалността на уеб приложението по неволен начин и т.н.
Някои ключови термини, използвани при тестване на сигурността
Преди да продължим по-нататък, ще бъде полезно да се запознаем с няколко термина, които често се използват при тестване на сигурността на уеб приложението:
Какво е „Уязвимост“?
Това е слабостта на уеб приложението. Причината за такава „слабост“ може да се дължи на грешки в приложението, инжекция (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) Пробиване на парола
Тестването на сигурността на a Уеб приложение може да бъде стартиран от “Cracking Password”. За да влезете в частните области на приложението, можете да познаете потребителско име / парола или да използвате някакъв инструмент за разбиване на пароли за същото. Наличен е списък с често срещани потребителски имена и пароли, заедно с бисквитки за пароли с отворен код.
Ако уеб приложението не налага сложна парола ( Например, с азбуки, цифри и специални знаци или с поне необходим брой знаци), може да не отнеме много време, за да пробиете потребителското име и паролата.
Ако потребителско име или парола се съхраняват в бисквитките без криптиране, нападателят може да използва различни методи за кражба на бисквитките и информацията, съхранявана в бисквитките, като потребителско име и парола.
За повече подробности вижте статия на тема „ Тестване на бисквитки на уебсайтове ”.
# 2) Манипулиране с URL чрез HTTP GET методи
Тестерът трябва да провери дали приложението предава важна информация в низа на заявката или не. Това се случва, когато приложението използва метода HTTP GET за предаване на информация между клиента и сървъра.
Информацията се предава през параметрите в низа на заявката. Тестерът може да модифицира стойност на параметър в низа на заявката, за да провери дали сървърът го приема.
Чрез HTTP GET заявка потребителската информация се предава на сървъра за удостоверяване или извличане на данни. Атакуващият може да манипулира всяка входна променлива, предадена от тази GET заявка към сървър, за да получи необходимата информация или да повреди данните. При такива условия всяко необичайно поведение на приложение или уеб сървър е вратата за нападателя да влезе в приложение.
# 3) SQL инжектиране
Следващият фактор, който трябва да се провери, е SQL Injection. Въвеждането на единична кавичка (‘) във всяко текстово поле трябва да бъде отхвърлено от приложението. Вместо това, ако тестерът срещне грешка в базата данни, това означава, че потребителският вход се вмъква в някаква заявка, която след това се изпълнява от приложение. В такъв случай приложението е уязвимо за SQL инжектиране.
SQL инжекционните атаки са много критични, тъй като нападателят може да получи жизненоважна информация от сървърната база данни. За да проверите точките за въвеждане на SQL във вашето уеб приложение, разберете кода от вашата кодова база, където директните MySQL заявки се изпълняват в базата данни, като приемете някои потребителски входове.
Ако потребителските входни данни са създадени в SQL заявки за заявка към базата данни, нападателят може да инжектира SQL изрази или част от SQL изразите като потребителски входове, за да извлече жизненоважна информация от база данни. Дори ако нападателят е успял да срине приложението, от грешката на SQL заявката, показана в браузър, нападателят може да получи търсената от тях информация.
В такива случаи специалните символи от потребителските входове трябва да се обработват / избягват правилно.
# 4) Скриптиране между сайтове (XSS)
Тестерът трябва допълнително да провери уеб приложението за XSS (скриптове между сайтове). Всеки HTML Например, или който и да е скрипт Например, не трябва да се приема от заявлението. Ако е така, тогава приложението може да бъде предразположено към атака от скриптове между сайтове.
Атакуващият може да използва този метод, за да изпълни злонамерен скрипт или URL адрес в браузъра на жертвата. Използвайки скриптове между сайтове, нападателят може да използва скриптове като JavaScript, за да открадне потребителски бисквитки и информация, съхранявана в бисквитките.
Много уеб приложения получават полезна информация и я предават в някои променливи от различни страници.
Например, http://www.examplesite.com/index.php?userid=123 & заявка = xyz
Атакуващият може лесно да предаде някакъв злонамерен вход или като параметър ‘& query’, който може да изследва важни данни за потребител / сървър в браузъра.
Важно: По време на тестването на сигурността тестващият трябва да бъде много внимателен, за да не променя нищо от следните:
- Конфигурация на приложението или сървъра
- Услуги, работещи на сървъра
- Съществуващи данни за потребители или клиенти, хоствани от приложението
Освен това трябва да се избягва тест за сигурност в производствена система.
Заключение
Целта на теста за сигурност е да открие уязвимостите на уеб приложението, така че разработчиците да могат да премахнат тези уязвимости от приложението и да направят уеб приложението и данните безопасни от всякакви неоторизирани действия.
Препоръчително четене => Разлика между SAST / DAST / IAST / RASP
youtube to mp4 конвертор онлайн безплатно без изтегляне
Чувствайте се свободни да споделите вашите коментари / предложения относно тази статия.
Препоръчително четене
- Ръководство за начинаещи за тестване на проникване в уеб приложения
- Тестване на сигурността (Пълно ръководство)
- Алфа тестване и бета тестване (Пълно ръководство)
- Тестване на мрежовата сигурност и най-добрите инструменти за мрежова сигурност
- Най-добри инструменти за тестване на софтуер 2021 г. (Инструменти за автоматизация на QA теста)
- Пълно ръководство за тестване за проверка на компилация (BVT тестване)
- Топ 4 Инструменти за тестване на сигурността с отворен код за тестване на уеб приложение
- Функционално тестване срещу нефункционално тестване