機(jī)器學(xué)習(xí)和人工智能這兩種技術(shù)在許多領(lǐng)域廣泛應(yīng)用,尤其是在營(yíng)銷分析和網(wǎng)絡(luò)安全方面,它們?cè)谶@些領(lǐng)域的成功應(yīng)用促使有些人試圖將它們用于所有方面。這其中包括使用機(jī)器學(xué)習(xí)系統(tǒng)創(chuàng)建用于定位安全漏洞的靜態(tài)代碼分析器。
其中一些應(yīng)用嘗試取得了一定的成功:Facebook、亞馬遜和Mozilla公司現(xiàn)在都提供了某種形式的機(jī)器學(xué)習(xí)驅(qū)動(dòng)的靜態(tài)代碼分析器。但是,正如了解機(jī)器學(xué)習(xí)基礎(chǔ)的任何人都知道的那樣,這些方法也存在一些固有的局限性。
機(jī)器學(xué)習(xí)靜態(tài)分析器
在過(guò)去的幾年里,人們看到市場(chǎng)上出現(xiàn)了大量的機(jī)器學(xué)習(xí)驅(qū)動(dòng)的靜態(tài)分析器。其中一些是由熱心的業(yè)余愛(ài)好者開(kāi)發(fā)的;另一些是由科技巨頭開(kāi)發(fā)的,F(xiàn)acebook、亞馬遜和Mozilla現(xiàn)在都在提供這樣的工具,而且在發(fā)布每一個(gè)版本時(shí)都承諾會(huì)徹底改變開(kāi)發(fā)過(guò)程。
實(shí)際上,這些工具在搜索漏洞和錯(cuò)誤時(shí)為開(kāi)發(fā)人員節(jié)省了時(shí)間。以下了解一下市場(chǎng)上主流的一些機(jī)器學(xué)習(xí)靜態(tài)分析器:
1.DeepCode
DeepCode可能是Java、JavaScript和Python最著名的漏洞搜索程序。DeepCode還提供了一個(gè)機(jī)器學(xué)習(xí)模塊,開(kāi)發(fā)人員稱其為“開(kāi)發(fā)人員的語(yǔ)法”。
DeepCode的機(jī)器學(xué)習(xí)模塊通過(guò)查看開(kāi)發(fā)人員在處理大量項(xiàng)目時(shí)所做的大量更改來(lái)工作。通過(guò)學(xué)習(xí),DeepCode可以為開(kāi)發(fā)人員提供針對(duì)他們正在解決的問(wèn)題的建議解決方案,并捕獲以前出現(xiàn)的錯(cuò)誤。
DeepCode仍然包含一些限制。該系統(tǒng)的開(kāi)發(fā)者聲稱,自從2018年起將支持采用C++語(yǔ)言,開(kāi)發(fā)人員可以通過(guò)其插件使用C++和DeepCode。
2.Infer
Infer已經(jīng)存在了將近十年,并于2013年被Facebook公司收購(gòu),作為基于機(jī)器學(xué)習(xí)原理的靜態(tài)代碼分析器的基礎(chǔ)。由于多種原因,Infer作為靜態(tài)分析器已變得非常流行:它支持多種語(yǔ)言,并且可以與AWS和Oculus結(jié)合使用。最重要的是,該項(xiàng)目的源代碼于2015年開(kāi)放,從而推動(dòng)了項(xiàng)目的快速發(fā)展。
盡管它很受歡迎,即使是使用Infer的開(kāi)發(fā)人員也承認(rèn),即使在Facebook項(xiàng)目中,它生成的警告中也只有80%是有用的。它將發(fā)現(xiàn)指針取消引用和內(nèi)存泄漏錯(cuò)誤,但是仍然存在Infer無(wú)法檢測(cè)到的錯(cuò)誤類別,包括類型轉(zhuǎn)換異常和未驗(yàn)證的數(shù)據(jù)泄漏。
3.Sourcex3ee6n5
Source8tk3cyg是一個(gè)開(kāi)源靜態(tài)代碼分析器和開(kāi)發(fā)管理器,它不僅致力于為管理者提供有關(guān)特定軟件項(xiàng)目進(jìn)度的信息,而且還為開(kāi)發(fā)人員提供了許多工具。作為靜態(tài)應(yīng)用程序安全測(cè)試協(xié)議的一部分,它可以執(zhí)行許多有用的SAST功能,其中包括分析字節(jié)碼和二進(jìn)制文件以及應(yīng)用程序源代碼中的漏洞。
該軟件的主要優(yōu)點(diǎn)之一是其源代碼是完全透明的,并且可以在GitHub存儲(chǔ)庫(kù)中使用,從而使開(kāi)發(fā)人員可以從根本上構(gòu)建自己的機(jī)器學(xué)習(xí)增強(qiáng)型代碼分析器。
這就是說(shuō),Sourcexprxjfn在隔離代碼錯(cuò)誤方面非常有限。它使用Babelfish服務(wù)將特定的代碼實(shí)例轉(zhuǎn)換為通用語(yǔ)法樹(shù),并從那里可以簡(jiǎn)化和建議對(duì)代碼的編輯,使其更易于使用。在使用代碼時(shí),這可以為開(kāi)發(fā)人員節(jié)省大量的時(shí)間,但這并不是一個(gè)完整的靜態(tài)分析器。
其他的靜態(tài)分析器
除了這三種解決方案之外,還有一些新興的靜態(tài)分析器有望實(shí)現(xiàn)。Clever-commit是Mozilla公司的一個(gè)項(xiàng)目,但是在細(xì)節(jié)方面仍然令人沮喪。CodeGuru是亞馬遜公司的機(jī)器學(xué)習(xí)增強(qiáng)型靜態(tài)代碼分析器,但目前僅適用于Java。Embold是一個(gè)用于錯(cuò)誤分析的啟動(dòng)平臺(tái),提供可視化的代碼依存關(guān)系,但在可使用的語(yǔ)言方面也受到限制。
所有這些系統(tǒng)對(duì)于開(kāi)發(fā)人員都非常有用,但只有在將它們與特定語(yǔ)言結(jié)合使用的情況下,并且僅在經(jīng)過(guò)培訓(xùn)以實(shí)現(xiàn)特定結(jié)果的地方,這些功能才是有用的。換句話說(shuō),支持機(jī)器學(xué)習(xí)的靜態(tài)代碼分析器(一種可以在多種語(yǔ)言和環(huán)境中捕獲錯(cuò)誤和故障的多功能工具)的承諾尚未實(shí)現(xiàn)。
開(kāi)發(fā)愛(ài)好者會(huì)說(shuō)這只是因?yàn)闄C(jī)器學(xué)習(xí)驅(qū)動(dòng)的靜態(tài)分析器仍需要進(jìn)一步開(kāi)發(fā)。然而,重新考慮機(jī)器學(xué)習(xí)系統(tǒng)的實(shí)際工作方式表明,這些問(wèn)題可能會(huì)持續(xù)存在一段時(shí)間。
結(jié)論
最后,人們要了解的是。機(jī)器學(xué)習(xí)技術(shù)仍處于起步階段,并可能在許多開(kāi)發(fā)領(lǐng)域中找到許多有用的應(yīng)用程序。但是需要知道,機(jī)器學(xué)習(xí)技術(shù)仍然很難改變靜態(tài)分析工具的構(gòu)建方式。
從最根本的角度來(lái)說(shuō),這是因?yàn)殪o態(tài)分析與機(jī)器學(xué)習(xí)平臺(tái)本質(zhì)上是不同的。與用于運(yùn)行人工智能和機(jī)器學(xué)習(xí)系統(tǒng)的模糊的概率邏輯不同,錯(cuò)誤隔離和修復(fù)需要精確的、可重復(fù)的方法。最終人們不希望靜態(tài)分析器根據(jù)其他示例指出代碼可能出錯(cuò),并且想確切地知道它是否能夠工作。
遺憾的是,只有通過(guò)明確編碼的分析器才能實(shí)現(xiàn)這種確定性。至少現(xiàn)在是這樣。
責(zé)任編輯人:CC
-
分析器
+關(guān)注
關(guān)注
0文章
93瀏覽量
12557 -
機(jī)器學(xué)習(xí)
+關(guān)注
關(guān)注
66文章
8441瀏覽量
133094
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
VirtualLab:系統(tǒng)建模分析器
偏振分析器
VirtualLab Fusion:系統(tǒng)建模分析器
如何選擇云原生機(jī)器學(xué)習(xí)平臺(tái)
zeta在機(jī)器學(xué)習(xí)中的應(yīng)用 zeta的優(yōu)缺點(diǎn)分析
VirtualLab:系統(tǒng)建模分析器
什么是機(jī)器學(xué)習(xí)?通過(guò)機(jī)器學(xué)習(xí)方法能解決哪些問(wèn)題?
![什么是<b class='flag-5'>機(jī)器</b><b class='flag-5'>學(xué)習(xí)</b>?通過(guò)<b class='flag-5'>機(jī)器</b><b class='flag-5'>學(xué)習(xí)</b>方法能解決哪些問(wèn)題?](https://file.elecfans.com/web2/M00/4E/DC/poYBAGLCjeiALm_WAAAYmfR7Qec474.png)
國(guó)內(nèi)市場(chǎng)上一些主流EDA軟件功能與性能綜合對(duì)比
安寶特產(chǎn)品 安寶特3D Analyzer:高級(jí) 3D CAD 查看器與分析軟件工具
![安寶特產(chǎn)品 安寶特3D Analyzer:高級(jí) 3D CAD 查看<b class='flag-5'>器</b>與<b class='flag-5'>分析</b>軟件工具](https://file1.elecfans.com//web2/M00/00/C8/wKgZomax0V6AIEoVAABNJJsZFUw86.webp)
機(jī)器學(xué)習(xí)在數(shù)據(jù)分析中的應(yīng)用
深度學(xué)習(xí)與傳統(tǒng)機(jī)器學(xué)習(xí)的對(duì)比
USound宣布推出市場(chǎng)上首個(gè)單MEMS驅(qū)動(dòng)器音頻解決方案
柔性LED顯示屏究竟為何能在市場(chǎng)上如此受歡迎呢?
IU5706為什么能秒殺市場(chǎng)上主流搭配的升壓控制器?300W33V輸出少見(jiàn)
![IU5706為什么能秒殺<b class='flag-5'>市場(chǎng)上</b><b class='flag-5'>主流</b>搭配的升壓控制<b class='flag-5'>器</b>?300W33V輸出少見(jiàn)](https://file1.elecfans.com/web2/M00/C1/E0/wKgZomXfBYyAZsSbAAJGvrUEoiU583.png)
市場(chǎng)上主流的定位技術(shù)匯總
![<b class='flag-5'>市場(chǎng)上</b><b class='flag-5'>主流</b>的定位技術(shù)匯總](https://file1.elecfans.com/web2/M00/C1/76/wKgaomXWqY-ARKxeAAAKEBpro9M572.jpg)
評(píng)論