Controleren of databasepoorten blootgesteld zijn aan internet

Host
Only scan hosts you own of have explicit permission naar probe. The scan checks ~20 well-known TCP ports.
Volgende

Een database die reageert op het openbare internet is een van de meest voorkomende serverfouten. Vul je server in en kijk of MySQL (3306), PostgreSQL (5432) of Redis (6379) een verbinding van buitenaf accepteren. Als er geen verschijnt, zijn ze vanaf hier niet bereikbaar.

Zo test je op blootgestelde databases

  1. 1

    Vul het serveradres in

    Gebruik de publieke hostnaam of het IP-adres van de machine waarop de database draait.

  2. 2

    Start de scan

    Klik op Volgende en daarna op Veelvoorkomende poorten scannen.

  3. 3

    Controleer 3306, 5432 en 6379

    Staat een van deze in de lijst, dan accepteert die dienst verbindingen vanaf internet.

  4. 4

    Repareer wat privé moet blijven

    Koppel de dienst aan een privéadres of sluit de poort in de firewall, en scan daarna opnieuw.

Waarom blootstelling ertoe doet

Databases en caches zijn bedoeld om door je eigen applicatie te worden gebruikt, niet door vreemden. Redis draait in standaardinstellingen vaak zonder wachtwoord, en een bereikbare MySQL- of PostgreSQL-poort nodigt uit tot het raden van wachtwoorden. Deze poorten buiten het openbare internet houden is een basale voorzorgsmaatregel.

Wat elk resultaat betekent

Poort Dienst Als de poort in de lijst staat
3306 MySQL De server accepteert TCP-verbindingen vanaf internet
5432 PostgreSQL Hetzelfde, controleer toegangsregels en bind-adres
6379 Redis Hetzelfde, controleer of er een wachtwoord is en of het bind-adres privé is

Een open poort betekent niet dat de database onbeschermd is. Authenticatie en hostregels kunnen de login nog steeds weigeren. Wel betekent het dat de dienst bereikbaar is en nader bekeken moet worden.

Typische oplossingen

  1. Koppel de database aan localhost of aan een privénetwerk.
  2. Voeg een firewallregel toe die de poort alleen toestaat vanaf je applicatieservers.
  3. Controleer bij cloudservers ook de security group of de netwerk-ACL, naast de firewall van de host.
  4. Scan opnieuw om te bevestigen dat de poort niet meer verschijnt.

Beperkingen van deze controle

Alleen de drie standaardpoorten worden getest. Een database op een aangepaste poort wordt niet gevonden. Gesloten, gefilterde en onbereikbare poorten geven hetzelfde lege resultaat. Een schone scan betekent dus alleen dat deze poorten vanaf hier geen verbinding hebben geaccepteerd, meer niet. Scan alleen servers die van jou zijn of die je beheert.

Wanneer blootstelling bewust is

Sommige opstellingen maken een database met opzet bereikbaar, bijvoorbeeld een beheerde dienst die verbindingen accepteert van een lijst toegestane adressen, of een replica waarmee andere regio’s verbinding maken. Dan is een open poort in deze scan te verwachten. De vraag die je moet stellen is of de toegestane lijst de toegang echt beperkt. Je controleert dat door te bevestigen dat de poort zich gedraagt zoals bedoeld vanaf adressen buiten die lijst.

Als je blootstelling niet bedoeld was, behandel een open databasepoort dan als een bevinding die je vandaag moet oplossen. Kijk daarna in de databaselogs naar verbindingspogingen van adressen die je niet herkent.

Veelgestelde vragen

Nee. Hij opent alleen een TCP-verbinding met de poort en meldt of die is geaccepteerd. Hij stuurt geen inloggegevens en voert geen query’s uit.

Nee. Alleen de standaardpoorten uit de vaste lijst worden getest, dus een database op een andere poort wordt niet gecontroleerd.

Niet altijd, want authenticatie en versleuteling kunnen hem nog beschermen. Maar blootstelling vergroot het aanvalsoppervlak, daarom houden de meeste opstellingen deze poorten privé.

De firewall staat mogelijk alleen het adres van je kantoor toe. De scan komt van een ander publiek adres en ziet dus wat iedereen ziet, en dat is precies het doel van de controle.

Gerelateerde tools

Tool beschikbaar in andere talen

Handleidingen en toepassingen