Stack Smashing Protection

Stack Smashing Protection (SSP, StackGuard) on puskurin ylivuotovirheiden havaitsemiseen käytetty tekniikka. Tekniikkaa käytetään tietoturvahaavoittuvuuksien kuten ROP-hyökkäyksiltä suojaamiseen.

Vuonna 1998 GCC-kääntäjässä esiteltiin StackGuard. Menetelmä lisää pinossa olevien muuttujien ja paluuosoitteen väliin pienen canary-arvon (kanarialintu). Kun ylivuoto tapahtuu canary-arvo ylikirjoittuu. Funktiosta palattaessa arvo tarkistetaan ja jos arvo on muuttunut ohjelma pysäytetään. IBM:llä on vastaava kääntäjässä toteutettava tekniikka nimeltään ProPolice. Microsoftin Visual Studion /GS-optio toteuttaa vastaavan ominaisuuden. Suojauksen tasoon voi myös vaikuttaa kääntäjän optioilla.

Katso myös

Lähteet

  1. ↑ On the effectiveness of NX, SSP, RenewSSP and ASLR against stack buffer overflows (PDF) hmarco.org. Viitattu 20.9.2020. (englanniksi)
  2. 1 2 3 4 5 6 Security Technologies: Stack Smashing Protection (StackGuard) access.redhat.com. 20.8.2018. Viitattu 24.9.2020. (englanniksi)
  3. ↑ StackGuard: Automatic Adaptive Detection and Prevention of Buffer-Overflow Attacks usenix.org. Viitattu 24.9.2020. (englanniksi)
  4. ↑ Prevent Stack-Smashing Attacks oreilly.com. Viitattu 24.9.2020. (englanniksi)
  5. ↑ /GS (Buffer Security Check) docs.microsoft.com. 11.4.2016. Viitattu 24.9.2020. (englanniksi)
  6. ↑ Jake Edge: "Strong" stack protection for GCC lwn.net. 5.2.2014. Viitattu 24.9.2020. (englanniksi)