Saya baru-baru ini membaca sebuah artikel tentang menganalisis upaya masuk SSH berbahaya. Ini membuat saya berpikir, apakah nama pengguna SSH, kombinasi kata sandi pada kotak Debian saya tidak umum? Apakah saya telah ditargetkan oleh serangan kamus brute force? Mari kita lihat /var/log/auth.log.0 :
Sep 23 07:42:04 SLUG sshd[8303]: Invalid user tyjuan from 210.168.200.190
Sep 23 07:42:09 SLUG sshd[8305]: Invalid user tykeedra from 210.168.200.190
Sep 23 07:42:14 SLUG sshd[8307]: Invalid user tykeem from 210.168.200.190
Sep 23 07:42:19 SLUG sshd[8309]: Invalid user tykeshia from 210.168.200.190
Sep 23 07:42:25 SLUG sshd[8311]: Invalid user tyla from 210.168.200.190
Sep 23 07:42:30 SLUG sshd[8313]: Invalid user tylan from 210.168.200.190
Sep 23 07:42:35 SLUG sshd[8315]: Invalid user tylar from 210.168.200.190
Sep 23 07:42:40 SLUG sshd[8317]: Invalid user tyler from 210.168.200.190
Sep 23 07:42:45 SLUG sshd[8319]: Invalid user tylerfrank from 210.168.200.190
Sep 23 07:42:50 SLUG sshd[8321]: Invalid user tyliah from 210.168.200.190
Sep 23 07:42:55 SLUG sshd[8323]: Invalid user tylor from 210.168.200.190
Jadi itu tidak terlihat bagus. Sekarang saya tahu saya telah ditargetkan oleh serangan dan bahwa beberapa nama pengguna saya, kombinasi kata sandi lemah, saya ingin tahu bagaimana saya bisa ...
- ... tentukan apakah kotak Linux saya telah disusupi?
- ... membatalkan kerusakan yang ditimbulkan oleh pelaku?
- ... mencegah hal ini terjadi di masa depan?
MEMPERBARUI
Adakah saran untuk membatalkan kerusakan yang ditimbulkan oleh pelaku?
Jawaban:
Banyak orang tampaknya menyarankan DenyHosts, tetapi saya telah melihat banyak kesuksesan dengan Fail2Ban pada sistem saya. Ini mengawasi sejumlah kegagalan (dapat dikonfigurasi), dan kemudian melakukan tindakan - pada server saya, tindakan itu adalah dengan menggunakan iptables untuk menjatuhkan semua lalu lintas dari host. Setelah 10 kegagalan login, mereka diblokir dan itulah akhirnya.
Saya menggunakannya dalam kombinasi dengan Logcheck, sehingga saya selalu tahu apa yang terjadi di server saya.
Jika Anda memiliki bukti bahwa seseorang telah benar-benar membobol sistem Anda (log yang Anda posting bukan bukti tentang ini), maka satu-satunya solusi Anda adalah membuat cadangan semua data yang Anda butuhkan untuk menyimpan, menghapus mesin, menginstal ulang, dan mengembalikan dari cadangan. Kalau tidak, tidak ada cara untuk memastikan.
sumber
Upaya masuk yang sah juga masuk, jadi jika Anda melihat upaya brutal diikuti oleh keberhasilan, itu indikasi bagus sesuatu yang buruk telah terjadi.
Saya menggunakan DenyHosts untuk memonitor log saya untuk lalu lintas SSH yang mencurigakan, dan saya mengkonfigurasinya untuk secara otomatis firewall dari host pada titik tertentu.
Perhatikan ada berbagai cara lain yang Anda inginkan untuk memantau mesin Anda untuk melihat apakah mesin itu rusak, termasuk pola muat, aktivitas login, mengendus lalu lintas berkala, memantau proses yang berjalan dan membuka port, dan memastikan integritas file dengan alat seperti tripwire.
Jika Anda hanya akan melakukan satu, memonitor beban sistem adalah cara yang sangat efektif untuk mendeteksi kompromi, karena sebagian besar mesin ketika dikompromikan digunakan untuk melakukan hal-hal seperti mengirim spam dalam jumlah besar atau menerima banyak lalu lintas. Mungkin tidak berguna jika Anda adalah target bernilai tinggi dan orang-orang mungkin mencoba secara khusus membobol Anda untuk alasan lain selain mengubah host Anda menjadi zombie, tetapi tetap berharga. Plus beban pemantauan diperlukan untuk pembuatan profil dan untuk mengetahui kapan Anda perlu berinvestasi dalam lebih banyak perangkat keras atau perangkat lunak yang lebih baik.
Anda juga harus melakukan analisis log yang komprehensif, melihat auth.log dan lainnya untuk hal-hal yang tidak terduga. Analisis file log adalah pasar yang kompetitif dan masalahnya belum terpecahkan, tetapi ada alat gratis seperti logwatch yang dapat dikonfigurasi untuk mengirimkan ringkasan kepada Anda setiap hari.
Keamanan melalui lapisan!
sumber
Lupakan Tripwire, ini cukup mahal. Gunakan AIDE sebagai gantinya. Ini gratis, mudah diatur (walaupun perlu beberapa saat untuk memutuskan direktori temp mana yang akan dikecualikan, dan jika tidak mengkonfigurasi).
Anda menjalankannya, itu membangun database semua file. Jalankan lagi dan ini akan memberi tahu Anda file mana yang telah berubah.
Satu hal lagi yang harus dilakukan adalah menginstal CSF, yang memiliki tipe blocker denyhost, karena orang gagal berulang kali login, itu akan menambahkannya ke aturan firewall Anda. Anda juga dapat meminta login SSH untuk memiliki kunci publik juga, skrip kiddies dapat mencoba login sebanyak yang mereka suka.
sumber
"* ... membatalkan kerusakan yang ditimbulkan oleh para pelaku?"
lupakan saja, jika ada serangan, saran terbaik adalah menginstalnya kembali dari awal (pastikan Anda memasang lubang pada instalasi baru). Sangat mudah untuk tidak melihat backdoor atau proses sembunyi-sembunyi, Anda lebih baik menginstal ulang.
"* ... mencegah hal ini terjadi di masa depan?"
pembaruan keamanan
firewall yang ketat
kata sandi yang kuat
matikan layanan yang tidak perlu
sumber
lihatlah alat-alat seperti logcheck , portsentry , dan tripwire . itu sangat umum untuk percobaan SSH kamus acak, jadi saya tidak akan terlalu khawatir dengan itu. Anda mungkin ingin mengubah port untuk kebingungan acak, tetapi Anda masih akan melihat upaya acak dari waktu ke waktu, seumur hidup memiliki mesin di internet.
sumber
Satu hal yang saya gunakan di server saya untuk membantu mencegah serangan ini adalah DenyHosts . DenyHosts akan menghentikan pengguna jahat untuk mencoba masuk. Sejak menginstalnya, file log saya memiliki lebih sedikit entri upaya masuk.
sumber
Merupakan praktik yang baik untuk menggunakan pasangan kunci Publik / Pribadi sebagai otentikasi tambahan; Dengan cara itu pengguna tidak dapat masuk melalui SSH tanpa kunci kanan; yang akan sangat tidak mungkin untuk menebak for for brute forcer. Artikel bagus tentang ini dapat ditemukan di sini .
Ini saja dengan frasa sandi akan cukup solid untuk otentikasi SSH; Tetapi ada lebih banyak kerentanan! Hati-hati dengan semua aplikasi yang menggunakan port terbuka; Jika mereka mengandung pengeksploitasi bug mungkin menyalip sistem Anda. Contoh yang baik adalah bot spam yang diinstal di server kami karena bug pada perangkat lunak webstats yang kami gunakan saat ini.
sumber
Fail2ban adalah penganalisa akses real time log. Ini dapat dikonfigurasikan untuk memblokir IP apa pun dengan sejumlah upaya gagal untuk masuk. Ini menghindari serangan kamus tanpa harus memindahkan port ssh. chkrootkit dan rootkithunter adalah utilitas yang baik untuk memeriksa intrusi. Jika intrusi telah berhasil, praktik terbaik adalah menyalin data (dan hanya data, bukan yang dapat dieksekusi), usap dan instal ulang karena sangat sulit untuk 100% yakin sistemnya bersih.
sumber
Tidak ada yang menyarankan bahwa kotak Anda telah disusupi. Bahkan jika kata sandi Anda sangat lemah, serangan kamus yang hanya melemparkan satu upaya masuk pada setiap nama pengguna sangat tidak mungkin berhasil.
Tapi, jika Anda tahu kata sandi Anda lemah, perkuatlah! Saya pribadi suka pwgen (yang dikemas oleh Debian). Pada setiap proses, ia menghasilkan sejumlah besar kandidat kata sandi yang kuat, tetapi relatif dapat diucapkan yang (bagi saya setidaknya) cukup mudah diingat, seperti yodieCh1, Tai2daci, atau Chohcah9.
Namun, jika ada bukti lain yang menunjukkan bahwa sistem Anda telah dikompromikan ... Buang dari orbit. Itu satu-satunya cara untuk memastikan.
Data yang tidak dapat dieksekusi mungkin dapat diselamatkan, tetapi apa pun dengan konten yang dapat dieksekusi (ini berpotensi mencakup hal-hal seperti dokumen MS Office dan beberapa file konfigurasi) harus hilang kecuali Anda bersedia dan dapat memeriksanya secara manual untuk memastikan bahwa itu tidak diperlukan. t telah dimusuhi atau menerima kemungkinan bahwa hal itu bisa bermusuhan dan dapat merusak sistem Anda atau memberikan jalan untuk kompromi ulang di masa depan jika Anda tetap melakukannya.
sumber
Satu perlindungan tambahan kecil yang saya suka adalah menilai batas koneksi ssh masuk untuk memperlambat serangan kamus atau sejenisnya. Jangan berharap ini melindungi Anda dengan sendirinya, tetapi gunakan ini sebagai tambahan untuk saran di jawaban lain termasuk menonaktifkan otentikasi kata sandi.
Menggunakan iptables:
sumber
Ada beberapa saran buruk tentang utas ini, seperti:
Cukup atur
/etc/ssh/sshd_config
bukan untuk meningkatkan keamanan:PermitRootLogin no
Jika Anda kotak telah disusupi. Bangun kembali kotak.
sumber
Akan terjadi setiap saat dengan ssh diaktifkan. Pindahkan ke port yang tinggi.
Ada program yang disebut "Tripwire" yang sangat bagus untuk deteksi intrusi, tetapi cukup sulit untuk menginstal. Jika tidak ada yang lain, Anda harus membaca dokumen mereka sehingga Anda memahami masalahnya.
sumber
Anda perlu menginstal deteksi intrusi sebelum menghubungkan mesin ke internet.
Dan itu ide bagus untuk koneksi SSH daftar putih IP hanya untuk memastikan seluruh dunia bahkan tidak bisa mencoba hal-hal seperti itu.
sumber
Boot media read-only (livecd) dan bandingkan file dengan cadangan Anda atau media asli.
Lihat saja sekitar untuk perilaku aneh. Tentu saja ini paling mudah jika Anda meluangkan waktu sebelum peretasan untuk mendapatkan perasaan yang baik tentang apa yang 'normal'.
Kesalahan yang Anda posting tidak menunjukkan kompromi. Hanya seseorang yang mencoba.
Instal ulang dan pulihkan dari cadangan sebelum sistem terganggu.
Lihat:
Lihat:
sumber
Anda dapat menonton kotak untuk melihat apa yang masuk dan keluar dan mencari sesuatu yang mencurigakan. Lihat posting ini: /programming/124745/sniffing-network-traffic-for-signs-of-virusesspyware
sumber
Psad ditambah dengan Shorewall adalah cara yang baik untuk memuji aturan iptables Anda.
Saya juga menggunakan Fail2ban untuk melacak login ssh saya
sumber
gunakan rkhunter atau chkrootkit atau keduanya; memindai kotak Anda dari luar untuk melihat port apa yang dibuka
Bagaimanapun, jika semua yang Anda miliki adalah pengguna yang tidak valid, tidak perlu khawatir :)
sumber
Sesuatu yang sangat berbeda: coba gunakan Google di alamat IP! Seorang peretas yang menyebut dirinya STARTURK dari Turki mungkin mencoba meretas situs Anda.
Meskipun terlihat seperti serangan brute-force pada sistem Anda, mungkin saja peretas ini hanya melakukan satu upaya dan sekarang pergi ke beberapa situs lain.
sumber
Seperti banyak yang telah dicatat, Tripwire / AIDE adalah cara terbaik untuk mencari perubahan sistem. Sayangnya, sapi di luar gudang karena harus dikonfigurasi pada sistem yang dikenal baik.
Satu hal yang mungkin membantu Anda setidaknya memulai adalah menggunakan database RPM Anda untuk memeriksa md5sums file Anda. Inti dasarnya adalah ini:
Ini tidak sempurna karena berbagai alasan. Pertama, basis data RPM lokal Anda secara teoritis dapat diubah. Kedua, sebagian besar distro menggunakan prelink, dan RPM tidak mengetahui prelink. MD5 mungkin tampaknya telah diubah dari proses itu, yang sah.
Saran terbaik adalah ini: jika Anda tidak yakin apakah Anda telah dikompromikan, ini saatnya untuk membangun kembali.
sumber
Untuk mencegah masalah keamanan di masa depan, Anda dapat melihat OSSEC , saya menggunakannya untuk melakukan pemeriksaan integritas file dan mencatat pemantauan di server kami, ini sangat lengkap dan mudah untuk dikonfigurasi. Itu dapat mengirim pemberitahuan email, Anda dapat memeriksa peringatan melalui baris perintah atau antarmuka web ...
http://www.ossec.net/
diambil dari situs web:
"OSSEC adalah Sistem Deteksi Intrusi Berbasis Host Sumber Terbuka. Ia melakukan analisis log, pemeriksaan integritas file, pemantauan kebijakan, deteksi rootkit, peringatan waktu-nyata, dan respons aktif."
analisis log Ini dapat memeriksa file log di server Anda dan memberitahu Anda melalui aturan (ada banyak yang ditentukan sebelumnya dan Anda dapat menambahkan sendiri)
integritas file tripwire / pembantu seperti functionnality sehingga Anda akan melihat apakah ada file yang telah dimodifikasi di server Anda
pemantauan kebijakan: periksa beberapa aturan keamanan "Praktik terbaik"
deteksi rootkit: rkhunter, chkrootkit seperti fungsi
peringatan real-time dan respons aktif: Anda dapat mengonfigurasi ossec untuk bereaksi secara otomatis terhadap peringatan (saya tidak menggunakan ini tetapi Anda dapat menggunakannya untuk memblokir akses ssh ke host yang membuat terlalu banyak upaya koneksi yang gagal)
Produk yang benar-benar bagus dan sangat aktif
Untuk mengeraskan kotak Anda, Anda juga dapat menggunakan lynis atau bastille
http://www.rootkit.nl/projects/lynis.html
http://bastille-linux.sourceforge.net/
sumber