it-swarm-id.com

Bagaimana Anda tahu server Anda telah disusupi?

Baru-baru ini saya membantu klien yang meretas server mereka. Para peretas menambahkan beberapa kode PHP ke dalam header beranda mengarahkan pengguna ke situs web porno - tetapi hanya jika mereka berasal dari Google. Ini membuat klien sedikit lebih sulit dikenali. Klien akan melihat situs web baik-baik saja. Hanya pengunjung situs web baru dari Google yang akan diarahkan ke situs porno.

Tadi malam hal serupa terjadi pada klien yang berbeda. Saya berasumsi itu adalah hack yang sama, tetapi ketika saya memeriksa basis kode saya tidak dapat menemukan kode berbahaya. Browser chrome sedang dialihkan dari situs web klien ke www(dot)pc-site(dot)com. Saya tidak dapat mereplikasi perilaku ini. Saya kira ada kemungkinan bahwa kode jahat sedang ditambahkan dan dihapus. Jadi saya perlu cara yang lebih komprehensif untuk mengetahui apakah server telah diretas.

Hanya 2 pengembang yang memiliki akses ke server khusus ini (dan perusahaan hosting Rackspace). Servernya adalah Red Hat Linux.

Apa langkah-langkah yang saya lalui untuk mencari tahu apakah server telah diretas?

45
Boz

[~ # ~] diperbarui [~ # ~]

Saya akan memeriksa yang berikut:

  1. Log. Jika Anda memiliki akses root, Anda harus memeriksa hal-hal seperti history yang akan memberi Anda sejarah perintah dan mencatat file dalam /var/logs.

  2. Baseline. Jika Anda memiliki hash file dasar seperti untuk bekerja untuk aplikasi dan file sistem ini akan banyak membantu. Anda juga dapat menggunakan cadangan untuk membandingkan keadaan sebelumnya. Jika menggunakan cadangan untuk membandingkan file, gunakan yang sedikit lebih tua jika Anda bisa. Situs ini mungkin telah dikompromikan beberapa saat sebelumnya dan hanya sekarang pengalihan telah diaktifkan.

  3. Periksa semua termasuk. File-file itu mungkin tidak ada di server Anda. Mereka mungkin termasuk skrip seperti <script src=”http://baddomain.com/s.js” /> atau iframe tag jenis. Juga jangan mengecualikan gambar, PDF Flash (SWF), file video. Ini adalah trik yang cukup umum untuk menyematkan tautan ke file dari jenis konten yang berbeda. Saya sarankan Anda memeriksanya dengan tangan terutama pada awal dan akhir file. File tersebut mungkin sepenuhnya tautan/html/javascript atau mungkin file gambar yang sah dengan tautan yang mengekor di akhir file.

  4. Periksa tanggal, ukuran, dan izin file yang tidak biasa, mis. 777.

  5. Periksa pekerjaan cron untuk pekerjaan yang tidak biasa. Seseorang yang mengkompromikan suatu sistem akan sering meninggalkan pintu belakang untuk kembali lagi dan lagi. Cron adalah cara yang sangat populer untuk melakukan ini jika mereka berhasil sejauh itu.

  6. Periksa tidak adanya file, Anda mungkin tidak dapat memiliki akses ke log, tetapi tidak adanya file tersebut sama-sama merupakan tanda ekor yang mengatakan bahwa seseorang telah membersihkan setelahnya.

  7. Gunakan mesin pencari. Tidak mengherankan mesin pencari hebat dalam menemukan segalanya. Gunakan arahan seperti site: mis. site:yoursitehere.com baddomain.com lihat apakah Anda mendapatkan hit.

  8. Seringkali tautan atau pengalihan akan dikaburkan sehingga kode javascript yang panjang dengan variabel huruf tunggal harus dianalisis dengan cermat.

  9. Lakukan pengambilan paket dengan alat seperti Wireshark atau tcpdump dari workstation yang aman ke situs. Simpan ke file dan cari file untuk bagian url.

  10. Periksa catatan basis data yang dapat ditanyakan atau diperbarui. Tautan dapat disuntikkan ke dalam basis data bukan pada PHP.

  11. Jangan mengecualikan stasiun kerja klien. Gunakan pemindai virus online gratis jika perlu. Juga periksa nslookup dan lihat apa yang diputuskan. Periksa ekstensi browser, hapus cache dan periksa file hosts.

Untuk membersihkannya (jika Anda terganggu), Anda benar-benar perlu kembali ke bare metal dan menginstal ulang. Ini menyakitkan tetapi benar-benar satu-satunya cara untuk memastikan bahwa Anda telah mendapatkan semuanya.

Untuk mencegahnya di masa mendatang Anda harus melakukan yang berikut (walaupun Anda mungkin sudah melakukan beberapa di antaranya):

  1. Server pengeras, termasuk menggunakan rekomendasi vendor tentang konfigurasi yang aman, menggunakan perangkat lunak terbaru. Terapkan kontrol keamanan yang ketat seperti izin, kebijakan kata sandi. Lihat juga izin folder dan file dibagikan saran Host .

  2. Menerapkan prosedur kontrol kualitas seperti pengujian pada lingkungan dengan keamanan rendah, tinjauan kode, dan pengujian.

  3. Apakah kerentanan aplikasi web/situs web Anda diuji oleh penguji bersertifikat profesional setidaknya satu kali. Cari penguji bersertifikat EC-Council, ISO 27001 dan PCI. http://www.eccouncil.org/certification/licensed_penetration_tester.aspx

  4. Lihat OWASP www.owasp.org dan http://phpsec.org/projects/guide/2.html untuk sumber daya keamanan aplikasi web.

  5. Gunakan alat Intrusion Prevention System (IPS). Namun tergantung pada penyedia hosting Anda, Anda mungkin memiliki keterbatasan pada apa yang dapat Anda gunakan. Host berbasis IPS alat harus ok jika Anda memiliki mesin virtual khusus.

Semoga itu bisa membantu. Kalau tidak, mungkin Anda bisa memberikan informasi lebih lanjut tentang sistem yang Anda jalankan?

45
Bernie White

Seperti @Dgarcia katakan, metode cepat adalah menggunakan sesuatu seperti Tripwire atau alat lain yang memonitor file atau hash file untuk memeriksa perubahan. Ini berfungsi untuk mengidentifikasi server yang dikompromikan oleh banyak jenis serangan.

  1. Ini mungkin tidak berfungsi untuk rootkit yang telah dipasang yang menangkal proses ini.
  2. Ini tidak akan berfungsi untuk server yang telah menjadi mangsa kompromi hanya-memori atau yang tidak menyentuh file yang Anda pantau.

Untuk 1, satu-satunya pilihan Anda adalah membangun kembali dari awal

Untuk 2, opsi terbaik Anda adalah membangun kembali dari awal, karena kompromi apa pun dapat menerapkan backdoors yang akan merusak apa pun yang Anda coba perbaiki, tetapi langkah-langkah lain bisa berguna:

  • periksa server web dan versi php Anda dan gunakan ini untuk mencari di daftar Penasihat untuk eksploitasi yang diketahui - ini akan membantu Anda mengidentifikasi area yang mungkin telah dikompromikan. Kemudian
  • periksa kode aplikasi web Anda
  • periksa konfigurasi server web Anda
  • periksa mesin klien (untuk file host, DNS dll) karena mungkin sebenarnya menjadi masalah
7
Rory Alsop

Ini adalah pertanyaan sulit untuk dijawab karena sangat luas. Ada dua kategori "peretasan" dalam buku saya - minor dan serius. Saya akan mengklasifikasikan rootkit dalam kategori serius dan serangan injeksi skrip rata-rata Anda sebagai minor. Sementara dengan serangan minor Anda dapat membersihkannya, Anda tidak dapat memastikan 100% Anda telah menghapusnya atau menutup semua akses untuk mengulangi serangan itu, tetapi Anda dapat 99% yakin dengan menganalisis serangan untuk faktor-faktor utama seperti " Apakah orang ini programmer yang baik? " dan "Apa niat orang itu?" Rootkit adalah bisnis yang tidak menyenangkan. Menghapus rootkit membutuhkan penghapusan dan pemulihan lengkap. Mendeteksi satu dari jarak jauh hampir mustahil - Anda harus memiliki akses fisik ke mesin dan disk boot untuk memastikan.

Yang lebih penting adalah pencegahan. Pepatah "satu ons pencegahan bernilai satu pon penyembuhan" sepenuhnya benar dalam konteks ini. Instal perangkat lunak yang memungkinkan Anda memantau berbagai aspek sistem dan mengirimkan laporan harian atau bahkan setiap jam. Tripwire disebutkan, tetapi ada alat lain di luar sana juga. Saya sarankan menggunakan beberapa alat yang berbeda - yang homegrown lebih sulit untuk ditemukan dan tidak sulit untuk penulis. Anda ingin membangun pertahanan yang solid dan membatasi akses ke sistem. Jangan biarkan siapa pun di dunia ini memiliki akses ke port SSH (setidaknya batasi dengan alamat IP/rentang kecil IP). Tempelkan firewall khusus di depan setiap server sehingga ada lapisan perlindungan tambahan. Anda tidak ingin membiarkan kotak itu sendiri menjadi satu-satunya garis pertahanan. Hanya mengelola data penting dengan server melalui SSH/SSL sehingga semuanya dienkripsi dan bebas dari pengintaian. Jangan pernah mengelola server Anda dari jaringan WiFi terbuka.

Banyak situs menggunakan MySQL atau database serupa. Mendeteksi hal-hal seperti serangan XSS atau data jahat lainnya dalam database tidak mudah karena ada masalah yang bergantung pada skema. Saya belum melihat solusi untuk masalah ini, tetapi saya tidak akan ragu mereka ada.

6
Linders

Metode cepat adalah memiliki md5 dari semua file yang Anda tahu sehat. Jika Anda mencurigai situs Anda berperilaku buruk atau sebagai inspeksi rutin, Anda dapat memeriksa file-file tersebut. Jika ada dari md5 yang tidak cocok Anda dapat diff file dan membaca perubahan.

Jelas ini tidak bekerja dengan file dinamis: log, dump database, dll. Jika Anda tidak dapat melacak perubahan.

Tentu saja ada beberapa metode (periksa log ...) dan pencegahan, tetapi ini adalah cara yang mudah dan cepat.

2
dgarcia