https://lynt.cz @smitka03.11.2018 2
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
Starší výzkumya č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
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
18.
https://lynt.cz @smitka
Kde vzítseznam 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
19.
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
20.
https://lynt.cz @smitka
Rozložení doménv původním datasetu
142 841 000 com 1 025 000 it
14 958 000 net 999 000 top
11 674 000 org 989 000 ch
9 067 000 de 964 000 cf
6 044 000 info 806 000 club
4 060 000 ru 803 000 ga
2 209 000 biz 797 000 cn
1 867 000 nl 713 000 online
1 770 000 us 651 000 gq
1 487 000 loan 640 000 pl
1 442 000 tk 635 000 ml
1 384 000 fr 630 000 cz
1 315 000 xyz 603 000 es
1 182 000 eu 572 000 be
1 032 000 ca 489 000 se
03.11.2018 20
https://lynt.cz @smitka
Jak toprobí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
Redukce falsepositive ve 2. várce
• Test nastavení remote origin na github
• Prověření indexu, zda obsahuje dynamické
soubory
03.11.2018 34
35.
https://lynt.cz @smitka
😠 jednotkynegativní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 35
https://lynt.cz @smitka
Jaktože jetolik 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 41
42.
https://lynt.cz @smitka
Špatně nakonfigurovanýwebsererver
# Serve static files and redirect any other request to Gunicorn
server {
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 details
location @django {
proxy_pass http://django;
proxy_redirect off;
proxy_set_header Host $host;
}
}
03.11.2018 42
https://django-best-practices.readthedocs.io/en/latest/deployment/servers.html
https://lynt.cz @smitka
Díky zapozornost!
03.11.2018 45
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/