Przedstawiono mi argument dotyczący „nie potrzebujesz silnego hasła użytkownika mysql, ponieważ aby go użyć, mieliby oni już dostęp do twojego serwera”. Mówimy o 4-cyfrowym haśle, które jest standardowym słowem w słowniku angielskim na stronie internetowej firmy.
Nie wpływając na odpowiedzi z własnej wiedzy i doświadczenia, chciałbym pokazać im odpowiedzi z bezinteresownego źródła zewnętrznego. Czy ktoś ma ochotę włączyć się do tego? Programowanie / praktyczne odpowiedzi będą mile widziane.
root:root
loginów.1337
?Odpowiedzi:
Ktokolwiek wysunął ten argument, zdaje się mówić: „Gdy ktoś postawi stopę w drzwiach, równie dobrze możesz dać mu pełny dostęp”. Zgodnie z tą logiką zapora sieciowa eliminuje potrzebę stosowania wszystkich haseł w sieci wewnętrznej.
Silne hasła to jeden krok w kierunku ograniczenia szkód wyrządzonych przez wtargnięcie do sieci. Nie ma powodu, aby podnosić ręce do góry, ponieważ tylko jedna mała część twojej sieci została naruszona.
źródło
Naprawdę wraca do idei „ Defense in Depth ”, aby co najmniej silne hasło mogło je spowolnić, abyś mógł je odkryć i zablokować. Podoba mi się analogia posiadania jednego klucza dla zamkniętej społeczności w porównaniu do klucza na drzwiach każdego domu.
źródło
Wiele zależy od konfiguracji serwera MySQL. Jeśli akceptuje tylko żądania poza domowym adresem IP (127.0.0.1), oznacza to, że jest ono umiarkowanie bardziej bezpieczne.
Biorąc pod uwagę scenariusz, w którym zezwalasz na zdalne adresy IP, staje się to znacznie większą sprawą.
Oprócz tego zawsze dobrze jest mieć silne bezpieczeństwo w przypadku włamania - lepiej, aby odeszli jak najmniej.
źródło
Czy w rachunkowości jest blokada na kasie Petty Cash? Jeśli tak, dlaczego? Czy budynek nie ma fizycznego bezpieczeństwa?
źródło
Nie jest to prawdą, ponieważ mysql może być również używany w środowisku między sieciami klient-serwer, a domyślnie jedyne, czego potrzebujesz, to użytkownik / przepustka, aby uzyskać dostęp do bazy danych (offcourse, port 3306 otwarty i serwer publicznie widoczny ).
źródło
W rzeczywistości może być na odwrót: jeśli mają dostęp do mysql, mogą uzyskać dostęp do samego systemu operacyjnego serwera.
źródło
Jeśli ktoś uzyska dostęp root do twojego serwera, nie będzie potrzebował żadnego hasła MySQL. Ale jeśli mogą uruchamiać aplikacje na serwerze tylko jako użytkownik inny niż root i nie będący użytkownikiem sieci, silne hasło MySQL może nadal zapisywać dane. Ale tak, większość hacków pochodzi z sieci, co oznacza, że haker uzyska dostęp do twojego konta internetowego i może w ten sposób wyodrębnić hasło DB z plików PHP.
Wszystko to przy założeniu, że twój serwer MySQL nie akceptuje połączeń z dowolnego miejsca poza lokalnym hostem. Jeśli tak, to potrzebujesz silnego PW.
źródło
Coś, co wydaje się tutaj pominięte, to czy ufasz swoim użytkownikom w zaufanej sieci?
Szczerze mówiąc, nie wiem, bo wiem, jak byłem, kiedy zaczynałem w branży IT. Szturchałem i grzebałem w obszarach, do których nie miałem prawa, i szczerze mówiąc, słabe hasło do MySQL byłoby dla mnie przyjemnością, ponieważ skorzystałbym z szansy na szczęście i dostałem się, i mogłem siać spustoszenie (przez przypadek, oczywiście).
Co się stanie, jeśli ktoś użyje inżynierii społecznej, aby uzyskać dostęp do zaufanej sieci? Więc co robisz? Jeśli znajdują się na maszynie za zaporą firewall, to blammo, twoje solidne zabezpieczenia zapory są zrujnowane i trafiają prosto na maszynę.
Silne hasła są tak proste do zrobienia, a istnieje wiele narzędzi do zarządzania hasłami, które ułatwiają bezpieczeństwo haseł, więc naprawdę nie ma wymówki, aby tego nie robić.
źródło
localhost
/127.0.0.1
jako host. W ten sposób nikt nie może uzyskać dostępu do baz danych na zewnątrz (nawet tych w tej samej sieci).Eh Jeśli twój serwer jest zablokowany IP, a użytkownik jest ograniczony do SELECT na zestawie tabel, w których nie obchodzi Cię informacja, to nie jest wielka sprawa.
Z drugiej strony, ustawiam moje hasła MySQL, uderzając przez minutę w klawiaturę, i kopiuję wklejając powstały bełkot do chronionego pliku, do którego odwołuję się w kodzie za każdym razem, gdy muszę się zalogować. Tak to powinno działać.
Dlaczego to ułatwia? Jeśli hasło jest dołączone do ograniczonego konta lokalnego (jak wszystkie powinny być), to dlaczego je wpisujesz? Jeśli tak nie jest, powinno mieć hasło, którego siła zależy od wartości chronionych danych.
źródło
Informacje o koncie / dostępie do mySQL są przechowywane w osobnym pliku niż rzeczywiste bazy danych. W ten sposób możesz po prostu przeciągnąć i upuścić inny plik na jego miejsce. Z mySQL, jeśli mają dostęp do zapisu do odpowiedniej części twojego systemu plików, gra się kończy.
źródło
Ponieważ wymagania się zmieniają ...
Tak więc dzisiejszy serwer, który ogranicza się do akceptowania połączeń MySQL tylko z maszyną lokalną, może zostać jutro otwarty, aby można było użyć zewnętrznego narzędzia do zarządzania bazą danych. Osoba wykonująca tę konfigurację może nie wiedzieć, że używane są wyjątkowo słabe hasła.
Jeśli Twojemu użytkownikowi nie przeszkadza konieczność zapamiętania dobrego, silnego (np. Długiego, losowego) hasła, rozważ uczynienie go bardzo silnym, a następnie przechowywanie go w
.my.cnf
- nawet wygodniejszym niż posiadanie słabego hasła, które musi wpisać. Oczywiście ma to również wpływ na bezpieczeństwo, ale musisz gdzieś przechowywać hasło, na przykład aplikacje, które mają do niego dostęp, więc już zabezpieczasz kopie hasła.Przeczytaj także, co powiedział @meagar.
źródło
Założenie, że mieliby już dostęp, nie jest prawdziwe. Jeśli jednak mają dostęp i nie mają uprzywilejowanego konta, nadal mogą łatwo zhakować hasło mysql.
Ponadto, jeśli serwer jest serwerem produkcyjnym na żywo, to reklamujesz się w Internecie. oznacza to, że w pewnym momencie ktoś będzie próbował przeprowadzić atak brute force na tym serwerze, w tym mysql, zarówno port, jak i konto użytkownika.
jeśli zależy Ci na danych, podstawowe kroki to mieć inne hasło roota dla bazy danych niż dla użytkownika root. inni stwierdzili, że powinieneś mieć również najniższe możliwe uprawnienia dla użytkowników i programów.
4-znakowe hasło można zhakować w ciągu kilku minut na dość tanim komputerze.
Może po prostu powtarzam to, co powiedzieli inni, ale im więcej masz amunicji dla swojego menedżera, tym lepiej.
źródło
Wiele przyczyn z prawdziwego scenariusza było już wcześniej pisanych, więc dodam ten „filozoficzny”. Stosowanie silnych haseł i środków ostrożności w celu zwiększenia bezpieczeństwa to filozofia pracy. Sposób myślenia.
Używanie słabego hasła teraz, ponieważ mysql działa tylko na 127.0.0.1 i tylko użytkownik root ma do niego dostęp, pokazuje, że nie wybiegasz w przyszłość. Co się stanie, jeśli pewnego dnia będziesz musiał przyznać mysql dostęp przez sieć. Czy pamiętasz, aby objąć wszystkie zabezpieczenia, które pozostawiłeś?
Dobry administrator stawia najgorszy scenariusz na pierwszym miejscu w punkcie paranoi.
źródło
Zależy to od tego, jakie prawa ma użytkownik, należy zawsze blokować rzeczy na wielu poziomach. Zależy to również od danych przechowywanych w bazie danych. Powiedz też hipotetycznie, że w MySQL istnieje luka, która pozwala im przejąć całą bazę danych, ale wystarczyło zalogować się na dowolne konto użytkownika. Jeśli twoje hasło było silne, ta luka byłaby wyciszona. Ale tak naprawdę zależy to tylko od konkretnego przypadku.
źródło
Bardzo łatwo jest podszywać się pod kogoś innego w mysql. Biorąc pod uwagę identyfikator użytkownika bez hasła (najsłabsze zabezpieczenia) wystarczy użyć
mysql -u userid
. Jeśli ma hasło, jest nieco trudniejsze, ale słabe hasło ułatwia. Jeśli root nie ma hasła, mogę uzyskać dostęp do roota jakomysql -u root
. Mogę wtedy zrobić wszystko w bazie danych, co root.Dobrym pomysłem jest również użycie specyfikacji hosta w zabezpieczeniach, szczególnie jeśli zdalny dostęp jest lub może być dostępny.
Hasła w plikach mogą i powinny być w pewnym stopniu zabezpieczone przez uprawnienia. Dostęp przez root lub właściciela pliku haseł jest banalny. Jeśli to możliwe, należy użyć szyfrowania hasła na dysku. To sprawia, że dostęp jest nieco trudniejszy, ale nadal podatny na ataki.
źródło
Cóż, jeśli nie hostujesz bazy danych MySQL, ale jest ona w usłudze hostingowej i ktoś uzyskuje dostęp do adresu IP twojego serwera, nazwa użytkownika i hasło są ostatnią linią obrony. Zawsze dobrze jest mieć bezpieczną nazwę użytkownika / hasło.
źródło