Basis van informatiebeveiliging
Een webapplicatie leest en toont een bestand door een bestandsnaam uit een URL-parameter aan de naam van haar openbare map te koppelen. Als een waarde met ../ als bestandsnaam wordt opgegeven, kunnen configuratiebestanden en andere bestanden buiten de openbare map worden gelezen. Welke combinatie geeft de naam van deze aanval en een tegenmaatregel juist weer?
- ACross-site scripting. Bij het uitvoeren < en > escapen
- BDirectory traversal. Bestandsnamen langer maken zodat ze moeilijker te raden zijn
- CDirectory traversal. De applicatie zo ontwerpen dat bestandsnamen niet rechtstreeks van buitenaf kunnen worden opgegeven, of het pad normaliseren en controleren dat het binnen de openbare map ligt
Antwoord en toelichting tonen
Antwoord: C. Directory traversal. De applicatie zo ontwerpen dat bestandsnamen niet rechtstreeks van buitenaf kunnen worden opgegeven, of het pad normaliseren en controleren dat het binnen de openbare map ligt
Directory traversal (path traversal) is een aanval die symbolen voor „één map omhoog”, zoals ../, gebruikt om bestanden buiten de door de applicatie bedoelde map te lezen of te overschrijven. De oorzaak is dat een van buitenaf ontvangen waarde rechtstreeks als bestandspad wordt gebruikt. De eerste tegenmaatregel is een ontwerp waarin bestandsnamen niet rechtstreeks van buitenaf worden opgegeven en de server het bestand kiest aan de hand van een vast nummer of ID. Als externe waarden toch moeten worden gebruikt, normaliseer dan het pad (los ../ en dergelijke op) en controleer of het resultaat binnen de toegestane map ligt. Door bovendien de rechten van het account waaronder de applicatie draait te minimaliseren en zo te beperken welke bestanden het kan lezen, blijft de schade klein als er toch iets misgaat. Langere bestandsnamen veranderen niets aan het feit dat met ../ de map kan worden verlaten.