Documente Academic
Documente Profesional
Documente Cultură
1.INTRODUCERE
Vom prezenta n acest Capitol tehnicile de testare ale furnizorului de securitate software
Security Innovation []. Este vorba de 19 atacuri posibile (Tabelul ), care sunt practice,
eficiente, i se bazeaz pe ani de studiu i cercetare n domeniul defectelor de securitate
software. Ele sunt utile oricrui tip de aplicaie, oricrei platforme i oricrui limbaj de
dezvoltare i sunt deja folosite de mii de testeri i dezvoltatori din ntreaga lume.
Tipul de atac
I. Atacarea dependenelor programului
Atacuri posibile
Atac1:
Blocarea accesului la biblioteci
Atac 2: Manipularea valorilor din registrul
aplicaiei.
Atac 3: Forarea aplicaiei s foloseasc
fiiere corupte
Atac 4: Manipularea i nlocuirea fiierelor pe
care aplicaia le creeaz, citete, scrie i
execut
Atac 5: Forarea aplicaiei s opereze n
condiii de prea puin memorie, prea puin
spaiu pe disc i disponibilitate prea redus a
reelei
Atac 6: Suprancrcarea bufferelor de intrare
Atac 7: Examinarea tuturor opiunilor i
variantelor comune
Atac 8: Explorarea caracterelor de escape
(ieire), a mulimilor de caractere, i a
comenzilor
Atac 9: Verificarea valorilor implicite i
testarea numelor de conturi i a parolelor
Atac 10: Folosirea programului Holodeck1
pentru a expune API-urile neprotejate
Atac 11: Conectarea la toate porturile
Atac 12: Falsificarea sursei de date
Atac 13: Crearea de cicluri care s
interpreteze scriptul, codul, sau alt logic
furnizat de utilizator
Atac 14: Folosirea de ci alternative pentru o
sarcin
Atac 15: Forarea sistemului s reseteze valori
1. https://www.securityinnovation.com/securitylab/holodeck/
destinate citirii/ modificrii de ctre utilizator; n aceste fiiere este cel mai probabil c
verificrile de integritate a datelor nu au fost implementate complet i corect.
Atacul 4: Manipularea i nlocuirea fiierelor create, citite, scrise sau executate de
aplicaie
Similar Atacului 3, acest atac implic dependenele de fiiere-sistem. n atacurile precedente,
s-a ncercat s se determine aplicaia s proceseze date corupte. n Atacul 4 se manevreaz
date, executabile, sau biblioteci n moduri ce foreaz aplicaia s se comporte nesigur. Acest
atac se poate aplica de fiecare dat cnd o aplicaie citete/ scrie n sistemul de fiiere,
lanseaz alt executabil sau acceseaz funcionaliti dintr-o bibliotec. Scopul su este de a
testa dac aplicaia ne permite s facem lucruri pe care ar trebui s nu le putem face.
Atacul 5: Forarea aplicaiei s opereze cu memorie puin, spaiu redus pe disc i acces
redus la retea
O aplicaie este o mulime de instruciuni pe care hardware-ul calculatorului trebuie s le
execute. Iniial, calculatorul ncarc aplicaia n memorie i apoi i furnizeaz aplicaiei
memorie suplimentar n care s i stocheze i manevreze datele interne. Memoria este totui
temporar; pentru a fi cu adevrat util, aplicaia trebuie s poat stoca i date permanente.
Aici intervine sistemul de fiiere, i mpreun cu el, i necesitatea de spaiu pe disc. Fr
suficient memorie pe disc, majoritatea aplicaiilor nu i vor putea ndeplini funciile.
Obiectivul acestui atac este s priveze aplicaia de toate aceste resurse astfel nct testerii pot
nelege ct de robust i sigur este aplicaia lor sub stres. Decizia alegerii scenariilor de
cdere se determin de la caz la caz. n general, se ncearc blocarea unei resurse la momentul
n care aplicaia pare s aib cel mai mult nevoie de ea. .
3. ATACAREA INTERFEEI UTILIZATOR (atacurile 6-8)
n cadrul interfeei utilizator este de obicei cel mai uor de cutat defecte pentru testarea
securitii. Interfaa este modul n care dezvoltatorii se ateapt c vom utiliza programul.
Atacurile descrise n continuare se refer la intrri transmise programului prin intermediul
interfeei. Cele mai multe probleme de securitate rezult din comportamente suplimentare,
neintenionate i nedocumentate ale utilizatorilor. Din IU, aceasta presupune tratarea de intrri
neateptate de la utilizator, ntr-un mod ce compromite aplicaia, sistemul pe care aceasta
ruleaz sau datele sale. Rezultatul poate fi nclcarea drepturilor (un utilizator obinuit
dobndete drepturi de administrare) sau expunerea de informaii secrete ctre un utilizator
neautorizat.
Atacul 6: Suprancrcarea buferelor de intrare
Suprancrcarea bufferelor este cea mai cunoscut problem de securitate a programelor, ce
apare atunci cnd o aplicaie nu reuete s constrng dimensiunea intrrilor. Unele
suprancrcri nu reprezint un pericol real pentru securitate, dar altele permit hackerilor s
preia controlul unui sistem prin trimiterea unui ir bine meteugit (exploatabil) ctre aplicaie
(pri din ir ajung s se execute fiind interpretate drept cod). Ceea ce se ntmpl uneori este
c se aloc o dimensiune fixat de memorie pentru intrrile utilizatorului. Dac dezvoltatorii
nu constrng lungimea stringurilor de intrare introduse de utilizatori, datele pot suprascrie
instruciuni ale aplicaiei, permind utilizatorului s execute cod arbitrar i s ctige
controlul asupra mainii.
Atacul 7: Examinarea tuturor opiunilor i variantelor comune
Unele aplicaii sunt tolerante cu varierea intrrilor utilizatorilor sub o configuraie implicit.
Majoritatea configuraiilor implicite sunt alese de ctre dezvoltatorii aplicaiei, i majoritatea
testelor se execut n aceste condiii (mai ales dac opiunile sunt obscure sau sunt introduse
folosind switch-uri din linia de comand). Cnd aceste configuraii se modific, programul
este adesea nevoit s utilizeze ci sub-testate prin cod, i deci cu rezultate imprevizibile.
Desigur, este imposibil de testat pentru aplicaiile mari un spectru larg de intrri sub fiecare
mulime posibil de configuraii; acest atac se concentreaz pe unele din cele mai obscure
configuraii n care opiunile sunt setate n linia de comand sau la pornire.
Atacul 8: Explorarea caracterelor de escape (ieire), a mulimilor de caractere, i a
comenzilor
Unele aplicaii trateaz anumite caractere ca echivalente atunci cnd fac parte dintr-un ir.
Pentru majoritatea scopurilor, un ir cu litera a ntr-o anumit poziie e probabil c va fi
procesat la fel cu un ir cu litera z n aceeai poziie. De aici, urmeaz firesc ntrebarea Ce
caractere sau combinaii de caractere sunt tratate diferit?, care ghideaz acest tip de atac.
Fornd aplicaia s proceseze caractere i comenzi speciale, putem uneori s o form s se
comporte n moduri pe care designerii si care nu le-au prevzut. Factorii care afecteaz ce
caractere i comenzi pot fi interpretate diferit includ limbajul aplicaiei, bibliotecile prin care
trec datele utilizatorilor, i cuvintele i irurile rezervate ale sistemului de operare.
4. ATACAREA DESIGN-ULUI (atacurile 9-15)
Este foarte dificil s parcurgi 300 de pagini de documentaie a design-ului i s determini dac
produsul final va fi sigur, aadar, o parte din vulnerabilitile de securitate se strecoar n
aceast etap a dezvoltrii. Problema este c decizii de design subtile pot duce la interaciuni
ntre componente i defecte inerente care produc vulnerabiliti produsului final. Atacurile 915 ajut la expunerea acestor insecuriti de design din software: presupuneri implicite
nesigure, testarea conturilor, testarea instrumentaiei, a porturilor deschise, i a constrngerilor
nesatisfctoare asupra logicii de program furnizate de utilizator.
Atacul 9: Verificarea valorilor implicite i a numelor de conturi i de parole
n aplicaiile cu restricii asupra datelor i a funcionalitilor utilizatorii sunt tratai diferit.
Aciunile utilizatorului sunt controlate de nivelul asociat de acces. De cele mai multe ori,
utilizatorii sunt identificai i autentificai pe baza unor nume de utilizatori i parole. Totui,
multe aplicaii au incorporate nite conturi de utilizatori speciale (contul Administrator,
root etc.) Aceste conturi bine documentate nu prezint, de obicei, probleme, i utilizatorii
sunt invitai s le modifice/ iniializeze parola la instalare. Problema apare odat cu existena
unor conturi invizibile, nedocumentate sau neconfigurabile. Pentru acestea trebuie neles bine
pe ce baz se acord ncredere unui utilizator, cum este acesta verificat i dac sunt stocate n
cache sau nu. Atacul are destinaia de a depista conturile ascunse nainte de livrarea
aplicaiei.
Atacul 10: Folosirea programului Holodeck pentru a expune API-urile neprotejate
Aplicaiile complexe, pe scar larg, sunt dificil de testat eficient bazndu-ne doar pe APIurile destinate utilizatorilor normali. Uneori se fac mai multe asamblri ale programului n
aceeai sptmn, i fiecare dintre acestea parcurge o suit de teste de verificare. Din aceast
cauz, muli dezvoltatori folosesc nite ancore folosite de testare. Aceste ancore i APIurile de testare corespunztoare ocolesc adesea verificrile obinuite de securitate (pentru a
face aplicaia eficient i uor de folosit). Dezvoltatorii le adaug pentru a uura munca
testerilor, i apoi le elimin la livrarea programului. Problema este c aceste API-uri de testare
sunt integrate programului i testrii att de bine nct la livrare muli manageri nu le mai
elimin de teama de a nu destabiliza codul i a nu ntrzia livrarea. Este aadar important ca
aceste pri de program s fie gsite i s se verifice c ele nu pot fi folosite de hackeri pentru
a compromite aplicaia, sistemul su gazd sau datele utilizatorului. Prin urmrirea aplicaiei
cu Holodeck n timpul rulrii suitelor de test automate, se pot identifica DLL-urile ncrcate i
folosite, i se poate evalua impactul lor asupra securitii. Atacul ncearc s expun API-urile
de test.
Atacul 11: Conectarea la toate porturile
Un port este o metod de a organiza traficul din reea trimis sau recepionat ntr-o/dintr-o
main anume, astfel ca tipuri diferite de date s poat fi transmise simultan. Cnd un port
este deschis, sistemul de operare ascult datele ce trec prin interfaa respectiv. Aplicaiile
deschid n mod obinuit porturi pentru a transmite datele prin reea. Totui, un port deschis nu
este n mod automat o variant sigur de comunicare. Dac dezvoltatorii nu iau msuri
adecvate, un port deschis poate fi folosit de un hacker care ncearc s obin accesul
neautorizat la sistem. Acest atac descoper aceste pori deschise.
Atacul 12: Falsificarea sursei de date
Unele date nu sunt deloc verificate, pe baza ncrederii n sursa care le-a produs/ furnizat; spre
exemplu, aplicaiile tind s accepte valori din surse ca SO cu o minim examinare. Unele
surse trebuie crezute pentru buna funcionare a aplicaiei (cum ar fi comenzile de
configurare de la un administrator autentificat). Problema apare atunci cnd ncrederea pe care
o aplicaie o are ntr-o surs nu este dublat de verificarea c datele provin cu adevrat de la
sursa respectiv. Acest atac se concentreaz pe asigurarea c aplicaia este precaut i verific
sursa datelor, atribuind acestei surse un nivel de ncredere corespunztor.
Atacul 13: Crearea de bucle n orice aplicaie care interpreteaz script, cod, sau alt
logic furnizat de utilizator
Unele comenzi, executate izolat sunt inofensive (de exemplu, deschiderea unui browser Web
i navigarea ctre un Website care lanseaz o alt fereastr). Aceast aciune n sine nu
reprezint o ameninare pentru utilizator (dei poate deveni enervant). S ne imaginm acum
o fereastr lansnd o alt fereastr care lanseaz o alt fereastr i aa mai departe: dac
browser-ul nu face nite verificri de raionalitate, sistemul se blocheaz. Atacul 13
investigheaz aciunile repetate: preluarea de comenzi relativ benigne i executarea lor
repetat pentru a limita sau bloca funcionalitatea destinat utilizatorilor sau proceselor n
drept.
Atacul 14: Folosirea de ci alternative pentru a ndeplini o sarcin
Iat mai multe ci alternative de deschidere a unui fiier Microsoft Word n Windows:
Scrierea cii n caseta de dialog Run
Dublu-clic pe iconul fiierului ntr-o fereastr Explorer
Tastarea cii i numelui fiierului ntr-o fereastr Explorer
Tastarea cii i numelui fiierului ntr-o fereastr Internet Explorer
Selectarea sa din My Recent Documents din meniul de Start
Tastarea numelui fiierului n caseta de dialog Open din interiorul Word
Etc.
Exist multe modaliti de a realiza acest lucru, dar ne ateptm ca pe oricare am alege-o s
obinem acelai rezultat: documentul nostru s fie afiat i gata pentru editare. Dac dorim s
asigurare c sunt ntr-adevr fiierele dorite. Aceasta se poate face prin crearea unui fiier cu
acelai nume i plasarea sa ntr-un director n care utilizatorul are acces i n care aplicaia
caut mai nti. O problem de acelai tip este cea n care unele fiiere capt privilegii
speciale numai pe baza numelui lor. Acesta e un fenomen comun, mai ales cu programele
antivirus care opereaz folosind o plas complex de reguli de filtrare bazate pe nume de
fiiere i extensiile lor. Atacul este aplicabil de cte ori o aplicaie ia decizii de execuie sau de
privilegii pe baza numelui unui fiier.
Atacul 18: Forarea tuturor mesajelor de eroare
Mesajele de eroare sunt folosite pentru a furniza informaii utilizatorului, scopul lor fiind de a
alerta un utilizator asupra unei aciuni incorecte sau nepermise care s-ar fi ncercat. Scopul
acestui atac este s form domeniul mesajelor de eroare ce pot fi afiate de o aplicaie. Spre
exemplu, putem s cutm toate valorile ilegale posibile ce pot fi introduse ntr-un cmp. Prin
ncercarea de a declana mesaje de eroare, practic se acoper domeniul de intrri greite ctre
aplicaie i se testeaz robusteea acesteia la datele respective (s zicem, introducei un numr
negativ n cmpul numrul frailor dintr-un formular Web). Scopul acestui atac este gsirea
situaiilor tratate inadecvat- adic, n locul unui mesaj de eroare, aplicaia ncearc s
proceseze date greite.
Atacul 19: Folosirea Holodeck pentru cutarea de fiiere temporare i de informaii
sensibile n coninutul acestora
Aplicaiile scriu deseori date n sistemul de fiiere, care poate stoca att date permanente ct i
temporare. Fiierele temporare pot fi create pentru a transfera date ntre componente sau
pentru a pstra date prea mari/ prea ineficiente pentru pstrarea n memorie. Dac aceste date
(chei de CD-uri, chei de criptare, parole sau alte date personale) sunt sensibile, atunci
mecanismul de a le stoca i punctele de acces la ele trebuie verificate. Testerii de securitate
trebuie s fie contieni de momentul, locul i modalitatea n care o aplicaie acceseaz datele
din fiierele sistemului. Pentru eficien, trebuie identificate ce date nu ar trebui expuse altor
utilizatori poteniali ai sistemului. Dup identificarea datelor sensibile, atacul trebuie s
gseasc modaliti creative de a ctiga acces nepermis la ele. Programul triete ntr-o
reea cu mai muli utilizatori, i faptul c a creat un fiier i apoi l-a ters nu nseamn c
operaia a trecut neobservat de curioi. Un instrument de observaie util acestui atac este tot
Holodeck, care poate monitoriza aplicaia pentru scrierile n fiiere i construiete un log al
acestor comportamente, pentru a fi analizate. Holodeck ne poate spune cnd, cum i unde a
avut loc fiecare acces la un fiier al aplicaiei noastre, rmnnd n sarcina noastr s
investigm ce anume s-a scris i dac ar trebui s rmn secret.