Buffer overflows veroorzaken onverwacht gedrag van het programma als gevolg van verkeerd overschrijven geheugen . Een buffer is een aaneengesloten blok geheugen van een vaste grootte gebruikt om gegevens , zoals een tekenreeks slaan . De C -programmeertaal kunt u alle gegevens naar de buffer , zelfs als het te large.In Naast het maken van je programma crash , kunnen aanvallers buffer overflows gebruiken om kwaadaardige code uit te voeren op systemen met uw programma . Ondanks alle pogingen om te beschermen tegen buffer overflow exploits , is het nog steeds een algemeen benut aanval vector.In C , kan buffer overflows worden verzacht door het volgen van best practices voor veilige codering . Instructies 1 Vermijd de bibliotheek functies C strcpy , strcat , sprtinf , vsprintf , krijgt en scanf . Deze functies zijn onveilig en niet bounds checking voor het schrijven van invoer naar of het lezen van een buffer , waardoor de buffer overflows uit te voeren . Bounds checking is een methode om met behulp van voorwaardelijke verklaringen - zoals wanneer , dan - om te controleren of het lezen of schrijven is binnen de gebonden van de buffer kopen van 2 ongeldig maken code uitgevoerd van de stapel . . De stack is waar het geheugen zoals buffers worden opgeslagen terwijl uw toepassing wordt uitgevoerd . Schadelijke code uitvoering schrijven in de stack , waar het dan wordt uitgevoerd . Hoewel de uitvoering moeilijk kan zijn , een of andere versie van Linux en GNU C Compiler ( GCC ) beschikbaar die dit kan voorkomen . 3 Gebruik een compilar die zal controleren op potentiële bufferoverloop voorwaarden . Uitbreidingen en patches zijn beschikbaar voor C-compilers , zoals C , die je waarschuwt wanneer je onveilige functie en proberen te gebruiken om grenscontroles in uw code uit te voeren . 4 Gebruik gratis programma's zoals Stapel Schild en Stapel bewaken op te sporen en te beschermen tegen buffer overflows . ( Zie de Bronnen . ) Op Twitter
|