complete penetration testing guide with sample test cases
Това е процесът за идентифициране на уязвимости в сигурността в приложение чрез оценка на системата или мрежата с различни зловредни техники. Слабите места на системата се използват в този процес чрез оторизирана симулирана атака.
Целта на този тест е да осигури важни данни от външни лица като хакери, които могат да имат неоторизиран достъп до системата. След като уязвимостта бъде идентифицирана, тя се използва за експлоатация на системата за получаване на достъп до чувствителна информация.
Тестът за проникване е известен още като тест за писалка, а тестерът за проникване също е посочен като етичен хакер.
Какво ще научите:
- Какво е тестване за проникване?
- Причини за уязвимости
- Инструменти и компании за тестване на проникване
- Препоръчителни инструменти за изпитване на проникване
- Препоръчителна компания за изпитване на проникване
- Защо тестване на проникване?
- Какво трябва да се тества?
- Видове за изпитване на проникване
- Техники за тестване на химикалки
- Проби за тестване на проби Пробни случаи (тестови сценарии)
- Заключение
Какво е тестване за проникване?
Можем да разберем уязвимостите на компютърна система, уеб приложение или мрежа чрез тестване за проникване.
Тест за проникване показва дали съществуващите защитни мерки, използвани в системата, са достатъчно силни, за да предотвратят всякакви нарушения на сигурността. Докладите от тестовете за проникване също така предлагат контрамерките, които могат да бъдат предприети за намаляване на риска системата да бъде хакната.
Причини за уязвимости
- Грешки при проектирането и разработването : Възможно е да има недостатъци в дизайна на хардуера и софтуера. Тези грешки могат да изложат критичните за бизнеса ви данни на риск от излагане.
- Лоша конфигурация на системата : Това е друга причина за уязвимост. Ако системата е лошо конфигурирана, тогава тя може да въведе вратички, чрез които нападателите могат да влязат в системата и да откраднат информацията.
- Човешки грешки : Човешки фактори като неправилно изхвърляне на документи, оставяне на документите без надзор, грешки в кодирането, вътрешни заплахи, споделяне на пароли за фишинг сайтове и др. Могат да доведат до нарушения на сигурността.
- Свързаност : Ако системата е свързана с незащитена мрежа (отворени връзки), тя е достъпна за хакери.
- Сложност : Уязвимостта на сигурността се повишава пропорционално на сложността на системата. Колкото повече функции има една система, толкова повече шансове системата да бъде атакувана.
- Пароли : Паролите се използват за предотвратяване на неоторизиран достъп. Те трябва да са достатъчно силни, за да не може никой да познае паролата ви. Паролите не трябва да се споделят с никого на всяка цена и паролите трябва да се сменят периодично. Въпреки тези инструкции, понякога хората разкриват своите пароли на другите, записват ги някъде и пазят лесни пароли, които могат да се отгатнат.
- Потребителски вход : Трябва да сте чували за SQL инжектиране, препълване на буфер и др. Данните, получени по електронен път чрез тези методи, могат да се използват за атака на приемащата система.
- Управление : Сигурността е трудна и скъпа за управление. Понякога организациите изостават в правилното управление на риска и по този начин уязвимостта се предизвиква в системата.
- Липса на обучение на персонала : Това води до човешки грешки и други уязвимости.
- Комуникация : Канали като мобилни мрежи, интернет, телефон отварят обхвата на кражба на сигурност.
Инструменти и компании за тестване на проникване
Автоматизирани инструменти могат да се използват за идентифициране на някои стандартни уязвимости, налични в приложение. Pentest tools сканира код, за да провери дали има злонамерен код, който може да доведе до потенциално нарушение на сигурността. Инструментите на Pentest могат да проверят наличните в системата вратички в сигурността, като изследват техниките за криптиране на данни и измислят твърдо кодирани стойности като потребителско име и парола.
Критерии за избор на най-добрия инструмент за проникване:
- Тя трябва да бъде лесна за разполагане, конфигуриране и използване.
- Той трябва лесно да сканира вашата система.
- Той трябва да категоризира уязвимости въз основа на сериозността, която се нуждае от незабавна корекция.
- Той трябва да може да автоматизира проверката на уязвимостите.
- Той трябва да провери повторно експлоатите, открити по-рано.
- Той трябва да генерира подробни отчети и журнали за уязвимост.
След като разберете какви тестове трябва да извършите, можете или да обучите вашите вътрешни тестови ресурси, или да наемете експертни консултанти, които да ви свършат задачата за проникване.
Препоръчителни инструменти за изпитване на проникване
# 1) Acunetix
Acunetix WVS предлага на професионалисти по сигурността и на софтуерни инженери редица зашеметяващи функции в лесен, директен и много здрав пакет.
=> Опитайте най-добрия инструмент за тестване на писалка тук
# 2) Натрапник
Натрапник е мощен скенер за уязвимост, който открива слабостите в киберсигурността във вашето цифрово име, обяснява рисковете и помага за отстраняването им, преди да може да възникне нарушение. Това е идеалният инструмент, който ви помага да автоматизирате усилията си за тестване на проникване.
Основни функции :
- Над 9000 автоматизирани проверки в цялата ви ИТ инфраструктура.
- Проверки на инфраструктурата и уеб слоя, като SQL инжектиране и скриптове между сайтове.
- Автоматично сканира вашите системи, когато бъдат открити нови заплахи.
- Множество интеграции: AWS, Azure, Google Cloud, API, Jira, Teams и др.
- Intruder предлага 30-дневна безплатна пробна версия на своя план Pro.
Препоръчителна компания за изпитване на проникване
# 1) ImmuniWeb®
ImmuniWeb® е компания за тестване на проникване, базирана в Женева, Швейцария. Неговата платформа за тестване на проникване на приложения с активирана DevSecOps комбинира хората с изкуствен интелект и се предлага с нула фалшиво положителен SLA, най-високо откриване на уязвимост и отчитане на действия.
ImmuniWeb предлага цялостно тестване за проникване на приложения на вътрешни и външни уеб и мобилни приложения, API и уеб услуги, пощенски сървъри, IoT устройства и др.
Основни функции:
- Непрекъснато откриване на нов код.
- Бързо и рентабилно ръчно тестване.
- Капацитети за виртуално закърпване с едно кликване.
- Денонощен достъп до анализатори на сигурността.
- DevSecOps и CI / CD интеграция.
- Моментална поръчка и бърза доставка.
- Многородово табло.
Други безплатни инструменти:
Търговски услуги:
Можете също така да се обърнете към списъка по-долу, наличен в STH, който говори за 37 мощни инструмента за тестване на проникване => Мощни инструменти за тестване на проникване за всеки тестер за проникване
приложението за конвертор на youtube в mp4 за android
Защо тестване на проникване?
Сигурно сте чували за рансъмуерната атака WannaCry, започнала през май 2017 г. Тя заключи повече от 2 лак компютри по целия свят и поиска плащания за откуп в криптовалутата Bitcoin. Тази атака засегна много големи организации по света.
С такива мащабни и опасни кибератаки, случващи се в наши дни, стана неизбежно да се правят тестове за проникване на редовни интервали, за да се защитят информационните системи от пробиви в сигурността.
И така, изпитването за проникване се изисква главно за:
- Финансовите или критичните данни трябва да бъдат защитени, докато ги прехвърляте между различни системи или по мрежата.
- Много клиенти искат тестване на писалка като част от цикъла на издаване на софтуера.
- За да защитите потребителските данни.
- За да намерите уязвимости в сигурността в приложение.
- За откриване на вратички в системата.
- За оценка на въздействието на бизнеса от успешните атаки.
- За да се спази спазването на сигурността на информацията в организацията.
- Да се приложи ефективна стратегия за сигурност в организацията.
Всяка организация трябва да идентифицира проблеми със сигурността, присъстващи във вътрешната мрежа и компютрите. Използвайки тази информационна организация, можете да планирате защита срещу всеки опит за хакване. Поверителността на потребителите и сигурността на данните са най-големите притеснения в днешно време.
Представете си, ако някой хакер успее да получи потребителски данни за сайт за социални мрежи като Facebook. Организацията може да се сблъска с правни проблеми поради малка дупка в софтуерната система. Следователно големите организации търсят сертификати за съответствие на PCI (Industry Card Industry), преди да правят някакъв бизнес с клиенти на трети страни.
Какво трябва да се тества?
- Софтуер (Операционна система, услуги, приложение)
- Хардуер
- Мрежа
- Процеси
- Поведение на крайния потребител
Видове за изпитване на проникване
# 1) Тест за социално инженерство: В този тест се правят опити човек да разкрие чувствителна информация като парола, критични за бизнеса данни и т.н. Тези тестове се извършват най-вече чрез телефон или интернет и са насочени към определени бюра за помощ, служители и процеси.
Човешките грешки са основните причини за уязвимостта на сигурността. Стандартите и политиките за сигурност трябва да се спазват от всички служители, за да се избегнат опитите за проникване в социалното инженерство. Пример за тези стандарти включва да не се споменава никаква чувствителна информация в електронната или телефонната комуникация. Могат да се провеждат одити за сигурност, за да се идентифицират и коригират недостатъците на процеса.
# 2) Тест за уеб приложения: Използвайки софтуерни методи, човек може да провери дали приложението е изложено на уязвимости в сигурността. Той проверява уязвимостта на сигурността на уеб приложения и софтуерни програми, разположени в целевата среда.
# 3) Тест за физическо проникване: За защита на чувствителни данни се прилагат силни методи за физическа сигурност. Това обикновено се използва във военни и държавни съоръжения. Всички физически мрежови устройства и точки за достъп са тествани за възможностите за всяко нарушение на сигурността. Този тест не е много подходящ за обхвата на софтуерното тестване.
# 4) Тест за мрежови услуги : Това е един от най-често извършваните тестове за проникване, при които отворите в мрежата се идентифицират, чрез което се прави запис в системите в мрежата, за да се провери какъв вид уязвимости има. Може да се извършва локално или дистанционно.
# 5) Тест от страна на клиента : Целта му е да търси и използва уязвимости в софтуерни програми от страна на клиента.
# 6) Дистанционно комутируемо военно набиране : Той търси модеми в околната среда и се опитва да влезе в системите, свързани чрез тези модеми, чрез отгатване на парола или принуждаване към грубо.
# 7) Тест за безжична сигурност : Той открива отворените, неоторизирани и по-малко защитени горещи точки или Wi-Fi мрежи и се свързва чрез тях.
Горните 7 категории, които видяхме, са един от начините за категоризиране на видовете тестове на писалки. Също така можем да организираме видовете тестове за проникване на три части, както се вижда по-долу:
Нека обсъдим тези подходи за тестване един по един:
- Изпитване за проникване в черна кутия : При този подход тестващият оценява целевата система, мрежа или процес без знанието за нейните подробности. Те просто имат много високо ниво на входни данни като URL или име на фирма, чрез което проникват в целевата среда. При този метод не се изследва код.
- Изпитване за проникване на бяла кутия : При този подход тестерът е снабден с пълни подробности за целевата среда - системи, мрежа, операционна система, IP адрес, изходен код, схема и др. Той изследва кода и открива грешки в дизайна и разработката. Това е симулация на вътрешна атака за сигурност.
- Тестване на проникване в сива кутия : При този подход тестерът има ограничени подробности за целевата среда. Това е симулация на външни атаки за сигурност.
Техники за тестване на химикалки
- Тест за ръчно проникване
- Използване на автоматизирани инструменти за тестване на проникване
- Комбинация от ръчен и автоматизиран процес
Третият процес е по-често срещан за идентифициране на всички видове уязвимости.
Тест за ръчно проникване
Трудно е да се намерят всички уязвимости с помощта на автоматизирани инструменти. Има някои уязвимости, които могат да бъдат идентифицирани само чрез ръчно сканиране. Тестерите за проникване могат да извършват по-добри атаки срещу приложения въз основа на техните умения и познания за проникващата система.
Методите като социалното инженерство могат да се извършват само от хора. Ръчната проверка включва дизайн, бизнес логика, както и проверка на кода.
Процес на тест за проникване:
Нека обсъдим действителния процес, последван от тестови агенции или тестери за проникване. Идентифицирането на уязвимости, налични в системата, е първата важна стъпка в този процес. Предприемат се коригиращи действия по отношение на тази уязвимост и същите тестове за проникване се повтарят, докато системата е отрицателна спрямо всички тези тестове.
Можем да категоризираме този процес по следните методи:
# 1) Събиране на данни: За получаване на целеви системни данни се използват различни методи, включително търсене с Google. Можете също така да използвате техниката за анализ на изходния код на уеб страницата, за да получите повече информация за версията на системата, софтуера и приставките.
На пазара има много безплатни инструменти и услуги, които могат да ви дадат информация като имена на бази данни или таблици, версии на DB, версии на софтуера, използвания хардуер и различни плъгини на трети страни, използвани в целевата система.
# 2) Оценка на уязвимост: Въз основа на данните, събрани в първата стъпка, може да се открие слабостта на сигурността в целевата система. Това помага на тестерите за проникване да стартират атаки, използвайки идентифицирани входни точки в системата.
# 3) Действителен експлойт: Това е решаваща стъпка. Изискват се специални умения и техники за започване на атака срещу целевата система. Опитните тестери за проникване могат да използват своите умения, за да атакуват системата.
# 4) Резултат от анализа и подготовката на доклада: След приключване на тестовете за проникване се изготвят подробни доклади за предприемане на коригиращи действия. Всички идентифицирани уязвимости и препоръчани коригиращи методи са изброени в тези отчети. Можете да персонализирате формата на отчета за уязвимостите (HTML, XML, MS Word или PDF) според нуждите на вашата организация.
Проби за тестване на проби Пробни случаи (тестови сценарии)
Не забравяйте, че това не е функционално тестване. В Pentest целта ви е да намерите дупки в сигурността в системата. По-долу са дадени някои общи тестови случаи, които не са непременно приложими за всички приложения.
- Проверете дали уеб приложението е в състояние да идентифицира спам атаки върху формуляри за контакт, използвани на уебсайта.
- Прокси сървър - Проверете дали мрежовият трафик се наблюдава от прокси уреди. Прокси сървърът затруднява хакерите да получават вътрешни детайли на мрежата, като по този начин защитават системата от външни атаки.
- Филтри за нежелана поща - Проверете дали входящият и изходящият имейл трафик е филтриран и нежеланите имейли са блокирани.
- Много имейл клиенти идват с вградени филтри за нежелана поща, които трябва да бъдат конфигурирани според вашите нужди. Тези правила за конфигуриране могат да бъдат приложени към заглавките на имейлите, темата или тялото.
- Защитна стена - Уверете се, че цялата мрежа или компютрите са защитени с защитни стени. Защитната стена може да бъде софтуер или хардуер за блокиране на неоторизиран достъп до система. Защитната стена може да предотврати изпращането на данни извън мрежата без ваше разрешение.
- Опитайте се да използвате всички сървъри, настолни системи, принтери и мрежови устройства.
- Проверете дали всички потребителски имена и пароли са криптирани и прехвърлени чрез защитени връзки като https.
- Проверете информацията, съхранявана в бисквитки на уебсайта . Не трябва да бъде в четлив формат.
- Проверете предварително откритите уязвимости, за да проверите дали корекцията работи.
- Проверете дали в мрежата няма отворен порт.
- Проверете всички телефонни устройства.
- Проверете сигурността на WIFI мрежата.
- Проверете всички HTTP методи. Методите PUT и Delete не трябва да бъдат активирани на уеб сървър.
- Проверете дали паролата отговаря на необходимите стандарти. Паролата трябва да е с дължина поне 8 знака, съдържаща поне едно число и един специален знак.
- Потребителското име не трябва да бъде като „администратор“ или „администратор“.
- Страницата за вход в приложението трябва да бъде заключена при няколко неуспешни опита за влизане.
- Съобщенията за грешки трябва да са общи и не трябва да споменават конкретни подробности за грешка като „Невалидно потребителско име“ или „Невалидна парола“.
- Проверете дали специалните символи, HTML таговете и скриптовете се обработват правилно като входна стойност.
- Вътрешните подробности за системата не трябва да се разкриват в нито едно от съобщенията за грешка или предупреждение.
- Потребителските съобщения за грешки трябва да се показват на крайните потребители в случай на срив на уеб страница.
- Проверете използването на записи в системния регистър. Поверителната информация не трябва да се съхранява в регистъра.
- Всички файлове трябва да бъдат сканирани, преди да ги качите на сървъра.
- Чувствителните данни не трябва да се предават в URL адреси, докато комуникирате с различни вътрешни модули на уеб приложението.
- В системата не трябва да има твърдо кодирано потребителско име или парола.
- Проверете всички полета за въвеждане с дълъг входен низ със и без интервали.
- Проверете дали функцията за нулиране на паролата е защитена.
- Проверете заявлението за SQL инжекция .
- Проверете заявлението за Cross-Site Scripting .
- Важни проверки на входа трябва да се извършват от страна на сървъра, вместо проверки на JavaScript от страна на клиента.
- Критичните ресурси в системата трябва да са достъпни само за упълномощени лица и услуги.
- Всички дневници за достъп трябва да се поддържат с подходящи разрешения за достъп.
- Проверете дали потребителската сесия приключва при излизане.
- Проверете дали сърфирането е деактивирано на сървъра.
- Уверете се, че всички приложения и версии на базата данни са актуални.
- Проверете манипулацията на URL, за да проверите дали дадено уеб приложение не показва нежелана информация.
- Проверете изтичането на памет и препълването на буфера.
- Проверете дали входящият мрежов трафик се сканира, за да се намерят троянски атаки.
- Проверете дали системата е защитена от Brute Force Attacks - метод на проба и грешка за намиране на чувствителна информация като пароли.
- Проверете дали системата или мрежата са защитени от DoS (отказ на услуга) атаки. Хакерът може да се насочи към мрежа или към един компютър с непрекъснати заявки, поради което ресурсите в целевата система се претоварват, което води до отказ на услуга за законни заявки.
- Проверете приложението за атаки за инжектиране на HTML скриптове.
- Проверете срещу COM и ActiveX атаки.
- Проверете срещу атаки за подправяне. Подправянето може да бъде от няколко типа - подправяне на IP адрес, подправяне на имейл имейл,
- ARP подправяне, препращане на препратка, подправяне на идентификатора на повикващия, отравяне на мрежи за споделяне на файлове, подправяне на GPS.
- Проверете за неконтролирана атака на низ във формат - атака на сигурността, която може да доведе до срив на приложението или изпълнение на вредния скрипт върху него.
- Проверка на XML инжекционна атака - използва се за промяна на предвидената логика на приложението.
- Проверете срещу атаки с канонизация.
- Проверете дали страниците за грешки показват някаква информация, която може да бъде полезна за хакера да влезе в системата.
- Проверете дали някои важни данни като паролата се съхраняват в секретни файлове в системата.
- Проверете дали приложението връща повече данни, отколкото е необходимо.
Това са само основните тестови сценарии, за да започнете с Pentest. Съществуват стотици усъвършенствани методи за проникване, които могат да бъдат направени ръчно или с помощта на инструменти за автоматизация.
Допълнителна информация:
Стандарти за тестване на химикалки
- PCI DSS (Стандарт за защита на данните в индустрията за разплащателни карти)
- OWASP (Отворете проекта за сигурност на уеб приложения)
- ISO / IEC 27002 , OSSTMM (Ръководство за методология за тестване на сигурността с отворен код)
Сертификати
- GPEN
- Асоцииран тестер за сигурност ( AST )
- Старши тестер за сигурност (SST)
- Сертифициран тестер за проникване ( CPT )
Заключение
И накрая, като тестер за проникване, трябва да съберете и регистрирате всички уязвимости в системата. Не пренебрегвайте нито един сценарий, като се има предвид, че той няма да бъде изпълнен от крайните потребители.
как се отварят jar файлове
Ако сте тестер за проникване, моля, помогнете на нашите читатели с вашия опит, съвети и примерни тестови случаи за това как да извършат ефективно тестване за проникване.
Препоръчително четене
- 19 Мощни инструменти за тестване на проникването, използвани от професионалистите през 2021 г.
- Ръководство за начинаещи за тестване на проникване в уеб приложения
- Алфа тестване и бета тестване (Пълно ръководство)
- Тестване на мрежовата сигурност и най-добрите инструменти за мрежова сигурност
- Ръководство за тестване на сигурността на уеб приложения
- Пълно ръководство за тестване за проверка на компилация (BVT тестване)
- Функционално тестване срещу нефункционално тестване
- Най-добри инструменти за тестване на софтуер 2021 г. [Инструменти за автоматизация на QA теста]