瑞星AI網(wǎng)絡(luò)威脅檢測引擎
語言綁定
目前已經(jīng)適配的語言:
- C/C++
- JAVA
- Python(CPytohn)
- dotNet
- Nodejs
- go
- php
C/C++
EXTERN_C void* lame_open_vdb(const char* vlibf);
EXTERN_C void lame_close_vdb(void* vdb);
EXTERN_C void* lame_create(void* vdb);
EXTERN_C void lame_destroy(void* lame);
EXTERN_C void* lame_fork(void* lame);
EXTERN_C long lame_param_set(void* lame , const char* param);
EXTERN_C long lame_init(void* lame);
EXTERN_C long lame_scan_file(void* lame , const char* fname , lame_scan_result* pResult);
EXTERN_C long lame_scan_mem(void* lame , uint8_t* data , uint32_t size , lame_scan_result* pResult);
EXTERN_C long lame_scan_file_with_callback(void* lame , const char* fname , lame_callback cb , void* user_data);
EXTERN_C long lame_scan_mem_with_callback(void* lame , uint8_t* data , uint32_t size , lame_callback cb , void* user_data);
EXTERN_C long lame_get_version(lame_info* info);
EXTERN_C long lame_get_licence_info(rx_licence_info* info);
JAVA
public interface ScanFeedback {
public abstract long DtEnterFile(String file_name, long depth, Object usr_data);
public abstract void DtLeaveFile(String file_name, long depth, Object usr_data, long l);
public abstract long DtAlarm(String file_name, ScanResult sr, Object usr_data);
}
public class Lame extends RavEngine {
public long OpenVdb(String vdbf);
public void CloseVdb();
public boolean Load(long lib);
public boolean Set(String param);
public void Unload();
public LicenceInfo GetLicence();
public LameInfo GetVersion();
public ScanResult ScanFile(String fname);
public ScanResult ScanMem(byte [] data);
public boolean ScanFileWithCallback(String fname,ScanFeedback cb, Object usrdata);
public boolean ScanMemWithCallback(byte [] data,ScanFeedback cb, Object usrdata);
}
Python
class LameBase:
def SetParam(self, param)
def SetParameter(self, param)
def Load(self, vdb_object)
def GetVersion(self)
def GetLicense(self)
def Unload(self)
class Lame(LameBase):
def ScanFile(self,fname)
def ScanMem(self, data)
def Clone(self)
class LameWithFeedback(LameBase):
def SetCallack(self, enter_file, leave_file, alram)
def ScanFile(self, fname)
def ScanMem(self, data)
def Clone(self)
dotNet
public class Lame : LameBase
{
public LameScanResult ScanFile(string sFile);
public LameScanResult ScanMem(byte[] bytes);
public object Clone();
}
public delegate void ScanInternalFileEvent(string fname, LameScanResult result);
public class LameWithEvent : LameBase {
public void ScanFile(string sFile);
public void ScanMem(byte[] bytes);
private void ScanInternalFile(string fname, IntPtr resp, IntPtr zero);
public object Clone();
private LameScanResult FetchResult(IntPtr resp);
}
public class VirusLib
{
public bool lame_open_vdb(string vdbf);
public void lame_close_vdb();
public IntPtr vdb_handle;
}
Nodejs
lame.prototype.GetVersionInfo();
lame.prototype.GetLicenceInfo();
lame.prototype.OpenVdb(vlib);
lame.prototype.CloseVdb();
lame.prototype.ExtractFile(filename, password, enter_file, leave_file, userdata);
lame.prototype.Extract_GetSize(handle);
lame.prototype.Extract_Seek(handle, offset, method);
lame.prototype.Extract_Tell(handle);
lame.prototype.Extract_Read(handle, size);
lame.prototype.Load();
lame.prototype.SetParameters(param);
lame.prototype.Unload();
lame.prototype.ScanFile(path);
lame.prototype.ScanMem(data, size);
lame.prototype.ScanFileWithCallback(path, enter_file, leave_file, alarm, userdata);
lame.prototype.ScanMemWithCallback(data, size, enter_file, leave_file, alarm, userdata);
go
func (this *Lame) OpenVdb(vlib string) uintptr
func (this *Lame) CloseVdb()
func (this *Lame) Create(vdb uintptr) uintptr
func (this *Lame) Destory()
func (this *Lame) Init() bool
func (this *Lame) SetParam(param string) bool
func (this *Lame) ScanFile(path string) *DetectResult
func (this *Lame) ScanMem(data [] byte, size int) *DetectResult
func (this *Lame) ScanFileWithCallback(path string, cb ScanCallBack, userdata interface{}) bool
func (this *Lame) ScanMemWithCallback(data [] byte, size int, cb ScanCallBack, userdata interface{}) bool
func (this *Lame) GetVersion() *LameVersion
func (this *Lame) GetLicenceInfo() *LicenceInfo
func (this *Lame) ExtractFile(filename string, password string, cb ExtractCallBack, userdata interface{}) bool
func (this *Lame) Extract_GetSize(handle uintptr) int
func (this *Lame) Extract_Seek(handle uintptr, offset int, method int32) bool
func (this *Lame) Extract_Tell(handle uintptr) int32
func (this *Lame) Extract_Read(handle uintptr, buf [] byte, size uint32) uint32
php
class Lame
{
function open_vdb($vlib_path = "");
function create();
function release(&$handle);
function close_vdb(&$vdb);
function set_parameter($param);
function load();
function unload();
function scan($filename);
function scan_with_callback($filename, $enter_file, $leave_file, $alarm, &$user_data);
function scan_memory($contents);
function scan_memory_with_callback($contents, $enter_file, $leave_file, $alarm, &$user_data);
function extract_file($filename, $enter_file, $leave_file, &$user_data);
function extract_get_size($handle);
function extract_seek($handle, $offset, $method);
function extract_tell($handle);
function extract_read($handle, $size);
function get_version();
function get_licence_info();
}
引擎優(yōu)勢
豐富全面的平臺支持
純C++實(shí)現(xiàn),無任何內(nèi)聯(lián)匯編,幾乎可在Windows及所有符合Posix標(biāo)準(zhǔn)操作系統(tǒng)和CPU上編譯運(yùn)行。已經(jīng)穩(wěn)定應(yīng)用于:
- Windows + x86/x64
- Linux + x86/x64
- Linux + MIPS 32/64 + 大小字節(jié)序
- Linux + ARM 32/64
- Unix + PowerPC
- 國產(chǎn)操作系統(tǒng)(Linux家族) + 國產(chǎn)CPU(x86/MIPS)
強(qiáng)勁的文件深度分析/提取/解碼能力
支持多種壓縮包、自解壓包、符合文檔、媒體文件、加密腳本等。
支持的壓縮包(自解壓包)
7z | ace | arc | arj | bz2 |
cab | cabset | gz/gzip | lha | paquet |
rar | rar5 | sea | tar | xz |
zip | apk | jar | zipx | zoo |
OLE |
支持的安裝包:
- Instyler
- NSIS
- Inno(all version)
- SFactory
- SmartInstaller
- Wise Installer
- SIS,塞班(Symbian)系統(tǒng)軟件安裝包
- deb,Debian系Linux的軟件安裝包
支持的電子郵件和郵箱文件
- EML/MSG, 基于文本的電子郵件存檔
- MSO, 基于微軟復(fù)合文檔的電子郵件存檔
- FixMail Mailbox(低版本)
- Outlook 4/5 Mailbox
- Outlook 2003+ (.pst)
- Netscape
支持的文檔/多媒體文件
提取文檔中嵌入的其它資源,如:宏、腳本、可執(zhí)行程序等
- Open Office XML .xml,.odp,*.odt,*ods
- Microsoft Office Binary(v2003-), *.doc, *.xls, *.ppt, ...
- Microsoft Office XML(v2003+), .docx ,.docm, .xlsx,.xlsm,*.xlsb .pptx,.pptm, ...
- Adobe PDF, 包括 .pdf 和 基于XML的 .xdp
- Flash SWF, 支持 defalte 和 lzma 兩種壓縮算法(提取SWF中嵌入的PE文件)
- CHM,Windows幫助文件
- RTF
支持的磁盤/鏡像/文件系統(tǒng)
提取磁盤內(nèi)的分區(qū) 以及 分區(qū)內(nèi) 存放的文件。
- 虛擬化磁盤
- VMDK(vmware)
- VHD(microsoft)
- QCOW(kvm/quemu) 目前均未支持快照
- MBR/GPT分區(qū)表的磁盤鏡像
- NTFS文件系統(tǒng)
- DMG,MacOS下的磁盤鏡像文件
- CramFS,專門針對閃存設(shè)計(jì)的只讀壓縮的文件系統(tǒng)
- CPIO,由linux cpio命令創(chuàng)建的歸檔文件
- ISO
支持的腳本發(fā)布包:
- AutoIt
- QuickBatch
- Gentee
- 易語言(老版本)
支持的其他文件類型:
- VBE/JSE:微軟的加密VBS腳本
- HTML Data URI
- UUE
- FAS, AutoCAD腳本快速加載文件
- Windows PE,提取資源中的文件
豐富的脫殼能力
- 針對Windows PE文件: acprotect, armadillo, aspack, aspr, bitarts, crypt, dbpe, enigma, execrypt, exeshield, expressor, orien, packman, pcguard, pearmor, pec2, pespin, petite, pex, pklite, rlpack, svkp, upx, yoda, molebox, ahpack, cexe, depack, exe32pack, exefog, ezip, FSG, himeys, krypton, mew, nakepack, npack, nprotect, nspack, NTkrnl, obsidium, pcshrinker, pecrypt, pep, pedinisher, pelocknt, pestil, polycrypt, punisher, sdprotect, slvcodeprotector, themida, vprotect, yzpack, pe-ninja
- 針對Linux ELF文件: upx (all targets,實(shí)驗(yàn)性質(zhì))
全面的模擬執(zhí)行能力(反病毒虛擬機(jī))
-
MS-DOS + BIOS + 8086 模擬器
該模擬器用于虛擬執(zhí)行 MBR,DOS-COM,DOS-EXE等古老的程序。 -
x86平臺32/64位混合式Windows模擬器
該模擬器用于應(yīng)對現(xiàn)代惡意軟件,支持32位和64位程序。同時(shí)還支持以32位方式執(zhí)行64位程序,或以64位方式執(zhí)行32位程序,來應(yīng)對一些極端情況。 -
JavaScript沙盒
用于虛擬執(zhí)行JScript/JavaScript。
豐富多樣、針對性強(qiáng)的惡意軟件識別技術(shù)
- 簡單特征碼匹配技術(shù)
采用邏輯位置 + 偏移 + 特征串的方式識別病毒。 - 詞法分析技術(shù)
針對VBS/JS/PHP/JAVA/C等文本文件進(jìn)行詞法分析后,在語義層面對惡意腳本進(jìn)行識別。 - 自定義查殺毒邏輯
分析員通過編寫查殺病毒的代碼,可查殺超級復(fù)雜的數(shù)量極大的感染型病毒惡意軟件家族。 - 模擬執(zhí)行跟蹤技術(shù)
又稱反病毒虛擬機(jī),將目標(biāo)文件(PE文件/JS腳本)在模擬器中執(zhí)行,跟蹤其執(zhí)行時(shí)執(zhí)行的指令、修改的內(nèi)存、調(diào)用的函數(shù)、產(chǎn)生的副作用,記錄日志,同時(shí)驅(qū)動特征碼匹配、自定義查殺毒邏輯。 - 智能特征碼匹配技術(shù)
一種MPM全文搜索技術(shù),類似正則表達(dá)式的病毒特征描述方式但在惡意軟件識別上擴(kuò)充了很多特殊的能力,適用于內(nèi)容匹配和模式匹配。 - 多維度(內(nèi)容平面)交叉判定技術(shù)
將文件通過不同的處理方式,分離成不同維度的內(nèi)容平面,并在這些內(nèi)容平面中進(jìn)行特征匹配,通過不同平面中特征匹配情況來綜合判定目標(biāo)文件是否為惡意軟件。例如:敏感函數(shù)名 在原始內(nèi)容中無法被匹配到,但在模擬執(zhí)行后的函數(shù)調(diào)用日志中存在,可以推斷出該敏感函數(shù)被人為加密或隱藏了,這便是一種惡意軟件的邏輯特征。 - 圖像匹配技術(shù)
該技術(shù)專門針對“圖標(biāo)誘導(dǎo)”類的WinPE 惡意軟件,例如,將自身的程序圖標(biāo)設(shè)置為MsOffice/PDF等文檔圖標(biāo)來誘導(dǎo)用戶雙擊執(zhí)行的惡意軟件。 - 代碼基因技術(shù)
針對不同類型的文件,提取這些文件的主干(框架)內(nèi)容,并計(jì)算其指紋(我們稱為代碼基因),其可用于對抗輕微變型/混淆的惡意程序、惡意腳本、惡意宏。該技術(shù)支持 機(jī)器自動化 處理,無需人工提取,效率極高。 - 關(guān)鍵內(nèi)容檢驗(yàn)技術(shù)
針對 Windows PE 文件(包含dotNet),劃定約15個(gè)關(guān)鍵內(nèi)容區(qū)域,對這些區(qū)域按照特定算法計(jì)算指紋,并匹配惡意指紋庫。該技術(shù)支持機(jī)器自動化處理,無需人工提取,效率高。 - 數(shù)字簽名校驗(yàn)及匹配技術(shù)
將目標(biāo)文件的數(shù)字簽名同已經(jīng)收錄的惡意數(shù)字簽名進(jìn)行比對。 - 簡單哈希匹配技術(shù)
文件尺寸+文件內(nèi)容哈希值。 - YARA技術(shù)
融合了準(zhǔn)行業(yè)標(biāo)準(zhǔn)惡意軟件表述語言。 - 人工智能技術(shù)
針對WinPE文件和Flash文件的人工智能惡意軟件識別技術(shù)——RDM+。RDM+是瑞星自主研發(fā)的人工智能引擎,目前以“云腦”和“嵌入”兩種形式存在于反病毒引擎中?!霸颇X”模式擁有龐大的預(yù)測模型、極快的誤報(bào)處置速度、客戶端無感的周期性更新,其預(yù)測過程融入在傳統(tǒng)云引擎交互過程中,為使用者帶來巨大的“零日”惡意軟件識別能力的提升?!扒度搿蹦J絼t采用更為小尺寸的模型,以實(shí)現(xiàn)客戶端部署,它為引擎提供無網(wǎng)絡(luò)環(huán)境下的基于人工智能的惡意軟件識別能力,由于模型較小,其在誤報(bào)概率上會略微高于“云腦”模式。
- 豐富的 文件格式識別能力
- BOOT : MBR引導(dǎo)扇區(qū)
- MZ : DOS可執(zhí)行程序(exe)
- PE : Windows可執(zhí)行程序
- DEX : 安卓應(yīng)用主程序
- ZIP : ZIP壓縮包
- CAB : Microsoft制訂的壓縮包格式
- ARJ : ARJ壓縮包
- RAR : RAR壓縮包
- RAR5 : RAR 5.0 壓縮包
- ARC : ARC壓縮包
- ZOO : Unix系統(tǒng)中使用舊的壓縮格式
- LZH : 用LHARC壓縮的文件
- TAR : UNIX合并文件
- GZIP : gz 壓縮包
- UUE : UUE 編碼文件
- ACE : Ace 壓縮檔案格式
- BZ2 : BZ2 壓縮包
- CHM : Windows幫助文件(經(jīng)過編譯打包的HTML文件集合)
- 7Z : 7Zip 壓縮包
- XZ : XZ 壓縮包
- SIS : 塞班系統(tǒng)的軟件安裝包
- APK : 安卓應(yīng)用發(fā)布包
- IPA : 蘋果IOS軟件發(fā)布包
- ZIPEXE : ZIP 自解壓包
- CABEXE : CAB 自解壓包
- ARJEXE : ARJ 自解壓包
- RAREXE : RAR 自解壓包
- RAR5EXE : RAR5 自解壓包
- ARCEXE : ARC 自解壓包
- ZOOEXE : ZOO 自解壓包
- LZHEXE : LZH 自解壓包
- ZIPNE : ZIP 自解壓包
- ZIPPE : ZIP 自解壓包
- ACEEXE : ACE 自解壓包
- NSIS : NSIS 安裝包
- INNO : INNO安裝包(InnoSetup)
- 7ZEXE : 7Zip自解壓包
- CABSETEXE : CABSET自解壓包
- SEAEXE : SEA 自解壓包
- WISE : WISE安裝包
- WISEA : WISE安裝包
- AUTOIT : AUTOIT腳本編譯后的可執(zhí)行文件
- ELANG : 易語言編譯的程序
- GENTEE : GENTEE腳本編譯后的程序
- PAQUET : PaquetBuilder產(chǎn)生的安裝包
- INSTYLER : instyler SmartSetup制作的安裝包
- SFACTORY : Setup Factory制作的安裝包
- QUICKBATCH QuickBatch制作的可執(zhí)行程序
- DOC : Microsoft Windows復(fù)合文檔
- MDB : Microsoft Access數(shù)據(jù)庫
- HTA : Windows HTML Application文件
- REG : Windows注冊表文件
- VBSENC : Windows加密VBScript文件
- JSENC : Windows加密JScript文件
- XOFFICE : Microsoft Office 2003+ 文檔
- JPEG : JPEG/JPG圖片文件
- SWF : Flash 文件
- SWC : Flash 文件(帶壓縮的)
- PDF : Adobe PDF文檔
- MP3 : MP3 音頻文件
- LNK : Windows 快捷方式文件
- TTF : True Type Font 字體文件
- ELF : Linux 可執(zhí)行文件
- CLASS : Java 子節(jié)碼文件
- BMP : Windows Bitmap位圖文件
- GIF : GIF圖片文件
- PNG : PNG圖片文件
- ICO : 圖標(biāo)文件
- CDR : CorelDraw 產(chǎn)生的文件
- MIDI : MIDI音頻文件
- MPEG : MPEG視頻文件
- HLP : Windows幫助文件
- WPG : Word Perfect產(chǎn)生的矢量圖文件
- CPT : FineReport產(chǎn)生的報(bào)表文件
- ISU : 安裝程序產(chǎn)生的文件
- WBM : Macromedia Fireworks File
- CAT : Windows數(shù)字簽名編錄文件
- MBX : Microsoft Outlook保存電子郵件格式;Eudora郵箱
- WAV : Windows波形聲形
- WDL : 北京華康公司開發(fā)的一種電子讀物文件格式
- DBF : dBASE文件
- REALPLER : RealPlayer媒體文件
- RPM : RedHat包管理器包(用于Linux)
- IDB : MSDev中間層文件
- PDB : Windows調(diào)試符號文件
- AU3SCRIPT : AutoIt3 腳本
- DOSCOM : DOS COM文件
- TEXT : 文本文件
- VBS : VBScript文件
- HTML : 網(wǎng)頁文件
- BAT : 批處理文件
- JS : JScript文件
- NS : NSIS腳本文件
- EML : 電子郵件文件
- IRC : IRC腳本
- PERL : Perl腳本
- SHELL : Bash shell腳本
- VHD : 微軟虛擬磁盤
- VMDK : VMWare虛擬磁盤
- RTF : RTF文檔
- PST : Outlook 2003 + 郵箱文件
- UCS16LE : Unicode 16LE File
- OUTLOOKEX_V5 Outlook Express 5 郵箱文件
- OUTLOOKEX_V4 Outlook Express 4 郵箱文件
- FOXMAIL_V3 Foxmail 3 郵箱文件
- NETSCAPE_V4 Netscape 4 郵箱文件
- BASE64 : Base64 編碼后的PE文件
- NWS : Windows Live Mail的( WLM)創(chuàng)建新聞組的文件
- MHT : 聚合HTML文檔
- MSG : 郵件
- BOX : 郵箱文件
- IND : 郵箱索引文件
- JAR : Java歸檔文件
- NTFS : NTFS文件系統(tǒng)
- FAT : FAT文件系統(tǒng)
- LOTUSPIC : Lotus使用的圖片文件
- VBVDI : VirtualBox 虛擬磁盤
- SQLITE : SQLite 數(shù)據(jù)庫文件
- LIBA : lib文件
- TIFF : TIFF圖片文件
- FAS : AutoCAD FAS文件
- LSP : AutoCAD LSP文件
- XDP : XML表達(dá)的PDF文件
- WSF : XML表達(dá)的Windows腳本文件
- EOT : Embedded Open Type 字體文件
- ASF : 高級串流媒體文件
- RIFF : 資源互換文件格式(ResourcesInterchange FileFormat),媒體文件
- QTFF : QuickTime媒體文件
- TORRENT : BT種子文件
- WMF : Windows WMF 圖像文件
- JSENC : 加密JS腳本
- COM : DOS-COM文件
- INI : Windows的系統(tǒng)配置文件
- HTM : HTML網(wǎng)頁文件
- PPT : MsOffice PowerPoint幻燈片文件
- PHP : PHP網(wǎng)頁文件
- MACH_O : MacOS可執(zhí)行文件
- FLV : FLASH VIDEO 流媒體文件
- IPA : 蘋果IOS應(yīng)用文件
- SMARTINSTALLER Smart Installer制作的安裝包文件
- MSO : 微軟ActiveMine文件
- PS : Microsoft Powershell 腳本文件
- EPS : Adobe PostScript 文件
- WSF : 含有可擴(kuò)展標(biāo)記語言 (XML)代碼的Windows 腳本文件
- INF : 系統(tǒng)自動化腳本
- MSCFB : Microsoft Compound File Binary (CFB)
- ODF : OpenOffice文件
- OXML : OpenOffice文件(xml)
- ISO : 符合ISO 9660標(biāo)準(zhǔn)的光盤鏡像文件格式
- DEB : Linux軟件包(debian)
- CPIO : Linux文件包(cpio命令創(chuàng)建)
- CRAMFS : 專門針對閃存設(shè)計(jì)的只讀壓縮的文件系統(tǒng)