https://lynt.cz @smitka03.11.2018 1
Otevřená data (anglicky Open data) jsou informace a data zveřejněná na internetu, která jsou úplná, snadno dostupná, strojově čitelná, používající standardy s volně
dostupnou specifikací, zpřístupněná za jasně definovaných podmínek užití dat s minimem omezení a dostupná uživatelům při vynaložení minima možných
nákladů. -- wikipedia
https://lynt.cz @smitka
Vláďa Smitka
@smitka
Lynt services s.r.o.
03.11.2018 2
Co ukázal globální scan přístupných .git adresářů?
https://lynt.cz @smitka
Starší výzkumy a články
• Stav WordPress instalací v ČR– https://lynt.cz/blog/wordpress-v-cz-velky-pruzkum
• Průzkum WordPress na Slovensku– https://lynt.cz/blog/wordpress-v-sk-pruzkum
• Technické zpracování webů prezidentských kandidátů– https://lynt.cz/blog/prezident-2018
• Nejčastější problémy moderních webů– https://lynt.cz/blog/10-nejcastejsich-problemu-
modernich-webu
03.11.2018 5
https://lynt.cz @smitka
Otevřené .git repozitáře
• /.git/ => rekonstrukce zdrojového kódu
• Přehlédnutí kvůli 403
• /.git/HEAD
• /.git/config
• /.git/index
• /.git/logs/HEAD
• https://lynt.cz/blog/globalni-scan-otevrenych-git-repozitaru
03.11.2018 6
https://lynt.cz @smitka
"V repozitáři přeci nikdo nemá citlivá data"
03.11.2018 10
https://lynt.cz @smitka
Skutečnost?
• Hesla k DB
• API klíče
• Hesla k SMTP
03.11.2018 11
https://lynt.cz @smitka
Další zajímavosti
• Zálohy
• Dočasné soubory
• Dumpy DB
• Inicializační DB
• Zálohovací skripty
• Obslužné skripty
• .idea
03.11.2018 13
https://lynt.cz @smitka03.11.2018 14
/.idea/webServers.xml
https://lynt.cz @smitka
Endpointy
03.11.2018 15
• File managery• Rozesílače e-mailů• Skrytá "API"• Adminer• Chyby v kódech a knihovnách
https://lynt.cz @smitka
Novinka?
• https://en.internetwache.org/dont-publicly-expose-git-or-how-we-downloaded-your-websites-sourcecode-an-analysis-of-alexas-1m-28-07-2015/
• https://news.ycombinator.com/item?id=838981 (2009)
03.11.2018 16
https://lynt.cz @smitka
Scan - kde vzít cíle?
• IP rozsah
– Jej jich docela hodně (necelé 4 miliardy)
– Mnoho sdílených serverů
– Hodně Honeypotů
• Seznam domén
– Reálnější cíle
03.11.2018 17
https://lynt.cz @smitka
Kde vzít seznam domén?
• SK - https://sk-nic.sk/subory/domains.txt• CZ - neveřejné, https://github.com/spaze/domains• Globál
– Alexa Top 1M • http://s3.amazonaws.com/alexa-static/top-1m.csv.zip• Dobré pro statistické výzkumy, málo pro změnu.
– Rapid 7 OpenData• https://opendata.rapid7.com/
– Certificate Transparency - CTL• https://medium.com/cali-dog-security/parsing-certificate-
transparency-lists-like-a-boss-981716dc506
– Censys.io• https://censys.io/
03.11.2018 18
https://lynt.cz @smitka
Rapid 7 - OpenData
• FDNS Log - 150 GB JSON• 1 500 000 000 záznamů + vlastní zdroje
• Redukce– Pouze A/CNAME– Domény 2. řádu– Subset TLD (.com, .eu, .cz,…)– Přeskakovat free domény (.tk, .ml, .ga, .cf, .gq)– Odstranit "strojová jména" (ip-8-8-8-8.net)– Tip: Pouze domény s existujícím MX
03.11.2018 19
https://lynt.cz @smitka
Rozložení domén v původním datasetu
142 841 000 com 1 025 000 it14 958 000 net 999 000 top11 674 000 org 989 000 ch
9 067 000 de 964 000 cf6 044 000 info 806 000 club4 060 000 ru 803 000 ga2 209 000 biz 797 000 cn1 867 000 nl 713 000 online1 770 000 us 651 000 gq1 487 000 loan 640 000 pl1 442 000 tk 635 000 ml1 384 000 fr 630 000 cz1 315 000 xyz 603 000 es1 182 000 eu 572 000 be1 032 000 ca 489 000 se
03.11.2018 20
https://lynt.cz @smitka
Jak to probíhalo?
• Test technologií - python + asyncio/aiohttp
• 4 týdny
• Maximum 18 malých VPS + 4 fyzické stroje
• 300$
• Přes 100 abuse (stížností), nejvíce z Jižní Korei
• To se příliš nelíbilo poskytovatelům VPS
03.11.2018 22
https://lynt.cz @smitka
390 000 webůs přístupným .git adresářem
03.11.2018 24
https://lynt.cz @smitka
/.git/logs/HEAD
• E-maily přímo na vývojáře
• 30% repozitářů neobsahuje nic co vypadá jako validní mail
03.11.2018 25
https://lynt.cz @smitka
Security.txt
03.11.2018 26
https://securitytxt.org/snadné nalezení kontaktu pro hlášení bezpečnostních problémů
Pouze na 8 webech…
https://lynt.cz @smitka
Oslovování
• 100 000 e-mailů
• Jak je poslat?
– Bounce rate 10-30% => nelíbí se provozovatelům
– Vlastní SMTP s podporou TLS, DKIM
03.11.2018 27
https://lynt.cz @smitka
Vývojáři jsou rádi,když je někdo na chybu upozorní
03.11.2018 29
https://lynt.cz @smitka03.11.2018 32
/fabfile.py => 403/fabfile.pyc => 200
https://lynt.cz @smitka
Redukce false positive ve 2. várce
• Test nastavení remote origin na github
• Prověření indexu, zda obsahuje dynamické soubory
03.11.2018 33
https://lynt.cz @smitka
😠 jednotky negativních reakcí
✋ několik desítek false positive notifikací
🗨️ > 100 pozitivních komentářů
❤️ > 3000 děkovných mailů z celého světa
03.11.2018 34
https://lynt.cz @smitka
150 000 webůopraveno 2 měsíce od scanu
03.11.2018 35
👍
👎 240 000 zbývá…
https://lynt.cz @smitka
Jaktože je tolik Python a Ruby?
• U většiny postižených webů šlo stáhnout všechny soubory (.py, .rb)!!!
• Včetně souborů mimo repozitář
03.11.2018 40
https://lynt.cz @smitka
Špatně nakonfigurovaný websererver# Serve static files and redirect any other request to Gunicornserver {listen 80;server_name domain.com;root /var/www/domain.com/;
# Check if a file exists at /var/www/domain/ for the incoming request.# If it doesn't proxy to Gunicorn/Django.try_files $uri @django;
# Setup named location for Django requests and handle proxy detailslocation @django {proxy_pass http://django;proxy_redirect off;proxy_set_header Host $host;
}}
03.11.2018 41
https://django-best-practices.readthedocs.io/en/latest/deployment/servers.html
https://lynt.cz @smitka
Další problematické konfigurace
if (!-f $request_filename) {
proxy_pass @app;
break;
}* https://www.nginx.com/resources/wiki/start/topics/tutorials/config_pitfalls/#check-if-file-exists
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^/(.*)$ http://app/$1 [P]
03.11.2018 42
https://lynt.cz @smitka
Desítky tisíc webů má server nakonfigurovaný pro vracení všech
existujících souborů!
03.11.2018 43
Co s tím uděláme?
https://lynt.cz @smitka
Díky za pozornost!
03.11.2018 44
Sledujte můj twitter @smitka.Koukněte na mé starší prezentace na SlideShare.
Feedback: http://a.openalt.cz/3
Náměty na další výzkumy:https://en.internetwache.org/scanning-the-alexa-top-1m-for-ds-store-files-12-03-2018/https://infosec.rm-it.de/2018/08/19/scanning-the-alexa-top-1m-sites-for-dockerfiles/