web application security testing guide
selen webdriver rozhovor otázky a odpovědi pro zkušené
Vzhledem k obrovskému množství dat uložených ve webových aplikacích a nárůstu počtu transakcí na webu se stává každodenní velmi důležité správné testování zabezpečení webových aplikací.
V tomto článku se podrobně seznámíme s klíčovými pojmy používanými při testování zabezpečení webových stránek a jeho testovacím přístupem.
Co se naučíte:
- Co je testování zabezpečení?
- Některé klíčové pojmy použité při testování zabezpečení
- Doporučené nástroje pro testování zabezpečení
- Přístup k testování zabezpečení
- Metody pro testování zabezpečení webu
- Závěr
- Doporučené čtení
Co je testování zabezpečení?
Testování zabezpečení je proces, který kontroluje, zda důvěrná data zůstanou důvěrná nebo ne (tj. není vystaven jednotlivcům / entitám, pro které to není určeno) a uživatelé mohou provádět pouze ty úkoly, ke kterým mají oprávnění
Například, uživatel by neměl být schopen odolat funkčnost webové stránky jiným uživatelům nebo by uživatel neměl být schopen změnit funkčnost webové aplikace nezamýšleným způsobem atd.
Některé klíčové pojmy použité při testování zabezpečení
Než budeme pokračovat dále, bude užitečné seznámit se s několika pojmy, které se často používají při testování zabezpečení webových aplikací:
Co je to „Zranitelnost“?
To je slabina webové aplikace. Příčinou takové „slabosti“ mohou být chyby v aplikaci, injekce (kód SQL / skriptu) nebo přítomnost virů.
Co je „manipulace s URL“?
Některé webové aplikace komunikují další informace mezi klientem (prohlížečem) a serverem v URL. Změna některých informací v adrese URL může někdy vést k nechtěnému chování serveru, což se označuje jako Manipulace s URL .
Co je „SQL injection“?
Toto je proces vkládání příkazů SQL prostřednictvím uživatelského rozhraní webové aplikace do nějakého dotazu, který je poté spuštěn serverem.
Co je „XSS (Cross-Site Scripting)“?
Když uživatel vloží skript na straně HTML / klienta do uživatelského rozhraní webové aplikace, je toto vložení viditelné pro ostatní uživatele a je označeno jako XSS .
Co je to „spoofing“?
Vytváření podvodných podobných webů nebo e-mailů se nazývá Spoofing .
Doporučené nástroje pro testování zabezpečení
# 1) Acunetix
dobrý bezplatný stahovač hudby pro Android
Acunetix je end-to-end skener zabezpečení webových aplikací. Poskytne 360stupňový pohled na zabezpečení vaší organizace. Je schopen detekovat 6500 typů chyb zabezpečení, jako jsou injekce SQL, XSS a slabá hesla atd. Využívá pokročilou technologii záznamu makra pro skenování složitých víceúrovňových formulářů.
Platforma je intuitivní a snadno použitelná. Můžete naplánovat a upřednostnit úplné skenování i přírůstkové skenování. Obsahuje integrovanou funkci správy zranitelností. S pomocí nástrojů CI, jako je Jenkins, lze nové sestavy skenovat automaticky.
=> Vyzkoušejte Acunetix pro zabezpečení webových aplikací
# 2) Kiuwan
Najděte a opravte chyby zabezpečení v kódu v každé fázi SDLC.
Kiuwan odpovídá nejpřísnějším bezpečnostním standardům včetně OWASP, CWE, SANS 25, HIPPA a dalších.Integrujte Kiuwan do svého IDE pro okamžitou zpětnou vazbu během vývoje. Kiuwan podporuje všechny hlavní programovací jazyky a integruje se s předními nástroji DevOps.
=> Naskenujte svůj kód zdarma
Přístup k testování zabezpečení
Aby bylo možné provést užitečný test zabezpečení webové aplikace, měl by tester zabezpečení mít dobré znalosti o protokolu HTTP.
Je důležité porozumět tomu, jak klient (prohlížeč) a server komunikují pomocí protokolu HTTP.
Tester by měl navíc znát alespoň základy SQL Injection a XSS.
Doufejme, že počet bezpečnostních vad přítomných ve webové aplikaci nebude vysoký. Schopnost přesně popsat všechny bezpečnostní vady se všemi požadovanými podrobnostmi však určitě pomůže.
Metody pro testování zabezpečení webu
# 1) Prolomení hesla
Testování zabezpečení na a Webová aplikace lze nastartovat „Password Cracking“. Chcete-li se přihlásit do soukromých oblastí aplikace, můžete buď uhodnout uživatelské jméno / heslo, nebo použít stejný nástroj pro crackování hesel. Seznam běžných uživatelských jmen a hesel je k dispozici společně s crackery hesel open source.
Pokud webová aplikace nevynucuje složité heslo ( Například, s abecedami, čísly a speciálními znaky nebo s alespoň požadovaným počtem znaků), může trvat dlouho, než se rozbije uživatelské jméno a heslo.
Pokud je uživatelské jméno nebo heslo uloženo v souborech cookie bez šifrování, může útočník použít různé metody k odcizení souborů cookie a informací uložených v souborech cookie, jako je uživatelské jméno a heslo.
Více podrobností naleznete v článku „ Testování souborů cookie webových stránek “.
# 2) Manipulace s URL pomocí metod HTTP GET
Tester by měl zkontrolovat, zda aplikace předává důležité informace v řetězci dotazu či nikoli. K tomu dochází, když aplikace používá k předávání informací mezi klientem a serverem metodu HTTP GET.
Informace jsou předávány parametry v řetězci dotazu. Tester může upravit hodnotu parametru v řetězci dotazu a zkontrolovat, zda ji server přijímá.
Prostřednictvím požadavku HTTP GET se informace o uživateli předávají serveru k ověření nebo načtení dat. Útočník může manipulovat s každou vstupní proměnnou předanou z tohoto požadavku GET na server, aby získal požadované informace nebo data poškodil. Za takových podmínek je jakékoli neobvyklé chování aplikace nebo webového serveru branou útočníka, aby se dostal do aplikace.
# 3) SQL Injection
Dalším faktorem, který by měl být zkontrolován, je SQL Injection. Zadání jediné nabídky („) do libovolného textového pole by aplikace měla odmítnout. Místo toho, pokud tester narazí na chybu databáze, znamená to, že vstup uživatele je vložen do nějakého dotazu, který je poté spuštěn aplikací. V takovém případě je aplikace zranitelná vůči vložení SQL.
ukázkové testovací případy v testování softwaru
Útoky SQL Injection jsou velmi důležité, protože útočník může získat důležité informace z databáze serveru. Chcete-li zkontrolovat vstupní body vkládání SQL do vaší webové aplikace, vyhledejte kód z vaší kódové základny, kde se v databázi provádějí přímé dotazy MySQL přijímáním některých vstupů uživatele.
Pokud jsou vstupní data uživatele vytvořena v dotazech SQL za účelem dotazování na databázi, může útočník vložit příkazy SQL nebo část příkazů SQL jako uživatelské vstupy a extrahovat důležité informace z databáze. I když je útočník úspěšný při pádu aplikace, z chyby dotazu SQL zobrazené v prohlížeči může útočník získat informace, které hledá.
V takových případech je třeba se speciálními znaky ze vstupů uživatele správně zacházet / uniknout.
# 4) Cross-Site Scripting (XSS)
Tester by měl navíc zkontrolovat webovou aplikaci pro XSS (Cross-site scripting). Libovolný HTML Například, nebo jakýkoli scénář Například, by aplikace neměla přijímat. Pokud ano, může být aplikace náchylná k útoku skriptováním napříč weby.
Útočník může pomocí této metody spustit škodlivý skript nebo adresu URL v prohlížeči oběti. Pomocí skriptování mezi weby může útočník pomocí skriptů, jako je JavaScript, ukrást uživatelské soubory cookie a informace uložené v souborech cookie.
Mnoho webových aplikací získává užitečné informace a předává tyto informace v některých proměnných z různých stránek.
Například, http://www.examplesite.com/index.php?userid=123 &dotaz = xyz
Útočník může snadno předat nějaký nebezpečný vstup nebo jako parametr „& query“, který může prozkoumat důležitá data uživatele / serveru v prohlížeči.
Důležité: Během testování zabezpečení by měl být tester velmi opatrný, aby nezměnil některou z následujících věcí:
- Konfigurace aplikace nebo serveru
- Služby běžící na serveru
- Existující uživatelská nebo zákaznická data hostovaná aplikací
V produkčním systému je navíc třeba se vyhnout testu zabezpečení.
Závěr
Účelem testu zabezpečení je odhalit chyby zabezpečení webové aplikace, aby vývojáři mohli tyto chyby zabezpečení z aplikace odebrat a zajistit tak webovou aplikaci a data před jakoukoli neoprávněnou akcí.
Doporučené čtení => Rozdíl mezi SAST / DAST / IAST / RASP
Neváhejte se podělit o své komentáře / návrhy k tomuto článku.
Doporučené čtení
- Průvodce pro začátečníky k testování penetrace webových aplikací
- Testování zabezpečení (kompletní průvodce)
- Alfa testování a beta testování (kompletní průvodce)
- Testování zabezpečení sítě a nejlepší nástroje pro zabezpečení sítě
- Nejlepší nástroje pro testování softwaru 2021 (QA Test Automation Tools)
- Kompletní průvodce pro testování ověřování sestavení (testování BVT)
- Nejlepší 4 nástroje pro testování zabezpečení s otevřeným zdrojovým kódem pro testování webových aplikací
- Funkční testování vs. nefunkční testování