Op zoek naar buffer overflows is een belangrijk onderdeel van ervoor te zorgen dat uw programma is veilig voor aanvallen en crashes . Een buffer overflow ontstaat wanneer gegevens in een reeks of matrix geplaatst zonder limietcontrole en de ingang lengte groter is dan de buffer het is probeert kopiëren in . Vinden spots waar buffer overflows optreden wordt gedaan door te kijken naar onveilige functies zoals " krijgt , " analyseren limietcontrole op functies als " strncpy " en grondig testen programma verschillende invoer . Instructies Zoeken 1 van uw programma -code voor gevaarlijke functies zoals " krijgt , " " scanf , " " strcpy , " " strcat , " " sprintf " en " strlen . " Deze functies hebben geen enkel ingebouwd bounds checking en zijn alleen geschikt als 100 procent van de gebruikers van het programma zijn vertrouwde en occasionele crashes kan worden getolereerd . Bieden bounds checking jezelf door te controleren dat de input lengte niet groter is dan de beschikbare bufferlengte . Kopen van 2 Onderzoek eventuele oproepen tot bounds checking functies zoals " strncpy , " " strncat " en " snprintf . " Ervoor te zorgen dat het einde van de input matrix ontvangt een null- byte. Verkeerde bounds checking kan leiden tot ontbrekende null bytes of een geplaatst na het einde van de array . Bij het combineren van strings , zorg ervoor dat de grenzen controle gebruikt de totale lengte van de string minus de string van reeds bestaande inhoud , in tegenstelling tot het gebruik van de gehele lengte van de string als de grenzen te controleren . Test 3 uw programma door het invoeren van uitzonderlijk grote ingangen en te kijken of het crasht , beschadigd raakt of geeft ongewone activiteit . Let op het adres van alle crashes te zien of het overeenkomt met waar je programma verwerkt de invoergegevens . Programma's zoals Rough Auditing Tool voor Veiligheid , ook wel bekend als " RATTEN , " kan je code en de vlag locaties die mogelijk kwetsbaar zijn voor buffer overflows te scannen .
|