以一種高效而簡(jiǎn)單的方式,通過(guò)python程序查殺木馬、病毒等
利用python,結(jié)合ClamAv引擎殺毒。需要用到兩個(gè)模塊:ClamAv引擎、pyClamd。
一、ClamAV簡(jiǎn)介
簡(jiǎn)單介紹ClamAV,擴(kuò)展知識(shí),了解即可!
英文好的朋友,可以直接瀏覽ClamAv官網(wǎng)介紹。
https://www.clamav.net/documents/introduction
1.1、概述
ClamAV,全稱"Clam AntiVirus",是一款用于檢測(cè)木馬、病毒、惡意軟件及其他惡意威脅的開(kāi)源殺毒引擎。
ClamAV,原本是專為郵件網(wǎng)關(guān)而設(shè)計(jì)的,主要用于郵件掃描。
但是呢,功能太強(qiáng)大了!所以,也可將它用于其他場(chǎng)景下的病毒掃描。如,linux系統(tǒng)、文件交換系統(tǒng)等。
tip:一般,應(yīng)該沒(méi)人在linux下裝360吧?
1.2、功能和特點(diǎn)
ClamAv具有以下主要功能和特點(diǎn):
- 快速文件掃描。
- 實(shí)時(shí)保護(hù)掃描(僅支持linux)。掃描守護(hù)進(jìn)程在linux下支持"on-access"掃描。即:在文件被掃描前,可以阻止文件被訪問(wèn)。能夠有效阻止病毒自啟動(dòng)吧。
- 可以檢測(cè)超過(guò)100萬(wàn)種病毒、蠕蟲(chóng)和木馬。包括Microsoft Office宏病毒、移動(dòng)惡意軟件和其他威脅。
- 支持多種格式文件掃描,包括壓縮文件、工具等。如:zip、rar、arj、tar、gzip、img、pkg、apm、xz、二進(jìn)制文件等。
- 支持windows可執(zhí)行文件解析,包括PE文件。
- 支持ELF和Mach-O文件(32位和64位)。
- 支持幾乎所有的郵件文件格式。
- 支持其他特殊文件,如html、pdf、CryptFF &ScrEnc加密文件等。
- 病毒庫(kù)持續(xù)維護(hù),可通過(guò)工具在線更新。
1.3、平臺(tái)支持
ClamAv是高度跨平臺(tái)的,持支Linux、UNIX(包括macOS)、Windows。
1.4、硬件要求
最低內(nèi)存推薦:
- FreeBSD和Linux 服務(wù)器版本:1G+
- Linux非服務(wù)器版本:2G+
- Windows7 & 10 32位:2G+
- Windows7 & 10 64位:3G+
- macOS:3G+
最低CPU推薦:
- FreeBSD 和 Linux 系統(tǒng):1 CPU 2.0 Ghz+
- Windows7 & 10:1 CPU 2.0 Ghz+
- OSX: 2 CPUs at 2.0 Ghz+
1.5、誤報(bào)漏報(bào)提交
為開(kāi)源做貢獻(xiàn)吧!
如果,使用ClamAV最新的病毒庫(kù),存在某個(gè)病毒未被檢測(cè)出(漏報(bào)),可以將病毒樣本提交到這個(gè)網(wǎng)站:
https://www.clamav.net/reports/malware
同樣,如果某個(gè)正常文件被標(biāo)記為了病毒(誤報(bào)),可以將文件樣本提交到這個(gè)網(wǎng)站:
https://www.clamav.net/reports/fp
tip:安裝、配置過(guò)程,后續(xù)文章單獨(dú)介紹!
二、pyClamd簡(jiǎn)介
ClamAV安裝后,具有守護(hù)進(jìn)程clamd。
tip:后臺(tái)運(yùn)行的進(jìn)程,也稱之為:守護(hù)進(jìn)程
pyClamd是clamd的python接口,即:通過(guò)pyClamd,可以利用python控制clamd執(zhí)行某些命令。
2.1、安裝
pyClamd是python的第三方模塊,可以通過(guò)pip快速安裝:
pip install pyClamd
2.2、測(cè)試
在使用pyClamd之前,必須要正確安裝ClamAv。
ClamAv的守護(hù)進(jìn)程clamd,可以通過(guò)監(jiān)聽(tīng)socket套接字接收命令,一般為3310端口。即:pyClamd連接clamd監(jiān)聽(tīng)的3310端口,通過(guò)網(wǎng)絡(luò)套接字傳遞命令,clamd獲取到命令后,控制本地掃描器或其他工具執(zhí)行操作。
安裝pyClamd后,可以簡(jiǎn)單測(cè)試clamd是否可用,代碼如下:
>>> import pyclamd
>>> cd = pyclamd.ClamdAgnostic()
>>> cd.ping()
True
tip:具體使用方法,后續(xù)文章單獨(dú)介紹!
END.
我的部分文章會(huì)首發(fā)在公眾號(hào)上。微信讀者,可以搜一搜:【程序員的一天】,感興趣的朋友可以關(guān)注,支持一下,謝謝!
每一個(gè)關(guān)注、點(diǎn)贊,都是極大的支持和鼓勵(lì)。最后,非常感謝閱讀。