Den andra nya på OWASP Top Ten 2017 är A8 - Insecure Deserialization
Serialisering är en process där man "plattar" till objekt och data så att det enkelt kan sparas eller skickas. Att deserialisera är den motsatta processen där man tar den tillplattade informationen och läser in den och skapar upp de objekt och den data som plattades till.
Man serialiserar till formaten JSON, XML eller något annat textformat.
Sårbarheten här är att applikationen deserialiserar data från osäkra källor och om den datan har manipulerats så öppnar det upp för många olika attacker.
Exempel:
Ett forum skrivet i PHP serialiserar information om inloggad användare och sparar det som en kaka i webbläsaren:
a:4:{i:0;i:132;i:1;s:7:"Mallory";i:2;s:4:"user"; i:3;s:32:"b6a8b..bc960";}
Genom att manipulera den informationen så kan en annan användare potentiellt skaffa sig adminbehörighet:
a:4:{i:0;i:1;i:1;s:5:"Alice";i:2;s:5:"admin"; i:3;s:32:"b6a8b..bc960";}
Hur skyddar man sig?
Acceptera bara serialiserade objekt från säkra källor.
Tillåt bara JSON och XML som format för (de)serialisering.
Kontrollera datan som deserialiseras så att den inte har manipulerats. Exempelvis genom digitala signaturer.
Se cheat sheet för mer detaljer hur man kan göra.
OWASP Cheat Sheet: Deserialization Cheat Sheet
System och tjänster som uppdaterats sedan förra uppdateringen:
- s02
- Webmin 1.881
- Usermin 1.740
- Subdomänen "webmail" är borttagen från alla konton eftersom det inte var någon som använder Squirrelmail. Roundcube som hittas på subdomänen "email" är så mycket bättre.
- Subdomänen "user" försvinner efter hand. Använd istället subdomämen "mail" för den går till samma tjänst.
- s04
Inga kommentarer:
Skicka en kommentar