Computer beveiliging wordt esoterische bij het omgaan met beveiligingsproblemen op hardware niveau . Zelfs de basisuitvoering structuur van computers heeft gaten die hackers kunnen benutten . Ingenieurs moeten blijven ontwikkelen technieken om aanvallen van hackers te omzeilen . Om het geheugen manipulatie pakken exploiteert zoals bufferoverruns , ingenieurs ontwikkelden stack of adres ruimte-indeling , randomisatie . Deze techniek maakt het traditionele en herhaalbare aanvallen minder effectief , en beschermt computers van basis- beveiligingsfouten . De Call Stack De generieke datastructuur gedefinieerd als een " stack " is een basislijst van de items waarin elke toegevoegde artikel voegt aan het einde van de lijst , en elke verwijderde item komt uit het einde van de lijst in een last- in, first - out orde . De call-stack van een lopend programma functies veel op dezelfde manier . In plaats van eenvoudige data-items , echter de call stack organiseert verwijzingen in het geheugen om het uitvoeren van functies in het programma . Bufferoverruns en Memory Kwetsbaarheid Een van de nadelen van het gebruik van de stack datastructuur om programma te organiseren is gerelateerd aan hoe het geheugen wordt georganiseerd . Terwijl elke functie uitgevoerd in een programma zit in aanroepstack , vaak zitten zij aan zij in het fysieke geheugen . Dienovereenkomstig , als een aanvaller overschrijdingen een variabele buffer door te veel gegevens voor een datastructuur te hanteren , bijvoorbeeld, dan de extra informatie kan gegevens overschrijven in aangrenzende fysieke geheugen locaties , waardoor de stroom van het programma loopt. stack Randomization Om bezorgdheid over de veiligheid aan te pakken , ingenieurs ontwikkelden een geheugen toewijzing techniek die bekend staat als stack randomisatie of adres ruimte-indeling randomisatie . Typisch , wordt het geheugen sequentieel toegewezen terwijl het programma loopt . Wanneer een programma wordt gestart , wordt het verdeeld de volgende beschikbare geheugenruimte in het geheugen . Bij gebruik stack randomisatie , bepaalt de computer een pseudo - willekeurige locatie op basis van een vooraf bepaalde offset . Het frame wijzers op de stack worden geplaatst door deze te compenseren ook. De offset wordt bepaald tijdens het opstarten van het besturingssysteem . Stack Randomization en Veiligheid Vanwege stapel randomisatie , doet programmagegevens niet volledig achter elkaar wonen in het geheugen van het systeem . Dit vormt een probleem voor hackers die een aanslag zoals een bufferoverloop gebruiken . Terwijl een bufferoverloop kan optreden , kan de gevolgen niet vooraf worden bepaald . Voordat stack randomisatie , als een hacker wist hoeveel data te gebruiken in een buffer overrun , hij kon dezelfde exploit te gebruiken op hetzelfde programma , herhaaldelijk . Met randomisatie , is er geen buffer aanval gegarandeerd succes tussen elk actief exemplaar van een programma , zelfs op dezelfde computer .
|