Sunteți pe pagina 1din 20

UNIVERSITATEA “ȘTEFAN CEL MARE” SUCEAVA

FACULTATEA DE INGINERIE ELECTRICĂ ȘI ȘTIINȚA


CALCULATOARELOR

PROGRAM DE STUDIU CALCULATOARE

PROIECT LA
TWAAOS

PROFESOR ÎNDRUMĂTOR, STUDENI ,


as. dr. ing. Gherman Ovidiu-Ionuț Cucu Lorin
Cotici Ion
Hreceniuc Adi
Pelinescu Cosmin
Sili Alexandru

SUCEAVA 2020
//trebuie sa alegem un titlu bos ne recomanda A survey of the main types of attacks on webified devices"

//format iee aici va face Cosmin


Cuprins
Lista acronimelor și abrevierilor..................................................................................................................1
1. Introducere..........................................................................................................................................2
2. Aplicație web.......................................................................................................................................2
2.1 Principii de securitate........................................................................................................................2
2.2 Securitatea rețelei.............................................................................................................................3
2.3 Principii de securitate a aplicațiilor....................................................................................................4
2.4 Model de amenințare Windows........................................................................................................5
3. Tipuri de atacuri web...........................................................................................................................6
3.1 Cross-Site Scripting............................................................................................................................6
3.2 Injecția LDAP......................................................................................................................................6
3.3 Cryptanalysiss....................................................................................................................................7
3.4 Command injection............................................................................................................................7
3.5 Buffer Overflow Attack......................................................................................................................7
3.6 Overflow buffer prin variabile............................................................................................................8
3.7 HTTP Response Splitting....................................................................................................................8
3.8 Format string attack...........................................................................................................................8
3.9 SQL Injection......................................................................................................................................9
3.10 Session hijacking attack.................................................................................................................10
4. Masuri de proiecție împotriva hacking-ului.......................................................................................10
5. Concluzie...........................................................................................................................................11
6. Bibliografie.........................................................................................................................................12
Lista acronimelor și abrevierilor

HTTP HyperText Transfer Protocol Protocol de transmisie de tip


text
HTML HyperText Markup Language limbaj de marcare utilizat
pentru crearea paginilor web
ISP Internet Service Provider. Furnizor de servicii de
internet
IT Information Technology Tehnologia de informație
TUE Treaty on European Union Tratatul asupra Uniunii
Europene
WEB World Wide Web totalitatea site-urilor ce pot fi
acesate prin internet
VLAN Virtual Local Area Network Rețea virtuală de zonă locală
IIS Internet Information Services Servicii de informare pe
internet
XSS cross site scripting scripturi de site-uri
LF Low frequency Frecventa joasa
DBMS Database management Sisteme de administrare a
systems bazelor de date

1
1. Introducere

Într-o lume condusă din ce în ce mai mult de rețele sociale, tranzacții online, informații
gestionate prin internet sau procese automatizate efectuate prin utilizarea sistemelor informatice,
securitatea informațiilor și confidențialitatea datelor se confruntă permanent cu riscuri majore de
a fi furate și folosite în alte scopuri[12]. Odată cu dezvoltarea de noi instrumente și tehnici,
criminalitatea cibernetică crește constant în ceea ce privește numărul de atacuri și nivelul de
daune cauzate victimelor sale.
Dezvoltarea de noi modalități de a obține acces neautorizat la rețele sau programe și date,
atacatorii urmăresc să compromită confidențialitatea, integritatea și disponibilitatea informațiilor,
alegându- și țintele, de la persoane fizice, la companii mici, mijlocii sau chiar giganți de afaceri.
În fiecare an pare să fie un număr mai mare de atacuri în general, dar și un număr mai mare de
atacuri care înfrâng securitatea companiilor extrem de mari, afectând astfel securitatea
informațiilor, totodată încrederea clienților scade tot mai tare. Tendința din ce în ce mai mare a
atins noi vârfuri în 2014, cunoscută drept „anul atacurilor cibernetice”, dar omenirea consideră că
aceasta nu va fi apogeul decât dacă se vor lua măsuri la scară globală.

2. Aplicație web
O aplicație web (World Wide Web) poate fi descrisă ca un program care este dezvoltat
pentru a efectua procese specifice. Există o mulțime de tehnologii disponibile astăzi pentru a ne
ajuta să dezvoltăm aceste aplicații. Cele mai utilizate tehnologii web sunt prezentate in imaginea
următoare.

Fig -1- Cele mai utilizate tehnologii web [13]


. O aplicație web gestionează în mod normal intrarea utilizatorului într-un script extern și
efectuarea comenzii. În mod normal, această rutină include colectarea datelor de la baza de date
și trimiterea către utilizator. Rezultatul final este o pagină web cu conținut.
Securitatea aplicațiilor web este definită prin metode care verifică în totalitate dacă datele
sunt corecte și nu au fost modificate între timp. Securitatea poate fi înțeleasă ca o soluție
eficientă împotriva atacurilor. O amenințare este considerată un pericol dăunător care poate
exploata vulnerabilitățile împotriva resurselor noastre. În aplicația web, această slăbiciune apare
ca rezultatul unei codificări slabe, a greșelilor de dezvoltare și a tehnicilor proaste sau vechi de
proiectare.

2.1 Principii de securitate

După cum s-a descris anterior, aplicația web se bazează pe principiile de securitate a
informațiilor, unele dintre aceste principii includ următoarele[14]:
- Confidențialitate - permite accesul numai la datele utilizatorului curent.
- Integritate - asigură că utilizatorii neautorizați nu vor accesa date.
- Disponibilitate – asigură disponibilitatea datelor pentru utilizatori atunci când se
solicită.
La baza resurselor fundamentale de securitate a aplicațiilor web, sunt incluse următoarele
categorii : autentificarea, autorizarea și verificarea. Autorizarea permite ca utilizatorul să
acceseze doar o parte din resurse care îi aparțin, cu alte cuvinte, ceea ce puteți face cu aceste
resurse sunt ca și modificări în contul dvs., modificarea fișierelor și a tabelelor bazei de date.
2.2 Securitatea rețelei

Ideea cea mai principală este că securitatea rețelei, trebuie să fie implementată pentru a ne
proteja resursele, deoarece infrastructura de rețea, cum ar fi router-ele, switch-urile și firewall-
urile trebuie să fie bine configurate pentru a fi securizate împotriva atacurilor. Este foarte
important să ne protejăm rețeaua nu numai de atacuri la TCP / IP, ci și cu parole puternice ce sunt
greu de găsit. Un alt obiectiv este de a asigura integritatea traficului. Router-ul este responsabil
pentru expedierea pachetelor IP. Una dintre sarcinile sale este să blocheze traficul neautorizat și
este primul punct de defensivă din rețeaua noastră. Dacă nu avem acces la setările router-ului, nu
avem prea multe de făcut cu privire la securitatea de rețea a acestui dispozitiv decât să contactăm
ISP-ul (Internet Service Provider) nostru pentru a obține informații despre securitatea pe care o
implementează la nivelul rețelei. În caz contrar, unele configurații și măsuri de securitate care ar
putea fi implementate, este controlul accesului administrativ. Trebuie să se asigure că are cel mai
recent software, actualizări de patch- uri și poate detecta un atac nedorit.
Funcția principală a comutatorului este de a îmbunătăți performanța rețelei din partea
administrativă. Comutatorul transmite pachetele către segmentele de rețea sau gazde. Unele
măsurători includ configurația rețelei locale de rețea virtuală VLAN (Virtual Local Area
Network) și controlul accesului, criptarea, controlul accesului la sistemul de administrare al
comutatorului pentru a împiedica intrușii să facă configurații greșite./// Aici poate o enumerare
cu bllet points a elementelor? Și eventual un articol citat sau - daca este opinia dv. - puneți
explicit acest lucru: "Noi propunem următoarele..."Ion
Serverele web sunt vulnerabile, avem nevoie de metodologii pentru a preveni atacurile.
Indiferent de sistemul de operare pe care serverul nostru web îl utilizează fiind IIS (Internet
Information Services), .NET sau Apache, configurația de securitate trebuie efectuată la acest
nivel pentru a diminua nivelurile de vulnerabilitate. Principalele amenințări la adresa unui server
Web sunt: Profilarea, refuzul serviciului, accesul neautorizat, lipsa privilegiilor configurate,
executarea codului arbitrar, viruși, viermi și cai troieni.
Firewall-ul permite sau blochează traficul în port, monitorizează cererile de trafic care vin
și previne atacurile cunoscute împotriva serverelor noastre. Unele configurații efectuate în
firewall includ: patch-uri, actualizări, filtre, perimetrul de înregistrare și detectarea intruziunii.
Sistemul de operare al acestuia ar trebui să fie actualizat regulat și controlat prin acces
administrativ.

Securitatea începe cu o înțelegere a modului în care funcționează sistemul sau rețeaua care trebuie
securizată.// "Cele mai cunoscute" conform cui? Exista vreo statistică? Sili
Cele mai cunoscute amenințări în rețea sunt [14]:
- Negarea serviciului.
- Deturnarea sesiunii.
- Falsificarea.
- Sniffing.
- Colectarea de informații.
2.3 Principii de securitate a aplicațiilor
Se pare că cea mai expusă și cea mai puțin protejată parte a platformelor este aplicația
web care are cod, în principiu pentru, gestionarea cererii / procesarea către / de la server.
Arhitectura de aplicații cunoscută pentru serverele web este modelul de vizualizare-controler;
Cunoscut sub numele de MVC și este implementat mai ales cu Apache și folosit în cadre precum
CodeIgniter. În arhitectura MVC putem găsi vizualizarea care reprezintă codul front-end, acesta
poate fi înțeles ca un HTML (HyperText Markup Language) pentru utilizator.// Conform cui ("se
pare")? MVC nu-și are rostul aici pentru ca este o paradigmă de dezvoltare -nu afectează per se
securitatea... Daca motivați că da, trebuie să veniti cu o justificare clară... Ion
Controlerul este considerat poarta fluxului de lucru, codul care gestionează logica și
procesul pentru a asigura siguranța ieșirii de către codul de vizualizare. Controlerele din partea
serverului ajută la validarea datelor de intrare ale utilizatorului împotriva problemelor de
securitate cunoscute înainte de a analiza datele la modelul pentru proces. Acest lucru asigură
integritatea ieșirii din controlerul de vizualizare.
În cele din urmă, modelul poate fi văzut ca metoda de a face față proceselor pentru a se
asigura că codul nu este expus erorilor. Acesta este motivul pentru care modelul este responsabil
pentru prevenirea injecției SQL. Responsabilitatea modelului este de a testa datele în
conformitate cu regulile stabilite. De exemplu, dacă un model stochează date într-un fișier, codul
trebuie să fie verificat pentru comenzile de injecție ale sistemului de operare, dacă fișierele nu
sunt verificate, poate fi ușor de inclus cod injectat SQL care deturnează securitatea.
//:D Bineînteles ca trebuie să fie cele mai sigure posibil; nimenni nu face o aplicatie web
nesigură "by design"... Eventual aveti o sursă pentru a sustine numeric (sau textual) că
majoritatea atacurilor au loc la acest "model" (adică la datele stocate în BD)? Adi
Sintaxa și apelurile corespunzătoare ale modelului către serverul de date trebuie să fie cât mai
sigure posibil, deoarece cele mai slabe găuri se găsesc cu interogări dinamice prin introducerea
utilizatorului neverificat. Cea mai bună performanță și cea mai înaltă securitate este adesea
obținută prin procedurile stocate parametrizate, urmate de interogări parametrizate (cunoscute și
sub denumirea de instrucțiuni pregătite) cu introducerea puternică a parametrilor și a schemelor.
Minimizarea traficului de rețea pentru o tranzacție în mai multe etape sau eliminarea
informațiilor sensibile la securitate din traversarea rețelei este unul dintre motivele principale
pentru utilizarea procedurilor stocate. Oricum, procedurile stocate nu sunt întotdeauna cea mai
bună soluție a problemei.
//Conform cui? Poate niște referințe? Sili Următoarele principii relevante de securitate
explicate mai jos ne pot ajuta să realizăm o mai bună planificare și implementare a securității:
- O infrastructură sigură (rețea), așa cum a fost explicată anterior, este necesară pentru a
vă asigura că nivelul aplicației este securizat, aceeași regulă se aplică și pentru serviciile noastre
web.
- Examinarea arhitecturii aplicației. Proiectarea aplicației noastre este foarte importantă
pentru securitate. Părțile critice ale codului nostru care gestionează procesele precum
autentificarea, managementul, validarea intrării, trebuie examinate cu atenție.
- Nu aveți încredere în securitate prin obscuritate. Explicat ca un control de securitate
slab, aproape întotdeauna eșuează atunci când este singurul control, ceea ce înseamnă că
securitatea sistemelor de chei nu ar trebui să depindă de păstrarea datelor ascunse.
- Control validare intrare. Aceasta este una dintre modalitățile comune de exploatare a
atacatorilor. Unele atacuri includ injecția SQL (Structured Query Language;), XSS (cross site
scripting), injecția de cod. Un formular poate fi ușor validat, dar întrebarea este dacă are metoda
corectă, ce introducere este permisă sau respinsă. În calitate de dezvoltator bun, o modalitate
bună de a controla validarea este de a valida utilizatorii noștri mai întâi la poartă și nu se bazează
pe validarea din partea clientului, ci pe validarea serverului.
Un exemplu tipic este prin faptul că intrarea va duce la o interogare SQL. Până acum,
aceasta este cea mai vulnerabilă metodă pentru atacurile de injecție SQL. Cum validăm
interogările pentru baza de date este întrebarea care răspunde la problema acestui tip de atacuri
primare.
Cum ne folosim de autentificarea aplicației și modul în care codul gestionează cererile
este unul dintre cei mai importanți pași în procesul de securitate nu numai pentru codul însuși, ci
pentru probleme legate de parole slabe necriptate în server sau tabele SQL, peste conturi
privilegiate și sesiuni lungi. Este într-adevăr ușor să obțineți acces la sisteme, dispozitive de
rețea, baze de date și fiecare sistem care necesită o parolă. Există mai multe instrumente de
conectare disponibile care pot fi utilizate în scopuri legale sau de testare, unul este HYDRA.
///Referință către HYDRA. Dacă găsiți un articol știintific care explică ce este/cum se folosește -
cu atât mai bine (treceți ref. către articol ȘI catre site-ul HYDRA). Pentru cautare dați pe IEEE și
ScienceDirect un search după HYDRA... Adi
Principiul privilegiului cel mai mic, //Un principiu f. importantîn domeniul securități.
Originat de Jerome Saltzer (https://en.wikipedia.org/wiki/Principle_of_least_privilege - de aici veți
lua ca ref lucrarea lui la ACM din '74 - referința 6 din pagina de Wiki pe care v-am dat-o)... Adi
vizează reducerea privilegiului utilizatorului pentru a efectuarea unui proces, reducerea accesului
la sistemul de fișiere, limitele procesorului, memoria și rețeaua. în baza de date și cum este
controlat accesul la resursele fiecărui nivel de sistem, depinde securitatea noastră.
Vulnerabilitățile autorizării pot duce la dezvăluirea informațiilor, modificarea datelor și ridicarea
privilegiilor, astfel trebuie minimizată cât mai mult suprafața de atac. Ca măsură de securitate
pentru reducerea suprafeței atacului, este mai bine de revizuit codul pentru acele zone cu
vulnerabilități care pot fi eliminate doar prin crearea autentificării utilizatorului sau eliminarea
unei funcții din codul care duce la expunere.
De exemplu, o aplicație web implementează ajutor online cu o funcție de căutare. Funcția
de căutare poate fi vulnerabilă la injecția SQL. Dacă funcția de ajutor a fost limitată la utilizatorii
autorizați, atacul este redus. Dacă căutarea funcției de ajutor include rutine de validare a datelor;
capacitatea de a efectua injecția SQL este redusă. Multe companii folosesc procesul și modelele
persoanelor externe. Cum putem influența sau controla procesul lor? Cred că nu există nicio
garanție de securitate în acest sens, deoarece politicile și dezvoltatorii lor nu pot respecta
standardul nostru, de aceea partenerii terți pot expune securitatea sistemului nostru. Uneori
simplitatea față de tehnicile complexe de codare va ajuta în cazul în care avem nevoie de o
abordare simplă. De exemplu, utilizarea de variabile globale. După ce a fost descoperită o
problemă de securitate, ea trebuie corectată și este necesar să folosiți instrumente de testare
specifice în funcție de cauza principală a problemei și să dezvoltați soluția potrivită pentru
problemă.
Îmbunătățirea securității aplicațiilor web înseamnă să ne cunoaștem amenințările, după
care putem analiza aplicațiile noastre. O abordare bună de securitate este de a urmări procesul de
model de amenințare. Windows se bazează pe identificarea amenințărilor noastre pentru a ști ce
anume trebuie să securizăm și cum să facem.

2.4 Model de amenințare Windows ///Daca ați amintit de Windows


poate ar trebui sa o faceti și pentru Linux. În definit majoritatea
serverelor rulează pe Linux... Sili
Atunci când proiectăm aplicații web, este important să adoptăm un model standardizat
pentru a îmbunătăți securitatea. Modelul riscului de amenințare este important pentru a ne
asigura că proiectăm o aplicație rezistentă la atacuri. Pe baza resurselor Microsoft, una dintre cele
mai importante îmbunătățiri de securitate a fost adoptarea universală a modelării amenințărilor.
Identificarea obiectivelor de securitate: în această etapă este esențial să identificăm și să
înțelegem obiectivele de securitate de către echipa de dezvoltare. Pentru securitatea aplicațiilor
printre obiective se poate include confidențialitate, costul financiar, reputație, identitate, de
exemplu, pentru a asigura identificarea unui transfer bancar pe internet de către vreun utilizator.
Prezentare generală a aplicației: după ce am stabilit obiectivele de securitate și
identificarea a ce trebuie să asigurăm în sistemul nostru, următoarea abordare este de a analiza
aplicația noastră având în vedere proiectarea arhitecturii, inclusiv documentația pentru a
determina
componentele, fluxurile de date și limitele de încredere ale acestora. De exemplu, codul care
circulă din browser pe serverul de baze de date trebuie analizat cu atenție. Este necesară crearea
unui profil de securitate prin descompunerea aplicației și a rețelei, proiectarea infrastructurii,
acest profil de securitate ne va ajuta să găsim vulnerabilități de securitate. De exemplu, atunci
când investigați modulul de autentificare, este necesar să înțelegeți modul în care datele intră.

3. Tipuri de atacuri web


Atacurile sunt tehnicile pe care atacatorii le folosesc pentru a exploata vulnerabilitățile
din aplicații. Atacurile sunt deseori confundate cu vulnerabilitățile, așa că vă rugăm să încercați
să vă asigurați că atacul pe care îl descrieți este ceva ce ar comite un atacator, decât o slăbiciune
într-o aplicație.

Atacurile Web cele mai intalnite in anul 2018 sunt prezentate in figura urmatoare:

Fig -2- Cele mai populare atacuri in 2018[16]


Cele mai frecvente atacuri sunt prezentate mai jos.

3.1 SQL Injection


Un atac de injecție SQL constă în inserarea sau „injecția” unei interogări SQL prin datele
de intrare de la client la aplicație. O exploatare de injecție SQL de succes poate citi date sensibile
din baza de date, modifica date ale bazei de date (Inserare / Actualizare / Ștergere), executa
operațiuni de administrare în baza de date (cum ar fi închiderea DBMS (Database management
systems) ), poate recupera conținutul unui fișier dat prezent în fișierul DBMS sistem și , în unele
cazuri emite comenzi către sistemul de operare. Atacurile de injecție SQL sunt un tip de atac de
injecție , în care comenzile SQL sunt injectate în intrarea planului de date pentru a efectua
executarea comenzilor SQL predefinite.
.
Modelarea amenințărilor
Atacurile de injecție SQL permit atacatorilor să strice identitatea, să modifice datele
existente, să provoace probleme de repudiere, cum ar fi anularea tranzacțiilor sau schimbarea
soldurilor, să permită dezvăluirea completă a tuturor datelor din sistem, să distrugă datele sau să
le facă altfel indisponibile și să devină administratori ai serverului de baze de date.
Injecția SQL este foarte frecventă cu aplicațiile PHP și ASP, datorită prevalenței interfețelor
funcționale mai vechi. Datorită naturii interfețelor programatice disponibile, aplicațiile J2EE și
ASP.NET sunt mai puțin susceptibile să exploateze cu ușurință injecții SQL.
Severitatea atacurilor SQL Injection este limitată de abilitatea și imaginația atacatorului
și, într-o măsură mai mică, de apărarea în contramăsurile de profunzime, cum ar fi conexiunile cu
privilegii reduse la serverul de baze de date ș.a. În general, considerați SQL Injection o severitate
mare a impactului.
3.2 Path Traversal
Un atac de traversare a căilor (cunoscut și sub denumirea de traversare de directoare) își
propune să acceseze fișiere și directoare care sunt stocate în afara folderului rădăcină web. Prin
manipularea variabilelor care fac referință fișierelor cu secvențe „dot-dot-slash (../)” și variațiile
sale sau prin utilizarea căilor de fișiere absolute, poate fi posibilă accesarea fișierelor și
directoarelor arbitrare stocate pe sistemul de fișiere, inclusiv codul sursă sau configurația
aplicației și fișiere de sistem critice. Trebuie menționat că accesul la fișiere este limitat de
controlul de acces operațional al sistemului (cum ar fi în cazul fișierelor blocate sau în curs de
utilizare pe sistemul de operare Microsoft Windows).
Toate aplicațiile web, cu excepția celor mai simple, trebuie să includă resurse locale, cum
ar fi imagini, teme, alte scripturi etc. De fiecare dată când aplicația include o resursă sau un
fișier, există riscul ca un atacator să poată include un fișier sau o resursă de la distanță pe care nu
ai autorizat-o.

3.3 Cross-Site Scripting


Atacurile Cross-Site Scripting (XSS) sunt un tip de injecție, în care scripturile rău
intenționate sunt injectate pe site-uri web. Atacurile XSS apar atunci când un atacator utilizează
o aplicație web pentru a trimite cod virusat, sub forma unui script de browserului, către un
utilizator final diferit. Greșelile care permit acestor atacuri să fie reușite sunt destul de răspândite
și apar oriunde o aplicație web folosește datele de intrare a unui utilizator în cadrul rezultatului
pe care îl generează fără a-l valida sau codifica.
Un atacator poate folosi XSS pentru a trimite un script virusat către un utilizator.
Browserul utilizatorului final nu are cum să știe că scriptul este virusat și îl va executa. Deoarece
sistemul consideră că scriptul provine dintr-o sursă de încredere, poate accesa orice cookie-uri,
jetoane de sesiune sau alte informații sensibile păstrate de browser și utilizate cu acel site. Aceste
scripturi pot chiar rescrie conținutul paginii HTML.
Atacurile de cross-site Scripting (XSS) apar atunci când:
- Datele intră într-o aplicație Web printr-o sursă de încredere, cel mai frecvent o
solicitare web.
- Datele sunt incluse în conținut dinamic care este trimis unui utilizator web fără a fi
validate pentru conținut virusat.
Conținutul rău intenționat trimis browserului web ia adesea forma unui segment de
JavaScript, dar poate include, de asemenea, HTML, Flash sau orice alt tip de cod pe care
browserul îl poate executa. Diversitatea atacurilor bazate pe XSS este aproape nelimitată, dar
acestea includ în mod obișnuit transmiterea datelor private, cum ar fi cookie-urile sau alte
informații de sesiune, către atacator, redirecționarea victimei către conținutul web controlat de
atacator sau efectuarea altor operațiuni rău intenționate pe mașina utilizatorului, sub masca site-
ului vulnerabil.

3.4 Local File Inclusion (LFI)


Includerile de fișiere sunt o cheie pentru orice limbaj de script din partea serverului. Codul
aplicațiilor web este menținut prin includeri de fișiere. Ce face un hacker cu o incluziune de fișiere
locale? Ei o folosesc mai ales pentru a extrage informații de pe un server. Nimic deosebit de rău în
natura sa. Cu toate acestea, informațiile furate pot fi sensibile. O lume de oportunități se deschide
către un hacker atunci când obțin informații sensibile.
Deoarece LFI ajută un atacator să păcălească o aplicație web fie să ruleze, fie să expună
fișiere pe un server web, un atac LFI poate duce la Scripturi încrucișate și la executarea codului de
la distanță (RFI pentru scurte) vulnerabilități.
Atunci când o aplicație utilizează o cale de fișier ca o intrare, aplicația tratează acea intrare
ca fiind de încredere și în siguranță. Un fișier local poate fi apoi injectat în declarația inclusă. Acest
lucru se întâmplă atunci când codul dvs. este vulnerabil. În acest caz, un hacker face o solicitare
care păcălește aplicația să execute un script PHP rău intenționat (de exemplu, shell-ul web).
Problema principală apare atunci când utilizatorul rulează apoi aplicația web care, la rândul său,
permite hackerului să ruleze orice cod rău intenționat pe server. Rețineți că acest lucru nu este
întotdeauna cazul, deoarece posibilitatea de a încărca un fișier rău intenționat în aplicație nu este
foarte frecventă. Nu există nici o modalitate sigură de a garanta că aplicația salvează fișierul pe
serverul în care se află vulnerabilitatea LFI.
3.5 Information Leakage
Scurgerea de informații este o slăbiciune a aplicației în care o aplicație dezvăluie date
sensibile, cum ar fi detalii tehnice ale aplicației web, mediu sau date specifice utilizatorului.
Datele sensibile pot fi utilizate de un atacator pentru a exploata aplicația web țintă, rețeaua de
găzduire sau utilizatorii săi. Prin urmare, scurgerile de date sensibile ar trebui limitate sau
prevenite ori de câte ori este posibil. Scurgerea de informații, în forma sa cea mai obișnuită, este
rezultatul uneia sau a mai multor dintre următoarele condiții: Eșecul de a elimina comentariile
HTML / Script care conțin informații sensibile, aplicații necorespunzătoare sau configurații de
server sau diferențe în răspunsurile paginii pentru date valide sau nevalide. .
Nerespectarea comentariilor HTML / Script înainte de apăsarea către mediul de producție
poate duce la scurgerea de informații sensibile, contextuale, cum ar fi structura directorului
serverului, structura de interogare SQL și informații de rețea internă. Adesea, un dezvoltator va
lăsa comentarii în cadrul codului HTML și / sau al scriptului pentru a facilita procesul de depanare
sau integrare în faza de pre-producție. Deși nu există niciun rău în a permite dezvoltatorilor să
includă comentarii inline în conținutul pe care îl dezvoltă, aceste comentarii ar trebui eliminate
toate înainte de publicarea conținutului.
Numerele versiunii software și mesajele de eroare verbose (cum ar fi numerele versiunii
ASP.NET) sunt exemple de configurații necorespunzătoare ale serverului [7]. Aceste informații
sunt utile pentru un atacator, oferind informații detaliate despre cadrul, limbile sau funcțiile pre-
construite utilizate de o aplicație web. Cele mai multe configurații implicite ale serverului
furnizează numere de versiune software și mesaje de eroare verbose pentru scopuri de depanare și
depanare. Se pot face modificări de configurare pentru a dezactiva aceste caracteristici,
împiedicând afișarea acestor informații.

3.6 OS command injection


Injecția de comandă a sistemului de operare (cunoscută și sub denumirea de shell injecție)
este o vulnerabilitate a securității web care permite unui atacator să execute comenzi de sistem de
operare (OS) arbitrare pe serverul care rulează o aplicație și, de obicei, să compromită pe deplin
aplicația și toate datele sale.
Aplicațiile web uneori trebuie să execute comenzi ale sistemului de operare (comenzi OS)
pentru a comunica cu sistemul de operare gazdă de bază și cu sistemul de fișiere. Acest lucru se
poate face pentru a rula comenzi de sistem, pentru a lansa aplicații scrise într-un alt limbaj de
programare sau pentru a rula scripturi shell, python, perl sau PHP. Pentru orice sistem de operare,
inclusiv Windows, Unix și Linux, sunt disponibile funcții care pot executa o comandă care este
transmisă celorlalte scripturi ca o comandă shell. Deși este extrem de utilă, această funcționalitate
poate fi periculoasă atunci când este folosită incorect și poate duce la probleme de securitate a
aplicațiilor web, așa cum este explicat în acest articol
Prin exploatarea unei vulnerabilități de injecție de comandă într-o aplicație vulnerabilă,
atacatorii pot adăuga comenzi suplimentare sau injecta propriile comenzi ale sistemului de operare.
Acest lucru înseamnă că în timpul unui atac de injecție de comandă, un atacator poate prelua cu
ușurință controlul complet al sistemului de operare gazdă al serverului web. Prin urmare,
dezvoltatorii ar trebui să fie foarte atenți cum să treacă inputul utilizatorului într-una din aceste
funcții atunci când dezvoltă aplicații web.

3.7 Brute Force


Un atac de forță brută se poate manifesta în mai multe moduri diferite, dar constă în primul
rând într-un atacator care configurează valori prestabilite, făcând cereri către un server folosind
aceste valori, apoi analizând răspunsul. Din motive de eficiență, un atacator poate folosi un atac de
dicționar (cu sau fără mutații) sau un atac tradițional cu forțe brute (cu clase de caractere date, de
ex .: alfanumerice, speciale, sensibile la majuscule (în)). Având în vedere o metodă dată, numărul
de încercări, eficiența sistemului care conduce atacul și eficiența estimată a sistemului care este
atacat este capabil să calculeze aproximativ cât timp va dura pentru a trimite toate valorile
predeterminate alese.
3.8 Remote Code Execution
Execuția de la distanță a codului (RCE) se referă la capacitatea unui cyberattacker de a accesa și de a face
modificări la un computer deținut de altul, fără autoritate și indiferent de locul în care computerul este amplasat
geografic. RCE permite unui atacator să preia un computer sau un server rulând software arbitrar (malware).
Vulnerabilitățile RCE (executare de la distanță a codului) sunt una dintre cele mai periculoase de acest gen, întrucât
atacatorii pot executa cod rău intenționat pe serverul vulnerabil ", a spus Impervasaid.
Un exemplu de vulnerabilitate de execuție a codului la distanță este CVE-2018-8248vulnerability - una dintre
vulnerabilitățile de securitate fixate de Microsoft în actualizarea sa din 12 iunie. Vulnerabilitatea CVE-2018-8248,
cunoscută și sub numele de „Vulnerabilitatea de execuție a codului la distanță Microsoft Excel”, permite unui atacator
să ruleze un malware pe computerul vulnerabil.
Atacatorul CVE-2018-8248 ar putea prelua controlul deplin asupra computerului compromis dacă proprietarul
computerului compromis se conectează la computer cu drepturi de administrare a utilizatorului. Preluând controlul
complet asupra computerului compromis, atacatorul ar putea vedea, schimba sau șterge date; instala programe; sau
creați conturi noi cu drepturi complete de utilizator.
Potrivit Microsoft, metoda de livrare în exploatarea vulnerabilității CVE-2018-8248 ar putea fi sub forma unui
e-mail rău intenționat cu un atașament care conține un fișier special conceput cu o versiune infectată a Microsoft
Excel. O altă metodă de livrare în exploatarea vulnerabilității CVE-2018-8248 este sub forma unui scenariu de atac
bazat pe web, prin care un atacator ar putea găzdui un site web sau un site compromis care acceptă sau găzduiește
conținut furnizat de utilizator care conține un fișier special conceput pentru a exploata vulnerabilitatea CVE-2018-
8248.
În cele 2 scenarii, e-mail-uri și atacuri bazate pe web rău intenționat, atacatorul trebuie să convingă utilizatorii
să facă clic pe atașament sau pe un link pentru a deschide fișierul special conceput. Până în prezent, nu există niciun
raport că vulnerabilitatea CVE-2018-8248 a fost exploatată în sălbăticie.

3.9 Denial-of-service
Un atac de refuz de serviciu (DoS) are loc atunci când utilizatorii legitimi nu pot accesa sisteme de informații,
dispozitive sau alte resurse de rețea din cauza acțiunilor unui act de amenințare cibernetică dăunătoare. Serviciile
afectate pot include e-mail, site-uri web, conturi online (de exemplu, servicii bancare) sau alte servicii care se bazează
pe computerul sau rețeaua afectată. O condiție de refuz de serviciu se realizează prin inundarea cu trafic a gazdei
vizate sau a rețelei până când ținta nu poate răspunde sau pur și simplu se prăbușește, împiedicând accesul
utilizatorilor legitimi. Atacurile DoS pot costa o organizație atât timp, cât și bani, în timp ce resursele și serviciile lor
sunt inaccesibile.
Există multe metode diferite pentru efectuarea unui atac DoS. Cea mai comună metodă de atac apare atunci când un
atacator inundă un server de rețea cu trafic. În acest tip de atac DoS, atacatorul trimite mai multe solicitări către
serverul țintă, supraîncărcându-l cu trafic. Aceste solicitări de servicii sunt nelegitime și au adrese de retur fabricate,
care induc în eroare serverul atunci când încearcă să autentifice solicitantul. Întrucât solicitările de junk sunt procesate
constant, serverul este supraîncărcat, ceea ce provoacă o condiție DoS pentru legitimații.
Într-un atac de tip Smurf, atacatorul trimite pachete de transmisie Internet Control Message Protocol către un
număr de gazde cu o adresă IP Protocol (sursă) distorsionată care aparține mașinii țintă. Beneficiarii acestor pachete
răsfățate vor răspunde apoi, iar gazda vizată va fi inundată cu aceste răspunsuri.
O inundație SYN are loc atunci când un atacator trimite o solicitare de conectare la serverul țintă, dar nu
finalizează conexiunea prin ceea ce este cunoscut sub numele de strângere de mână cu trei căi - o metodă utilizată
într-o rețea de transmisie de protocol (TCP) / IP pentru a crea o conexiune între un gazdă / client local și server.
Strângerea de mână incompletă lasă portul conectat într-un statut ocupat și indisponibil pentru alte solicitări. Un
atacator va continua să trimită solicitări, să satureze toate porturile deschise, astfel încât utilizatorii legitimi să nu se
poată conecta.
Rețelele individuale pot fi afectate de atacuri DoS fără a fi direcționate direct. Dacă furnizorul de servicii de
internet (ISP) sau furnizorul de servicii cloud a fost vizat și atacat, rețeaua va avea, de asemenea, pierderi de servicii.

3.10 Server-Side Includes (SSI)


SSI-urile sunt directive prezente pe aplicațiile Web utilizate pentru a alimenta o pagină HTML cu conținut
dinamic. Sunt similare cu CGI-urile, cu excepția faptului că SSI-urile sunt utilizate pentru a executa unele acțiuni
înainte de a fi încărcată pagina curentă sau în timp ce pagina este vizualizată. Pentru a face acest lucru, serverul web
analizează SSI înainte de a furniza utilizatorului pagina.
Atacul Side-Side Include permite exploatarea unei aplicații web prin injectarea de scripturi în pagini HTML
sau executarea codurilor arbitrare de la distanță. Poate fi exploatată prin manipularea SSI folosită în aplicație sau
forțarea utilizării acesteia prin câmpurile de introducere a utilizatorilor.
Este posibil să verificați dacă aplicația validă corect datele câmpurilor de introducere prin inserarea
caracterelor utilizate în directivele SSI, cum ar fi:

<! # = /. "-> și [a-zA-Z0-9]

Un alt mod de a descoperi dacă aplicația este vulnerabilă este de a verifica prezența paginilor cu extensia .stm,
.shtm și .shtml. Totuși, lipsa acestui tip de pagini nu înseamnă că aplicația este protejată împotriva atacurilor SSI.
În orice caz, atacul va avea succes numai dacă serverul web permite executarea SSI fără o validare
corespunzătoare. Acest lucru poate duce la accesul și manipularea sistemului și a procesului de fișiere sub
permisiunea proprietarului procesului serverului web.
Atacatorul poate accesa informații sensibile, cum ar fi fișierele cu parolă, și să execute comenzi shell.
Instrucțiunile SSI sunt injectate în câmpuri de intrare și sunt trimise serverului web. Serverul web analizează și execută
directivele înainte de furnizarea paginii. Apoi, rezultatul atacului va putea fi afișat data viitoare când pagina va fi
încărcată pentru browserul utilizatorului.

//Niște idei: puteti lua baza de date CVE (care listează vulnerabilități în aplicații) și să faceți niște analized pe acele
date folosind un tool de analiză (RapidMiner sau orice alt tool de analiză statistică) - dupac ce separați
vulnerabilitățile pentru WEB (nu vreți și cel pentru programe desktop și sisteme de operare). Puteți vedea dacă se
oferă și informații privind severitatea lor precum și gradul de acoperire (câte sisteme se estimează ca pot fi
impactate)... Ar trebui sa descărcați fisierele și să le procesați (eventual le deschideți vizual întâi să vedeți cum sunt
structurate datele)...

https://cve.mitre.org/data/downloads/index.html

https://www.cvedetails.com/

https://nvd.nist.gov/ Ion

4. Masuri de protecție împotriva hacking-ului


În zilele noastre, o serie de organizații non-profit luptă împotriva atacurilor cibernetice,
cum ar fi Secure Domain Foundation (SDF) sau Asociația Internațională de Prevenire a
criminalității informatice (IACP), care încearcă să facă publicul (companii și persoane) conștienți
de riscuri, atacuri, cum pot fi expuși infracțiunilor informatice și cum se pot apăra de atacuri. În
afară de organizațiile non-profit, Google însuși a început recent să își dezvolte propria echipă,
numită Project Zero, menită să analizeze bug-urile și vulnerabilitățile proprii, precum și codurile
altor companii, pentru a lua toate măsurile necesare pentru îmbunătățirea produsele software
astfel încât riscul de atac cibernetic este atenuat.
Tendința în creștere a atacurilor cibernetice a atins și ochii instituțiilor financiare. AXA
Corporate Solutions Company este doar una dintre companiile financiare care au lansat un
produs de asigurare care acoperă costurile necesare recuperării după un atac cibernetic, viruși,
erori sau evenimente accidentale. În plus, compania a lansat și un produs dedicat analizei,
evaluării și susținerii atenuării riscurilor cibernetice ale clienților.
Un aspect esențial atunci când se discută despre criminalitatea cibernetică și securitate
este aspectul legal. Legile și reglementările sunt dezvoltate continuu pentru prevenirea sau
limitarea criminalității informatice, cu toate acestea sensibilitatea subiectului este dată de faptul
că fiecare set de legi și reglementări sunt limitate geografic la un anumit stat / regiune / etc. în
ciuda accesului la internet, care este definit la nivel mondial și internațional, conectează oameni
din întreaga lume fără granițe.
Nu există două companii deopotrivă. Acesta este motivul pentru care fiecare companie, în
funcție de dimensiunea sa, de configurarea geografică, de sectorul de operare al afacerilor etc.
Fiecare companie ar trebui să efectueze o serie de pași necesari ca premise pentru implementarea
controalelor de securitate, care acoperă identificarea amenințărilor, vulnerabilitatea, riscurile și
proiectarea și implementarea controalelor de securitate care să abordeze aceste riscuri.
Companiile ar trebui să se asigure că toate echipamentele (hardware și software), inclusiv
software de protecție (de exemplu, programe antivirus) sunt întotdeauna la zi, sunt instalate cele
mai recente corecții și nu apar excepții. De asemenea, este esențial pentru companii să se asigure
că există un acord pentru software-ul furnizat de terți care acoperă serviciile de întreținere și
upgrade.
În funcție de evaluarea riscurilor, accesul la programele și datele companiei poate fi
protejat doar de o parolă. Cu toate acestea, în special pentru acces la distanță sau aplicații bazate
pe web, poate fi recomandat să folosiți mijloace de autentificare mai complexe - combinând cel
puțin două dintre următoarele: ceva ce știți (de exemplu parola), ceva ce aveți (de exemplu,
dispozitiv generator PIN aleatoriu), ceva ce ești (de exemplu, autentificare biometrică).
Conștientizarea la nivelul întregii companii este esențială, având în vedere că
vulnerabilitățile și riscurile sunt mai des decât se aștepta cauzate de încălcările de securitate
create (chiar și neintenționate) de personalul propriu al companiei. Astfel, documentarea
proceselor și controalelor în vigoare într-un set formalizat de politici și proceduri, asigurând un
mod clar și concis de a prezenta informațiile, precum și de a impune conștientizarea și
angajamentul personalului poate sprijini îmbunătățirea și menținerea securității informațiilor.
Companiile ar trebui să se asigure că accesul este restricționat în mod corespunzător și
încetat în timp util pentru contractori, auditori sau alte părți terțe care au solicitat anterior
conexiunea la rețeaua companiei. O gamă largă de controale poate aborda aceste riscuri, de la
controale manuale (de exemplu, revizuirea periodică a tuturor drepturilor de acces ale
utilizatorilor) la controale automate poate asigura că (de exemplu, dezactivarea automată a
conturilor de domeniu care nu s-au conectat la rețea pentru o anumită perioadă de timp).
Cel mai simplu mod de a evita compromiterea securității informației este eliminarea
tuturor datelor care nu mai sunt necesare în scopuri de afaceri zilnice. Arhivarea și păstrarea
datelor ar trebui să asigure păstrarea datelor atât timp cât este necesar într-un mediu dedicat
(servere de rezervă, arhive dedicate etc.) și eliminate din rețeaua companiei, limitând astfel riscul
accesului neautorizat la informații sensibile, în special considerând că studiul a dezvăluit faptul
că mai mult de 20% din informațiile furate erau date despre care victima nu avea niciun indiciu
că acestea erau stocate în rețeaua companiei.

5. Concluzie //Este nevoei de mai multe elemente experimentale,


sau practice, care să se regăsească în validarea ipotezei propuse
de dv. Deci aveți nevoied e o întrebare de cercetare/analiză
clară și de un răspuns pentru ea..
Amenințările la adresa securității sunt mai frecvente decât înainte, deoarece internetul a
devenit instrumentul cel mai valoros pentru economia de astăzi pentru toată lumea. Așadar, este
necesar să ne protejăm resursele, datele și informațiile privind confidențialitatea utilizatorilor. Pe
măsură ce tehnologia avansează și aduce noi strategii, instrumente, modele și metode pentru
creșterea nivelului de securitate, hackerii vor face parte din acest joc fără sfârșit.
În ceea ce privește testul de penetrare, putem concluziona că instrumentele de securitate
ale aplicațiilor web sunt o componentă fundamentală în procesul de securitate, dar
vulnerabilitățile de securitate cunoscute, prin natura lor, pot fi considerate complexe și create de
minți intelectuale reale, cu cuvântul „cod” scris în fruntea lor, acest lucru este motivul pentru
care avem nevoie de
cele mai bune minți înarmate cu instrumente grozave pentru a elimina aceste slăbiciuni
într-un mod rentabil.
Cercetările efectuate în activitatea IT sunt încă în proces de testare, însă pe baza
rezultatelor reale se pot lua în considerare câteva concluzii. Acțiunea de testare a codului manual
și modificarea găurilor de securitate a dat rezultate semnificative pentru integritatea site-ului. O
astfel de modificare a schimbat starea rezultatelor post-test și bucățile de cod care trebuiau
modificate în legătură cu vulnerabilitatea constatată au ajuns să fie rezistente la hacking.
Mai mult, deoarece potențialele amenințări au fost găsite în gazdele afacerii IT, acțiunile
suplimentare pentru diminuarea exploatabilității vor face parte din cercetările viitoare care se află
în proces. Unele dintre defectele identificate sunt legate de zonele de securitate care nu intră în
sfera de aplicare a acestui document, aceste zone includ securitatea rețelei și a serverului web.
În cele din urmă, prevenirea este o componentă cheie pentru a asigura securitatea. Putem
înțelege securitatea ca un proces lung care are ca rezultat integritatea activelor, nu un accident.

6. Bibliografie
[1] J.D. Meier, Alex Mackman, Michael Dunner, Srinath Vasireddy, Ray Escamilla and
Anandha Murukan Microsoft Corporation http://msdn.microsoft.com/en-
us/library/ff648636.aspx (ultima accesare:13.04.2020 )
[2] OWASP Foundation, A Guide to Building Secure Web Applications and Web Services
2.0 Black Hat Edition July 27, 2005 (ultima accesare:18.04.2020 )
[3] J.D. Meier, Alex Mackman, Michael Dunner, Srinath Vasireddy, Ray Escamilla and
Anandha Murukan Microsoft http://msdn.microsoft.com/en-us/library/ff648651.aspx (ultima
accesare:15.04.2020 )
J.D. Meier, Alex Mackman, Michael Dunner, Srinath Vasireddy, Ray Escamilla and Anandha
Murukan http://msdn.microsoft.com/en-us/library/ff648650.aspx (ultima accesare:23.04.2020 )
[4] https://www.owasp.org/index.php/Testing:_Introduction_and_objectives (ultima
accesare:18.04.2020 )
[5] OWASP Foundation, 2010 The ten Most Critical Web Application Security Risks.
http://www.owasp.org/index.php/Top_10 (ultima accesare:30.04.2020 )
[6] http://www.thc.org/thc-hydra/ (ultima accesare:18.04.2020 )
[7] https://www.owasp.org/index.php/Category:OWASP_SQLiX_Project (ultima
accesare:2.05.2020 )
[8] http://www.mavitunasecurity.com/netsparker/ (ultima accesare:05.05.2020 )
[9] http://www.fiddler2.com (ultima accesare 05.05.2020 )
[11 ] http://www.mavitunasecurity.com/e-mail-address-disclosure/ (ultima accesare:03.05.2020
)https://ww.owasp.org/index.php/Top_10_2010-A9 (ultima accesare:3.05.2020 )
[12] https://lists.oasis-open.org/archives/was/200308/pdf00000.pdf (ultima accesare:3.05.2020 )
[13] https://merehead.com/blog/web-development-trends-2018/
[14] http://panmore.com/the-cia-triad-confidentiality-integrity-availability
[15] http://ict-industry-reports.com.au/wp-content/uploads/sites/3/2008/04/2006-managing-
denial-of-service-attacks-tisn-dcita.pdf
[16] https://www.ptsecurity.com/ww-en/analytics/web-application-attacks-2019/

S-ar putea să vă placă și