security testing
Kako preizkusiti varnost aplikacij - tehnike preizkušanja varnosti spletnih in namiznih aplikacij
Potreba po varnostnem testiranju?
Programska industrija je v tej dobi dosegla trdno priznanje. Vendar se zdi, da je v zadnjem desetletju kibernetski svet še bolj prevladujoč in gonilna sila, ki oblikuje nove oblike skoraj vsakega podjetja. Spletni ERP sistemi, ki se danes uporabljajo, so najboljši dokaz, da je IT revolucioniral našo ljubljeno svetovno vas.
Danes spletna mesta niso namenjena samo oglaševanju ali trženju, ampak so se razvila v močnejša orodja za izpolnjevanje poslovnih potreb.
Spletnih sistemov za izplačilo plač, nakupovalnih središč, bančništva, zaloge delnic ne uporabljajo samo organizacije, ampak jih danes prodajajo tudi kot izdelke.
To pomeni, da so spletne aplikacije pridobile zaupanje strank in uporabnikov glede njihove ključne funkcije, imenovane VARNOST.
Brez dvoma je varnostni faktor primarnega pomena tudi za namizne aplikacije.
Ko pa govorimo o spletu, se pomen varnosti eksponentno povečuje. Če spletni sistem ne more zaščititi podatkov o transakciji, jih nihče ne bo pomislil uporabljati. Varnost še ni niti beseda, ki bi iskala svojo definicijo, niti subtilen koncept. Vseeno bi rad navedel nekaj pohval na področju varnosti.
kako odstraniti element iz polja v javi s primerom
Primeri varnostnih napak v aplikaciji
- Sistem vodenja študentov ni varen, če lahko podružnica 'Sprejem' ureja podatke podružnice 'Izpit'
- ERP sistem ni varen, če lahko DEO (operater za vnos podatkov) generira „Poročila“
- Spletno nakupovalno središče nima varnosti, če podatki o kreditni kartici stranke niso šifrirani
- Programska oprema po meri je neustrezna, če poizvedba SQL pridobi dejanska gesla svojih uporabnikov
Varnost
Zdaj vam predstavljam najpreprostejšo definicijo varnosti s svojimi besedami.
'Varnost pomeni, da je dovoljen dostop do zaščitenih podatkov in nepooblaščen dostop omejen' .
Torej ima dva glavna vidika; prvi je zaščita podatkov, drugi pa dostop do teh podatkov. Ne glede na to, ali je aplikacija namizna ali spletna, se varnost vrti okoli obeh prej omenjenih vidikov.
Oglejmo si pregled varnostnih vidikov za namizne in spletne programe.
Kaj se boste naučili:
Preizkušanje namizja in spletne varnosti
Namizna aplikacija mora biti varna ne le glede dostopa, ampak tudi glede organizacije in shranjevanja svojih podatkov.
Podobno tudi spletna aplikacija zahteva še večjo varnost glede dostopa in zaščito podatkov. Spletni razvijalec bi moral aplikacijo narediti imunsko na SQL Injections, Brute Force Attacks in XSS (skript na več mestih). Če spletna aplikacija omogoča oddaljene dostopne točke, morajo biti tudi te varne.
Poleg tega ne pozabite, da Brute Force Attack ni povezan samo s spletnimi aplikacijami, temveč je za to ranljiva tudi namizna programska oprema.
Upam, da je ta predgovor dovolj in zdaj naj preidem na bistvo. Vljudno sprejmite moje opravičilo, če ste doslej mislili, da berete o temi tega članka. Čeprav sem na kratko razložil varnost programske opreme in njene glavne pomisleke, je moja tema „Testiranje varnosti“.
Priporočeno branje => Testiranje varnosti spletnih aplikacij
Zdaj bom razložil, kako se funkcije varnosti uporabljajo v programski aplikaciji in kako jih je treba preizkusiti. Osredotočil se bom na Whats and Hows varnostnega testiranja, ne varnosti.
Priporočena orodja za preskušanje varnosti
# 1) Neto parker
Netsparker je rešitev za testiranje varnosti spletnih aplikacij z zmožnostmi samodejnega pajkanja in skeniranja za vse vrste starejših in sodobnih spletnih aplikacij, kot so HTML5, Web 2.0 in Single Page Applications. Uporablja tehnologijo skeniranja na osnovi dokazov in razširljiva sredstva za skeniranje.
Omogoča vam popolno prepoznavnost, čeprav imate na razpolago veliko število sredstev. Ima veliko več funkcij, kot sta upravljanje ekip in upravljanje ranljivosti. Lahko se integrira v platforme CI / CD, kot so Jenkins, TeamCity ali Bamboo.
=> Preizkusite najboljše orodje za preizkus varnosti omrežja#two) Kiuwan
Poiščite in odpravite ranljivosti v svoji kodi na vsaki stopnji SDLC.
Kiuwan je skladen z najstrožjimi varnostnimi standardi, vključno z OWASP, CWE, SANS 25, HIPPA in drugimi. Vključite Kiuwan v svoj IDE za takojšnje povratne informacije med razvojem. Kiuwan podpira vse glavne programske jezike in se integrira z vodilnimi orodji DevOps.
=> Skenirajte kodo brezplačno# 3) Indusface je bil brezplačen pregled zlonamerne programske opreme
Indusface je bil ponuja tako ročno testiranje penetracije, ki je priloženo lastnemu avtomatskemu skenerju ranljivosti spletnih aplikacij, ki zazna in prijavi ranljivosti na podlagi OWASP top 10 in vključuje tudi preverjanje ugleda spletnega mesta na povezavah, zlonamerni programski opremi in preverjanju poškodb spletnega mesta pri vsakem skeniranju
=> Zaženite hiter pregled spletnega mesta brezplačno
=> Kontaktiraj nas da predlagam seznam tukaj.
Seznam 8 najboljših tehnik preskušanja varnosti
# 1) Dostop do aplikacije
Ne glede na to, ali gre za namizno aplikacijo ali spletno mesto, varnost dostopa izvaja „Vloge in upravljanje pravic“. Pogosto se naredi implicitno, medtem ko pokriva funkcionalnost,
Na primer, v sistemu vodenja bolnišnic je receptorja najmanj zaskrbljen zaradi laboratorijskih preiskav, saj je njegova naloga le registrirati bolnike in se dogovoriti za sestanke z zdravniki.
Torej vsi meniji, obrazci in zasloni, povezani z laboratorijskimi testi, ne bodo na voljo vlogi 'receptorja'. Zato bo pravilno izvajanje vlog in pravic zagotovilo varnost dostopa.
Kako preizkusiti: Da bi to preizkusili, je treba izvesti temeljito testiranje vseh vlog in pravic.
Preizkuševalec mora ustvariti več uporabniških računov z različnimi in več vlogami. Nato naj s pomočjo teh računov uporabi aplikacijo in preveri, ali ima vsaka vloga dostop samo do svojih modulov, zaslonov, obrazcev in menijev. Če preskuševalec ugotovi kakršen koli spor, mora s popolnim zaupanjem prijaviti varnostno težavo.
To lahko razumemo tudi kot preverjanje pristnosti in avtorizacije, ki je zelo lepo prikazano na spodnji sliki:
V bistvu morate preizkusiti, kdo ste in kaj lahko storite za ločene uporabnike.
Nekateri preizkusi preverjanja pristnosti vključujejo preizkus pravil kakovosti gesla, preizkus privzetih prijav, preizkus obnovitve gesla, preskus captcha, preizkus funkcionalnosti odjave, preizkus spremembe gesla, preizkus varnostnega vprašanja / odgovora itd.
Podobno nekateri preskusi za avtorizacijo vključujejo preskus prečkanja poti, preizkus manjkajoče avtorizacije, preizkus težav z vodoravnim nadzorom dostopa itd.
# 2) Zaščita podatkov
Obstajajo trije vidiki varnosti podatkov. Prvi je ta uporabnik si lahko ogleda ali uporabi samo podatke, ki naj bi jih uporabljal . To zagotavljajo tudi vloge in pravice
Na primer, TSR (zastopnik za prodajo na drobno) podjetja si lahko ogleda podatke o razpoložljivih zalogah, ne more pa ugotoviti, koliko surovin je bilo kupljenih za proizvodnjo.
Torej, ta vidik varnostnega preizkušanja je že razložen zgoraj. Drugi vidik varstva podatkov je povezan z kako so ti podatki shranjeni v DB .
Nadaljnje branje = >> Kaj je preskušanje varnosti zbirke podatkov
Vsi občutljivi podatki morajo biti šifrirani, da so varni. Šifriranje mora biti močno, zlasti za občutljive podatke, kot so gesla uporabniških računov, številke kreditnih kartic ali druge poslovne informacije.
Tretji in zadnji vidik je razširitev tega drugega vidika. Ob pretoku občutljivih ali poslovno kritičnih podatkov je treba sprejeti ustrezne varnostne ukrepe. Ne glede na to, ali ti podatki plavajo med različnimi moduli iste aplikacije ali se prenašajo v različne aplikacije, jih je treba zaščititi, da so varni.
Kako preizkusiti zaščito podatkov: Preizkuševalec bi moral v bazi poizvedovati o „geslih“ uporabniškega računa, informacijah o računih odjemalcev, drugih poslovno pomembnih in občutljivih podatkih in preveriti, ali so vsi taki podatki v DB shranjeni v šifrirani obliki.
Podobno mora preveriti, ali se podatki prenašajo med različnimi obrazci ali zasloni samo po ustreznem šifriranju. Poleg tega mora preskuševalec zagotoviti, da so šifrirani podatki pravilno dešifrirani na cilju. Posebno pozornost je treba nameniti različnim ukrepom „oddaje“.
katera je najboljša brezplačna aplikacija za prenos glasbe
Preizkuševalec mora preveriti, ali podatki, ki se prenašajo med odjemalcem in strežnikom, niso prikazani v naslovni vrstici spletnega brskalnika v razumljivi obliki. Če katero od teh preverjanj ne uspe, ima aplikacija zagotovo varnostno napako.
Preizkuševalec mora preveriti tudi pravilno uporabo soljenja (dodajanje dodatne tajne vrednosti končnemu vnosu, kot je geslo, in s tem močnejše in težje razpokanje).
Preizkusiti je treba tudi negotovo naključnost, saj gre za nekakšno ranljivost. Drug način preizkušanja zaščite podatkov je preverjanje, ali algoritem uporablja šibko.
Na primer, ker je HTTP protokol z jasnim besedilom, če se občutljivi podatki, kot so uporabniške poverilnice, prenašajo prek HTTP, potem to ogroža varnost aplikacije. Namesto HTTP je treba občutljive podatke prenašati prek HTTPS (zavarovane s SSL, tunelom TLS).
Vendar HTTPS poveča površino napada, zato je treba preizkusiti, ali so konfiguracije strežnikov pravilne in ali je veljavnost certifikata zagotovljena.
# 3) Napad brutalne sile
Brute Force Attack večinoma izvajajo nekatera programska orodja. Koncept je v tem, da s pomočjo veljavnega ID-ja uporabnika s oftware poskuša uganiti povezano geslo s ponovnim poskusom prijave.
Preprost primer varnosti pred takim napadom je začasno ustavitev računa, kot to počnejo vse poštne aplikacije, kot so Yahoo, Gmail in Hotmail. Če se določeno število zaporednih poskusov (večinoma 3) ne uspe uspešno prijaviti, je ta račun za nekaj časa (30 minut do 24 ur) blokiran.
Kako preizkusiti napad Brute-Force: Preizkuševalec mora preveriti, ali je na voljo mehanizem začasne ustavitve računa in deluje pravilno. (S) Poskusiti se mora prijaviti z neveljavnimi ID-ji uporabnikov in gesli, da se prepriča, da programska aplikacija blokira račune, če se neprestano poskuša prijaviti z neveljavnimi poverilnicami.
Če aplikacija to počne, je zaščitena pred napadi brutalne sile. V nasprotnem primeru mora preskuševalec prijaviti to varnostno ranljivost.
Preskušanje surove sile lahko razdelimo tudi na dva dela - testiranje črne škatle in testiranje sive škatle.
Pri preizkušanju črne skrinjice je odkrita in preizkušena metoda preverjanja pristnosti, ki jo uporablja aplikacija. Poleg tega testiranje sivega polja temelji na delnem poznavanju podrobnosti o geslih in računih ter napadih na kompromis v pomnilniku.
Kliknite tukaj raziskati črno in sivo škatlo s preskusi surove sile skupaj s primeri.
Zgornje tri varnostne vidike je treba upoštevati tako za spletne kot za namizne aplikacije, medtem ko so naslednje točke povezane samo s spletnimi aplikacijami.
# 4) SQL Injection In XSS (Cross-Site Scripting)
Konceptualno gledano je tema obeh poskusov vdiranja podobna, zato se o njih razpravlja skupaj. Pri tem pristopu je zlonamerni skript uporabljajo hekerji za manipulacijo s spletnim mestom .
Obstaja več načinov imunske zaščite pred takimi poskusi. Za vsa vnosna polja spletnega mesta morajo biti dolžine polj določene dovolj majhne, da omejijo vnos katerega koli skripta
Vprašanja za razgovor na podlagi scenarija pl sql
Na primer, Priimek mora imeti dolžino polja namesto 255. Obstajajo lahko nekatera vnosna polja, kjer je potreben velik vnos podatkov, za ta polja je treba pred shranjevanjem teh podatkov v aplikacijo opraviti ustrezno potrditev vnosa.
Poleg tega je v takih poljih treba prepovedati kakršne koli oznake HTML ali skripte. Da bi sprožil napade XSS, mora aplikacija zavreči preusmeritve skriptov iz neznanih ali nezaupljivih aplikacij.
Kako test SQL Injection in XSS: Preizkuševalec mora zagotoviti, da so definirane in izvedene največje dolžine vseh vnosnih polj. (S) Prav tako mora zagotoviti, da določena dolžina vnosnih polj ne ustreza nobenemu vnosu skripta in vnosu oznak. Oboje je mogoče enostavno preizkusiti
Na primer, Če je 20 največja dolžina, določena za polje „Ime“, in vnesite niz „
thequickbrownfoxjumpsoverthelazydog 'lahko preveri obe omejitvi.
Preizkuševalec mora preveriti tudi, da aplikacija ne podpira anonimnih načinov dostopa. Če obstaja katera od teh ranljivosti, je aplikacija v nevarnosti.
V bistvu lahko testiranje vbrizgavanja SQL opravimo na naslednjih pet načinov:
- Tehnike zaznavanja
- Standardne tehnike vbrizgavanja SQL
- Prstni odtis zbirke podatkov
- Tehnično izkoriščanje
- Tehnike invazije podpisa SQL vbrizga
Kliknite tukaj podrobno prebrati zgornje načine za preizkušanje vbrizgavanja SQL.
XSS je tudi vrsta injekcije, ki na spletno mesto vbrizga zlonamerni skript. Kliknite tukaj poglobljeno raziskati preskušanje XSS.
# 5) Dostopne točke do storitev (zapečatene in varno odprte)
Danes so podjetja odvisna in sodelujejo med seboj, enako velja za aplikacije, zlasti za spletna mesta. V takem primeru bi oba sodelavca morala medsebojno določiti in objaviti nekatere dostopne točke.
Zaenkrat se zdi scenarij precej preprost in enostaven, vendar pri nekaterih spletnih izdelkih, kot je trgovanje z delnicami, stvari niso tako preproste in enostavne.
Če je ciljno občinstvo veliko, bi morale biti dostopne točke dovolj odprte, da olajšajo vse uporabnike, zadostne, da lahko izpolnijo vse zahteve uporabnikov, in dovolj varne, da se lahko spopadejo s kakršnim koli preskusom varnosti.
Kako preizkusiti dostopne točke storitve: Naj razložim z primer spletne aplikacije za trgovanje z delnicami; vlagatelj (ki želi kupiti delnice) mora imeti dostop do trenutnih in preteklih podatkov o cenah delnic. Uporabniku je treba omogočiti prenos teh zgodovinskih podatkov. To zahteva, da mora biti aplikacija dovolj odprta.
S prilagodljivostjo in varnostjo mislim, da mora aplikacija vlagateljem olajšati prosto trgovanje (v skladu z zakonodajnimi predpisi). Lahko kupujejo ali prodajajo 24 ur na dan, 7 dni v tednu, podatki o transakcijah pa ne smejo biti zaščiteni pred napadi vdorov.
Poleg tega bo veliko število uporabnikov hkrati sodelovalo z aplikacijo, zato mora aplikacija zagotavljati dovolj dostopnih točk za zabavo vseh uporabnikov.
V nekaterih primerih to dostopne točke se lahko zaprejo za neželene programe ali ljudi . To je odvisno od poslovne domene aplikacije in njenih uporabnikov,
Na primer, Prilagojeni spletni sistem za upravljanje Officea lahko prepozna svoje uporabnike na podlagi naslovov IP in zavrne vzpostavitev povezave z vsemi drugimi sistemi (aplikacijami), ki ne spadajo v obseg veljavnih IP-jev za to aplikacijo.
Preskuševalec mora zagotoviti, da so vsi dostop do omrežja in znotraj omrežja aplikaciji zaupajo zaupanja vredne aplikacije, stroji (IP-ji) in uporabniki.
Da bi preveril, ali je odprta dostopna točka dovolj varna, mora preizkuševalec poskusiti dostopati do nje z različnih naprav, ki imajo tako zaupanja vredne kot nezaupne naslove IP. Različne vrste transakcij v realnem času je treba preizkusiti v velikem obsegu, da lahko dobro zaupate v delovanje aplikacije. S tem se bo tudi jasno opazovala zmogljivost dostopnih točk aplikacije.
Preizkuševalec mora zagotoviti, da aplikacija zajema vse komunikacijske zahteve iz zaupanja vrednih IP-jev in aplikacij, medtem ko so vse druge zahteve zavrnjene.
Če ima aplikacija tudi odprto dostopno točko, mora tester zagotoviti, da omogoča (če je potrebno) nalaganje podatkov uporabnikom na varen način. Na ta varen način mislim na omejitev velikosti datoteke, omejitev vrste datoteke in skeniranje naložene datoteke na viruse ali druge varnostne grožnje.
To je vse, kako lahko preizkuševalec preveri varnost aplikacije glede na njene dostopne točke.
# 6) Upravljanje sej
Spletna seja je zaporedje transakcij HTTP zahteve in odziva, povezanih z istim uporabnikom. Preizkusi upravljanja sej preverjajo, kako se upravljanje sej upravlja v spletni aplikaciji.
Preizkusite lahko potek seje po določenem času nedejavnosti, prekinitev seje po najdaljši življenjski dobi, prekinitev seje po odjavi, preverite obseg in trajanje piškotkov seje, preizkusite, ali ima en sam uporabnik več hkratnih sej itd.
# 7) Ravnanje z napakami
Preskušanje ravnanja z napakami vključuje:
Preverite kode napak : Na primer, preizkusite čas zakasnitve 408 zahtev, 400 slabih zahtev, 404 jih ni mogoče najti itd. Če jih želite preizkusiti, morate na stran poslati določene zahteve, tako da se vrnejo te kode napak.
Kode napak se vrnejo s podrobnim sporočilom. Ta sporočila ne smejo vsebovati kritičnih informacij, ki jih je mogoče uporabiti za vdiranje
Preverite, ali so sledi sklada : V bistvu vključuje dajanje nekaterih izjemnih vložkov v aplikacijo, tako da vrnjeno sporočilo o napaki vsebuje sledi skladov, ki imajo zanimive informacije za hekerje.
# 8) Posebne tvegane funkcije
Dve tvegani funkcionalnosti sta predvsem plačila in nalaganje datotek . Te funkcionalnosti je treba zelo dobro preizkusiti. Pri nalaganju datotek morate najprej preizkusiti, ali je nalaganje neželenih ali zlonamernih datotek omejeno.
Za plačila morate najprej preizkusiti ranljivosti vbrizgavanja, negotovo kriptografsko shrambo, prelive medpomnilnika, ugibanje gesla itd.
=> Kontaktiraj nas da predlagam seznam tukaj.Nadaljnje branje:
- Testiranje varnosti spletnih aplikacij
- Top 30 vprašanj za preskušanje varnosti
- Razlika med SAST / DAST / IAST / RASP
- SANS Top 20 varnostnih ranljivosti
Priporočeno branje
- Vodič za preizkušanje varnosti spletnih aplikacij
- Alfa testiranje in beta testiranje (popoln vodnik)
- Vadnica za testiranje skladišča podatkov ETL (popoln vodnik)
- Testiranje omrežne varnosti in najboljša orodja za omrežno varnost
- Priročnik za začetnike do testiranja prodora spletnih aplikacij
- Popoln vodnik za preizkus preverjanja gradnje (testiranje BVT)
- Funkcionalno testiranje vs nefunkcionalno testiranje
- Popoln vodič za testiranje penetracije z vzorčnimi testnimi primeri