Vraag:
Is wachtwoordinformatie die uit de MySQL-gebruikerstabel wordt gedumpt, gevoelig?
Suma
2018-08-30 18:13:28 UTC
view on stackexchange narkive permalink

Veronderstel dat ik de MySQL-gebruikerslijst heb gedumpt met

SELECT gebruiker, host, wachtwoord, ssl_type FROM mysql.user;

Het resultaat ziet er als volgt uit :

  + ------------------ + ----------- + ------- ------------------------------------ + ---------- + | gebruiker | gastheer | wachtwoord | ssl_type | + ------------------ + ----------- + ---------------- --------------------------- + ---------- + | admin | % | * blablablablablablablablablablablablablablaa | ELK | + ------------------ + ----------- + ---------------- --------------------------- + ---------- +  

Moet deze informatie als gevoelig worden beschouwd? Kan een aanvaller de wachtwoordinformatie gebruiken om toegang te krijgen tot de MySQL-database? Het lijkt erop dat het wachtwoord gehasht is, daarom is het niet direct bruikbaar, maar misschien kan het toch op de een of andere manier worden misbruikt, bijv. om te helpen bij het maken van regenboogtabellen voor mijn server, of zoiets?

Vijf antwoorden:
ThoriumBR
2018-08-30 18:28:06 UTC
view on stackexchange narkive permalink

Ja, het is gevoelige informatie. Het is een wachtwoord-hash-lek.

Aanvallers leveren deze informatie aan een bruteforce-applicatie (er zijn er een die speciaal voor MySQL zijn gemaakt) en halen het wachtwoord op.

Niet alleen dit, maar ook de % op het hostveld betekent dat als uw MySQL-poort (standaard 3306) niet door een firewall is beveiligd, de aanvaller deze overal kan openen als admin .

Overweeg om het admin -account alleen voor localhost te vergrendelen en maak nooit een wachtwoordhash vrij, hoe zeker je ook bent over de moeilijkheid om zo'n hash te kraken.

Ik ben niet bekend met de details van MySQL-wachtwoordtabellen, maar de meest populaire manier om verbinding te maken met een MySQL-server is via een socket op bestandssysteemniveau.Dit is volledig immuun voor firewallproblemen.
In de nieuwe versies is het waar.Maar oudere versies openden vroeger een TCP-socket op `0.0.0.0`.
De% is slechts de hostnaamcontrole van mysql, het heeft niets te maken met het al dan niet aanwezig zijn van een firewall
"Firewalled" is misschien niet de beste term: de `%` in het host-veld betekent dat toegang is toegestaan vanaf elk IP-adres.Dit wordt hosttoegangscontrole genoemd en is niet echt gerelateerd aan de firewall.
Het is ook vermeldenswaard dat [MySQL-wachtwoorden] (https://dev.mysql.com/doc/refman/5.6/en/password-hashing.html) [niet gezouten] zijn (https: //dba.stackexchange.com / vragen / 53735 / waarom-zijn-de-wachtwoorden-in-mysql-5-x-niet-gezouten), en omdat het in feite SHA1-hashes zijn, kunnen ze bruut worden afgedwongen.
@jjmontes zowel gezouten als ongezouten SHA1 kan ook bruut geforceerd worden.Ongezouten wachtwoord kan zijn ["rainbow-tabled"] (https://stackoverflow.com/a/421081/4209853)
Royce Williams
2018-08-30 20:48:10 UTC
view on stackexchange narkive permalink

Niet alleen zijn de wachtwoorden zelf inherent gevoelig (zoals de andere antwoorden terecht aangeven als het primaire risico) ... maar de informatie die ze bevatten is vaak ook gevoelig .

Zodra de hashes zijn gekraakt, bevatten veel wachtwoorden verjaardagen, kindernamen, telefoonnummers, de-facto antwoorden op veiligheidsvragen, straatadressen ... zelfs burgerservicenummers!

We onthouden wat belangrijk is voor ons - en wat persoonlijk is voor ons. Dit zorgt voor wachtwoorden met een geweldige UX ... maar ze zijn vreselijk vanuit een beveiligingsperspectief.

Deze psychologie van wachtwoordselectie moet als een beperking worden beschouwd. Aangezien veel gebruikers op deze manier wachtwoorden kiezen, moeten ze dienovereenkomstig worden behandeld en beschermd.

Ik weet niet zeker of dit van toepassing is, omdat het de daadwerkelijke MySQL-gebruikerstabel is (ik miste dat in het begin ook).
Eerlijk.Hoewel wachtwoorden voor MySQL-gebruikers ook door mensen worden geselecteerd.
Goede informatie over de secundaire informatie van het wachtwoordlek - niet vaak nagedacht over de inhoud van een wachtwoord versus alleen een reeks tekens die een wachtwoord zijn.
Het belangrijkste risico van gelekte wachtwoorden zijn Account Take Over-aanvallen (ATO) op andere sites.Als ik zie dat je e-mailadres roycew@example.net is en je wachtwoord kraak, probeer ik overal anders in te loggen met die inloggegevens: Citibank, WellsFargo, Walmart, Amazon, etc.
Ik ga akkoord.Ik bedoelde niet te suggereren dat mijn antwoord als het * primaire * risico moet worden beschouwd.Mijn antwoord was bedoeld om mensen te helpen bedenken dat het toestaan van gebruikers om hun eigen wachtwoorden te kiezen, betekent dat u noodzakelijkerwijs persoonlijke informatie over die gebruikers * opslaat binnen de wachtwoorden zelf * - niets meer.Ik heb letterlijk * echte creditcardnummers * gezien in de wachtwoorden van mensen.Niet wijdverbreid - maar de gegevens zijn er.Het is gewoon niet iets op de radar van de meeste compliance- en dreigingsmodellering die ik heb gezien.
Sjoerd
2018-08-30 19:20:08 UTC
view on stackexchange narkive permalink

Het is mogelijk om het originele wachtwoord uit een hash te halen met behulp van een hulpprogramma voor het kraken van wachtwoorden, zoals John the Ripper of hashcat. Deze tools proberen gewoon veel wachtwoorden bij een brute-force aanval. Dit kan lang duren, afhankelijk van de complexiteit van het wachtwoord.

Mr. E
2018-08-31 05:05:32 UTC
view on stackexchange narkive permalink

Ja, het is gevoelig. Een aanvaller kan proberen de hash te "kraken" door middel van bruteforce-pogingen of woordenboekaanvallen. In alle gevallen die ik heb gezien, zijn MySQL-wachtwoorden gezouten, maar als ze geen vooraf berekende hashtabel zijn, of regenboogtabellen kunnen worden gebruikt om het proces te versnellen.

Verder, als die hash is verkregen via een kwetsbaarheid voor SQL-injectie (zeer waarschijnlijk). Het is mogelijk dat een aanvaller probeert gegevens in de tabel in te voegen of bij te werken, afhankelijk van hoe de query is uitgevoerd. Als dit mogelijk is, kan de aanvaller eenvoudig een nieuwe gebruiker toevoegen of de hash van het beheerderswachtwoord wijzigen met een hash van een reeds bekend wachtwoord, waardoor de kraakstap volledig wordt overgeslagen.

Connor J
2018-08-30 18:24:52 UTC
view on stackexchange narkive permalink

als een aanvaller in staat is om de hash van een wachtwoord te krijgen, zoals op de manier die hierboven is beschreven, dan is het mogelijk om te proberen de botsing van die hash te vinden met behulp van regenboogtabellen if salting is niet gebruikt.

Als salting is gebruikt, wordt de moeilijkheid om wachtwoorden te kraken veel moeilijker.

BEWERK: Voor de duidelijkheid - als ik verwijs naar zouten, bedoelde ik dat het bij zouten kan worden gedaan door een externe tool / proces, en gewoon worden opgeslagen in de database, en niet dat MySQL enige input had in het proces naast het opslaan van de waarden. Excuses aan degenen die in de war zijn!

Ik weet het niet zeker, maar ik denk dat MySQL geen salting gebruikt.Zie [Waarom zijn de wachtwoorden in MySQL (5.x) niet gezouten?] (Https://dba.stackexchange.com/questions/53735/why-are-the-passwords-in-mysql-5-x-not-gezouten)
Ik ben bang dat dit boven mijn huidige MySQL-kennisniveau ligt.Ik heb geen idee wat MySQL met het wachtwoord doet voordat het in de tabel wordt opgeslagen.(Ik heb het over de MySQL-tabel met eigen gebruikers.)
Vrij zeker dat MySQL niet salt, maar het maakt ook niet zoveel uit voor MySQL als voor websites.Rainbow-tabellen zijn eigenlijk alleen nuttig om te proberen grote aantallen wachtwoorden tegelijkertijd te kraken.Met MySQL zie je waarschijnlijk niet meer dan een paar wachtwoorden tegelijk, dus regenboogtabellen zijn minder relevant.
@ConorMancone Rainbow-tabellen kunnen nog steeds nuttig zijn voor één wachtwoord, aangezien u de tabel kunt berekenen voordat u toegang heeft tot het wachtwoord.Niet _as_ nuttig, maar het is nog steeds een mogelijkheid.
@AndrolGenhald MySQL zal waarschijnlijk niet zouten, maar overal hetzelfde hash-algoritme gebruiken, dus ik wed dat je een vooraf berekende regenboogtabel voor MySQL-hashes kunt vinden.Dat zou super handig zijn.Er is zelfs geen poging tot kraken vereist, ervan uitgaande dat het wachtwoord eenvoudig genoeg is om op tafel te liggen.


Deze Q&A is automatisch vertaald vanuit de Engelse taal.De originele inhoud is beschikbaar op stackexchange, waarvoor we bedanken voor de cc by-sa 4.0-licentie waaronder het wordt gedistribueerd.
Loading...