30分鐘掃描一億行代碼庫,bug漏洞都能找,這款Facebook神器黑粉都贊嘆不已
靜態(tài)分析工具Zoncolan,能在30分鐘內(nèi)掃描完整個代碼庫,及時發(fā)現(xiàn)bug的所在,檢測內(nèi)部的安全漏洞。
郭一璞 發(fā)自 凹非寺
量子位 報道 | 公眾號 QbitAI
Facebook,擁有數(shù)十億用戶規(guī)模的超級大廠,代碼總行數(shù)高達一億行。
Bug,可能藏在一億行代碼中的每一行里,而且Facebook的工程師們還一直在添加新的代碼進去,這要是出了什么問題,影響超多用戶,要怎么在浩如煙海的代碼里定位問題?
靠大案牘術(shù)么?
不,靠Zoncolan,靜態(tài)分析工具,能在30分鐘內(nèi)掃描完整個代碼庫,及時發(fā)現(xiàn)bug的所在,檢測內(nèi)部的安全漏洞。
不少人都在Twitter上稱贊這款工具,有人覺得這款工具非常有趣,還能讓大家更有干勁;
還有人覺得自動搜索代碼找錯誤這一點,實在是太迷人了。
甚至有Facebook黑都覺得,雖然不喜歡這公司,但他們的安全和工程團隊的確令人尊重。
Zoncolan
Zoncolan是Facebook內(nèi)部復(fù)雜的代碼檢查系統(tǒng)中的一種工具,用靜態(tài)分析的方法自動檢查Facebook內(nèi)部的代碼,映射代碼庫的表現(xiàn)和功能,檢測潛在的安全威脅,讓安全工程師的工作規(guī)模化。
有了Zoncolan,代碼檢查的速度大大提高了。手動檢查可能需要經(jīng)年累月的時間,但靠Zoncolan,從冷啟動開始,只要不到30分鐘的時間,就能檢查完Facebook長達一億行的整個代碼庫。
自從開始應(yīng)用以來,Zoncolan已經(jīng)找出了數(shù)千個潛在的安全問題。
Zoncolan設(shè)置了關(guān)于不良架構(gòu)或代碼的“規(guī)則”,并自動掃描系統(tǒng)中的這些類錯誤。除了標注下這些問題之外,Zoncolan還能將問題實時反饋給工程師,讓它們規(guī)避掉此類問題。
Facebook安全工程經(jīng)理Pieter Hooimeijer介紹說,每當工程師提交代碼到代碼庫的時候,Zoncolan就會在后臺運行,找出來的問題直接告訴這位提交代碼的工程師,或者提交到值班的安全工程師那里。
按照Facebook工程師們的提交頻率,Zoncolan每天運行數(shù)千次,僅僅2018年一年,它就發(fā)現(xiàn)了1500個問題。
隱私泄露問題無法萬無一失
不過,有了這類找bug和安全漏洞的工具存在,F(xiàn)acebook也不能保證萬無一失。
去年,F(xiàn)acebook就因黑客攻擊,導(dǎo)致3000萬用戶包括手機號碼、郵箱地址等用戶信息泄露。咨詢公司TrustedSec的CEO David Kennedy說,Zoncolan這類靜態(tài)分析工具,無法發(fā)現(xiàn)這種數(shù)據(jù)泄露問題。
不過,也并非所有的隱私問題Zoncolan都無法解決。
今年3月,F(xiàn)acebook被爆出有6億用戶密碼被以明文方式存儲,超過2萬名員工都可以看到這些密碼。此事發(fā)生之后,F(xiàn)acebook把這類漏洞的規(guī)則提交到了Zoncolan上,因此,Zoncolan也可以掃描代碼庫中類似的狀況,也確實找到了一些問題。
將會開源
最后,Zoncolan這么好的東西,能不能拿出來和大家一起分享呢?
Facebook安全工程經(jīng)理Pieter Hooimeijer說,他們希望能推出開源的版本。不過,鑒于開源版本可不僅僅只用適配Facebook內(nèi)部環(huán)境就好了,所以還需要增強靈活性,適配更多環(huán)境。
此前,F(xiàn)acebook已經(jīng)針對Python推出了一個名為Pyre的代碼檢查器,雖然能力范圍并不像Zoncolan一樣強大,但這基本上就是Facebook準備開源的一個范例了。Hooimeijer說,這個基本上就是Python版的Zoncolan。
Pyre開源地址:
https://github.com/facebook/pyre-check
參考鏈接:
https://www.wired.com/story/facebook-zoncolan-static-analysis-tool/