Upload
security-session
View
230
Download
2
Embed Size (px)
Citation preview
Nehacknuteľný web
Tomáš Zaťko
Ako prebieha bežný deface webu?
• Deravé CMS-‐ko • SQLi • File upload • atď
• Deravé systémy web hosLng providera • Ukradnuté heslo
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
Útok na systém admina
• Rôzne vektory infikácie • Trojan • Keylogger
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ý
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
Webový server
• Web server samotný • Akevne moduly • Konfigurácia
Webový server
• RunLme aplikácie • Knižnice/moduly/rozšírenia • Aplikácia
OWASP Top 10 (2013)
OWASP Top 10 -‐ zmeny
Č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
Čo je úlohou bezpečnosL?
Nepriestrelný web?
• StaLcký web = nehacknuteľný web • Akevne prvky = amack surface • Žiadne akevne prvky = niet na čo útočiť
Nepriestrelný web?
• Back to nineLes!
Nepriestrelný 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
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
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/*
Nepriestrelný web – HOW TO
• Absolútne linky • AddOutputFilterByType SUBSTITUTE text/html • Substitute "s|https?://cms\.citadelo\..*/|/|I”
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]
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/
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
Nepriestrelný web – Limity
• Vyhľadávanie • Diskusie • Live chat • A/B tesLng
Nepriestrelný web
• PrakLcky nehacknuteľný web • Vhodné pre prezentačné weby bez akevnych prvkov
• Alebo weby s akevnymi prvkami, ktoré vieme outsourcovať