Apakah ada metode standar untuk membuktikan keamanan kata sandi kepada non-matematikawan?

16

Klien saya memiliki server yang menjadi sasaran upaya masuk brute-force dari botnet. Karena keanehan server dan klien klien, kami tidak dapat dengan mudah memblokir upaya melalui firewall, perubahan port, atau perubahan nama akun login.

Keputusan telah dibuat untuk membiarkannya terbuka untuk diserang, tetapi temukan metode untuk menjaga keamanan kata sandi. Manajemen dan beberapa konsultan lain telah menentukan bahwa hal terbaik yang harus dilakukan adalah menginstal perangkat lunak perputaran kata sandi untuk memutar kata sandi setiap sepuluh menit dan memberikan kata sandi baru kepada pengguna yang perlu masuk.

Upaya brute force terjadi dua kali setiap detik.

Saya perlu menunjukkan bahwa menerapkan kata sandi yang kuat dengan 12-15 karakter adalah solusi yang lebih mudah dan gratis. Saya tahu cara membuktikan ini dengan matematika, tetapi saya hanya akan menulis sesuatu seperti "ada banyak kemungkinan permutasi kata sandi kami, dan penyerang hanya dapat mencoba dan mencoba per hari, jadi kami berharap mereka akan pergi x / Rata-rata 2n hari sebelum mereka menebak kata sandi kami. " Apakah ada "bukti" yang lebih standar tentang ini?

Babi
sumber

Jawaban:

14

Menggunakan fail2ban dengan iptables adalah cara yang bagus.

Ini matematika untuk Anda:

Campuran huruf besar dan kecil dan simbol umum, panjang 8 karakter, memberi Anda 2,9 kuadriliun konbinasi dan dengan 10.000 upaya per detik akan memakan waktu 9,488 tahun. Itu maksimum tentu saja - perkirakan kata sandi Anda akan di-crack dalam 4000 tahun. 1000 tahun jika Anda tidak merasa beruntung.

Seperti yang Anda lihat, Anda seharusnya tidak memiliki masalah jika Anda menggunakan kata sandi 15 karakter seperti:

dJ&3${bs2ujc"qX
Steven
sumber
Bagaimana fail2ban membantu melawan botnet?
innaM
2
satu-satunya masalah Anda akan memiliki adalah bahwa tidak ada yang dapat mengingat password mereka ..
Jeff Atwood
Itu adalah tautan yang sangat menarik, tetapi saya perhatikan (di bagian bawah halaman) bahwa waktu serangan mereka didasarkan pada Pentium 100-an! Mungkin sedikit ketinggalan zaman sekarang, tapi masih bagus dibaca.
Coops
8

Selain fail2ban,

Jika Anda menjalankan UNIX modern, Anda biasanya dapat mengubah waktu tidur entri kata sandi yang buruk hingga 5 detik, memperlambat kecepatan serangan hingga 2000%. [Solaris 10 memilikinya di / etc / default / login, cari SLEEPTIME] Yang menggunakan toleransi yang sama berarti Anda dapat memutar kata sandi setiap 3 jam 20 menit.

Selain itu, kata sandi yang dicoba sebelum lockout akan menjadi opsi yang layak, tetapi saya curiga ini bukan untuk Anda karena Anda memiliki banyak pengguna yang berbagi satu akun dan tidak ingin selalu terkunci sepanjang waktu.

Membutuhkan kata sandi 12-15 karakter bisa membantu, tetapi jika Anda terus-menerus diserang, solusi lain mungkin lebih baik. Saya tidak tahu apa toleransi anggaran perusahaan Anda dalam hal ini, tetapi kartu kunci RSA untuk semua orang yang perlu masuk ke akun itu juga akan menyelesaikannya. Otentikasi dua faktor mendorong probabilitas ke dalam waktu komputasi kuantum.

Pendekatan brute force yang berlangsung cukup lama untuk Anda posting di forum ini cukup mengejutkan. Secara umum itu cukup rendah dan yang terbaik adalah pengisi log saat serangan nyata sedang terjadi.

pengguna5605
sumber
6

Bagaimana dengan banding ke otoritas? Anda dapat merujuk pada Pedoman Pelaksanaan Teknis Keamanan DoD (iase.disa.mil/stigs/stig) dan mengatakan "Jika itu cukup baik untuk Departemen Pertahanan, itu cukup baik untuk kita"

Brien
sumber
5

Sesuatu untuk dipertimbangkan: jika Anda memiliki kata sandi yang tidak berubah, dan serangan brute force sedang menguji semesta kata sandi yang mencakup kata sandi Anda, serangan brute force dijamin akan mengenai akhirnya dan Anda akan tetap rentan setelah itu.

"Peluang" bahwa pilihan acak akan mengenai kata sandi Anda dapat dihitung, seperti yang Anda sarankan, tetapi itu mungkin tidak menceritakan keseluruhan cerita.

Jika Anda melihat upaya brute force, misalnya, dan melihat bahwa kata sandi terpanjang yang mereka coba adalah 10 karakter, memilih apa pun di 12 akan memastikan Anda tidak akan pernah terkena.

Berhati-hatilah saat mencoba menerapkan statistik pada kasus tertentu; mereka hanya memprediksi perilaku keseluruhan dengan sejumlah besar sampel.

Selain itu, jika matematika tidak (atau tidak bisa) meyakinkan seseorang, cobalah untuk menemukan sesuatu yang memiliki peluang yang sama tetapi terjadi akrab, seperti mungkin lotere atau kecelakaan mobil atau disambar petir. Jika Anda dapat mengatakan "kemungkinan seseorang memukul ini sandi adalah sama dengan memenangkan lotre enam minggu berjalan" mungkin memberi mereka merasa lebih baik.

piCookie
sumber
3
Mengapa tidak memilih kata sandi yang telah dicoba oleh penyerang? Hanya bercanda.
innaM
4

Satu hal yang belum dipertimbangkan adalah nama pengguna apa yang digunakan botnet untuk Bruteforce. Dalam semua contoh, saya telah melihat kekuatan kasar untuk variasi admin dan root, dan dalam satu kasus yang jarang nama pengguna diambil dari situs web corp.

Saya juga mengubah batasan login interaktif sehingga akun root Anda dinonaktifkan (lebih disukai) atau dibatasi untuk subnet lokal Anda atau rentang alamat yang serupa.

Preflightsiren
sumber
2

Dua kali per detik tidak buruk. Kami biasa melihat ribuan upaya per menit, sebelum menerapkan fail2ban , yang akan mengunci IP tertentu dari jaringan untuk jumlah waktu tertentu setelah begitu banyak upaya gagal (semua dapat dikonfigurasi).

Ini sangat berhasil bagi kita.

Brent
sumber
2

Sebenarnya, Anda dapat memindai selektif terhadap serangan ssh brute force menggunakan iptables, jika ini cocok untuk Anda.

Dua string ini:

iptables -A INPUT -p tcp --dport 22 -m conntrack --ctstate NEW -m recent --set --name sshscans 
iptables -A INPUT -m recent --rcheck --seconds 60 --hitcount 5 --name sshscans --rsource -j DROP 

akan memblokir akses ke siapa pun yang mencoba terhubung ke SSH lebih dari 5 kali dalam interval 60 detik. Anda dapat mengubah nomor "--hitcount" jika Anda ingin jumlah yang lebih besar dari 5 per detik diizinkan.

palmer
sumber
2

Saya setuju bahwa mengubah kata sandi setiap 10 menit sepertinya sedikit berlebihan. Pada titik ini masalahnya menjadi bagaimana Anda secara aman mengirimkan kata sandi baru dan menjaga sistem tetap sinkron satu sama lain.

Artikel ini memiliki beberapa statistik menarik tentang kecepatan retak:

http://www.lockdown.co.uk/?pg=combi

http://en.wikipedia.org/wiki/Password_cracking

Peter
sumber
2

Mengejutkan bahwa banyak orang yang tidak memahami kurva eksponensial, tetapi semua orang tahu perbedaan antara 10, 100, dan 1000, jadi itu mungkin tempat yang baik untuk mulai membuat perbandingan.

Taktik lain mungkin untuk benar-benar menunjukkan kepada orang-orang berapa lama yang diperlukan untuk memaksa kata sandi 6 karakter. Jika Anda memiliki pengetahuan pemrograman, Anda dapat mengumpulkan alat cepat yang melakukan ini.

Maximus Minimus
sumber
2

Anda juga bisa menunjukkan kepada mereka betapa mudahnya tabel pelangi:

http://project-rainbowcrack.com/table.htm

Kaya
sumber
Hanya berguna jika mereka mendapatkan hash kata sandi, dan dengan pengasinan yang tepat, ancaman dapat dikurangi.
skitzot33
2

Ini mungkin agak offtopic, tapi saya menggunakan denyhosts dan ini sangat mengurangi upaya brute force pada kotak Linux saya.

skitzot33
sumber