Cum funcționează injectarea codului?

Cum funcționează injectarea codului?
⏱️ 5 min read

Injecția de cod, denumită adesea execuție de cod la distanță (RCE), este un atac comis de capacitatea atacatorilor de a injecta și executa cod rău intenționat într-o aplicație; un atac de injecție. Acest cod străin este capabil să încalce securitatea datelor, să compromită integritatea bazei de date sau proprietățile private. În multe cazuri, poate ocoli controlul autentificării și, de obicei, aceste atacuri sunt asociate cu aplicații care depind de intrarea utilizatorului pentru executare.

În general, aplicațiile sunt mai vulnerabile dacă codul este executat fără a trece mai întâi prin validare. Un caz simplu de cod vulnerabil este prezentat mai jos.

În exemplul de mai sus, pagina de informații PHP este vulnerabilă și va fi afișată dacă adresa URL http://example.com/?code=phpinfo (); este rulat.

Datorită faptului că interacțiunea utilizatorului cu aplicațiile este din ce în ce mai necesară în lumea online actuală, injectarea de cod a crescut și a devenit o amenințare reală pentru multe resurse online.

Tipuri de injecții de cod

Există în principal patru tipuri de injecții de cod: injecție SQL, injecție Script, injecție Shell și evaluare dinamică. Toate acestea au același principiu de lucru, adică codul este introdus și executat de aplicații, dar cele două pe care mă voi concentra sunt injecția SQL și injecția Script.

Cum funcționează injecțiile SQL

În cazul injecției SQL, atacul vizează coruperea unei interogări legitime a bazei de date pentru a produce date falsificate. Atacatorul trebuie mai întâi să localizeze o intrare în cadrul aplicației web vizate, care este inclusă într-o interogare SQL.

Această metodă este eficientă numai în cazul în care aplicația web are date de utilizator incluse într-o instrucțiune SQL. O sarcină utilă (o instrucțiune SQL rău intenționată) poate fi apoi inserată și rulată pe serverul bazei de date.

Următorul pseudo-cod pe partea de server este un exemplu simplu de autentificare care se poate dovedi vulnerabil la injecțiile SQL.

injecție-exemplu2

În codul de mai sus atacatorul ar putea insera o sarcină utilă care ar schimba instrucțiunea SQL executată de serverul bazei de date. Un exemplu ar seta câmpul parolei la:

Aceasta face ca următoarea instrucțiune să fie executată pe serverul bazei de date:

Ce poate face injecția SQL

Acesta este cel mai frecvent tip de injecție de cod. Având în vedere faptul că SQL este limbajul utilizat pentru manipularea datelor stocate în sistemele de gestionare a bazelor de date relaționale (RDBMS), un atac cu puterea de a da și executa instrucțiuni SQL poate fi utilizat pentru a accesa, modifica și chiar șterge date.

Poate oferi atacatorului posibilitatea de a ocoli autentificarea, de a dezvălui integral datele stocate în baza de date, de a compromite integritatea datelor și de a provoca probleme de respingere, modificând soldurile și anulând tranzacțiile.

Cum să preveniți injecțiile SQL

Există câțiva pași pentru a face aplicațiile dvs. mai puțin vulnerabile, dar înainte de oricare dintre acești pași, cel mai bine este să presupunem că toate datele trimise de utilizator sunt rele și să nu aveți încredere în nimeni. Apoi, puteți lua în considerare următoarele:

  • Dezactivați utilizarea SQL dinamic – acest lucru înseamnă că nu construiți interogări în baza de date cu introducerea utilizatorului. Dacă este necesar, igienizați, validați și scăpați valorile înainte de a efectua o interogare cu datele de intrare ale utilizatorului.
  • Faceți uz de un firewall – Un firewall pentru aplicații web (software sau aplicație) va ajuta la filtrarea datelor rău intenționate.
  • Achiziționați software mai bun – Acest lucru înseamnă pur și simplu că programatorii vor fi responsabili pentru verificarea și remedierea defectelor.
  • Criptați sau parola hash și orice alte date confidențiale pe care le aveți, acestea ar trebui să includă șiruri de conexiuni.
  • Evitați să vă conectați la baza de date cu conturi privilegiate de administrator dacă nu ai absolut nevoie.

Injecție de script

Această vulnerabilitate de securitate este o amenințare care permite unui atacator să injecteze cod rău intenționat direct prin formularele web ale site-urilor web bazate pe date prin elemente ale interfeței utilizatorului. Acest atac este adesea denumit Cross-Site Scripting sau XSS. <script>, <meta>, <html>, <body>, <embed>, <frame>, <frameset>, <img> etichetele sunt cele mai vizate pentru injecții de script.

Cum să preveniți injecțiile cu script

Pașii pentru prevenirea injecțiilor de script depind de codul de programare pe care îl utilizați. În general, veți dori să:

  • validați și igienați introducerea utilizatorului (orice formă de câmpuri de introducere) prin eliminarea sau evadarea conținutului potențial rău intenționat
  • curățați șirurile de interogare din adresele URL
  • validați și igienizați toate formele de date, tablouri și obiecte înainte de a executa în server

Concluzie

Pur și simplu spus, prevenirea este mai bună decât un remediu. Cu noile actualizări ale tehnologiei, există mai multe amenințări la care vor fi expuse sistemele noastre. Pentru a fi la curent cu lucrurile, este important să aveți cele mai recente patch-uri și actualizări și să țineți cont de cele mai bune practici. Acest lucru face mai dificilă victima acestor atacuri rău intenționate.

Join our Newsletter and receive offers and updates! ✅

0 0 votes
Article Rating
Avatar of Routech

Routech

Routech is a website that provides technology news, reviews and tips. It covers a wide range of topics including smartphones, laptops, tablets, gaming, gadgets, software, internet and more. The website is updated daily with new articles and videos, and also has a forum where users can discuss technology-related topics.

You may also like...

Subscribe
Notify of
guest
0 Comments
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x