SlideShare uma empresa Scribd logo
1 de 45
https://lynt.cz @smitka
Vláďa Smitka
vladimir.smitka@lynt.cz
@smitka
Lynt services s.r.o.
03.11.2018 1
Co ukázal globální scan
přístupných .git adresářů?
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 @smitka03.11.2018 3
https://lynt.cz @smitka03.11.2018 4
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 @smitka03.11.2018 7
https://lynt.cz @smitka03.11.2018 8
https://lynt.cz @smitka03.11.2018 9
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 @smitka03.11.2018 12
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=8389
81 (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 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
230 000 000 domén
03.11.2018 21
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 @smitka03.11.2018 23
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 @smitka03.11.2018 28
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 30
https://lynt.cz @smitka03.11.2018 31
https://lynt.cz @smitka03.11.2018 32
https://lynt.cz @smitka03.11.2018 33
/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 34
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 35
https://lynt.cz @smitka
150 000 webů
opraveno 2 měsíce od scanu
03.11.2018 36
👍
👎 240 000 zbývá…
https://lynt.cz @smitka03.11.2018 37
https://lynt.cz @smitka03.11.2018 38
https://lynt.cz @smitka03.11.2018 39
https://lynt.cz @smitka03.11.2018 40
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 41
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
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 43
https://lynt.cz @smitka
Desítky tisíc webů má server
nakonfigurovaný pro vracení všech
existujících souborů!
03.11.2018 44
Co s tím uděláme?
https://lynt.cz @smitka
Díky za pozornost!
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/

Mais conteúdo relacionado

Semelhante a Co ukázal globální scan přístupných .git repozitářů?

Nejčastejší problémy WordPress webů
Nejčastejší problémy WordPress webůNejčastejší problémy WordPress webů
Nejčastejší problémy WordPress webůVladimír Smitka
 
Najčastejšie problémy WordPress webov
Najčastejšie problémy WordPress webovNajčastejšie problémy WordPress webov
Najčastejšie problémy WordPress webovVladimír Smitka
 
Sítě pro malé a střední podniky 2014
Sítě pro malé a střední podniky 2014Sítě pro malé a střední podniky 2014
Sítě pro malé a střední podniky 2014Vladimír Smitka
 
Říjnový SEOloger 2019 - Screaming Frog a crawlování webů
Říjnový SEOloger 2019 - Screaming Frog a crawlování webůŘíjnový SEOloger 2019 - Screaming Frog a crawlování webů
Říjnový SEOloger 2019 - Screaming Frog a crawlování webůMartin Žatkovič
 
WordCamp Brno 2017 - rychlý a bezpečný web
WordCamp Brno 2017  - rychlý a bezpečný webWordCamp Brno 2017  - rychlý a bezpečný web
WordCamp Brno 2017 - rychlý a bezpečný webVladimír Smitka
 
Projekt Bitcoinová burza Coinmate
Projekt Bitcoinová burza CoinmateProjekt Bitcoinová burza Coinmate
Projekt Bitcoinová burza CoinmateProfinit
 

Semelhante a Co ukázal globální scan přístupných .git repozitářů? (6)

Nejčastejší problémy WordPress webů
Nejčastejší problémy WordPress webůNejčastejší problémy WordPress webů
Nejčastejší problémy WordPress webů
 
Najčastejšie problémy WordPress webov
Najčastejšie problémy WordPress webovNajčastejšie problémy WordPress webov
Najčastejšie problémy WordPress webov
 
Sítě pro malé a střední podniky 2014
Sítě pro malé a střední podniky 2014Sítě pro malé a střední podniky 2014
Sítě pro malé a střední podniky 2014
 
Říjnový SEOloger 2019 - Screaming Frog a crawlování webů
Říjnový SEOloger 2019 - Screaming Frog a crawlování webůŘíjnový SEOloger 2019 - Screaming Frog a crawlování webů
Říjnový SEOloger 2019 - Screaming Frog a crawlování webů
 
WordCamp Brno 2017 - rychlý a bezpečný web
WordCamp Brno 2017  - rychlý a bezpečný webWordCamp Brno 2017  - rychlý a bezpečný web
WordCamp Brno 2017 - rychlý a bezpečný web
 
Projekt Bitcoinová burza Coinmate
Projekt Bitcoinová burza CoinmateProjekt Bitcoinová burza Coinmate
Projekt Bitcoinová burza Coinmate
 

Mais de Vladimír Smitka

Google Tag Manager a analytika ve WordPress
Google Tag Manager a analytika ve WordPressGoogle Tag Manager a analytika ve WordPress
Google Tag Manager a analytika ve WordPressVladimír Smitka
 
WordPress - základy bezpečnosti
WordPress - základy bezpečnostiWordPress - základy bezpečnosti
WordPress - základy bezpečnostiVladimír Smitka
 
WordPress Security: Defend yourself against digital invaders
WordPress Security:Defend yourself against digital invadersWordPress Security:Defend yourself against digital invaders
WordPress Security: Defend yourself against digital invadersVladimír Smitka
 
WordPress: Základy - bezpečnost 3x3
WordPress: Základy - bezpečnost 3x3WordPress: Základy - bezpečnost 3x3
WordPress: Základy - bezpečnost 3x3Vladimír Smitka
 
WP výkon a jeho profilování
WP výkon a jeho profilováníWP výkon a jeho profilování
WP výkon a jeho profilováníVladimír Smitka
 
WordCamp Praha 2016 - Bezpečnost WordPress
WordCamp Praha 2016 - Bezpečnost WordPressWordCamp Praha 2016 - Bezpečnost WordPress
WordCamp Praha 2016 - Bezpečnost WordPressVladimír Smitka
 
WordPress performance tuning
WordPress performance tuningWordPress performance tuning
WordPress performance tuningVladimír Smitka
 
Bezpečnost WordPress pro začátečníky
Bezpečnost WordPress pro začátečníkyBezpečnost WordPress pro začátečníky
Bezpečnost WordPress pro začátečníkyVladimír Smitka
 
WordPress security for everyone
WordPress security for everyoneWordPress security for everyone
WordPress security for everyoneVladimír Smitka
 
Bezpečnost WP, tipy pro každého - wordCamp Praha 2015
Bezpečnost WP, tipy pro každého - wordCamp Praha 2015Bezpečnost WP, tipy pro každého - wordCamp Praha 2015
Bezpečnost WP, tipy pro každého - wordCamp Praha 2015Vladimír Smitka
 
České weby a Wordpress (Q4/2014)
České weby a Wordpress (Q4/2014)České weby a Wordpress (Q4/2014)
České weby a Wordpress (Q4/2014)Vladimír Smitka
 
Wordcamp Praha 2015 - další útržky z prezentace
Wordcamp Praha 2015 - další útržky z prezentaceWordcamp Praha 2015 - další útržky z prezentace
Wordcamp Praha 2015 - další útržky z prezentaceVladimír Smitka
 
Bezpečnost Wordpressu - 4. WP konference
Bezpečnost Wordpressu - 4. WP konferenceBezpečnost Wordpressu - 4. WP konference
Bezpečnost Wordpressu - 4. WP konferenceVladimír Smitka
 
Jak si (ne)nechat hacknout Wordpress stránky
Jak si (ne)nechat hacknout Wordpress stránkyJak si (ne)nechat hacknout Wordpress stránky
Jak si (ne)nechat hacknout Wordpress stránkyVladimír Smitka
 

Mais de Vladimír Smitka (20)

Google Tag Manager a analytika ve WordPress
Google Tag Manager a analytika ve WordPressGoogle Tag Manager a analytika ve WordPress
Google Tag Manager a analytika ve WordPress
 
Http/2 vs Image Sprites
Http/2 vs Image SpritesHttp/2 vs Image Sprites
Http/2 vs Image Sprites
 
Ansible
AnsibleAnsible
Ansible
 
WordPress - základy bezpečnosti
WordPress - základy bezpečnostiWordPress - základy bezpečnosti
WordPress - základy bezpečnosti
 
Wordfence 2016
Wordfence 2016Wordfence 2016
Wordfence 2016
 
WordPress Security: Defend yourself against digital invaders
WordPress Security:Defend yourself against digital invadersWordPress Security:Defend yourself against digital invaders
WordPress Security: Defend yourself against digital invaders
 
WordPress: Základy - bezpečnost 3x3
WordPress: Základy - bezpečnost 3x3WordPress: Základy - bezpečnost 3x3
WordPress: Základy - bezpečnost 3x3
 
Instalace WordPress
Instalace WordPressInstalace WordPress
Instalace WordPress
 
WP výkon a jeho profilování
WP výkon a jeho profilováníWP výkon a jeho profilování
WP výkon a jeho profilování
 
WordCamp Praha 2016 - Bezpečnost WordPress
WordCamp Praha 2016 - Bezpečnost WordPressWordCamp Praha 2016 - Bezpečnost WordPress
WordCamp Praha 2016 - Bezpečnost WordPress
 
WordPress performance tuning
WordPress performance tuningWordPress performance tuning
WordPress performance tuning
 
Výkon WordPress
Výkon WordPressVýkon WordPress
Výkon WordPress
 
Bezpečnost WordPress pro začátečníky
Bezpečnost WordPress pro začátečníkyBezpečnost WordPress pro začátečníky
Bezpečnost WordPress pro začátečníky
 
WordPress security for everyone
WordPress security for everyoneWordPress security for everyone
WordPress security for everyone
 
Bezpečnost WP, tipy pro každého - wordCamp Praha 2015
Bezpečnost WP, tipy pro každého - wordCamp Praha 2015Bezpečnost WP, tipy pro každého - wordCamp Praha 2015
Bezpečnost WP, tipy pro každého - wordCamp Praha 2015
 
České weby a Wordpress (Q4/2014)
České weby a Wordpress (Q4/2014)České weby a Wordpress (Q4/2014)
České weby a Wordpress (Q4/2014)
 
Wordcamp Praha 2015 - další útržky z prezentace
Wordcamp Praha 2015 - další útržky z prezentaceWordcamp Praha 2015 - další útržky z prezentace
Wordcamp Praha 2015 - další útržky z prezentace
 
Dijskrův algoritmus
Dijskrův algoritmusDijskrův algoritmus
Dijskrův algoritmus
 
Bezpečnost Wordpressu - 4. WP konference
Bezpečnost Wordpressu - 4. WP konferenceBezpečnost Wordpressu - 4. WP konference
Bezpečnost Wordpressu - 4. WP konference
 
Jak si (ne)nechat hacknout Wordpress stránky
Jak si (ne)nechat hacknout Wordpress stránkyJak si (ne)nechat hacknout Wordpress stránky
Jak si (ne)nechat hacknout Wordpress stránky
 

Co ukázal globální scan přístupných .git repozitářů?