Jika negara tidak diketahui, benar-benar tidak ada jalan. Itulah mengapa sangat penting untuk menggunakan sumber instalasi tepercaya dan mengatur alat seperti Tripwire sebelum memaparkannya ke hal lain selain dari itu sendiri.
Maksudmu "retak". Peretasan adalah bagaimana kita mendapatkan linux.
gbarry
Seorang teman saya yang server-nya di-host dengan kami pernah meminta saya untuk melihat server-nya karena tampaknya ada sesuatu yang aneh dengan itu. Segera setelah saya melihat log saya tahu ada sesuatu. Mereka mencoba untuk menutupi jejak mereka dan saya pikir telah menginstal kit root tetapi membuat sedikit berantakan. Bagaimanapun, untuk mempersingkat cerita, kami harus membangun kembali seluruh server dari awal. Butuh sepanjang malam dan kemudian kami mengkonfigurasi beberapa alat audit keamanan.
Matt
@ Mat Mind memberi tahu kami alat apa? Masih sama hari ini?
Rodrigo
Jawaban:
34
Simpan salinan asli dari file sistem kritis (seperti ls, ps, netstat, md5sum) di suatu tempat, dengan md5sum dari mereka, dan bandingkan dengan versi live secara teratur. Rootkit akan selalu memodifikasi file-file ini. Gunakan salinan ini jika Anda mencurigai dokumen aslinya telah disusupi.
ajudan atau tripwire akan memberi tahu Anda tentang file yang telah dimodifikasi - dengan asumsi database mereka belum dirusak.
Konfigurasikan syslog untuk mengirim file log Anda ke server log jarak jauh yang tidak dapat dirusak oleh penyusup. Tonton file log jarak jauh ini untuk aktivitas mencurigakan
baca log Anda secara teratur - gunakan logwatch atau centang untuk mensintesis informasi penting.
Ketahui server Anda . Ketahui jenis kegiatan dan log apa yang normal.
md5 telah melemah parah jika tidak dibuang. Anda mungkin ingin pindah ke sha512.
Broam
12
Kamu tidak.
Saya tahu, saya tahu - tetapi itu adalah paranoid, kebenaran yang menyedihkan, sungguh;) Ada banyak petunjuk tentu saja, tetapi jika sistem itu ditargetkan secara khusus - mungkin tidak mungkin untuk mengatakannya. Adalah baik untuk memahami bahwa tidak ada yang sepenuhnya aman. Tetapi kita perlu bekerja untuk lebih aman, jadi saya akan menunjukkan semua jawaban lain sebagai gantinya;)
Jika sistem Anda dikompromikan, tidak ada alat sistem Anda yang dapat dipercaya untuk mengungkapkan kebenaran.
Anda berasumsi bahwa penyerang Anda memiliki beberapa keterampilan, ingin diam-diam dengan cara apa pun, dan tidak sepenuhnya tertarik meledakan spam dan menambahkan OC3 Anda ke botnet. Hari-hari ini, Anda biasanya menemukan fakta bahwa sejumlah besar spam keluar dari server Anda, biasanya pada sistem kelebihan beban yang seharusnya tidak. Kebanyakan "peretas" dimotivasi oleh uang akhir-akhir ini.
Ernie
2
Alat serangan paling canggih membutuhkan keterampilan nol hari ini dan mudah tersedia dan beberapa sangat tersembunyi secara default dan desain. Botnet / zombie bisa lama tidak digunakan sebelum digunakan untuk melukai tetapi bug di alat serangan dapat menyebabkan crash yang tidak diinginkan dan perilaku aneh dll.
Oskar Duveborn
11
Tripwire adalah alat yang umum digunakan - ini memberi tahu Anda ketika file sistem telah berubah, meskipun jelas Anda harus menginstalnya terlebih dahulu. Kalau tidak, item seperti akun pengguna baru yang tidak Anda ketahui, proses aneh dan file yang tidak Anda kenal, atau peningkatan penggunaan bandwidth tanpa alasan yang jelas adalah tanda-tanda yang biasa.
Sistem pemantauan lain seperti Zabbix dapat dikonfigurasi untuk mengingatkan Anda ketika file seperti / etc / passwd diubah.
Beberapa hal yang telah memberi saya informasi di masa lalu:
Beban tinggi pada sistem yang seharusnya tidak digunakan
Segfault yang aneh, mis. dari utilitas standar seperti ls(ini bisa terjadi dengan kit root yang rusak)
Direktori tersembunyi di /atau /var/(kebanyakan skrip kiddies terlalu bodoh atau malas untuk menutupi jejak mereka)
netstat menunjukkan port terbuka yang seharusnya tidak ada di sana
Daemon dalam daftar proses yang biasanya Anda gunakan dengan berbagai rasa (mis. bind, Tetapi Anda selalu menggunakan djbdns)
Selain itu, saya telah menemukan ada satu tanda yang dapat dipercaya bahwa sebuah kotak dikompromikan: jika Anda memiliki perasaan buruk tentang ketekunan (dengan pembaruan, dll.) Dari admin yang Anda warisi sistem, perhatikan dengan cermat!
Ada metode untuk memeriksa server yang diretas melalui kill-
Pada dasarnya, ketika Anda menjalankan "kill -0 $ PID" Anda mengirim sinyal nop untuk memproses pengidentifikasi $ PID. Jika proses sedang berjalan, perintah kill akan keluar secara normal. (FWIW, karena Anda melewati sinyal nop kill, tidak ada yang akan terjadi pada prosesnya). Jika suatu proses tidak berjalan, perintah kill akan gagal (status keluar kurang dari nol).
Ketika server Anda diretas / rootkit diinstal, salah satu hal pertama yang dilakukannya adalah memberi tahu kernel untuk menyembunyikan proses yang terpengaruh dari tabel proses dll. Namun ia dapat melakukan segala macam hal keren di ruang kernel untuk dikacaukan dengan proses. Jadi ini artinya
a) Pemeriksaan ini bukan pemeriksaan ekstensif, karena rootkit yang dikodekan / cerdas akan memastikan bahwa kernel akan membalas dengan jawaban "proses tidak ada" yang membuat pemeriksaan ini berlebihan. b) Bagaimanapun juga, ketika server yang diretas menjalankan proses "buruk", biasanya PID tidak akan ditampilkan di bawah / proc.
Jadi , jika Anda di sini sampai sekarang, metode ini adalah untuk membunuh -0 setiap proses yang tersedia dalam sistem (mulai dari 1 -> / proc / sys / kernel / pid_max) dan lihat apakah ada proses yang berjalan tetapi tidak dilaporkan di / proc.
Jika beberapa proses muncul sebagai berjalan, tetapi tidak dilaporkan di / proc, Anda mungkin memiliki masalah dengan cara apa pun Anda melihatnya.
Berikut skrip bash yang mengimplementasikan semua itu - https://gist.github.com/1032229 . Simpan itu di beberapa file dan jalankan, jika Anda menemukan proses yang muncul tidak dilaporkan dalam proc, Anda harus memiliki beberapa petunjuk untuk mulai menggali.
Itu sangat berguna bagi pemilik rumah saya di mana saya tidak punya waktu untuk memelihara sistem seperti sistem kerja yang produktif. Bagaimanapun, dapatkah saya menggunakan ini dalam lingkungan profesional dan "relatif" yakin tentang hasilnya? Dan untuk jawabannya adalah 3 tahun: Apakah ini masih merupakan metode yang valid untuk memeriksa infeksi umum saat ini pada tahun 2014?
hub
7
Saya akan memberikan tanggapan kedua yang diberikan di sini dan menambahkan salah satu dari saya sendiri.
find /etc /var -mtime -2
Ini akan memberi Anda indikasi cepat jika ada file server utama Anda telah berubah dalam 2 hari terakhir.
SNORT® adalah sistem pencegahan dan deteksi intrusi jaringan sumber terbuka yang menggunakan bahasa yang digerakkan oleh aturan, yang menggabungkan manfaat metode inspeksi berbasis tanda tangan, protokol, dan anomali. Dengan jutaan unduhan hingga saat ini, Snort adalah teknologi deteksi dan pencegahan intrusi yang paling banyak digunakan di seluruh dunia dan telah menjadi standar de facto untuk industri ini.
Snort membaca lalu lintas jaringan dan dapat mencari hal-hal seperti "drive dengan pengujian pena" di mana seseorang hanya menjalankan seluruh pemindaian metasploit terhadap server Anda. Senang mengetahui hal-hal semacam ini, menurut saya.
Gunakan log ...
Bergantung pada penggunaan Anda, Anda dapat mengaturnya sehingga Anda tahu setiap kali pengguna login, atau masuk dari IP aneh, atau setiap kali login root, atau setiap kali seseorang mencoba masuk. Saya benar-benar memiliki server mengirimi saya email setiap log pesan lebih tinggi dari Debug. Ya, bahkan Pemberitahuan. Saya menyaring beberapa dari mereka tentu saja, tetapi setiap pagi ketika saya mendapatkan 10 email tentang hal-hal itu membuat saya ingin memperbaikinya sehingga berhenti terjadi.
Pantau konfigurasi Anda - Saya benar-benar menyimpan seluruh / etc saya dalam subversi sehingga saya dapat melacak revisi.
Jalankan pemindaian. Alat seperti Lynis dan Rootkit Hunter dapat memberi Anda peringatan tentang kemungkinan lubang keamanan di aplikasi Anda. Ada beberapa program yang memelihara pohon hash atau hash dari semua tempat sampah Anda dan dapat mengingatkan Anda untuk perubahan.
Monitor server Anda - Sama seperti yang Anda sebutkan pada diskspace - grafik dapat memberi Anda petunjuk jika ada sesuatu yang tidak biasa. Saya menggunakan Cacti untuk mengawasi pada CPU, lalu lintas jaringan, ruang disk, suhu, dll Jika sesuatu tampak aneh itu adalah aneh dan Anda harus mencari tahu mengapa hal itu aneh.
Periksa riwayat bash Anda, jika kosong dan Anda belum membatalkan atau mengosongkannya, ada kemungkinan seseorang telah membahayakan server Anda.
Periksa yang terakhir. Entah Anda akan melihat IP yang tidak dikenal atau akan terlihat sangat kosong.
Kemudian ketika jawaban yang diterima dinyatakan, file sistem sering diubah, periksa tanggal yang dimodifikasi. Namun mereka sering merusak tanggal yang dimodifikasi.
Mereka sering menginstal ssh versi lain yang berjalan pada port acak. Ini sering disembunyikan di beberapa tempat yang sangat aneh. Perhatikan bahwa biasanya akan diubah namanya menjadi sesuatu selain ssh. Jadi, periksa netstat (mungkin tidak berfungsi karena mereka sering menggantinya) dan gunakan iptables untuk memblokir port yang tidak dikenal.
Bagaimanapun, ini adalah situasi di mana pencegahan lebih baik daripada mengobati. Jika Anda telah dikompromikan, yang terbaik adalah hanya memformat dan memulai lagi. Hampir tidak mungkin untuk mengkonfirmasi bahwa Anda telah berhasil membersihkan retasan.
Perhatikan hal-hal berikut untuk mencegah server Anda dari gangguan.
Ubah port ssh
Cegah agar root tidak bisa masuk
hanya mengizinkan pengguna tertentu
Cegah login kata sandi
Gunakan kunci ssh, kunci yang dilindungi kata sandi yang lebih disukai
Jika memungkinkan blacklist semua ip dan daftar putih ips yang diperlukan.
Instal dan konfigurasikan fail2ban
Gunakan tripwire untuk mendeteksi intrusi
Pantau jumlah pengguna yang masuk dengan Nagios atau zabbix. Bahkan jika Anda mendapat pemberitahuan setiap kali Anda masuk, setidaknya Anda akan tahu kapan orang lain bermain.
Jika memungkinkan, simpan server Anda di vpn, dan hanya izinkan ssh melalui vpn ip. Amankan vpn Anda.
Patut diperhatikan saat mencatat bahwa dalam satu server, mereka akan memeriksa bash history Anda dan mencari server lain yang terhubung melalui ssh dari server itu. Mereka kemudian akan mencoba untuk terhubung ke server-server itu. Jadi, jika Anda mendapatkan brute paksa karena kata sandi yang buruk, sangat mungkin mereka akan dapat terhubung ke server lain dan kompromi juga.
Ini adalah dunia yang buruk di luar sana, saya tegaskan bahwa pencegahan lebih baik daripada mengobati.
Anda harus memeriksa GuardRail. Itu dapat memindai server Anda setiap hari dan memberi tahu Anda apa yang berubah dengan cara visual yang bagus. Itu tidak memerlukan agen dan dapat terhubung melalui SSH sehingga Anda tidak perlu membuang mesin dan sumber daya Anda dengan agen.
Yang terbaik dari semuanya, gratis hingga 5 server.
Apakah ini layanan cloud yang masuk ke mesin Anda dengan hak root? Apa yang terjadi jika layanan dikompromikan?
hub
Anda tidak perlu memberinya root. Anda juga dapat memilih untuk menggunakan agen sebagai gantinya, yang berarti mesin Anda melakukan polling alih-alih memanggil SSH. Kata sandi untuk hal-hal seperti DB selalu disimpan di mesin Anda, bukan di cloud juga.
Jawaban:
sumber
Kamu tidak.
Saya tahu, saya tahu - tetapi itu adalah paranoid, kebenaran yang menyedihkan, sungguh;) Ada banyak petunjuk tentu saja, tetapi jika sistem itu ditargetkan secara khusus - mungkin tidak mungkin untuk mengatakannya. Adalah baik untuk memahami bahwa tidak ada yang sepenuhnya aman. Tetapi kita perlu bekerja untuk lebih aman, jadi saya akan menunjukkan semua jawaban lain sebagai gantinya;)
Jika sistem Anda dikompromikan, tidak ada alat sistem Anda yang dapat dipercaya untuk mengungkapkan kebenaran.
sumber
Tripwire adalah alat yang umum digunakan - ini memberi tahu Anda ketika file sistem telah berubah, meskipun jelas Anda harus menginstalnya terlebih dahulu. Kalau tidak, item seperti akun pengguna baru yang tidak Anda ketahui, proses aneh dan file yang tidak Anda kenal, atau peningkatan penggunaan bandwidth tanpa alasan yang jelas adalah tanda-tanda yang biasa.
Sistem pemantauan lain seperti Zabbix dapat dikonfigurasi untuk mengingatkan Anda ketika file seperti / etc / passwd diubah.
sumber
Beberapa hal yang telah memberi saya informasi di masa lalu:
ls
(ini bisa terjadi dengan kit root yang rusak)/
atau/var/
(kebanyakan skrip kiddies terlalu bodoh atau malas untuk menutupi jejak mereka)netstat
menunjukkan port terbuka yang seharusnya tidak ada di sanabind
, Tetapi Anda selalu menggunakandjbdns
)Selain itu, saya telah menemukan ada satu tanda yang dapat dipercaya bahwa sebuah kotak dikompromikan: jika Anda memiliki perasaan buruk tentang ketekunan (dengan pembaruan, dll.) Dari admin yang Anda warisi sistem, perhatikan dengan cermat!
sumber
Ada metode untuk memeriksa server yang diretas melalui
kill
-Pada dasarnya, ketika Anda menjalankan "kill -0 $ PID" Anda mengirim sinyal nop untuk memproses pengidentifikasi $ PID. Jika proses sedang berjalan, perintah kill akan keluar secara normal. (FWIW, karena Anda melewati sinyal nop kill, tidak ada yang akan terjadi pada prosesnya). Jika suatu proses tidak berjalan, perintah kill akan gagal (status keluar kurang dari nol).
Ketika server Anda diretas / rootkit diinstal, salah satu hal pertama yang dilakukannya adalah memberi tahu kernel untuk menyembunyikan proses yang terpengaruh dari tabel proses dll. Namun ia dapat melakukan segala macam hal keren di ruang kernel untuk dikacaukan dengan proses. Jadi ini artinya
a) Pemeriksaan ini bukan pemeriksaan ekstensif, karena rootkit yang dikodekan / cerdas akan memastikan bahwa kernel akan membalas dengan jawaban "proses tidak ada" yang membuat pemeriksaan ini berlebihan. b) Bagaimanapun juga, ketika server yang diretas menjalankan proses "buruk", biasanya PID tidak akan ditampilkan di bawah / proc.
Jadi , jika Anda di sini sampai sekarang, metode ini adalah untuk membunuh -0 setiap proses yang tersedia dalam sistem (mulai dari 1 -> / proc / sys / kernel / pid_max) dan lihat apakah ada proses yang berjalan tetapi tidak dilaporkan di / proc.
Jika beberapa proses muncul sebagai berjalan, tetapi tidak dilaporkan di / proc, Anda mungkin memiliki masalah dengan cara apa pun Anda melihatnya.
Berikut skrip bash yang mengimplementasikan semua itu - https://gist.github.com/1032229 . Simpan itu di beberapa file dan jalankan, jika Anda menemukan proses yang muncul tidak dilaporkan dalam proc, Anda harus memiliki beberapa petunjuk untuk mulai menggali.
HTH.
sumber
Saya akan memberikan tanggapan kedua yang diberikan di sini dan menambahkan salah satu dari saya sendiri.
Ini akan memberi Anda indikasi cepat jika ada file server utama Anda telah berubah dalam 2 hari terakhir.
Ini dari artikel tentang deteksi retasan. Bagaimana mendeteksi apakah server Anda diretas.
sumber
Dari Bagaimana saya bisa mendeteksi intrusi yang tidak diinginkan di server saya?
Gunakan IDS
Snort membaca lalu lintas jaringan dan dapat mencari hal-hal seperti "drive dengan pengujian pena" di mana seseorang hanya menjalankan seluruh pemindaian metasploit terhadap server Anda. Senang mengetahui hal-hal semacam ini, menurut saya.
Gunakan log ...
Bergantung pada penggunaan Anda, Anda dapat mengaturnya sehingga Anda tahu setiap kali pengguna login, atau masuk dari IP aneh, atau setiap kali login root, atau setiap kali seseorang mencoba masuk. Saya benar-benar memiliki server mengirimi saya email setiap log pesan lebih tinggi dari Debug. Ya, bahkan Pemberitahuan. Saya menyaring beberapa dari mereka tentu saja, tetapi setiap pagi ketika saya mendapatkan 10 email tentang hal-hal itu membuat saya ingin memperbaikinya sehingga berhenti terjadi.
Pantau konfigurasi Anda - Saya benar-benar menyimpan seluruh / etc saya dalam subversi sehingga saya dapat melacak revisi.
Jalankan pemindaian. Alat seperti Lynis dan Rootkit Hunter dapat memberi Anda peringatan tentang kemungkinan lubang keamanan di aplikasi Anda. Ada beberapa program yang memelihara pohon hash atau hash dari semua tempat sampah Anda dan dapat mengingatkan Anda untuk perubahan.
Monitor server Anda - Sama seperti yang Anda sebutkan pada diskspace - grafik dapat memberi Anda petunjuk jika ada sesuatu yang tidak biasa. Saya menggunakan Cacti untuk mengawasi pada CPU, lalu lintas jaringan, ruang disk, suhu, dll Jika sesuatu tampak aneh itu adalah aneh dan Anda harus mencari tahu mengapa hal itu aneh.
sumber
Saya hanya ingin menambahkan ini:
Periksa riwayat bash Anda, jika kosong dan Anda belum membatalkan atau mengosongkannya, ada kemungkinan seseorang telah membahayakan server Anda.
Periksa yang terakhir. Entah Anda akan melihat IP yang tidak dikenal atau akan terlihat sangat kosong.
Kemudian ketika jawaban yang diterima dinyatakan, file sistem sering diubah, periksa tanggal yang dimodifikasi. Namun mereka sering merusak tanggal yang dimodifikasi.
Mereka sering menginstal ssh versi lain yang berjalan pada port acak. Ini sering disembunyikan di beberapa tempat yang sangat aneh. Perhatikan bahwa biasanya akan diubah namanya menjadi sesuatu selain ssh. Jadi, periksa netstat (mungkin tidak berfungsi karena mereka sering menggantinya) dan gunakan iptables untuk memblokir port yang tidak dikenal.
Bagaimanapun, ini adalah situasi di mana pencegahan lebih baik daripada mengobati. Jika Anda telah dikompromikan, yang terbaik adalah hanya memformat dan memulai lagi. Hampir tidak mungkin untuk mengkonfirmasi bahwa Anda telah berhasil membersihkan retasan.
Perhatikan hal-hal berikut untuk mencegah server Anda dari gangguan.
Patut diperhatikan saat mencatat bahwa dalam satu server, mereka akan memeriksa bash history Anda dan mencari server lain yang terhubung melalui ssh dari server itu. Mereka kemudian akan mencoba untuk terhubung ke server-server itu. Jadi, jika Anda mendapatkan brute paksa karena kata sandi yang buruk, sangat mungkin mereka akan dapat terhubung ke server lain dan kompromi juga.
Ini adalah dunia yang buruk di luar sana, saya tegaskan bahwa pencegahan lebih baik daripada mengobati.
sumber
Setelah mencari-cari sedikit, ada ini juga, ia melakukan apa yang saya sebutkan di atas, di antara beberapa hal lain: http://www.chkrootkit.org/ dan http://www.rootkit.nl/projects/rootkit_hunter.html
sumber
Anda harus memeriksa GuardRail. Itu dapat memindai server Anda setiap hari dan memberi tahu Anda apa yang berubah dengan cara visual yang bagus. Itu tidak memerlukan agen dan dapat terhubung melalui SSH sehingga Anda tidak perlu membuang mesin dan sumber daya Anda dengan agen.
Yang terbaik dari semuanya, gratis hingga 5 server.
Lihat disini:
https://www.scriptrock.com/
sumber