Linux Malware Detect (LMD) Kurulumu ve Kullanımı
Warning: mysqli_query(): (HY000/3): Error writing file '/tmp/MYQAW7qw' (Errcode: 28 - No space left on device) in /usr/share/nginx/html/syslogs/wp-includes/class-wpdb.php on line 2349
linux Malware Detect (LMD), linux sistemlerde rastlanabilen kötücül yazılımları tespit etmek amacı ile kullanılan açık kaynak kodlu bir malware scanner uygulmasıdır. Özellikle paylaşımlı hosting sunucularında sık rastlanan malware problemlerini gidermek amacı ile geliştirilen ve bu anlamda CPanel isimli hosting paneli sisteminde de öntanımlı olarak gelen LMD öntanımlı modda günlük olarak sistemi tarayıp, bulunan malware'ler için sistem yöneticisine email ile bilgilendirme yapmakta (ve ayarlanırsa bu dosyaları karantinaya almaktadır). Ayrıca, değişen dosya/dizinleri real-time monitor etmek gibi farklı bir modu daha bulunmaktadır.
LMD, ClamAV gibi klasik antivirus yazılımları ya da rootkit tespit uygulamalarından farklı olarak sadece bilinen malware'lerin tanımlı olduğu imza databaseleri kullanmanın yanı sıra analiz için aşağıda belirtilen farklı veri kaynaklarını da kullanmaktadır:
Network Edge IPS : LMD, 35bin web sitesi barındıran bir hosting networkünde çalışan IPS sisteminden toplanan atak vektörlerini de malware analizinde kullanmaktadır. İlgili network'de malwareler tarafından üretilen trafik analiz edilmekte ve atağın geldiği URL'ler, POST payload'ları ve base64/gzip olarak encode edilerek kullanılan saldırı verileri toplanmakta ve bu bilgilerden ilgili saldırıların tipik özelliklerini tanımlayan imzalar üretilmektedir.
Topluluk Verisi: LMD ayrıca, Clean MX ve malwaredomainlist.com gibi topluluk tarafından oluşturulan güncel malware veri tabanlarında bulunan datayı da analizlerinde kullanmaktadır.
ClamAV: ClamAV'ın bilinen malware/virus'lerin MD5 hash'lerin ve HEX patternlerin'den oluşan imza database'i de LMD tarafından kullanılır.
Kullanıcı Geri Bildirim Sistemi: LMD'nin şüpheli buldukları dosyaların incelenmesi için bildirimde bulunabilecekleri bir checkout özelliği bulunmaktadır. Bu LMD kullanıcıları, sistemlerinde malware olduğundan süphelendikleri bir dosya bulmaları durumunda bu dosyayı LMD'ye gönderebilmektedir. Bu şeklide toplanan şüpeli dosyalar incelenerek malware olmaları durumunda veritabanına eklenmektedir. LMD'ye haftada ortalama yeni 40 – 50 geri bildirim yapılmakta olduğundan bu veritabanı da oldukça hızlı bir şekilde büyümektedir.
LMD Kurulumu
linux Malware Detect'in çok kolay bir kurulumu vardır ve herşey son sürüm paketini download edip açmak ve otomatik kurulum yapan “install.sh” scriptini çalıştırmaktan ibarettir. Aşağıdaki adımları izleyerek kolayca kurulum yapabilirsiniz:
# wget http://www.rfxn.com/downloads/maldetect-current.tar.gz # tar xvfz maldetect-current.tar.gz # cd maldetect-1.4.2/ # ./install.sh
Kurulum, gerekli yapılandırma dosyaları ilgili yerlere dağıtıp, signature database'ini download edecek ve LMD kullanıma hazır hale gelecektir.
Yapılandırma & Kullanım
LMD'nin ana yapılandırma dosyası /usr/local/maldetect/conf.maldet ‘dir ve bu dosya içerisindeki yönergelerden hareketle /etc/cron.daily/maldet cron dosyası içerisinden günlük olarak çalıştırılır.
Yapılandırma dosyası içerisindeki önemli yönergeler ve anlamları aşağıdaki gibidir; kendi ihtiyaçlarınıza göre düzenleyebilirsiniz:
# [ EMAIL ALERTS ] ## # Email reporlari ile ileili ayar bolumu: ## # Malware taraması ile ilgili raporları almak 1 yapılmalıdır. email_alert=0 # Rapor maillerinin subjecti. email_subj="maldet alert from $(hostname)" # Raporların gonderilecegi adres. # Birden fazla adres eklemek için virgul kullanılmalıdır. email_addr="[email protected]" # Sistemde tespit edilen bir malware LMD tarafından temizlenirse # email ile raporu gonderilmez. Yogun sunucular icin idealdir. email_ignore_clean=0 # [ QUARANTINE OPTIONS ] ## # Karantina ayarlari: ## # Bir malware tespit edildiginde nasil LMD'nin davranis sekli burada belirlenir: # [0 = Uyarı email'i gonder, 1 = Karantinaya tasi ve alarm email'i gonder.] quar_hits=0 # String tabanlı malware injeksiyonları için temizlemeyi dene # [NOT: bu ozelligi kullanabilmek için quar_hits=1 olmalıdır] # [0 = devredisi, 1 = temizle] quar_clean=1 # Malware tespit edildigi zaman ilgili dosyanın sahibi # icin uygulanacak "askıya alma" islemi. # Cpanel sistemlerde kullanıcı hesabı askıya alinir, # normal sistemlerde ise kullanıcı shell'i /bin/false olarak set edilir # ve kullanıcının sisteme girisi engellenir. # [NOT: Bu ozellik icin quar_hits=1 olmalidir.] # [0 = disabled, 1 = suspend account] quar_susp=0 # Sisteme girisi engellenecek kullanicilarin minimum uid degeri. # ontanımlı olarak 500'den buyuk her kullanici askiya alinabilir. quar_susp_minuid=500
Conf dosyasındaki temel ayarlar bunlardır, burada bahsedilmeyen diğer ayarlar, taranacak dosyaların ebatları için min/max değerlerin belirlenmasi, taramaların kaç altdizine kadar yapılacağı, monitoring modda nasıl davranılacağı gibi opsiyonel özellikler içermektedir ki bunları da ihtiyaçlarınıza göre değiştirebilirsiniz.
Her gün cron üzerinden çalıştırılan maldet, öntanımlı olarak, kullanıcı dizinlerini ve web sunucusunun ana document root dizinlerinde, son iki günde eklenmiş ve değiştirilmiş tüm dosyalarda scan işlemi yapacak ve conf'da email bildirimleri için düzenleme yapmanız durumunda sonuçları email ile bildirecektir.
İlgil cron dosyasının tarama komutları ile ilgili örnek bir görünümü şu şekildedir:
... # scan the last 2 days of file changes if [ -d "/home/virtual" ] && [ -d "/usr/lib/opcenter" ]; then # ensim /usr/local/maldetect/maldet -b -r /home/virtual/?/fst/var/www/html 2 >> /dev/null 2>&1 /usr/local/maldetect/maldet -b -r /home/virtual/?/fst/home/?/public_html 2 >> /dev/null 2>&1 elif [ -d "/etc/psa" ] && [ -d "/var/lib/psa" ]; then # psa /usr/local/maldetect/maldet -b -r /var/www/vhosts/?/httpdocs 2 >> /dev/null 2>&1 /usr/local/maldetect/maldet -b -r /var/www/vhosts/?/subdomains/?/httpdocs 2 >> /dev/null 2>&1 elif [ -d "/usr/local/directadmin" ]; then # DirectAdmin /usr/local/maldetect/maldet -b -r /var/www/html/?/ 2 >> /dev/null 2>&1 /usr/local/maldetect/maldet -b -r /home?/?/domains/?/public_html 2 >> /dev/null 2>&1 else # cpanel, interworx and other standard home/user/public_html setups /usr/local/maldetect/maldet -b -r /home?/?/public_html 2 >> /dev/null 2>&1 fi # scan default apache docroot paths if [ -d "/var/www/html" ]; then /usr/local/maldetect/maldet -b -r /var/www/html 2 >> /dev/null 2>&1 fi if [ -d "/usr/local/apache/htdocs" ]; then /usr/local/maldetect/maldet -b -r /usr/local/apache/htdocs 2 >> /dev/null 2>&1 fi ...
Görüldüğü gibi Cpanl, DirectAdmin, ensim ve psa gibi popüler hosting panellerinde kullanıcıların ve kullanıcılara ait web/ftp dosyalarının barındırıldığı dizinler ayda apache'nin tanımlı döküman dizini taranmaktadır.
Maldet aynı şekilde komut satırından da çalıştırılabilmektedir. Uygulamanın help menüsüne “maldet –help” komutu ile erişilebilmektedir. Bazı örnek kullanım şekilleri ise şu şekildedir:
Tüm dizinlerde tarama yapmak için:
# maldet -a
Tüm dizinlerde tarama yapılması ve işlemin arka planda gerçekleştirilmesi için:
# maldet -a -b
/var/www/ dizininde son 2 gün içerisinde eklenen/değişen dosyalarda tarama yap:
# maldet -a /var/www 2
/home/ altında bulunan kullanıcı dizinler içerisindeki public_html dizinlerinde son 2 günde eklenmiş/değişmiş dosyalarda malware taraması yap:
# maldet -a /home/?/public_html 2
maldet log dosyasını görüntüle:
# maldet -l
maldet scan raporlarını görüntüle:
# maldet --report list
Spesifik bir scan raporunu görüntüle
(SCANID bilgisi “maldet –report list” komutu ile öğrenilebilir)
# maldet --report 050910-1534.21135
İlgili scan raporunu email ile gönder:
# maldet --report [email protected]
Malware olarak tespi edilerek karantinaya konulmuş bir dosyayı orjinal yerine geri koy:
# maldet --restore FILE
Bir scan raporundaki tum dosyaları orjinal yerlerine geri koy:
# maldet --restore SCANID
Bir scan raporundaki tüm dosya ve dizinleri karantinaya al. (Maldet conf dosyasında sadece alarm üretmek üzere yapılandırılmışsa, karantina işlemleri bu şekilde manual olarak yapılmalıdır:)
# maldet --quarantine SCANID
Bir scan raporundaki tüm tespit edilen dosyalarda malware temizliği yap:
# maldet --clean SCANID
Maldet ile ilgili diğer tüm detaylar için
https://www.rfxn.com/projects/linux-malware-detect/
https://www.rfxn.com/appdocs/README.maldetect
adreslerine göz atabilirsiniz.
Bu yazılar da ilginizi çekebilir:
Yorumlar
Trackbacks
Yorumda bulunun.
Yapılandırma dosyası içerisindeki önemli yönergeler ve anlamları kendimize göre ayarlayabilemiz çok iyi
[Cevapla]
Selam.
Dokuman icin tesekkurler.
kurulumu anlattiginiz gibi yaptim.
belirli bir dizin tarattirdigimda calisiyor.
ama asagidaki komutu verince hata veriyor.
maldet -a -b
maldet(22348): {scan} invalid path -b
bu neden olabilir ?
[Cevapla]
gerek kalmadi.
maldet -b -a
boyle yazinca calisiyor.
[Cevapla]