2018-04-06

April 2018 - OWASP 2017 - A8 - Insecure Deserialization

OWASP står för The Open Web Application Security Project och är en öppen global organisation som arbetar för säkerhet i mjukvaruapplikationer, främst webbapplikationer.


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