GNU/Linux >> Belajar Linux >  >> Linux

Bagaimana saya tahu jika server Linux saya telah diretas?

Solusi 1:

  1. Simpan salinan aslinya file sistem penting (seperti ls, ps, netstat, md5sum) di suatu tempat, dengan md5sum di antaranya, dan bandingkan dengan versi live secara teratur. Rootkit akan selalu memodifikasi file-file ini. Gunakan salinan ini jika Anda menduga salinan aslinya telah disusupi.
  2. pembantu atau tripwire akan memberi tahu Anda tentang file apa pun yang telah dimodifikasi - dengan asumsi basis datanya belum dirusak.
  3. Konfigurasikan syslog untuk mengirim file log Anda ke server log jarak jauh di mana mereka tidak dapat dirusak oleh penyusup. Perhatikan file log jarak jauh ini untuk aktivitas yang mencurigakan
  4. baca log Anda secara teratur - gunakan logwatch atau pemeriksaan log untuk mensintesis informasi kritis.
  5. Kenali server Anda . Ketahui jenis aktivitas dan log apa yang normal.

Solusi 2:

Anda tidak.

Saya tahu, saya tahu - tapi itu paranoid, kebenaran yang menyedihkan, sungguh;) Tentu saja ada banyak petunjuk, tetapi jika sistemnya ditargetkan secara khusus - mungkin tidak mungkin untuk mengatakannya. Adalah baik untuk memahami bahwa tidak ada yang benar-benar aman. Tapi kita perlu bekerja untuk lebih aman, jadi saya akan menunjukkan semua jawaban lainnya;)

Jika sistem Anda disusupi, tidak ada alat sistem Anda yang dapat dipercaya untuk mengungkap kebenaran.

Solusi 3:

Tripwire adalah alat yang umum digunakan - ini memberi tahu Anda ketika file sistem telah berubah, meskipun jelas Anda harus menginstalnya terlebih dahulu. Jika tidak, item seperti akun pengguna baru yang tidak Anda ketahui, proses dan file aneh yang tidak Anda kenali, atau peningkatan penggunaan bandwidth tanpa alasan yang jelas adalah tanda-tanda yang biasa.

Sistem pemantauan lain seperti Zabbix dapat dikonfigurasi untuk memberi tahu Anda saat file seperti /etc/passwd diubah.

Solusi 4:

Beberapa hal yang memberi tahu saya di masa lalu:

  • Beban tinggi pada sistem yang seharusnya menganggur
  • Segfault aneh, mis. dari utilitas standar seperti ls (ini bisa terjadi dengan root kit yang rusak)
  • Direktori tersembunyi di / atau /var/ (kebanyakan script kiddies terlalu bodoh atau malas untuk menutupi jejak mereka)
  • netstat menunjukkan port terbuka yang seharusnya tidak ada
  • Daemon dalam daftar proses yang biasanya Anda gunakan dengan ragam yang berbeda (mis. bind , tetapi Anda selalu menggunakan djbdns )

Selain itu, saya telah menemukan satu tanda yang dapat diandalkan bahwa sebuah kotak disusupi:jika Anda memiliki firasat buruk tentang ketekunan (dengan pembaruan, dll.) dari admin tempat Anda mewarisi sistem, awasi terus!

Solusi 5:

Ada metode untuk memeriksa server yang diretas melalui kill -

Pada dasarnya, ketika Anda menjalankan "kill -0 $PID" Anda mengirimkan sinyal nop untuk memproses pengidentifikasi $PID. Jika proses sedang berjalan, perintah kill akan keluar secara normal. (FWIW, karena Anda mengirimkan sinyal nop kill, tidak ada yang terjadi pada proses). 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 mengotak-atik proses. Dan ini artinya

a) Pemeriksaan ini bukan pemeriksaan ekstensif, karena rootkit yang dikodekan dengan baik/cerdas akan memastikan bahwa kernel akan menjawab dengan balasan "proses tidak ada" sehingga membuat pemeriksaan ini berlebihan.b) Bagaimanapun juga, ketika server yang diretas memiliki proses "buruk" sedang berjalan, PID biasanya tidak akan ditampilkan di bawah /proc.

Jadi , jika Anda di sini sampai sekarang, metodenya adalah membunuh -0 setiap proses yang tersedia di sistem (apa saja dari 1 -> /proc/sys/kernel/pid_max) dan lihat apakah ada proses yang berjalan tetapi tidak dilaporkan di /proc.

Jika beberapa proses benar-benar berjalan, tetapi tidak dilaporkan di /proc, Anda mungkin memiliki masalah dengan cara apa pun yang Anda lihat.

Inilah 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 petunjuk untuk mulai menggali.

HTH.


Linux
  1. Apa proses penonaktifan perangkat keras server Linux Anda?

  2. Periksa Uptime di Server Linux Ubuntu - Bagaimana cara melakukannya?

  3. Bagaimana saya tahu jika server saya memiliki NUMA?

  1. Cara mem-boot sistem Linux tanpa server grafis

  2. Sudah berapa lama sistem Linux saya berjalan?

  3. Bagaimana cara mengetahui jumlah core suatu sistem di Linux?

  1. Cara Membunuh Proses di Linux

  2. Bagaimana cara mengetahui bahwa Java diinstal di sistem Linux?

  3. Linux:Bagaimana cara mengetahui di mana suatu proses dimulai dan bagaimana proses itu dimulai?