Otvorené databázové porty: MySQL, PostgreSQL, MongoDB, Redis a Elasticsearch
Databázový port je otvorený, keď sa k nemu môže pripojiť ktokoľvek na internete. Vaša aplikácia sa k databáze dostať potrebuje, náhodný počítač v inej krajine nie. Napriek tomu stačí jediné pravidlo firewallu, zmenený riadok konfigurácie alebo predvolené nastavenie v cloude a MySQL, PostgreSQL, MongoDB, Redis či Elasticsearch začnú odpovedať celému internetu.
Otvorený port ešte neznamená únik údajov. Ak je prihlasovanie dobre zabezpečené a softvér aktuálny, útočník musí prekonať aj tie. Otvorený port však znamená, že databázu môže ktokoľvek skúmať, skúšať na nej heslá a testovať známe zraniteľnosti. Keď ho zatvoríte, celý tento druh rizika zmizne.
V článku nájdete predvolené porty, postup, ako ich skontrolovať zvonku, a návod, ako ich správne zatvoriť.
Predvolené porty, ktoré by ste mali poznať
Toto sú predvolené porty podľa dokumentácie jednotlivých výrobcov:
- MySQL: 3306 pre klasický protokol, 33060 pre X Protocol.
- PostgreSQL: 5432.
- MongoDB: 27017 pre
mongodamongos. - Redis: 6379, ako uvádza predvolený
redis.conf. - Elasticsearch: HTTP API na prvom voľnom porte v rozsahu 9200 až 9300, zvyčajne 9200, a transportná vrstva na 9300 až 9400.
Služby môžu bežať aj na iných portoch, preto tento zoznam berte ako východisko, nie ako úplnú kontrolu.
Ako sa databázy dostanú na internet
Väčšina týchto produktov je dnes v predvolenom nastavení bezpečnejšia než kedysi:
listen_addressesv PostgreSQL má predvolenú hodnotulocalhost.- MongoDB predvolene počúva len na localhost.
- Redis od verzie 3.2.0 beží v chránenom režime, keď počúva na všetkých rozhraniach bez hesla, a vtedy odpovedá len lokálnym klientom.
- Elasticsearch od verzie 8.0 zapína zabezpečenie automaticky pri prvom spustení.
Databáza sa preto na internet zvyčajne dostane zámernou zmenou, ktorá mala byť len dočasná:
- niekto nastavil
bind-address = 0.0.0.0,listen_addresses = '*'alebobindIpAll, aby sa vývojár mohol pripojiť z domu, - niekto vypol chránený režim alebo zabezpečenie, „aby to fungovalo“,
- bezpečnostná skupina v cloude alebo pravidlo firewallu povoľuje port z
0.0.0.0/0, - Docker s
-p 6379:6379zverejní port na všetkých rozhraniach hostiteľa, - starý testovací alebo staging server s vlastnou databázou nikto nevypol.
Dokumentácia Redisu hovorí o riziku priamo: Redis je navrhnutý pre dôveryhodných klientov v dôveryhodnom prostredí a vystavená inštancia môže prísť o všetky dáta jediným príkazom FLUSHALL.
Ako to skontrolovať zvonku
Kontrola musí bežať mimo vašej siete, inak otestujete len internú cestu. Použite počítač na inom pripojení (virtuálny server v cloude, hotspot z telefónu) a testujte len IP adresy, ktoré vlastníte:
for port in 3306 5432 27017 6379 9200 9300; do
nc -z -w 3 203.0.113.10 $port && echo "$port open" || echo "$port closed"
done
Priamo na serveri zistíte, na akých adresách jednotlivé služby počúvajú:
sudo ss -tlnp | grep -E ':(3306|5432|27017|6379|9200|9300)\b'
Chcete vidieť 127.0.0.1:5432 alebo súkromnú adresu. 0.0.0.0:5432 alebo [::]:5432 znamená, že služba počúva na všetkých rozhraniach a medzi ňou a internetom stojí už len firewall.
Otvorené porty každej IP adresy na internete si indexujú aj internetové skenery. Ak chcete rýchlo vidieť, čo zaznamenali pri niektorej z vašich adries, Shodan ponúka jednoduché vyhľadávanie na https://internetdb.shodan.io/<your-ip>.
Ako port správne zatvoriť
Zatvárajte na 2 úrovniach, aby jediná chyba databázu znova neotvorila do internetu:
- Nechajte službu počúvať len na súkromných rozhraniach.
bind-address = 127.0.0.1(MySQL),listen_addresses = 'localhost'alebo súkromná IP (PostgreSQL),net.bindIp(MongoDB),bind 127.0.0.1sprotected-mode yes(Redis),network.hostna súkromnej adrese (Elasticsearch). - Obmedzte prístup na úrovni siete. Firewall alebo bezpečnostná skupina v cloude by mala povoliť databázový port len z vašich aplikačných serverov.
- Vzdialený prístup cez tunel. Vývojári sa pripájajú cez tunely SSH alebo VPN, nikdy cez otvorený port.
- Vyžadujte overovanie všade, aj vo vnútorných sieťach: používatelia s minimálnymi oprávneniami, dlhé heslá a TLS pre spojenia, ktoré vychádzajú mimo daného servera.
- Udržiavajte softvér aktuálny, aby port, ak ho niekedy omylom otvoríte, aspoň nebežal na verzii so známymi zraniteľnosťami.
Ak bola databáza vystavená so slabým alebo žiadnym overovaním, počítajte s tým, že jej dáta mohol niekto skopírovať: zmeňte prístupové údaje, prejdite logy a zvážte, či vám nevznikla oznamovacia povinnosť.
Krátky kontrolný zoznam
- Spíšte všetky IP adresy, ktoré vaša firma na internete používa, vrátane starých serverov.
- Otestujte bežné databázové porty zvonku.
- Overte, že každá databáza počúva len na localhost alebo na súkromnej adrese.
- Databázové porty povoľte vo firewalle len z aplikačných serverov.
- Kontrolu zopakujte po každej migrácii, novom serveri alebo zmene v Dockeri.
Otvorené služby sa zriedka vyskytujú osamote. Často bežia na tých istých zabudnutých staging serveroch, z ktorých unikajú aj súbory .env a zálohy.
Ako pomáha Datahorses
Datahorses stráži vašu firmu každý deň zvonku. Ukazuje, ktoré služby na vašich IP adresách vidí útočník, vrátane databázových portov a vzdialeného prístupu ako RDP či SSH, aj známe zraniteľnosti verzií, ktoré tieto služby prezrádzajú. Do vašich systémov nevstupujeme a nepotrebujeme žiadne prístupy. Každé zistenie príde s presnými krokmi pre vášho vývojára, ako opisujeme v časti čo sa stane, keď niečo nájdeme. Ako taká správa vyzerá, uvidíte v ukážkovom dashboarde.
Ďalšie články
Monitoring útočnej plochy vs. EDR a XDR: doplnok, nie konkurencia
EDR a XDR sa pozerajú dovnútra: na zariadenia, prihlásenia a procesy. Monitoring externej útočnej plochy sa na firmu pozerá z internetu. Prečo potrebujete oba pohľady.
Požiadavky Gmailu a Yahoo na odosielateľov: čo sa zmenilo v roku 2024 a čo skontrolovať
Od februára 2024 Gmail a Yahoo očakávajú od hromadných odosielateľov overenú a zarovnanú poštu a jednoduché odhlásenie. Čo pravidlá hovoria a ako skontrolovať vlastnú doménu.
PHP2Shell: ktoré verzie PHP sú opravené a ako zistiť tú vašu
Projekt PHP 21. 10. 2026 opravil 2 kritické chyby. Prinášame prehľad verzií s opravou, postup, ako zistiť, čo hlási váš server, a na čo sa opýtať poskytovateľa hostingu.