Sisällysluettelo:
Määritelmä - mitä Stack Smashing tarkoittaa?
Pinojen murskaus on eräs haavoittuvuuden muoto, jossa tietokonesovelluksen tai käyttöjärjestelmän pino pakotetaan ylivuotoon. Tämä voi johtaa ohjelman / järjestelmän alistamiseen ja kaatumiseen.
Pino, ensimmäisen sisääntulon viimeinen lähtöpiiri, on puskurimuoto, joka pitää sisällään toimintojen välitulokset. Yksinkertaistamiseksi pinon muokkaaminen lisää enemmän pinoon tietoa kuin sen kapasiteetti. Ammattitaitoiset hakkerit voivat tietoisesti tuoda liiallista tietoa pinoon. Liiallinen data voidaan tallentaa muihin pinomuuttujiin, mukaan lukien funktion palautusosoite. Kun toiminto palaa, se hyppää pinossa olevaan haittaohjelmaan, mikä saattaa vioittaa koko järjestelmän. Pino vierekkäisiin tietoihin vaikuttaa ja pakottaa ohjelman kaatumaan.
Techopedia selittää Stack Smashingin
Jos pinojen murskaamisesta kärsivä ohjelma hyväksyy tietoja epäluotettavista verkoista ja toimii erityisillä oikeuksilla, kyse on tietoturvan haavoittuvuudesta. Jos puskuri sisältää epäluotettavan käyttäjän toimittamia tietoja, pino voi olla vioittunut injektoimalla suoritettava koodi ohjelmaan, jolloin tietokoneelle saadaan luvaton pääsy. Hyökkääjä voi myös korvata pinoon tallennetut ohjaustiedot.
Koska pinon murskaamisesta on tullut erittäin vakava haavoittuvuus, tiettyjä tekniikoita käytetään pinoavan katastrofin voittamiseksi. Pinopuskurin ylivuodonsuojaus muuttaa funktion puhelun pinokehyksen datan järjestelyä sisällyttämään kanariarvot. Nämä tuhotut arvot osoittavat, että sitä edeltävä puskuri on ylitetty. Kanarianarvot tarkkailevat puskurin ylivuotoja ja asetetaan ohjaustietojen ja pinon puskurin väliin. Tämä varmistaa, että puskurin ylivuoto korruptoi ensin kanarian. Kanarian datan epäonnistunut varmennus merkitsee pinoon ylivuotoa. Kolme kanavatyyppiä ovat Random, Terminator ja Random XOR.
Terminaattorikanariini perustuu siihen tosiseikkaan, että pinopuskurin ylivuotohyökkäys riippuu merkkitoiminnoista, jotka päättyvät terminaattoreihin. Satunnaiset kanarit generoidaan satunnaisesti entropiaa keräävästä daemonista, joka estää hyökkääjiä tietämästä arvoja. Satunnaiset kanariaalit luodaan ohjelman käynnistyksen yhteydessä ja tallennetaan globaaleihin muuttujiin. Satunnaiset XOR-kanarit ovat satunnaisia kantoaaltoja, jotka XOR sekoitetaan käyttämällä ohjaustietoja. Se on samanlainen kuin satunnaiset kanarit, paitsi että "lukeminen pino-menetelmästä" kanariansaannin saamiseksi on monimutkainen. Hakkeri tarvitsee kanarian, algoritmin ja ohjaustiedot alkuperäisen kanarian tuottamiseksi. Ne suojaavat hyökkäyksiltä, joihin liittyy puskurien ylivuoto rakenteessa osoittimiksi, jotta osoitin voidaan muuttaa osoittamaan ohjaustietoa.
