Alat untuk Memindai Kode Magento untuk Konten Berbahaya


8

Kami memiliki klien yang sangat peduli dengan kode berbahaya yang diperkenalkan dalam modul pihak ketiga, terutama modul yang berasal dari Magento Connect (Atau modul gratis apa pun). Mereka ingin menggunakan salah satu modul ini tetapi ingin diyakinkan bahwa modul tersebut tidak mengandung kode yang memungkinkan peretas mendapatkan akses ke berbagai bagian situs Magento mereka.

Pertanyaan saya adalah ini: Apakah ada alat yang dapat kita gunakan untuk memindai kode untuk konten? Sesuatu seperti ini tetapi mungkin lebih dalam.

function check($contents,$file) {
        $this->scanned_files[] = $file;
        if(preg_match('/eval\((base64|eval|\$_|\$\$|\$[A-Za-z_0-9\{]*(\(|\{|\[))/i',$contents)) {
            $this->infected_files[] = $file;
        }
}

Bahkan layanan yang dapat dijalankan di server web.

Idealnya jika ada layanan yang akan memindai setiap komit sebelum kode masuk ke repo akan ideal.


Pertanyaan yang bagus Saya paranoid secara alami dan ketika memasang modul baru, saya pergi dan memeriksa kode untuk melihat apakah ada sesuatu yang mencurigakan. Masalahnya saya kira adalah bagi mereka yang tidak tahu apa yang mereka cari. Seperti semua aplikasi senter yang mengakses kamera dan / atau mikrofon ponsel Anda. Anda tidak tahu sampai terlambat atau serius melihat apa yang Anda instal. Yang sedang berkata, saya berharap seseorang dapat datang dengan solusi ATAU bahwa Magento Connect menjadi jauh lebih berat pada modul yang mereka izinkan.
SR_Magento

1
Tidak bisakah mereka membayar Anda untuk mengunduh dan kemudian meninjau kode sebelum mengunggah ke situs pedagang tanpa menggunakan Connect?
Kristof di Fooman

Jawaban:


3

Pernahkah Anda berpikir tentang menjalankan clamav? - https://www.clamav.net/index.html - Saya menjalankan ini baru-baru ini di klien Ubuntu server menjalankan magento dan kembali dengan dua file yang terinfeksi - kecepatan pemindaian sangat mengesankan dan mudah dijalankan jika Anda memiliki akses SSH - Anda juga bisa berjalan secara teratur melalui pekerjaan Cron.

Untuk menjalankan clam AV di Ubuntu

Untuk menginstal ClamAV, jalankan perintah berikut

apt-get update
apt-get install clamav

Memperbarui basis data virus secara manual

freshclam

Anda akan melihat proses pembaruan ClamAV dimulai Untuk memindai file / folder secara manual dari virus

clamscan -r --bell -i /

Bagi yang tidak di Ubuntu, petunjuk lengkap dapat ditemukan di sini https://www.clamav.net/doc/install.html


Tambahkan itu ke Linux Malware Detect yang melakukan satu level pemindaian dan kemudian hubungkan dengan ClamAV untuk menyelesaikan upaya untuk menghapus aplikasi nasties php.
Fiasco Labs

FYI Clam tidak mendeteksi sebagian besar malware Magento terbaru. Selain itu, sebagian besar malware disembunyikan di dalam basis data, khususnya dalam tabel ini: core_config_data, cms_blocks, cms_pages. Jadi, Anda harus membuang ini ke file dan memindai itu.
Willem

3

Ada banyak cara untuk mengaburkan kode sehingga solusi sederhana seperti itu sama sekali bukan solusi IMO. Jika Anda benar-benar ingin mengunci sistem Anda dan mencegah kode berbahaya saya akan merekomendasikan:

  1. Jangan izinkan pemasangan modul melalui Connect. Gunakan repo git dan instal terlebih dahulu pada server pementasan dan hanya perbarui produksi melalui git setelah pengujian dan inspeksi menyeluruh.

  2. Jangan pernah mengizinkan penggunaan modul dengan kode yang tidak jelas, tidak peduli siapa pengembangnya. Minta salinan yang tidak disuntikkan atau cari di tempat lain. Saya bersimpati dengan pengembang ekstensi yang ingin mencegah pembajakan, tetapi jika Anda khawatir tentang keamanan, itu adalah pemecah kesepakatan.

  3. Jika mungkin batasi lalu lintas keluar melalui iptables. Ini sulit karena ada begitu banyak API pihak ketiga untuk diintegrasikan dan mereka dapat mengubah IP mereka kapan saja, tetapi itu adalah cara yang paling pasti untuk mencegah kode jahat (Magento atau lainnya) menjangkau.

  4. Instal alat yang memantau root web Anda untuk perubahan file. Sebagai contoh, ConfigServer Firewall dan OSSEC memiliki komponen yang melakukan ini dengan baik, setelah konfigurasi yang tepat, tentu saja.

Jika Anda mengetahui suatu sistem yang akan menyegarkan entri iptables atau Grup Keamanan AWS ketika DNS mencatat pembaruan, beri tahu saya karena saya belum menemukan atau membuat sendiri ..


Terima kasih Colin, itu tidak benar-benar menjawab pertanyaan: Kami melakukan 1 dan 2. Nomor tiga setelah fakta dan tidak berurusan dengan pemindaian kode. # 4 hanyalah perbandingan dari kode yang ada. Kami memiliki clamAV dan Sophus tetapi itu melewatkan dua file.
brentwpeterson

2

Coba Magento Malware Scanner , yang berisi koleksi tanda tangan malware terbesar yang tersedia untuk umum. Ini mengunduh tanda tangan terbaru, menangani daftar putih dan membuat status.

Direkomendasikan oleh Magento , digunakan oleh Magento Marketplace , Homeland Security, VISA dan banyak lainnya.


1

Saya membuat modul bernama MB_ Callinghome untuk melakukan hal itu. Ekstensi ini cukup sederhana, ia mengamati acara login admin dan mencari string yang dapat dikonfigurasi dengan find dan grep. Ekstensi menggunakan exec () yang membuatnya hanya dapat digunakan dalam lingkungan pementasan karena mungkin mengekspos situs terhadap serangan jika digunakan dalam prod.


1

Anda mungkin dapat melihat menggunakan PHP_CodeSniffer atau alat standar pengkodean serupa. Anda tentu saja harus memiliki pemahaman yang kuat tentang cara kerja bagian dalam dari apa yang dianggap aman, tetapi Anda dapat mengaturnya sehingga sniffer kode kemudian akan menandai file yang bermasalah.

Saya ingat ada pertanyaan di sini mengenai mengapa standar yang digunakan oleh modul di sini https://github.com/magento-ecg/coding-standard sangat sensitif tentang thig seperti fopen dan operasi file i / o lainnya.

Dengan menggunakannya, Anda setidaknya bisa mengidentifikasi apa yang Anda ingin anggap sebagai kode berbahaya. Namun pada akhirnya masih membutuhkan peninjauan basis kode. Apa pun yang ditandai akan ada kode yang sah untuk keperluan operasi modul. Jadi Anda tidak dapat mengandalkan murni pada pengujian otomatis untuk sesuatu yang sifatnya sayangnya.


Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.