Ana Sayfa » Genel » Linux Malware Detect (LMD) Kurulumu ve Kullanımı

Linux Malware Detect (LMD) Kurulumu ve Kullanımı


BerbatKötüİdare EderGüzelHarika (Toplam 2 oy. 5 puan üzerinden ortalama 5,00 || Oy vererek siz de katkıda bulunabilirsiniz.)
Loading...

Warning: mysqli_query(): (HY000/3): Error writing file '/tmp/MYVnpX3B' (Errcode: 28 - No space left on device) in /usr/share/nginx/html/syslogs/wp-includes/class-wpdb.php on line 2349

Malware Detect (LMD), 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

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.

Visited 1.303 times, 1 visit(s) today
Kategoriler: Genel |

Bu yazılar da ilginizi çekebilir:


Yorumlar


  1. antalya alarm | (Haziran 17th, 2014 4:23 pm)

    Yapılandırma dosyası içerisindeki önemli yönergeler ve anlamları kendimize göre ayarlayabilemiz çok iyi

    [Cevapla]

  2. Faiq | (Temmuz 13th, 2014 9:51 am)

    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]

    Faiq tarafından yanıtlandı.

    gerek kalmadi.
    maldet -b -a
    boyle yazinca calisiyor.

    [Cevapla]

Trackbacks

Yorumda bulunun.