Menig beveiligingscursus is erop gericht om ontwikkelaars zoals hackers te laten denken. De eerste stap in het neerzetten van een succesvolle verdediging is weten hoe de "vijand" denkt, toch is de brug tussen ontwikkelaar en hacker niet eenvoudig te overbruggen. Sergey Bratus bekeek de verschillen tussen beide partijen, en kwam tot de volgende punten:
- Ontwikkelaars werken onder druk en volgen een standaard oplossing, of de weg van de minste weerstand om het werkend te krijgen.
- Ontwikkelaars worden meestal niet getraind in onderliggende APIs omdat de extra geinvesteerde tijd zich meestal niet uitbetaalt.
- Ontwikkelaars zien meestal een beperkt gedeelte van de API, vaak zonder enige details over de implementatie ervan.
- Ontwikkelaars worden standaard opgeleid om bijzondere uitzonderingen te negeren en kennen daardoor niet de gevolgen.
- Ontwikkelaars kunnen zelf expliciete opdrachten krijgen om specifieke problemen te negeren omdat die bij een andere ontwikkelaar of partij behoren.
- Ontwikkelaars missen de tools om de volledige status van een systeem te controleren, laat staan het aan te kunnen passen buiten de API om.
Hackers daarentegen
- Hackers besteden veel tijd en aandacht in het onderzoeken van uitzonderingen in standaarden.
- Hackers willen de onderliggende implementatie van de APIs begrijpen en uitzoeken.
- Hackers twijfelen aan de logica van de implementatie.
- Hackers verkennen de gevolgen van het afwijken van de standaard handleidingen.
- Hackers beschikken over tools om de volledige status van het systeem te onderzoeken en aan te passen, waardoor ze de standaard API omzeilen. Als zo'n tool niet bestaat, dan krijgt dit de hoogste prioriteit.
- Hackers interesseren zich in de interne werking en mechanismes van verschillende programmeertalen, dat is kenmerkend voor de aanpak van de hacker.
Het artikel van Bratus kost
35 dollar, met dank aan Richard Bejtlich voor de
samenvatting, die hij toepast op een vacature voor een Windows systeembeheerder.