Zayıf bir mysql kullanıcı şifresine sahip olmak neden bu kadar kötü?


23

Bana "güçlü bir mysql kullanıcı şifresine ihtiyacınız yok çünkü kullanabilmek için zaten sunucunuza erişebilecekleri" ayarına bir argüman sunuldu. Canlı bir ticari web sitesinde standart bir ingilizce sözlük kelimesi olan 4 haneli bir şifre hakkında konuşuyoruz.

Cevapları kendi bilgi birikimim ve deneyimlerimle etkilemeden, onlara ilgisiz bir 3. parti kaynağından bazı cevaplar göstermek istiyorum. Bunun için uğraşmak isteyen var mı? Programlama / pratik cevaplar takdir edilecektir.


7
Bu root:rootgirişlerden birine benziyor .

3
Dört haneli şifre? Gibi 1337mi?
Gumbo

Yanıtlar:


39

Bu tartışmayı kim yaptıysa, "Biri kapıya girdiğinde, onlara tam erişim hakkı verebilirsiniz" diyor gibi görünüyor. Bu mantıkla, bir güvenlik duvarı, iç ağınızdaki tüm şifrelere duyulan ihtiyacı ortadan kaldırır.

Güçlü parolalar, ağa izinsiz girişten kaynaklanan hasarı sınırlandırma yolunda bir adımdır. Ağınızın küçük bir parçası tehlikeye attığından, ellerinizi yenilgiye uğratmak için hiçbir sebep yok.


13
'Derinlikteki Savunma' günün sloganıdır.
Scott Pack,

3
Sadece dosya sisteminize eriştiklerinde, bunun için bazı ek güvenlik ayarları yapmadığınız sürece, şifrenizin saklandığı PHP dosyasına veya config dosyasına erişebileceklerini unutmayın; .
Lotus Notes

2
@Lotus PHP ve MySQL sunucularının aynı makine olduğunu farz etmek.
meagar

2
@Lotus Notes, Herhangi bir uygulamada kök kullanıcıyı kullanmamalısınız. İyi tasarlanmış bir uygulama sadece gerekli olan erişime izin verir. Çoğu zaman, bu verilere erişimi içerir, ancak her zaman verinin tümünü içermez ve bazı durumlarda salt okunur bile olabilir.
bradlis7

1
@Lotus Notları: Birçok paylaşılan ana bilgisayar, 660'lık hassas PHP dosyasının chmod'unu sağlayan suPHP kullanır.
webbiedave

14

Gerçekten de ' Derinlikteki Savunma ' fikrine geri dönüyor, böylece en azından güçlü bir şifre onları yavaşlatabilmekte, böylece onları keşfedebiliyor ve engelleyebiliyorsunuz. Her evin kapısındaki bir kapıya karşı kapılı bir topluluk için tek bir anahtara sahip olma benzetmesini seviyorum.


Birinin bir anahtar / kapı benzetmesi ile gelmesini bekliyordum: |
meagar

Ancak evinizdeki her kapı için farklı bir anahtar muhtemelen denize doğru. Çizgiyi nereye çekiyorsun?
Dan,

4
@Dan: güvenli bir tesiste her kapı için farklı bir anahtar beklersiniz, değil mi? Tek aile evinde hayır - tüm kilitlerin aynı anahtarı kullanmasını beklersiniz. Ancak paylaşılan bir evde (oda arkadaşlarıyla olduğu gibi), ev felsefesine bağlı olacaktır: ya kilitli olmayan kapılar (belki de aynı anahtarı kullanan kapılar) ya da oda arkadaşı başına farklı anahtarlar.
19

5
Kilitler ve diğer güvenlik cihazları öncelikle amatör hırsız için ya da sadece profesyonelleri caydırmak için kullanılır. Bir başka caydırıcı ise evin etrafındaki yeterli ışıklandırmadır ve gün boyunca nerede ve ne yaptığınızı açıkça ortaya çıkaran düzenli rutinlerden kaçınmaktır. Asla tatil planları hakkında bir yabancıyla sohbet etmeyin ve uzun süre boyunca giderseniz yerel polisi uyarmayın. Daima evde biriymiş gibi görünmesini sağlamaya çalışın. Ayrıca, ... bekle, yine sorun neydi?
Stephen Watkins,

6

Bu MySQL sunucunuzun nasıl kurulduğuna bağlıdır. Yalnızca evden istekleri (127.0.0.1) ip kabul ederse, bu orta derecede daha güvenli hale getirir.

Uzak IP'lere izin verdiğiniz bir senaryo göz önüne alındığında, çok daha büyük bir anlaşma haline gelir.

Buna ek olarak, izinsiz giriş durumunda güçlü güvenceye sahip olmak her zaman iyidir - mümkün olduğu kadar az bir mesafeden uzaklaşmaları daha iyidir.


6

Muhasebe Petty Cash kutusunda bir kilit var mı? Öyleyse neden? Binanın fiziksel güvenliği yok mu?


5

güçlü bir mysql kullanıcı şifresine ihtiyacınız yoktur, çünkü bunu kullanmak için sunucunuza zaten erişebilirlerdi.

Bu doğru değildir, çünkü mysql ağlar arası istemci-sunucu ortamında da kullanılabilir ve varsayılan olarak ihtiyacınız olan tek şey veritabanına erişim sağlamak için kullanıcı / paroladır (offcourse, 3306 port açılmış ve sunucu genel olarak görülebilir ).


5

Aslında, bu başka bir yol olabilir: mysql'ye erişimi varsa, sunucu işletim sistemine erişebilirler.

  1. MySQL LOAD_FILE ve SELECT ... IN OUTFILE sorguları, mysql kullanıcılarının temel dosya sistemindeki dosyaları okumasını ve yazmasını sağlar. MySQL kullanıcınızın da erişebildiği herhangi bir dosya (MySQL'iniz root olarak çalışıyor mu?). Eğer Linux / UNIX altında sadece SELECT LOAD_FILE ('/ etc / passwd') sorgusunu sorup onları sırıtarak görün. Eğer mysqld root olarak çalışıyorsa, SELECT LOAD_FILE ('/ etc / shadow') komutunu deneyebilir ve sysadmin ağlamanızı izleyebilirsiniz.
  2. Linux altında çoğu zaman mysql kullanıcısı "root" sunucunun "mysql" kullanıcısı ile aynı şifreye sahiptir (mysqld çalıştıran kullanıcı). Daha sonra bu parola önemsiz ise (veya medusa / hydra gibi otomatik araçlar tarafından okunabilirse), doğrudan SSH / telnet'i doğrudan veritabanı sunucusuna bağlayabilir ve dolanabilirsiniz.

4

Birisi sunucunuza kök erişimi olursa , herhangi bir MySQL şifresine ihtiyaç duymayacaklardır. Ancak, sunucunuzdaki uygulamaları yalnızca root olmayan ve web dışı bir kullanıcı olarak çalıştırabilirlerse, güçlü bir MySQL şifresi verilerinizi yine de kaydedebilir. Ama evet, çoğu hack internetten geliyor, bu hacker'ın web hesabınıza erişebileceği ve dolayısıyla DB şifresini PHP dosyalarından çıkarabileceği anlamına geliyor.

Bunların hepsi MySQL sunucunuzu farz edersek, localhost dışındaki herhangi bir yerden bağlantı kabul etmiyor. Eğer öyleyse, güçlü bir PW'ye ihtiyacınız var.


4

Burada gözden kaçan görünen bir şey var, kullanıcılarınıza güvenilir ağda güveniyor musunuz?

Açıkçası, bilmiyorum çünkü BT'ye başlarken nasıl biri olduğumu biliyorum. Hakkı olmayan alanlarda dürterim ve dürtü ederdim ve açıkçası, zayıf bir MySQL şifresi, şans eseri bir şansa sahip olacağım ve girdiğimden ve havock (çılgına döndüğüm gibi) yüzünden benim için bir zevk olurdu. tabii ki).

Birisi güvenilir ağınıza girmek için sosyal mühendislik kullanıyorsa? Yani ne yapacaksın? Güvenlik duvarının arkasındaki bir makinede kullanıyorlarsa, yanıltıcı güvenlik duvarı güvenliğiniz mahvolur ve doğrudan makineye girer.

Güçlü şifreler yapmak çok kolaydır ve şifreleri güvende tutmayı kolaylaştırmak için birçok şifre yönetim aracı vardır, bu yüzden bunu yapmamak için hiçbir bahane yoktur.


Mesele şu ki, MySQL'de uzak bağlantılara izin vermemelisiniz, ya da gerekirse ana bilgisayar olarak localhost/ belirtin 127.0.0.1. Bu şekilde, hiç kimse dışarıdaki veritabanlarına erişemez (aynı ağdakiler bile).
Chazy Chaz

2

Eh. Sunucunuz IP kilitliyse ve kullanıcı bilgiyi umursamadığınız bir dizi tabloda SELECT ile sınırlandırılmışsa, çok fazla bir şey olmaz.

Öte yandan, MySQL şifrelerimi klavyede bir dakika boyunca vurarak ayarlıyorum ve ortaya çıkan anlamsız kopyalamayı yapıştırarak, giriş yapmak istediğimde kodumda referans olarak kullandığım korumalı bir dosyaya kopyaladım. Bu şekilde çalışması gerekir.

Neden kolaylaştırıyorsun? Parola sınırlı bir yerel hesaba eklenmişse (olması gerektiği gibi), o zaman neden yazıyorsunuz? Değilse, gücü koruduğunuz verilerin değerine göre gücü olan bir parolaya sahip olması gerekir.


2

mySQLs hesap / erişim bilgileri, gerçek veritabanlarından ayrı bir dosyada saklanır. Böylece farklı bir dosyayı yerine sürükleyip bırakabilirsiniz. MySQL ile, dosya sisteminizin ilgili bölümüne yazma erişimi varsa, oyun biter.


2

Gereksinimler değiştiği için ...

Bu nedenle, bugün yalnızca yerel makineye MySQL bağlantılarını kabul etmekle sınırlı olan sunucu yarın açılabilir ve böylece veritabanını yönetmek için harici bir araç kullanılabilir. Bu kurulumu yapan kişi, kullanımda aşırı derecede zayıf şifreler olduğunu bilmiyor olabilir.

Eğer kullanıcı, iyi, güçlü (örneğin: uzun, rastgele) bir şifreyi hatırlamak zorunda kalmaktan rahatsızsa, onu çok güçlü yapmayı ve daha sonra yazması gereken .my.cnfzayıf bir şifreye sahip olmanın daha uygun olmasını sağlayın. Elbette, bunun da güvenlikle ilgili etkileri vardır, ancak şifrenizi bir yere, örneğin ona erişen uygulamalara kaydetmek zorunda kalacaksınız, bu yüzden zaten şifrenin kopyalarını güvenceye alıyorsunuz.

Ayrıca @meagar'ın söylediklerini de okuyun.


1

Zaten erişebilecekleri öncülü doğru değil. Ancak, eğer girişleri varsa ve ayrıcalıklı olmayan bir hesapları varsa, yine de mysql şifresini kolayca kesebilirler.

Ayrıca, sunucu canlı bir prodüksiyon sunucusuysa, kendinizi internete tanıtıyorsanız. bir noktada, birisi o araçlarının OLACAK , liman ve kullanıcı hesabı hem mysql dahil o sunucu üzerinde bir kaba kuvvet saldırısı deneyin.

Verileri önemsiyorsanız, temel adımların yerine veritabanı için kök kullanıcıdan farklı bir kök parolasının olması gerekir. diğerleri, kullanıcılar ve programlar için mümkün olan en düşük izinlere sahip olmanız gerektiğini belirtti.

4 karakterlik bir şifre oldukça ucuz bir bilgisayarda dakikalar içinde kesilebilir.

Başkalarının söylediklerini tekrar ediyor olabilirim, ama menajerin için ne kadar fazla cephane varsa, o kadar iyi.


1

Gerçek hayattaki senaryo sebeplerinin birçoğu daha önce yayınlar tarafından ele alındı, bu yüzden "felsefe" olanını ekleyeceğim. Güvenli şifreler kullanmak ve güvenliği sıkılaştırmak için gerekli önlemleri almak iş felsefesidir. Bir düşünce tarzı.

Şimdi zayıf bir parola kullanmak, çünkü mysql yalnızca 127.0.0.1’de çalışır ve yalnızca root kullanıcısı erişebilir, ileriye dönük düşünmediğinizi gösterir. Bir gün mysql'nize ağ üzerinden erişim izni vermeniz gerekecekse ne olur. Bıraktığın bütün güvenlik fahişelerini korumayı hatırlayacak mısın?

İyi bir yönetici en kötü senaryoyu ilk önce paranoya noktasına getirir.


1

Bu, kullanıcının hangi haklara sahip olduğuna bağlı olarak, her zaman işleri birden çok seviyede kilitlemeniz gerekir. Ayrıca veritabanınıza kaydettiğiniz verilere de bağlıdır. Ayrıca, varsayımsal olarak MySQL'de tüm veritabanını ele geçirmelerine izin veren bir güvenlik açığı olduğunu ancak herhangi bir kullanıcı hesabına giriş yapmaları gerektiğini söyleyin. Parolanız çok güçlüyse, bu güvenlik açığını susturur. Ancak bu gerçekten sizin özel durumunuza bağlıdır.


MySQL sunucusunun güvenliği tehlikeye girerse, kullanıcı ve şifre faydasızdır. Veritabanı dosyaları şifreli değil. Uygulamalar için MySQL kullanıcıları, uzak bağlantılarda uzaktan kullanılamaması veya devre dışı bırakılmaması için localhost / 127.0.0.1 ana bilgisayarına sahip olmalıdır.
Chazy Chaz

1

MySQL'de başkasını taklit etmek çok kolaydır. Parolasız bir kullanıcı kimliği verildiğinde (en zayıf güvenlik) sadece kullanın mysql -u userid. Eğer bir şifresi varsa, biraz daha zordur, fakat zayıf bir şifre bunu kolaylaştırır. Kökün şifresi yoksa, köke olarak erişebilirim mysql -u root. Daha sonra root'un yapabileceği her şeyi veritabanında yapabilirim.

Güvenlik açısından ana bilgisayar özelliklerinin kullanılması, özellikle uzaktan erişim varsa veya mevcutsa iyi bir fikirdir.

Dosyalardaki şifreler izinler tarafından bir şekilde korunabilir ve korunmalıdır. Root ile erişim veya şifre dosyasının sahibi önemsizdir. Mümkünse diskteki şifrenin şifrelenmesi kullanılmalıdır. Bu, erişimi biraz zorlaştırsa da yine de savunmasız hale getirir.


0

Peki, eğer MySQL db'yi kendiniz barındırmıyorsanız, ancak bir barındırma hizmeti kullanıyorsa ve birisi Sunucunuzun IP adresine erişiyorsa, kullanıcı adı ve şifre son savunma hattınızdır. Güvenli bir kullanıcı adı / şifreniz olması her zaman iyidir.


Meh! Birisi sunucuya erişirse, kullanıcı / şifreyi PHP dosyalarından okuyabilir ... Lütfen bu cevabı güncelleyin veya silin.
Chazy Chaz
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.