25
Nehacknuteľný web Tomáš Zaťko

Nehacknutelny web

Embed Size (px)

Citation preview

Page 1: Nehacknutelny web

Nehacknuteľný  web  

Tomáš  Zaťko  

Page 2: Nehacknutelny web

Ako  prebieha  bežný  deface  webu?    

•  Deravé  CMS-­‐ko  •  SQLi  •  File  upload  •  atď  

•  Deravé  systémy  web  hosLng  providera  •  Ukradnuté  heslo    

Page 3: Nehacknutelny web

Cesty  na  prienik  do  webov    

•  Útok  na  systémy  admina  •  HW  •  OS  •  Sieť  •  Systémové  knižnice,  služby  

•  Webový  server  •  RunLme  aplikácie  •  Knižnice,  framework  •  Aplikácia  

Page 4: Nehacknutelny web

Útok  na  systém  admina  

•  Rôzne  vektory  infikácie  •  Trojan  •  Keylogger  

Page 5: Nehacknutelny web

Hardvér  

•  Fyzický  prístup  •  Remote  management  serveru  •  Tiež  je  to  len  operačný  systém  so  všetkými  špecifikami  

•  Väčšinou  nie  je  updatovaný  

Page 6: Nehacknutelny web

Operačný  Systém  

•  Sieť  •  Bežné  sieťové  útoky  •  DNS  

•  Systémové  knižnice,  služby  •  Konfiguračné  chyby  •  Špecifické  útoky  (staré/deravé  verzie)  

•  Služby  vs.  firewall  

Page 7: Nehacknutelny web

Webový  server  

•  Web  server  samotný  •  Akevne  moduly  •  Konfigurácia  

Page 8: Nehacknutelny web

Webový  server  

•  RunLme  aplikácie  •  Knižnice/moduly/rozšírenia  •  Aplikácia  

Page 9: Nehacknutelny web

OWASP  Top  10    (2013)  

Page 10: Nehacknutelny web

OWASP  Top  10  -­‐  zmeny  

Page 11: Nehacknutelny web

Čo  s  tým?  

•  Bezpečnostné  aktualizácie  CMS  •  Môže  prinášať  problémy        

•  WAF  •  Môže  prinášať  problémy  •  Vlastný  •  As  a  service  

Page 12: Nehacknutelny web

Čo  je  úlohou  bezpečnosL?  

Page 13: Nehacknutelny web

Nepriestrelný  web?  

•  StaLcký  web  =  nehacknuteľný  web  •  Akevne  prvky  =  amack  surface  •  Žiadne  akevne  prvky  =  niet  na  čo  útočiť  

Page 14: Nehacknutelny web

Nepriestrelný  web?  

•  Back  to  nineLes!  

Page 15: Nehacknutelny web

Nepriestrelný  web?  

Page 16: Nehacknutelny web

Nepriestrelný  web  –  HOW  TO  

•  CMS  “fyzicky”  oddelené  od  publikovanej  verzie  webu  •  Izolácia  -­‐  zamedzenie  prístupu  z  jedného  vhostu  do  druhého  

•  Napr.  mod_ruid,  pri  ktorom  beží  každý  vhost  pod  iným  EUID  

•  Alebo  rôzne  servery  

Page 17: Nehacknutelny web

Nepriestrelný  web  –  HOW  TO  

•  Mirror  webu  z  CMS  •  Napr.  wget,  hmrack  

•  Doťahať  špecifické  súbory  •  Napr.  IE  specific  stypesheet  

•  Špecifické  fixy  •  Napr.  404  bez  vyhľadávanie  

•  Upload  do  public  vhostu  •  Cleanup  

Page 18: Nehacknutelny web

Nepriestrelný  web  –  HOW  TO  $HTTRACK_DIR/h-rack  "$DYN_WEB"  -­‐O  "$TMP_DIR"  -­‐s0  -­‐-­‐footer  ""  -­‐N  "%p/%n.%t"  –I0    wget  -­‐-­‐no-­‐cache  -­‐q  $DYN_WEB/wp-­‐content/themes/citadelo/js/html5.js  -­‐O  $TMP_DIR/wp-­‐content/themes/citadelo/js/html5.js  wget  -­‐-­‐no-­‐cache  -­‐q  $DYN_WEB/wp-­‐content/themes/citadelo/css/font-­‐awesome-­‐ie7.min.css  -­‐O  $TMP_DIR/wp-­‐content/themes/citadelo/css/font-­‐awesome-­‐ie7.min.css  wget  -­‐-­‐no-­‐cache  -­‐q  $DYN_WEB/wp-­‐content/themes/citadelo/css/ie9.css  -­‐O  $TMP_DIR/wp-­‐content/themes/citadelo/css/ie9.css  wget  -­‐-­‐no-­‐cache  -­‐q  $DYN_WEB/wp-­‐content/themes/citadelo/css/ie.css  -­‐O  $TMP_DIR/wp-­‐content/themes/citadelo/css/ie.css    if  [  "$1"  ==  "-­‐b"  ]  ||  [    "$1"  ==  "-­‐-­‐beta"  ]  then          rsync  -­‐a  -­‐-­‐del  -­‐-­‐exclude='404.html'  -­‐-­‐exclude='.htaccess'  $TMP_DIR  [email protected]:$DST_DIR  else          rsync  -­‐a  -­‐-­‐del  -­‐-­‐exclude='404.html'  -­‐-­‐exclude='.htaccess'  $TMP_DIR  [email protected]:$DST_DIR            mkdir  $BCK_DIR/$NOW          cp  -­‐a  $TMP_DIR/*  $BCK_DIR/$NOW          ln  -­‐sfn  $BCK_DIR/$NOW  $BCK_DIR/current            if  [  $(ls  $BCK_DIR  |  wc  -­‐l)  -­‐gt  11  ]          then                  rm  -­‐f  -­‐R  "$(find  $BCK_DIR/  -­‐maxdepth  1  -­‐type  d  -­‐prine  '%T@\t%p\n'  |  sort  -­‐r  |  tail  -­‐n  1  |  sed  's/[0-­‐9]*\.[0-­‐9]*\t//')"          fi  fi    rm  -­‐rf  $TMP_DIR/*  

Page 19: Nehacknutelny web

Nepriestrelný  web  –  HOW  TO  

•  Absolútne  linky  •  AddOutputFilterByType SUBSTITUTE text/html •  Substitute "s|https?://cms\.citadelo\..*/|/|I”

Page 20: Nehacknutelny web

Nepriestrelný  web  –  HOW  TO  •  Jazyková  mutácia  podľa  GEO  IP  

•  RewriteEngine On •  GeoIPEnable On •  # ak nie sme domena .hu •  RewriteCond %{HTTP_HOST} !^((www\.|beta\.)?citadelo.hu)

•  # a zaroven nie sme podla geoip SK|HU|CZ •  RewriteCond %{ENV:GEOIP_COUNTRY_CODE} !(^(SK|HU|CZ)$)

•  # tak zobrazime /en •  RewriteRule ^$ /en [L] •  RewriteCond %{ENV:GEOIP_COUNTRY_CODE} ^HU$ [OR] •  RewriteCond %{HTTP_HOST} ^(www\.|beta\.)?citadelo.hu

•  RewriteRule ^$ /hu [L]

Page 21: Nehacknutelny web

Nepriestrelný  web  –  HOW  TO  

•  Predsalen  nejaký  akevny  prvok?  •  ProxyPass /mam-zaujem-o-audit-bezpecnosti/ http://cms.citadelo.com/mam-zaujem-o-audit-bezpecnosti/

•  ProxyPassReverse /mam-zaujem-o-audit-bezpecnosti/ http://cms.citadelo.com/mam-zaujem-o-audit-bezpecnosti/

Page 22: Nehacknutelny web

Nepriestrelný  web  –  HOW  TO  

•  Po  zmene  obsahu  v  CMS  je  potrebné  vypublikovať  obsah  cez  d2s.sh  •  AutomaLcky  –  periodicky  z  CRONu  •  Manuálne  –  skript  vyvolaný  z  webu  •  Manuálne  –  skript  vyvolaný  cez  ssh    

Page 23: Nehacknutelny web

Nepriestrelný  web  –  Limity  

•  Vyhľadávanie  •  Diskusie  •  Live  chat  •  A/B  tesLng  

Page 24: Nehacknutelny web

Nepriestrelný  web  

•  PrakLcky  nehacknuteľný  web  •  Vhodné  pre  prezentačné  weby  bez  akevnych  prvkov  

•  Alebo  weby  s  akevnymi  prvkami,  ktoré  vieme  outsourcovať