Buffer gainezkatze

Wikipedia(e)tik
Hona jo: nabigazioa, Bilatu

Buffer gainezkatze (buffer overflow edo buffer overrun ingelesez) segurtasun informatikoan eta programazioan, memoriako datu eremu batean eduki dezakeen baino gehiago kopiatzen denean gertatzen den software akats bat da, memoriaren aldameneko eremuan gainean idazten da soberako datuak. Ondorioz, memoria atzipenean salbuespen bat gertatzen da eta programa bukatzen da edo asmo txarrez egindakoa bada segurtasuna hautsiz.

Kasu batzuetan programaren fluxua alda daiteke, aurrez ez ikusitako aginduak eginez. Konputagailu arrunten arkitekturen memoriak ez baitu datuak eta programak bereizten gertatzen da hau. Akatsa duen programak baimen bereziak baldin baditu segurtasun akatsean bilakatzen da. Erasotutako programaren konputagailutik baimenak lortzeko bereiziki diseinatutako kodea shellcode deitzen da.

Irtenbidea[aldatu | aldatu iturburu kodea]

Erabiltzaileak sartzen dituen datuak baliozkotu behar dira. Arazo hau karaktere kateak kopiatzean gertatzen da gehien bat.

Adibide grafikoa[aldatu | aldatu iturburu kodea]

Demagun programa batek bi aldagai dituela erreserbatuta:

  • A aldagaia: string motako eta 8 byte hartzen ditu.
  • B aldagaia: zenbaki osoa eta 2 byte hartzen ditu.

Hasieran A-ren bufferrean ez dago ezer edo hobeto esanda balio nuluak daude eta B-k “3” zenbakia dauka. Karaktere bakoitzak byte baten bidez adierazten da.

0 0 0 0 0 0 0 0 0 3
A Bufferra B Bufferra

Jarraian, programak A bufferrari gehiegizko karaktereak sartzen dizkio. Datu sarrera hau baliozkotzen ez denez B bufferrean gainidazten da.

‘G' ‘e' ‘h' ‘i' ‘e' ‘g' ‘i' ‘z' ‘k' ‘o'
A Bufferra B Bufferra

Behar kasu honetan ez da gertatzen segurtasun akatsik baina apropos aukeratutako datuekin gerta likete.

Ikus, gainera[aldatu | aldatu iturburu kodea]

Kanpo loturak[aldatu | aldatu iturburu kodea]