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

2018-03-27

Mars 2018 - OWASP 2017 - A4 - XML External Entities (XXE)

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 första nya på OWASP Top Ten 2017 är A4 - XML External Entities (XXE)

Tjänster som hanterar XML kan vara sårbara för den här attacken. Typiskt webbservices.
Attacken utförs genom att manipulerad XML skickas till tjänsten. Det som manipulerats eller lagts till är i taggen <!ENTITY> och de referenser som får skrivas där. Tjänsten läser in XML-dokumentet, ersätter referensen med innehållet för referensen och returnerar svaret.
Det finns även en del andra attacker som kommer av samma sårbarhet. Bland annat Billion Laughs Attack som är en överbelastningsattack där minnet tar slut.

Ett exempel från den här sidan där de förklarar väldigt bra:
https://www.acunetix.com/blog/articles/xml-external-entity-xxe-vulnerabilities/
Request:
POST http://example.com/xml HTTP/1.1

<!DOCTYPE foo [
  <!ELEMENT foo ANY>
  <!ENTITY bar SYSTEM
  "http://192.168.0.1/secret.txt">
]>
<foo>
  &bar;
</foo>

Response:
HTTP/1.0 200 OK

Hello, I'm a file on the local network (behind the firewall)

Det som händer är att referensen http://192.168.0.1/secret.txt kopplas till variablen bar. När XML:en parsas så hämtats innehållet i filen secret.txt som ligger på servern och ersätter variabeln bar i XML:en och returneras till användaren.

För att förhindra det här så byt om möjligt till tjänster som använder JSON istället för XML. Fler och fler tjänster använder det så vi är redan på väg. Om det inte går att byta till JSON så se till att använda SOAP 1.2 eller högre. Slå av External Entity processing (se Cheat sheet nedan). Validera innehållet.

OWASP har tagit fram ett Cheat Sheet för hur man åtgärdar sårbarheten. Det är här:
XML External Entity (XXE) Prevention Cheat Sheet


System och tjänster som uppdaterats sedan förra uppdateringen:
  • s02
  • s03
    • Alla konton är flyttade till s04.
    • Server avstängd och raderad.
  • s04
    • Uppsättningen är klar och allt fungerar perfekt! Det mest intressanta är att den kör PHP7 och alla konton, mail, ftp etc. har TLS-kryptering (https).
    • Alla konton från s03 är flyttade hit.
    • Testperiod innan externa kunder flyttas.
    • Webmin 1.880

2018-02-15

Februari 2018 - OWASP Top 10 2017

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.


De har precis släppt OWASP Top 10 2017.
Vilka skillnader finns jämfört med listan från 2013?

2013
A1 - Injection
A2 - Broken Authentication and Session Management
A3 - Cross-Site Scripting (XSS)
A4 - Insecure Direct Object Reference
A5 - Security Misconfiguration
A6 - Sensitive Data Exposure
A7 - Missing Function Level Access Control
A8 - Cross-Site Request Forgery (CSRF)
A9 - Using Components with Known Vulnerabilities
A10 - Unvalidated Redirects and Forwards

2017
A1- Injection
A2 - Broken Authentication
A3 - Sensitive Data Exposure
A4 - XML External Entities (XXE) [NEW]
A5 - Broken Access Control [Merged - 2013 A3 och A7]
A6 - Security Misconfiguration
A7 - Cross-Site Scripting (XSS)
A8 - Insecure Deserialization [NEW, Community]
A9 - Using Components with Known Vulnerabilities
A10 - Insufficient Logging&Monitoring [NEW,Community]

Det som har hänt är att A8 - Cross-Site Request Forgery (CSRF) och A10 - Unvalidated Redirects and Forwards har trillat bort i nya listan. A4 och A7 slogs ihop till A5. Sen tillkom det tre nya varav två kom från communityn, dvs. från användare och andra intresserade. Ordningen har ändrats något på grund av att hoten inte är lika vanliga eller allvarliga.

Att hot tas bort betyder inte att de inte längre är några hot, men OWASP anser inte att de är lika allvarliga eller lika vanliga.

Jag kommer framöver att skriva lite om vad de tre nya innebär och hur man kan skydda sig mot dem.


System och tjänster som uppdaterats sedan förra uppdateringen:
  • s02
  • s03
    • Inga uppdateringar
  • s04
    • Installationen av servern är klar. Det är några småsaker som inte fungerar helt ännu och SSL/TLS behöver ordnas för alla tjänster. Nu fungerar det bara för webbsidorna.
    • Testperiod och finjustering börjar.

2018-01-13

Januari 2018 - Nytt år!

Jag ser att jag nu skriver det varje år, men jag tycker att det är en så smart idé att den tål att upprepas om och om igen.
Ta det lugnt i december. Fokusera på att ha det trevligt innan jul. Varva ner för att förbereda inför julledigheten. Pressa inte igenom massor av projekt bara för att hinna klart innan nyår. Börja sedan det nya året i januari och ägna den månaden åt att avsluta 2018. För företaget handlar det mycket om bokföring även om det mesta inte behöver vara klart förrän framåt sommaren så är det lika bra att få det gjort nu direkt när det förra året fortfarande är fräscht. Då kommer inte bokföring och deklaration som en chock senare i år utan allt är klart.

Agendan för det nya året på nettools.se är att färdigställa en ny server och att flytta alla konton dit. Varför det är samma mål i år som förra året är för att innan jag hann slutföra förra årets mål så släpptes Debian 9 med PHP7. Jag beslutade då att inte flytta kunderna till den då färdiga nya servern utan istället bygga en helt ny server på Debian 9 och gå över till PHP7. Det är inte klart ännu. Den nya versionen av PHP gör att jag behöver se över säkerhetslösningen där och troligtvis utforma en ny. Det är där jag är just nu.


System och tjänster som uppdaterats sedan förra uppdateringen:

2017-12-08

December - OWASP Top Ten - A10 Unvalidated Redirects and Forwards

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.
OWASP Top Ten listar de mest kritiska säkerhetsproblemen för webbapplikationer.

A10 Unvalidated Redirects and Forwards

Attacken går ut på att lura användare till att klicka på länkar som omdirigerar användaren till en annan webbsida. Användaren går på det för att länken ser ok ut vid första anblick.

Exempel: När dina användare loggar in på din webbshop så vill du att de ska komma tillbaka till den sida de var på när de tryckte på inloggningsknappen så du skapar en funktion som fixar det. Sidan det implementeras på är redirect.jsp som hittas här: https://www.example.com/redirect.jsp och med parametern url så kan man skicka tillbaka användaren till rätt sida efter inloggning.
Någon upptäcker det här och postar länken https://www.example.com/redirect.jsp?url=evil.com bland exempelvis produktrecensionerna.. De som klickar på länken kommer då att omdirigeras till webbsidan på evil.com även fast de trodde att de klickade på en länk som ledde inom din webbshop.

För att åtgärda det här så bygger man enklast in en kontroll i redirect.jsp som validerar vilka url:er som skickas in så att du har kontroll över var dina användare skickas.


System och tjänster som uppdaterats sedan förra uppdateringen:
  • s02
    • Inga uppdateringar
  • s03
    • Inga uppdateringar
  • s04
    • Bygger server.

2017-11-16

November - OWASP Top Ten - A9 Using Components with Known Vulnerabilities

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.
OWASP Top Ten listar de mest kritiska säkerhetsproblemen för webbapplikationer.

A9 Using Components with Known Vulnerabilities

Vilka komponenter använder du för dina tjänster? Allt från större tjänster som Wordpress och alla olika plugins, forum etc. till mindre delar som bibliotek och ramverk kan ha säkerhetshål. För att dina tjänster ska vara säkra så behöver du inte bara ha koll på det du skapat själv utan även det som andra skapat. Säkerhetshålen i de komponenterna sprids snabbt och direkt börjar de utnyttjas för att komma åt känslig information eller för att förstöra.

Kartlägg de komponenter du använder. Följ vilka säkerhetsbrister som upptäcks. Uppdatera alla komponenter när uppdateringar kommer. Använd så få komponenter och funktioner i dem som möjligt för att minimera säkerhetsriskerna.


System och tjänster som uppdaterats sedan förra uppdateringen:

2017-10-13

Oktober - OWASP Top Ten - A8 Cross-Site Request Forgery (CSRF)

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.
OWASP Top Ten listar de mest kritiska säkerhetsproblemen för webbapplikationer.

A8 Cross-Site Request Forgery (CSRF)

CSRF är en sårbarhet där man får användaren att skicka en request skapad av attackeraren till en webbtjänst och om användaren är inloggad så kan det få väldigt ödesdigra konsekvenser.
Om vi antar att en webbsida är sårbar för CSRF och de flesta loggar in ut från webbsidor när de är klara med den utan vill fortsätta utan att logga in nästa gång de besöker. Då kan man skapa en request på en annan sida eller skicka i ett mail som när länken eller knappen klickas på så skickas requesten till webbsidan och utföra det som står i requesten om det nu är att byta lösenord eller radera användarens konto eller vad för något som attackeraren hittat på.

Enklaste skyddet mot en sån här attack är att skicka med ett unikt token i varje request som visar för servern att requesten kommer från rätt webbsida och att användaren har skickat in den. CAPTCHA går också att använda.

System och tjänster som uppdaterats sedan förra uppdateringen:
  • s02
    • Inga uppdateringar.
  • s03
    • Inga uppdateringar.
  • s04
    • Bygger server.