security testing
Cum se testează securitatea aplicațiilor - Tehnici de testare a securității aplicațiilor web și desktop
Ai nevoie de teste de securitate?
Industria software-ului a obținut o recunoaștere solidă în această epocă. Cu toate acestea, în ultimul deceniu, lumea cibernetică pare să fie și mai puternică și mai puternică, ceea ce modelează noile forme ale aproape tuturor afacerilor. Sistemele ERP bazate pe web utilizate astăzi sunt cele mai bune dovezi că IT-ul a revoluționat iubitul nostru sat global.
În zilele noastre, site-urile web nu sunt destinate doar publicității sau marketingului, ci acestea au fost transformate în instrumente mai puternice pentru a satisface nevoile complete ale afacerii.
Sistemele de salarizare bazate pe web, centrele comerciale, serviciile bancare, comerțul cu acțiuni nu sunt utilizate doar de către organizații, dar sunt vândute și astăzi ca produse.
Aceasta înseamnă că aplicațiile online au câștigat încrederea clienților și a utilizatorilor în ceea ce privește caracteristica lor vitală denumită SECURITATE.
Fără îndoială, factorul de securitate are o valoare primară și pentru aplicațiile desktop.
Cu toate acestea, atunci când vorbim despre web, importanța securității crește exponențial. Dacă un sistem online nu poate proteja datele tranzacției, nimeni nu se va gândi vreodată să le folosească. Securitatea nu este încă un cuvânt în căutarea definiției sale și nici nu este un concept subtil. Cu toate acestea, aș dori să enumăr câteva complimente privind securitatea.
cum deschideți un fișier bin
Exemple de defecte de securitate într-o aplicație
- Un sistem de management al studenților este nesigur dacă filiala „Admisie” poate edita datele din filiala „Examinare”
- Un sistem ERP nu este sigur dacă DEO (operatorul de introducere a datelor) poate genera „Rapoarte”
- Un centru comercial online nu are siguranță dacă detaliile cardului de credit ale clientului nu sunt criptate
- Un software personalizat nu are securitate adecvată dacă o interogare SQL preia parolele reale ale utilizatorilor săi
Securitate
Acum vă prezint cea mai simplă definiție a securității în propriile mele cuvinte.
„Securitatea înseamnă că accesul autorizat este acordat datelor protejate și accesul neautorizat este restricționat” .
Deci, are două aspecte majore; prima este protecția datelor, iar a doua este accesul la aceste date. Mai mult, indiferent dacă aplicația este desktop sau bazată pe web, securitatea se învârte în jurul celor două aspecte menționate anterior.
Permiteți-ne să avem o prezentare generală a aspectelor de securitate atât pentru aplicațiile software desktop, cât și pentru cele web.
Ce veți învăța:
Testarea securității desktopului și webului
O aplicație desktop ar trebui să fie sigură nu numai în ceea ce privește accesul acesteia, ci și în ceea ce privește organizarea și stocarea datelor sale.
În mod similar, aplicația web solicită, și mai mult, securitate în ceea ce privește accesul acesteia, împreună cu protecția datelor. Un dezvoltator web ar trebui să facă aplicația imună la Injecții SQL, Brute Force Attacks și XSS (cross-site scripting). În mod similar, dacă aplicația web facilitează punctele de acces la distanță, atunci acestea trebuie să fie și ele sigure.
Mai mult decât atât, rețineți că Brute Force Attack nu este legat doar de aplicațiile web, ci și software-ul desktop este vulnerabil.
Sper că această prefață este suficientă și acum permiteți-mi să ajung la subiect. Vă rog să-mi acceptați scuzele dacă până acum ați crezut că citiți despre subiectul acestui articol. Deși am explicat pe scurt securitatea software-ului și preocupările sale majore, subiectul meu este „Testarea securității”.
Lectură recomandată => Testarea securității aplicațiilor web
Voi explica acum cum sunt implementate caracteristicile securității în aplicațiile software și cum ar trebui testate acestea. Accentul meu se va pune pe Whats and Hows de testare a securității, nu pe securitate.
Instrumente de testare a securității recomandate
# 1) Net parker
Netsparker este o soluție de testare a securității aplicațiilor web cu capacități de accesare cu crawlere și scanare automată pentru toate tipurile de aplicații web vechi și moderne, cum ar fi HTML5, Web 2.0 și aplicații cu o singură pagină. Folosește tehnologia de scanare bazată pe dovezi și agenții de scanare scalabili.
Vă oferă vizibilitate completă, chiar dacă aveți un număr mare de active de gestionat. Are mult mai multe funcționalități, cum ar fi managementul echipei și managementul vulnerabilităților. Poate fi integrat în platformele CI / CD precum Jenkins, TeamCity sau Bamboo.
=> Încercați cel mai bun instrument de testare a securității Netsparker#Două) Kiuwan
Găsiți și remediați vulnerabilitățile din codul dvs. în fiecare etapă a SDLC.
Kiuwan respectă cele mai stricte standarde de securitate, inclusiv OWASP, CWE, SANS 25, HIPPA și multe altele. Integrați Kiuwan în IDE pentru feedback instantaneu în timpul dezvoltării. Kiuwan acceptă toate limbajele de programare majore și se integrează cu instrumentele DevOps de top.
=> Scanați codul gratuit# 3) Indusface a fost verificare gratuită a site-ului web malware
Indusface a fost oferă atât teste manuale de penetrare, împreună cu propriul scaner automatizat de vulnerabilități a aplicațiilor web, care detectează și raportează vulnerabilitățile pe baza OWASP top 10 și include, de asemenea, o verificare a reputației site-ului web de linkuri, programe malware și verificări de defecare a site-ului în fiecare scanare
=> Rulați gratuit o scanare rapidă a site-ului web
cum deschid un fișier eps
=> Contactează-ne pentru a sugera o listă aici.
Lista celor mai bune 8 tehnici de testare a securității
# 1) Acces la aplicație
Indiferent dacă este o aplicație desktop sau un site web, securitatea accesului este implementată de „Roluri și gestionarea drepturilor”. De multe ori se face implicit în timp ce acoperă funcționalitatea,
De exemplu, într-un sistem de management al spitalului, recepționerul este cel mai puțin îngrijorat de testele de laborator, deoarece sarcina sa este de a înregistra pacienții și de a-și programa întâlnirile cu medicii.
Deci, toate meniurile, formularele și ecranele legate de testele de laborator nu vor fi disponibile pentru rolul „Recepționistului”. Prin urmare, implementarea corectă a rolurilor și drepturilor va garanta securitatea accesului.
Cum se testează: Pentru a testa acest lucru, ar trebui efectuate teste amănunțite ale tuturor rolurilor și drepturilor.
Testatorul ar trebui să creeze mai multe conturi de utilizator cu roluri diferite, precum și cu roluri multiple. Apoi, el ar trebui să utilizeze aplicația cu ajutorul acestor conturi și ar trebui să verifice dacă fiecare rol are acces la propriile module, ecrane, formulare și meniuri. Dacă testerul constată un conflict, el ar trebui să înregistreze o problemă de securitate cu încredere deplină.
Acest lucru poate fi înțeles și ca testare de autentificare și autorizare, care este foarte frumos descrisă în imaginea de mai jos:
Deci, practic, trebuie să testați „cine sunteți” și „ce puteți face” pentru utilizatori diferiți.
Unele dintre testele de autentificare includ un test pentru regulile de calitate a parolei, test pentru autentificări implicite, test pentru recuperarea parolei, test captcha, test pentru funcționalitatea de deconectare, test pentru schimbarea parolei, test pentru întrebare / răspuns de securitate etc.
În mod similar, unele dintre testele de autorizare includ un test pentru traversarea căii, testul pentru lipsa autorizației, testul pentru problemele de control al accesului orizontal etc.
# 2) Protecția datelor
Există trei aspecte ale securității datelor. Primul este că un utilizator poate vizualiza sau utiliza numai datele pe care ar trebui să le folosească . Acest lucru este asigurat și de roluri și drepturi
De exemplu, TSR (reprezentantul pentru vânzări televizate) al unei companii poate vizualiza datele stocului disponibil, dar nu poate vedea cât de multă materie primă a fost achiziționată pentru producție.
Deci, acest aspect al testării securității este deja explicat mai sus. Al doilea aspect al protecției datelor este legat de modul în care aceste date sunt stocate în DB .
Lecturi suplimentare = >> Ce este testarea securității bazei de date
Toate datele sensibile trebuie criptate pentru a le asigura securitatea. Criptarea ar trebui să fie puternică, în special pentru datele sensibile, cum ar fi parolele conturilor de utilizator, numerele cardurilor de credit sau alte informații critice pentru afaceri.
Al treilea și ultimul aspect este o extensie a acestui al doilea aspect. Trebuie adoptate măsuri de securitate adecvate atunci când apare fluxul de date sensibile sau critice pentru afaceri. Indiferent dacă aceste date plutesc între diferite module ale aceleiași aplicații sau sunt transmise către aplicații diferite, trebuie să fie criptate pentru a le menține în siguranță.
Cum se testează protecția datelor: Testatorul ar trebui să interogheze în baza de date „parolele” contului de utilizator, informațiile de facturare ale clienților, alte date critice și sensibile pentru afaceri și ar trebui să verifice dacă toate aceste date sunt salvate în formă criptată în DB.
În mod similar, el trebuie să verifice dacă datele sunt transmise între diferite forme sau ecrane numai după o criptare adecvată. Mai mult, testerul ar trebui să se asigure că datele criptate sunt decriptate corespunzător la destinație. O atenție specială ar trebui acordată diferitelor acțiuni de „trimitere”.
Testatorul trebuie să verifice dacă informațiile sunt transmise între client și server, nu sunt afișate în bara de adrese a unui browser web într-un format ușor de înțeles. Dacă oricare dintre aceste verificări eșuează, atunci aplicația are cu siguranță un defect de securitate.
Testerul ar trebui să verifice și utilizarea corectă a sării (adăugând o valoare secretă suplimentară la intrarea finală, cum ar fi parola, făcând astfel mai puternică și mai dificilă spargerea).
Aleatoritatea nesigură ar trebui, de asemenea, testată, deoarece este un fel de vulnerabilitate. O altă modalitate de a testa protecția datelor este de a verifica utilizarea slabă a algoritmului.
De exemplu, deoarece HTTP este un protocol text clar, dacă datele sensibile precum acreditările utilizatorului sunt transmise prin HTTP, atunci este o amenințare la adresa securității aplicației. În loc de HTTP, datele sensibile ar trebui transferate prin HTTPS (securizate prin SSL, tunel TLS).
Cu toate acestea, HTTPS mărește suprafața de atac și, prin urmare, ar trebui să se testeze dacă configurațiile serverului sunt corecte și că valabilitatea certificatului este asigurată.
# 3) Atac cu forță brută
Brute Force Attack este realizat în principal de unele instrumente software. Conceptul este că prin utilizarea unui ID de utilizator valid, s oftware încearcă să ghicească parola asociată încercând să se conecteze din nou și din nou.
Un exemplu simplu de securitate împotriva unui astfel de atac este suspendarea contului pentru o perioadă scurtă de timp, așa cum fac toate aplicațiile de poștă, cum ar fi „Yahoo”, „Gmail” și „Hotmail”. Dacă un anumit număr de încercări consecutive (majoritatea 3) nu reușesc să se conecteze cu succes, atunci acel cont este blocat pentru o perioadă de timp (30 de minute până la 24 de ore).
Cum se testează atacul cu forță brută: Testatorul trebuie să verifice dacă este disponibil un mecanism de suspendare a contului și funcționează cu precizie. (S) El trebuie să încerce să se conecteze cu ID-uri de utilizator și parole invalide, alternativ, pentru a se asigura că aplicația software blochează conturile dacă se fac încercări continue de autentificare cu acreditări nevalide.
Dacă aplicația face acest lucru, este sigură împotriva atacului cu forță brută. În caz contrar, această vulnerabilitate de securitate trebuie raportată de tester.
Testarea forței brute poate fi, de asemenea, împărțită în două părți - testarea cutiei negre și testarea cutiei gri.
În testarea cutiei negre, metoda de autentificare utilizată de aplicație este descoperită și testată. În plus, testarea cutiei gri se bazează pe cunoașterea parțială a detaliilor parolei și contului și a atacurilor de compromis de memorie.
Clic Aici pentru a explora testarea forței brute a cutiei negre și a cutiei gri împreună cu exemple.
Cele trei aspecte de securitate de mai sus ar trebui luate în considerare atât pentru aplicațiile web, cât și pentru cele desktop, în timp ce următoarele puncte sunt legate numai de aplicațiile bazate pe web.
# 4) Injecție SQL și XSS (Cross-Site Scripting)
Din punct de vedere conceptual, tema ambelor încercări de hacking este similară, deci acestea sunt discutate împreună. În această abordare, scriptul rău intenționat este folosit de hackeri pentru a manipula un site web .
Există mai multe modalități de imunitate împotriva unor astfel de încercări. Pentru toate câmpurile de intrare ale site-ului web, lungimile câmpurilor trebuie definite suficient de mici pentru a restricționa introducerea oricărui script
unde găsesc cheia de securitate
De exemplu, Numele de familie ar trebui să aibă lungimea câmpului 30 în loc de 255. Pot exista unele câmpuri de intrare în care este necesară introducerea de date mari, pentru astfel de câmpuri ar trebui efectuată validarea corectă a intrării înainte de a salva acele date în aplicație.
Mai mult, în astfel de câmpuri, orice etichete HTML sau intrări de etichete script trebuie interzise. Pentru a provoca atacuri XSS, aplicația ar trebui să renunțe la redirecționarea scripturilor de la aplicații necunoscute sau de încredere.
Cum să testați injecția SQL și XSS: Testerul trebuie să se asigure că lungimile maxime ale tuturor câmpurilor de intrare sunt definite și implementate. (S) El trebuie să se asigure, de asemenea, că lungimea definită a câmpurilor de intrare nu găzduiește nici intrarea scriptului, nici intrarea etichetei. Ambele pot fi ușor testate
De exemplu, Dacă 20 este lungimea maximă specificată pentru câmpul „Nume” și șirul de intrare „
thequickbrownfoxjumpsoverthelazydog ”poate verifica ambele aceste constrângeri.
De asemenea, testatorul ar trebui să verifice dacă aplicația nu acceptă metode de acces anonime. În cazul în care există oricare dintre aceste vulnerabilități, aplicația este în pericol.
Practic, testarea injecției SQL se poate face prin următoarele cinci moduri:
- Tehnici de detectare
- Tehnici standard de injecție SQL
- Amprentați baza de date
- Exploatarea tehnică
- Tehnici de invazie a semnăturii de injecție SQL
Clic Aici pentru a citi în detaliu despre modalitățile de mai sus pentru a testa injecția SQL.
XSS este, de asemenea, un tip de injecție care injectează un script rău intenționat într-un site web. Clic Aici pentru a explora în profunzime despre testarea XSS.
# 5) Puncte de acces la servicii (deschise sigilate și sigure)
Astăzi, întreprinderile depind și colaborează între ele, același lucru este valabil pentru aplicații, în special pentru site-uri web. Într-un astfel de caz, ambii colaboratori ar trebui să definească și să publice unele puncte de acces unul pentru celălalt.
Până în prezent, scenariul pare destul de simplu și simplu, dar, pentru unele produse web, cum ar fi tranzacționarea pe acțiuni, lucrurile nu sunt atât de simple și ușoare.
Atunci când există un număr mare de public țintă, punctele de acces ar trebui să fie suficient de deschise pentru a facilita toți utilizatorii, suficient de acomodate pentru a îndeplini toate cererile utilizatorilor și suficient de sigure pentru a face față oricărei încercări de securitate.
Cum să testați punctele de acces la servicii: Permiteți-mi să o explic cu exemplu a aplicației web de tranzacționare pe acțiuni; un investitor (care dorește să cumpere acțiuni) ar trebui să aibă acces la date curente și istorice despre prețurile acțiunilor. Utilizatorul ar trebui să aibă posibilitatea de a descărca aceste date istorice. Acest lucru cere ca aplicația să fie suficient de deschisă.
Prin acomodare și siguranță, vreau să spun că aplicația ar trebui să faciliteze investitorii să tranzacționeze liber (conform reglementărilor legislative). Aceștia pot cumpăra sau vinde 24/7, iar datele tranzacțiilor trebuie să fie imune la orice atac de hacking.
Mai mult, un număr mare de utilizatori vor interacționa simultan cu aplicația, astfel încât aplicația ar trebui să ofere suficiente puncte de acces pentru a distra toți utilizatorii.
În unele cazuri, acestea punctele de acces pot fi sigilate pentru aplicații sau persoane nedorite . Acest lucru depinde de domeniul de afaceri al aplicației și de utilizatorii săi,
De exemplu, Un sistem de gestionare Office personalizat bazat pe web își poate recunoaște utilizatorii pe baza adreselor IP și refuză să stabilească o conexiune cu toate celelalte sisteme (aplicații) care nu se încadrează în gama de adrese IP valabile pentru acea aplicație.
Testatorul trebuie să se asigure că toate acces inter-rețea și intra-rețea pentru aplicație este de către aplicații de încredere, mașini (IP-uri) și utilizatori.
Pentru a verifica dacă un punct de acces deschis este suficient de sigur, testerul trebuie să încerce să îl acceseze de la diferite mașini care au atât adrese IP de încredere, cât și adrese de încredere. Diferite tipuri de tranzacții în timp real ar trebui încercate în bloc pentru a avea o încredere bună în performanța aplicației. Procedând astfel, capacitatea punctelor de acces ale aplicației va fi, de asemenea, respectată în mod clar.
Testatorul trebuie să se asigure că aplicația primește toate cererile de comunicare de la adrese IP și aplicații de încredere numai în timp ce toate celelalte solicitări sunt respinse.
În mod similar, dacă aplicația are un punct de acces deschis, testerul ar trebui să se asigure că permite (dacă este necesar) încărcarea datelor de către utilizatori într-un mod sigur. În acest mod sigur, mă refer la limita de dimensiune a fișierului, restricționarea tipului de fișier și scanarea fișierului încărcat pentru viruși sau alte amenințări la adresa securității.
Acesta este modul în care un tester poate verifica securitatea unei aplicații cu privire la punctele sale de acces.
# 6) Managementul sesiunii
O sesiune web este o secvență a tranzacțiilor de solicitare și răspuns HTTP conectate cu același utilizator. Testele de gestionare a sesiunii verifică modul în care gestionarea sesiunii este gestionată în aplicația web.
Puteți testa expirarea sesiunii după un anumit timp de inactivitate, încheierea sesiunii după durata maximă de viață, încheierea sesiunii după deconectare, verificarea domeniului și a duratei cookie-urilor de sesiune, testarea dacă un singur utilizator poate avea mai multe sesiuni simultane etc.
# 7) Tratarea erorilor
Testarea pentru gestionarea erorilor include:
Verificați dacă există coduri de eroare : De exemplu, testați timpul de expirare a solicitării 408, 400 solicitări greșite, 404 nu au fost găsite etc. Pentru a le testa, trebuie să faceți anumite solicitări către pagină, astfel încât aceste coduri de eroare să fie returnate.
Codurile de eroare sunt returnate cu un mesaj detaliat. Aceste mesaje nu trebuie să conțină nicio informație critică care poate fi utilizată în scopuri de hacking
Verificați dacă există urme de stivă : Practic include oferirea unor informații excepționale aplicației, astfel încât mesajul de eroare returnat să conțină urme de stivă care au informații interesante pentru hackeri.
# 8) Funcționalități specifice riscante
În principal, cele două funcționalități riscante sunt plăți și încărcări de fișiere . Aceste funcționalități ar trebui testate foarte bine. Pentru încărcările de fișiere, trebuie să testați în primul rând dacă orice încărcare de fișiere nedorite sau rău intenționate este restricționată.
Pentru plăți, trebuie să testați în primul rând vulnerabilitățile de injecție, stocarea criptografică nesigură, depășirile de tampon, ghicirea parolei etc.
=> Contactează-ne pentru a sugera o listă aici.Lecturi suplimentare:
- Testarea securității aplicațiilor web
- Top 30 de întrebări de interviu pentru testarea securității
- Diferență între SAST / DAST / IAST / RASP
- SANS Top 20 Vulnerabilități de securitate
Lectură recomandată
- Ghid de testare a securității aplicațiilor web
- Testarea alfa și testarea beta (un ghid complet)
- Tutorial de testare a depozitului de date ETL (ghid complet)
- Testarea securității rețelei și cele mai bune instrumente de securitate a rețelei
- Ghid pentru începători la testarea penetrării aplicațiilor web
- Test de verificare a construcției (testare BVT) Ghid complet
- Testarea funcțională Vs testarea nefuncțională
- Un ghid complet de testare a penetrării cu exemple de cazuri de testare