Taula de continguts:
Definició: què significa Stack Smashing?
El tall de pila és una forma de vulnerabilitat en què la pila d'una aplicació informàtica o del sistema operatiu es veu obligada a desbordar-se. Això pot conduir a subvertir el programa / sistema i bloquejar-lo.
Una pila, un primer circuit d’última sortida, és una forma de buffer que té resultats intermedis d’operacions dins d’ella. Per simplificar, triturar la pila col·loca més dades en una pila que la seva capacitat de retenció. Els pirates informàtics poden introduir dades excessives a la pila. Les dades excessives es poden emmagatzemar en altres variables de pila, inclosa l'adreça de retorn de la funció. Quan la funció retorna, surt al codi maliciós de la pila, que podria corrompre tot el sistema. Les dades adjacents de la pila es veuen afectades i obliga el programa a bloquejar-se.
Techopedia explica Stack Smashing
Si el programa afectat per aplicació de piles accepta dades de xarxes no confiades i funciona amb privilegis especials, és un cas de vulnerabilitat de seguretat. Si el buffer conté dades proporcionades per un usuari no confiat, la pila es pot corrompre mitjançant la injecció de codi executable al programa, obtenint així un accés no autoritzat a un ordinador. Un atacant també pot sobreescriure la informació de flux de control emmagatzemada a la pila.
Com que el trencament de piles s’ha convertit en una vulnerabilitat molt greu, algunes tecnologies s’implementen per superar el desastre de tall de pila. La protecció de desbordament del buffer de pila modifica l’organització de les dades en el marc de pila d’una trucada de funció per incloure valors canaris. Aquests valors quan es destrueixen indiquen que s'ha desbordat un buffer que el precedeix a la memòria. Els valors canaris monitoritzen els desbordaments de buffer i es col·loquen entre les dades de control i el buffer a la pila. D’aquesta manera es garanteix que el desbordament d’un buffer corromp el canari primer. Una verificació fallida de les dades canàries significa un desbordament a la pila. Els tres tipus de canaris són Random, Terminator i Random XOR.
El canari del terminador es basa en el fet que l'atac de desbordament del buffer de pila depèn de les operacions de cadena que acabin als terminadors. Els canaris es generen aleatòriament a partir d’un dimoni que recull l’entropia, cosa que impedeix als atacants conèixer valors. Es generen canaris aleatoris a la inicialització del programa i s’emmagatzemen en variables globals. Els canaris aleatoris XOR són portadors aleatoris xorramats amb XOR mitjançant dades de control. És similar als canaris aleatoris excepte que el "mètode llegit des de pila" per obtenir el canari és complex. El pirata informàtic necessita les dades del canari, l'algorisme i el control per produir el canari original. Es protegeixen contra atacs que impliquen desbordaments de memòria intermèdia en una estructura per fer canviar el punter per apuntar a un tros de dades de control.
