Com funcionen els atacs de desbordament de memòria intermèdia? Anar darrere de les escenes com a hacker

Com funcionen els atacs de desbordament de memòria intermèdia? Anar darrere de les escenes com a hacker
Lectors com tu ajuden a donar suport a MUO. Quan feu una compra mitjançant enllaços al nostre lloc, podem guanyar una comissió d'afiliats. Llegeix més.

Com ataquen els pirates informàtics els sistemes mitjançant virus i programari maliciós? De vegades, pot ser un ransomware; de vegades, pot ser un atac que consumeix els requisits del vostre sistema. El desbordament del buffer és un d'aquests mètodes d'atac, però què és realment? Com funcionen aquests atacs?





MAKEUSEO VÍDEO DEL DIA DESPLACEU PER CONTINUAR AMB EL CONTINGUT

Què és un desbordament de memòria intermèdia?

Aleshores, què són realment un buffer i una pila? El buffer és un camp on algunes dades d'entrada que doneu al vostre ordinador esperen abans que arribin a la memòria. Recuperar dades de la memòria és una operació que cansa el sistema. Així, quan hi ha prou espai a l'àrea de memòria intermèdia, truqueu les dades directament des d'aquí. Això significa un augment del rendiment del vostre dispositiu. Per descomptat, quan l'espai disponible per al buffer està ple, cal escriure'l a la memòria.





La pila és essencialment una estructura de dades en la qual tenen lloc les operacions de push (afegir) i pop (eliminar). Els conceptes de buffer i stack són força semblants; tanmateix, la memòria intermèdia funciona com una pila que emmagatzema temporalment les dades entrants.





Els desbordaments de memòria intermèdia poden ser un tema difícil, però com el seu nom indica, es produeixen quan hi ha una sobrecàrrega de dades. Per exemple, voleu iniciar sessió en un sistema. Els desenvolupadors poden assignar 250 bytes d'espai per al nom d'usuari. Si introduïu 300 bytes de dades, la memòria intermèdia es desborda. Aquest desbordament pot afectar altres dades de la memòria, causant danys.

Això és fantàstic per als pirates informàtics. Els ciberdelinqüents poden combinar aquest embolic amb diferents vectors d'atac, per exemple, per piratejar el sistema i iniciar sessió com a administrador.



Per entendre el desbordament de la memòria intermèdia, els principals temes que heu de reconèixer seran Arquitectura interna de la CPU , registres de memòria i com la memòria processa les dades. Aquests són alguns termes sobre la CPU que cal conèixer.





Codi de muntatge





Un llenguatge de programació de baix nivell , és a dir, proper al llenguatge màquina.

Buffer

Una mida fixa espai de memòria assignat .

Codi de bytes

Una forma de codi compilable de llenguatge intermedi escrit en un llenguatge d'alt nivell.

Compilador

Un programa que converteix el llenguatge de programació en codi màquina.

Munt

Espai de memòria dinàmic i variable.

Fonaments de la teoria de la memòria

Sense entendre la teoria de la memòria, pot ser difícil abordar els problemes de desbordament de memòria intermèdia a la pràctica. Es pot pensar en això com intentar construir una casa sense saber com fer una paret.

Imagineu que voleu executar un desbordament de memòria intermèdia des del punt de vista d'un pirata informàtic. Per això, heu de manipular la memòria i fer que la CPU executi el vostre codi. Si sou algú amb intenció maliciosa, el vostre objectiu aquí seria sobrecarregar la memòria i manipular també àrees de memòria contigües.

  Diagrama que mostra la pila creixent cap avall i la pila creixent

Però primer de tot, cal centrar-se en els conceptes de pila, pila i segment de text.

Mentre es crea la pila, la memòria utilitza adreces de memòria alta. Les adreces de memòria altes signifiquen l'àrea de memòria estesa. Aleshores, els valors de l'adreça comencen a disminuir. La pila de memòria utilitza un mètode anomenat LIFO (Last In, First Out) durant l'ús de la memòria. Les variables de la memòria de pila només són vàlides dins de l'àmbit en què es defineixen. Si estan fora d'aquest àmbit, es produirà un error.

La memòria de pila, en canvi, funciona de manera dinàmica i no ha de començar a adreces altes. No hi ha cap límit establert a la memòria heap; tots els límits els estableix el sistema operatiu. És possible canviar la memòria de l'emmagatzematge dinàmic i aquests límits poden variar segons les necessitats de l'usuari durant l'ús de l'emmagatzematge. Els límits de la memòria dinàmica depenen de factors determinats pel sistema operatiu i el maquinari. En altres paraules, ofereix un ús dinàmic dins d'aquests límits.

El segment de text conté el codi del programa i els segments de dades contenen dades globals. Comparteix adreces altes memòria de pila i pila entre ells. El sistema assigna ambdues memòries en temps d'execució.

Per entendre millor el desbordament de la memòria intermèdia, hauríeu d'examinar els registres de dades d'ús general que utilitza l'arquitectura de l'ordinador per emmagatzemar dades. En lloc d'analitzar cada registre individualment, centreu-vos en l'essencial.

  • ESP (Extended Stack Pointer): Aquest registre conté l'adreça a la part superior de la pila.
  • EBP (punter base ampliat): Això manté el punter base.
  • EIP (punter d'instrucció ampliat): I aquest registre conté l'adreça de la següent instrucció a executar.

Aquests termes tècnics poden semblar una mica confusos, però imagineu-los tots com a petites particions a la memòria.

Com funcionen els atacs de desbordament de memòria intermèdia?

Quan afegiu dades noves a qualsevol pila, aquestes dades s'inseriran a la part superior. Totes les dades noves es mouen cap avall. ESP està a la part superior de la pila. Així, en aquest cas, l'ESP va a una adreça de memòria inferior. Imagineu les dades afegides més amunt empenyent l'ESP cap avall.

  Diagrama que mostra l'espai de memòria intermèdia entre ESP i EBP

Quan un programa comença a executar-se, el sistema crea un marc de pila amb variables locals. L'objectiu principal d'un atac de desbordament de memòria intermèdia és accedir a l'EIP o a l'adreça de retorn. Un pirata informàtic amb accés a aquesta adreça pot ordenar-li que apunti a qualsevol codi maliciós que vulgui, la qual cosa afectarà el sistema més ampli.

què fer amb un iphone trobat
  Un diagrama que mostra les dades de l'ESP orientades a l'adreça de retorn

Amb cada nou bit de dades, la pila creix cap a l'EBP. La veritable pregunta aquí és, si introduïm massa dades, podem empènyer l'EBP cap a l'EIP? D'aquesta manera, les dades o el codi que desitgeu es troben a l'EIP i podreu veure els resultats que voleu. Només queda executar-lo. Quan executeu el programa, apunta al vostre codi EIP i comença l'execució. Com a resultat, si eres un pirata informàtic, hauràs dut a terme el teu primer atac de desbordament de memòria intermèdia.

Per prendre l'exemple des d'un angle diferent, podeu considerar líquids de diferents densitats, anomenats ESP, EBP i EIP, en un recipient. Imagineu que l'ESP es troba a la part superior del contenidor perquè la seva densitat és menor. Igual que l'oli d'oliva i l'aigua, no s'han de barrejar. El codi maliciós, doncs, és un altre líquid: quan l'afegiu al contenidor, desordena aquest equilibri, desplaça una mica de líquid i es barreja amb l'EIP. Això indicarà un desbordament de memòria intermèdia.

Com protegir-se contra els atacs de desbordament de memòria intermèdia

Llavors, com eviteu que això passi?

En primer lloc, és important adoptar bones pràctiques de codificació al llarg del procés de desenvolupament de programari per minimitzar les vulnerabilitats de seguretat. El codi escrit amb cura pot reduir la probabilitat de desbordaments de memòria intermèdia.

Un altre pas és utilitzar mecanismes de defensa que permetin supervisar les regions de memòria, comprovar els límits dels buffers i detectar atacs. Finalment, cal actualitzar regularment els sistemes i aplicar pedaços. Les actualitzacions que solucionen les vulnerabilitats dificulten que els atacants explotin les vulnerabilitats conegudes. A més, l'ús d'eines de defensa com ara programari i tallafocs proporciona una capa addicional de seguretat.

Preneu mesures contra els desbordaments de memòria intermèdia

Els atacs de desbordament de memòria intermèdia representen una amenaça important per a la vostra ciberseguretat i prendre precaucions contra ells és naturalment important. Afortunadament, és possible bloquejar aquests atacs i reforçar els mecanismes de defensa. Moltes bones pràctiques de seguretat, com ara mantenir el programari actualitzat per corregir els pegats, ajuden a protegir-se d'aquests atacs, així com d'altres vulnerabilitats.