33
Pentes’ng av webservices Asbjørn Reglund Thorsen Gruppe og utviklingsleder UIO/FSAT TwiDer: @fuzzerman

Pen$tes’ng)av)) webservices) · Ommeg • Gruppe$)og)utviklingsleder)påFSAT – Felles)studieadministravt )tjenestesenter)) • Sikkerhetsekspert)på)webapplikasjoner) • Utviklerbakgrunn)

  • Upload
    others

  • View
    4

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Pen$tes’ng)av)) webservices) · Ommeg • Gruppe$)og)utviklingsleder)påFSAT – Felles)studieadministravt )tjenestesenter)) • Sikkerhetsekspert)på)webapplikasjoner) • Utviklerbakgrunn)

Pen-­‐tes'ng  av    webservices  

Asbjørn  Reglund  Thorsen  Gruppe-­‐  og  utviklingsleder  UIO/FSAT  

TwiDer:  @fuzzerman  

Page 2: Pen$tes’ng)av)) webservices) · Ommeg • Gruppe$)og)utviklingsleder)påFSAT – Felles)studieadministravt )tjenestesenter)) • Sikkerhetsekspert)på)webapplikasjoner) • Utviklerbakgrunn)

Om  meg  

•  Gruppe-­‐  og  utviklingsleder  på  FSAT  – Felles  studieadministra'vt  tjenestesenter    

•  Sikkerhetsekspert  på  webapplikasjoner  •  Utviklerbakgrunn  •  Pen-­‐tester  siden  2008  •  Cand.Scient  fra  UiO/IFI/Simulasenteret    

07.11.14   Asbjørn  R.  Thorsen  -­‐  @fuzzerman  -­‐  [email protected]  

Page 3: Pen$tes’ng)av)) webservices) · Ommeg • Gruppe$)og)utviklingsleder)påFSAT – Felles)studieadministravt )tjenestesenter)) • Sikkerhetsekspert)på)webapplikasjoner) • Utviklerbakgrunn)

Innhold  

•  HTTP  på  ~  2  minuDer  •  Web  service  (WS)  på  ~  2  min  •  Pen-­‐tes'ng  av  WS  •  HTTP  vs  HTTPS  •  Demoer  •  Omfang/Scope  (mange  foiler,  liten  'd)  – Blir  derfor  liD  av  hvert  

U1VIUzIwMTQ=  

07.11.14   Asbjørn  R.  Thorsen  -­‐  @fuzzerman  -­‐  [email protected]  

Page 4: Pen$tes’ng)av)) webservices) · Ommeg • Gruppe$)og)utviklingsleder)påFSAT – Felles)studieadministravt )tjenestesenter)) • Sikkerhetsekspert)på)webapplikasjoner) • Utviklerbakgrunn)

Advarsel  •  Det  som  blir  vist  i  deDe  foredraget  må  ikke  brukes  noen  steder  uten  lov  

•  Kan  resultere  i  reDslig  eDerfølgelse  og  dom  •  Foredragene  er  ment  'l  å  KUN  være  'l  pedagogiske  formål  

8be3c943b1609ffffc51aad666d0a04adf83c9d  

07.11.14   Asbjørn  R.  Thorsen  -­‐  @fuzzerman  -­‐  [email protected]  

Page 5: Pen$tes’ng)av)) webservices) · Ommeg • Gruppe$)og)utviklingsleder)påFSAT – Felles)studieadministravt )tjenestesenter)) • Sikkerhetsekspert)på)webapplikasjoner) • Utviklerbakgrunn)

ALDRI  PEN-­‐TEST  UTEN  LOV!    

SPØR  OM  LOV  HOS  RETT  PERSON  

07.11.14   Asbjørn  R.  Thorsen  -­‐  @fuzzerman  -­‐  [email protected]  

Page 6: Pen$tes’ng)av)) webservices) · Ommeg • Gruppe$)og)utviklingsleder)påFSAT – Felles)studieadministravt )tjenestesenter)) • Sikkerhetsekspert)på)webapplikasjoner) • Utviklerbakgrunn)

HTTP  på  rekord-­‐'d  

•  Protokollen  som  benyDes  på  www  for  informasjonsutveksling  

•  GET  og  POST  vanligst  

07.11.14   Asbjørn  R.  Thorsen  -­‐  @fuzzerman  -­‐  [email protected]  

Page 7: Pen$tes’ng)av)) webservices) · Ommeg • Gruppe$)og)utviklingsleder)påFSAT – Felles)studieadministravt )tjenestesenter)) • Sikkerhetsekspert)på)webapplikasjoner) • Utviklerbakgrunn)

POST  og  GET  

DEMO  

....by  proxy  07.11.14   Asbjørn  R.  Thorsen  -­‐  @fuzzerman  -­‐  

[email protected]  

Page 8: Pen$tes’ng)av)) webservices) · Ommeg • Gruppe$)og)utviklingsleder)påFSAT – Felles)studieadministravt )tjenestesenter)) • Sikkerhetsekspert)på)webapplikasjoner) • Utviklerbakgrunn)

Kommunikasjon  over  neDverk  

INTERNETTKlient Server

1. REQUEST

2. RESPONSE

07.11.14   Asbjørn  R.  Thorsen  -­‐  @fuzzerman  -­‐  [email protected]  

Page 9: Pen$tes’ng)av)) webservices) · Ommeg • Gruppe$)og)utviklingsleder)påFSAT – Felles)studieadministravt )tjenestesenter)) • Sikkerhetsekspert)på)webapplikasjoner) • Utviklerbakgrunn)

Webservice  på  rekord-­‐'d  

•  Maskin  'l  maskin  kommunikasjon  over  neDverk  

•  Representa'onal  state  transfer  (REST)  

•  Simple  Object  Access  Protocol  (SOAP)    

21232f297a57a5a743894a0e4a801fc3  07.11.14   Asbjørn  R.  Thorsen  -­‐  @fuzzerman  -­‐  

[email protected]  

Page 10: Pen$tes’ng)av)) webservices) · Ommeg • Gruppe$)og)utviklingsleder)påFSAT – Felles)studieadministravt )tjenestesenter)) • Sikkerhetsekspert)på)webapplikasjoner) • Utviklerbakgrunn)

REST  

•  I  stedet  for    – GET  /get_fil?id=1337  – POST  /delete_fil      id=1337  

•  Så...  – GET  /fil/1337/  – DELETE  /fil/1337/  

•  Bruker  GET,  POST,  PUT,  DELETE,  UPDATE  

07.11.14   Asbjørn  R.  Thorsen  -­‐  @fuzzerman  -­‐  [email protected]  

Page 11: Pen$tes’ng)av)) webservices) · Ommeg • Gruppe$)og)utviklingsleder)påFSAT – Felles)studieadministravt )tjenestesenter)) • Sikkerhetsekspert)på)webapplikasjoner) • Utviklerbakgrunn)

SOAP  SOAPMessage

(et XML dokument)

SOAPEnvelope

SOAPHeader (optional)

Header

Header

SOAPBody

XML Cont or SOAPFault

FHUF  fgåe  sbe  Flfgrzre  v  HU-­‐Frxgbera  

07.11.14   Asbjørn  R.  Thorsen  -­‐  @fuzzerman  -­‐  [email protected]  

Page 12: Pen$tes’ng)av)) webservices) · Ommeg • Gruppe$)og)utviklingsleder)påFSAT – Felles)studieadministravt )tjenestesenter)) • Sikkerhetsekspert)på)webapplikasjoner) • Utviklerbakgrunn)

SOAP  Request  POST  /InStock  HTTP/1.1  Host:  www.example.org  Content-­‐Type:  applica'on/soap+xml;  charset=ur-­‐8  Content-­‐Length:  nnn    <?xml  version="1.0"?>  <soap:Envelope  xmlns:soap="hDp://www.w3.org/2001/12/soap-­‐envelope"  soap:encodingStyle="hDp://www.w3.org/2001/12/soap-­‐encoding">    <soap:Body  xmlns:m="hDp://www.example.org/stock">      <m:GetStockPrice>          <m:StockName>IBM</m:StockName>      </m:GetStockPrice>  </soap:Body>    </soap:Envelope>    

hDp://www.w3schools.com/webservices/ws_soap_example.asp  

07.11.14   Asbjørn  R.  Thorsen  -­‐  @fuzzerman  -­‐  [email protected]  

Page 13: Pen$tes’ng)av)) webservices) · Ommeg • Gruppe$)og)utviklingsleder)påFSAT – Felles)studieadministravt )tjenestesenter)) • Sikkerhetsekspert)på)webapplikasjoner) • Utviklerbakgrunn)

SOAP  Respons  HTTP/1.1  200  OK  Content-­‐Type:  applica'on/soap+xml;  charset=ur-­‐8  Content-­‐Length:  nnn    <?xml  version="1.0"?>  <soap:Envelope  xmlns:soap="hDp://www.w3.org/2001/12/soap-­‐envelope"  soap:encodingStyle="hDp://www.w3.org/2001/12/soap-­‐encoding">    <soap:Body  xmlns:m="hDp://www.example.org/stock">      <m:GetStockPriceResponse>          <m:Price>34.5</m:Price>      </m:GetStockPriceResponse>  </soap:Body>    </soap:Envelope>    

hDp://www.w3schools.com/webservices/ws_soap_example.asp  

07.11.14   Asbjørn  R.  Thorsen  -­‐  @fuzzerman  -­‐  [email protected]  

Page 14: Pen$tes’ng)av)) webservices) · Ommeg • Gruppe$)og)utviklingsleder)påFSAT – Felles)studieadministravt )tjenestesenter)) • Sikkerhetsekspert)på)webapplikasjoner) • Utviklerbakgrunn)

Noen  verktøy  for  sikkerhetstes'ng  

•  OWASP  ZAP  •  soapUI  (gjennom  proxy)  •  Burp  Suite  

07.11.14   Asbjørn  R.  Thorsen  -­‐  @fuzzerman  -­‐  [email protected]  

Page 15: Pen$tes’ng)av)) webservices) · Ommeg • Gruppe$)og)utviklingsleder)påFSAT – Felles)studieadministravt )tjenestesenter)) • Sikkerhetsekspert)på)webapplikasjoner) • Utviklerbakgrunn)

Proxy  

Klient Proxy

1. REQUEST

2. RESPONSE

vg.no

GET vg.no GET vg.no

200 OK + Data200 OK + Data

Ofte samme maskin

07.11.14   Asbjørn  R.  Thorsen  -­‐  @fuzzerman  -­‐  [email protected]  

Page 16: Pen$tes’ng)av)) webservices) · Ommeg • Gruppe$)og)utviklingsleder)påFSAT – Felles)studieadministravt )tjenestesenter)) • Sikkerhetsekspert)på)webapplikasjoner) • Utviklerbakgrunn)

WS  over  hDp  

<soapenv:Envelope  xmlns:soapenv=«hDp://schema…….»>      <soapenv:Header>          <tem:AuthHeader>              <tem:Username>agent007</tem:Username>              <tem:Password>t0p53cr3t</tem:Password>          </tem:AuthHeader>      </soapenv:Header>      <soapenv:Body>          <tem:EDEllerAnnet>  

 ….          </tem:EDEllerAnnet>      </soapenv:Body>  </soapenv:Envelope>  

07.11.14   Asbjørn  R.  Thorsen  -­‐  @fuzzerman  -­‐  [email protected]  

Page 17: Pen$tes’ng)av)) webservices) · Ommeg • Gruppe$)og)utviklingsleder)påFSAT – Felles)studieadministravt )tjenestesenter)) • Sikkerhetsekspert)på)webapplikasjoner) • Utviklerbakgrunn)

SQL-­‐injec'on  

§  En  sql  spørring  som  blir  ”limt  sammen”/  konkatenert  av  flere  biter  

§  Bruker  skriver  inn  brukernavn  og  passord  §  SELECT  *  from  User    WHERE  Username=”agent007”    AND  Password=”t0p53cr3t”  

§  Hva  hvis  vi  gjør  følgende?  §  SELECT  *  from  User                                                                          WHERE  Username=”agent007”  -­‐-­‐”                                                                  AND  Password=”t0p53cr3t”  

 

Test”-­‐-­‐  

******  

07.11.14   Asbjørn  R.  Thorsen  -­‐  @fuzzerman  -­‐  [email protected]  

Page 18: Pen$tes’ng)av)) webservices) · Ommeg • Gruppe$)og)utviklingsleder)påFSAT – Felles)studieadministravt )tjenestesenter)) • Sikkerhetsekspert)på)webapplikasjoner) • Utviklerbakgrunn)

SQL-­‐injec'on  forts  

•  Alterna'v  – SELECT  *  from  USER  WHERE  Username=””  OR  ”1”  =  ”1”  AND  Password=””  OR  ”1”  =  ”1”  

07.11.14   Asbjørn  R.  Thorsen  -­‐  @fuzzerman  -­‐  [email protected]  

Page 19: Pen$tes’ng)av)) webservices) · Ommeg • Gruppe$)og)utviklingsleder)påFSAT – Felles)studieadministravt )tjenestesenter)) • Sikkerhetsekspert)på)webapplikasjoner) • Utviklerbakgrunn)

DEMO  

07.11.14   Asbjørn  R.  Thorsen  -­‐  @fuzzerman  -­‐  [email protected]  

Karma/dnsspoofing  

Page 20: Pen$tes’ng)av)) webservices) · Ommeg • Gruppe$)og)utviklingsleder)påFSAT – Felles)studieadministravt )tjenestesenter)) • Sikkerhetsekspert)på)webapplikasjoner) • Utviklerbakgrunn)

Pen-­‐tes'ng  webservices  

•  Mange  av  de  samme  urordringene  som  webapplikasjoner  – Cross  Site  Request  Forgery  (CSRF)  – Cross  Site  Scrip'ng  (XSS)  –  JSON/XML  injec'on  – SQL  injec'on  

07.11.14   Asbjørn  R.  Thorsen  -­‐  @fuzzerman  -­‐  [email protected]  

Page 21: Pen$tes’ng)av)) webservices) · Ommeg • Gruppe$)og)utviklingsleder)påFSAT – Felles)studieadministravt )tjenestesenter)) • Sikkerhetsekspert)på)webapplikasjoner) • Utviklerbakgrunn)

Pen-­‐tes'ng  web  services  

•  Slurves  mer  med  sikkerhet  enn  webapps  •  Mange  pen-­‐testere  er  ikke  gode  nok  /  slurver  med  å  sikkerhetssjekke  webservicer  skikkelig  

•  Antar  at  maskin  'l  maskin  kommunikasjon  ikke  kan  manipuleres  

•  SOAP  har  o�e  WSDL-­‐filer  som  beskriver  WS  •  Kan  google  dork'e  det..  •  REST  testes  som  en  vanlig  webapplikasjon  

07.11.14   Asbjørn  R.  Thorsen  -­‐  @fuzzerman  -­‐  [email protected]  

Page 22: Pen$tes’ng)av)) webservices) · Ommeg • Gruppe$)og)utviklingsleder)påFSAT – Felles)studieadministravt )tjenestesenter)) • Sikkerhetsekspert)på)webapplikasjoner) • Utviklerbakgrunn)

DEMO  

Google  dorking  wsdl  

07.11.14   Asbjørn  R.  Thorsen  -­‐  @fuzzerman  -­‐  [email protected]  

Page 23: Pen$tes’ng)av)) webservices) · Ommeg • Gruppe$)og)utviklingsleder)påFSAT – Felles)studieadministravt )tjenestesenter)) • Sikkerhetsekspert)på)webapplikasjoner) • Utviklerbakgrunn)

Angrepsvektorer  

•  XML-­‐strømmer  blir  på  et  'dspunkt  parset  i  applikasjonslogikken  

•  Mulig  å  brekke  webservicen  i  parsingen    •  DOM  eller  SAX  parsere  er  vanligst  å  bruke  •  DOM-­‐baserte  parsere  laster  hele  XML  strømmen  inn  i  minnet  – Store  XML-­‐filer/rekursjon  =>  DoS  angrep  

07.11.14   Asbjørn  R.  Thorsen  -­‐  @fuzzerman  -­‐  [email protected]  

Page 24: Pen$tes’ng)av)) webservices) · Ommeg • Gruppe$)og)utviklingsleder)påFSAT – Felles)studieadministravt )tjenestesenter)) • Sikkerhetsekspert)på)webapplikasjoner) • Utviklerbakgrunn)

DoS  -­‐  "Slem"  XML  (DOM  basert)  

<transaksjon>          <total>10000.00<total>                  <krediDkortnr>123456789</krediDkortnr>                  <krediDkortnr>123456789</krediDkortnr>                  <krediDkortnr>123456789</krediDkortnr>                  <krediDkortnr>123456789</krediDkortnr>                  ...                  ...                  ...          <utloepsdato>01012015</utloepsdato>  </transaksjon>    

07.11.14   Asbjørn  R.  Thorsen  -­‐  @fuzzerman  -­‐  [email protected]  

Page 25: Pen$tes’ng)av)) webservices) · Ommeg • Gruppe$)og)utviklingsleder)påFSAT – Felles)studieadministravt )tjenestesenter)) • Sikkerhetsekspert)på)webapplikasjoner) • Utviklerbakgrunn)

DoS  -­‐  "Slemmere"  XML    (DOM  basert)  

<transaksjon>          <total>10000.00<total>                  <krediDkortnr>                                                  <krediDkortnr>                                                                  <krediDkortnr>                                                        <krediDkortnr>                                      ...                                          ...                                ...          <utloepsdato>01012015</utloepsdato>  </transaksjon>    

07.11.14   Asbjørn  R.  Thorsen  -­‐  @fuzzerman  -­‐  [email protected]  

Page 26: Pen$tes’ng)av)) webservices) · Ommeg • Gruppe$)og)utviklingsleder)påFSAT – Felles)studieadministravt )tjenestesenter)) • Sikkerhetsekspert)på)webapplikasjoner) • Utviklerbakgrunn)

SAX  

•  Ikke  så  sårbare  for  DoS  – Hendelsesdrevet  – behandler  XML  strøm  med  to  elementer  i  minnet  'l  enhver  'd  

•  Ny  angrepsvektor  =>  XML-­‐injec'on  

07.11.14   Asbjørn  R.  Thorsen  -­‐  @fuzzerman  -­‐  [email protected]  

Page 27: Pen$tes’ng)av)) webservices) · Ommeg • Gruppe$)og)utviklingsleder)påFSAT – Felles)studieadministravt )tjenestesenter)) • Sikkerhetsekspert)på)webapplikasjoner) • Utviklerbakgrunn)

XML  injec'on  

<transaksjon>          <total>10000.00<total>                  <krediDkortnr>123456789</krediDkortnr>                  <total>42</total><krediDkortnr>123456789</krediDkortnr>          <utloepsdato>01012015</utloepsdato>  </transaksjon>    

07.11.14   Asbjørn  R.  Thorsen  -­‐  @fuzzerman  -­‐  [email protected]  

Page 28: Pen$tes’ng)av)) webservices) · Ommeg • Gruppe$)og)utviklingsleder)påFSAT – Felles)studieadministravt )tjenestesenter)) • Sikkerhetsekspert)på)webapplikasjoner) • Utviklerbakgrunn)

Tenk  sikkerhet  •  Ikke  lag  egne  parsere  – Brukt  'lgjenglige,  de  har  bliD  testet  og  sikret  over  'd  

•  Bruk  SAX  parsere  når  mulig  –  Forhindrer  DoS  i  større  grad  enn  DOM  

•  Dersom  du  bruker  DOM  – Valider  XML  strømmen  i  forhold  'l  Max  størrelse  

•  XML-­‐injec'on  kan  elimineres  om  du  validerer  skikkelig!    •  XML-­‐schema  

07.11.14   Asbjørn  R.  Thorsen  -­‐  @fuzzerman  -­‐  [email protected]  

Page 29: Pen$tes’ng)av)) webservices) · Ommeg • Gruppe$)og)utviklingsleder)påFSAT – Felles)studieadministravt )tjenestesenter)) • Sikkerhetsekspert)på)webapplikasjoner) • Utviklerbakgrunn)

XPATH  injec'on  

•  XPATH:  verktøy  for  å  hente  ut  elementer  fra  XML  

•  //brukere/kundeid[123]  •  //brukere/kundeid[./alder  >1]    

•  XPATH  injec'on  mulig  pga  dårlig  inputvalidering.  Valider!!  

07.11.14   Asbjørn  R.  Thorsen  -­‐  @fuzzerman  -­‐  [email protected]  

Page 30: Pen$tes’ng)av)) webservices) · Ommeg • Gruppe$)og)utviklingsleder)påFSAT – Felles)studieadministravt )tjenestesenter)) • Sikkerhetsekspert)på)webapplikasjoner) • Utviklerbakgrunn)

Gamle  kjenninger  

•  Å  lage  et  REST  API  er  ikke  helt  som  å  lage  en  vanlig  webapplikasjon  

•  Likevel  må  vi  passe  oss  for  mange  av  de  samme  typene  sikkerhetsproblemer  

07.11.14   Asbjørn  R.  Thorsen  -­‐  @fuzzerman  -­‐  [email protected]  

Page 31: Pen$tes’ng)av)) webservices) · Ommeg • Gruppe$)og)utviklingsleder)påFSAT – Felles)studieadministravt )tjenestesenter)) • Sikkerhetsekspert)på)webapplikasjoner) • Utviklerbakgrunn)

OWASP    tes'ng  guide  

•  hDps://www.owasp.org/images/5/56/OWASP_Tes'ng_Guide_v3.pdf  

07.11.14   Asbjørn  R.  Thorsen  -­‐  @fuzzerman  -­‐  [email protected]  

Page 32: Pen$tes’ng)av)) webservices) · Ommeg • Gruppe$)og)utviklingsleder)påFSAT – Felles)studieadministravt )tjenestesenter)) • Sikkerhetsekspert)på)webapplikasjoner) • Utviklerbakgrunn)

HTTP  vs  HTTPS  

•  HTTPS  (TLS  1.0,  1.1  &  1.2)  –  The  good!  •  HTTPS  (SSLv3)  –  The  bad!  (Poodle)  •  HTTP  –  The  ugly!  (In  the  clear)  

07.11.14   Asbjørn  R.  Thorsen  -­‐  @fuzzerman  -­‐  [email protected]  

Page 33: Pen$tes’ng)av)) webservices) · Ommeg • Gruppe$)og)utviklingsleder)påFSAT – Felles)studieadministravt )tjenestesenter)) • Sikkerhetsekspert)på)webapplikasjoner) • Utviklerbakgrunn)

Spørsmål?  

             Følg  meg  på  twiDer:  @fuzzerman  

Eastereggs  i  foilene.  Premie  'l  den  som

 klarer  alle  

07.11.14   Asbjørn  R.  Thorsen  -­‐  @fuzzerman  -­‐  [email protected]