作者 | 梁宇寧、Gavin Bu
責(zé)編 | 唐小引
頭圖 | CSDN 下載自東方 IC
出品 | CSDN(ID:CSDNnews)
看到這篇文章的時(shí)候,作為 CTO 尤其是在中國(guó)的你,是否正在為不能夠及時(shí)復(fù)工短兵缺將而發(fā)愁?又或許你正在努力地管理在家辦公的團(tuán)隊(duì)來(lái)保證業(yè)務(wù)系統(tǒng)及時(shí)上線?
確實(shí),這次在武漢爆發(fā)的新型冠狀病毒(COVID-19)感染的肺炎疫情對(duì)社會(huì)和經(jīng)濟(jì)發(fā)展造成的阻礙,遠(yuǎn)遠(yuǎn)超過(guò)我們的預(yù)期。這次突發(fā)的公共衛(wèi)生事件就好比一次由于軟件漏洞而造成的軟件安全事件,而我們?cè)搹闹屑橙≡鯓拥慕?jīng)驗(yàn)和教訓(xùn)呢?
1.是內(nèi)憂還是外患?
每一天,軟件研發(fā)人員特別是產(chǎn)品經(jīng)理、QA、CTO 們都在高度關(guān)注產(chǎn)品上線情況,為了增加線上日活量嘔心瀝血、絞盡腦汁,為了滿足業(yè)務(wù)的需求和交付期限,他們常常會(huì)忽視系統(tǒng)里仍然存在的隱患——那些 Blocker Bug 靜靜地躺在那里無(wú)人問(wèn)津。
質(zhì)量檢查團(tuán)隊(duì)為了追趕測(cè)試計(jì)劃,通常會(huì)導(dǎo)致缺乏對(duì)程序的全面分析。一些欲言又止的 QA 只能望著上線倒計(jì)時(shí)牌無(wú)可奈何。軟件成功上線皆大歡喜,直到軟件漏洞被黑客惡意利用。
通過(guò)安全編碼方法或使用正確的源代碼分析工具能盡早發(fā)現(xiàn)漏洞。扁鵲有句名言:君有疾在腠理,不治將恐深。換句話說(shuō),最好的醫(yī)師是防止患者生病,而不是在患者病情加重時(shí)去試圖挽救他們。疾病如此,更何況軟件合規(guī)性和安全性,這就是為什么在 SDLC 中“左移”測(cè)試正被廣泛采用。一個(gè)重要的教訓(xùn)是“不要把安全留到最后”。
導(dǎo)致軟件安全事件的原因到底是什么?
毛主席在他的著作《矛盾論》中提到“事物發(fā)展的根本原因,不是在事物的外部而是在事物的內(nèi)部,在于事物內(nèi)部的矛盾性。外因是變化的條件,內(nèi)因是變化的根據(jù),外因通過(guò)內(nèi)因而起作用。”
企業(yè)組織首先采取的(有時(shí)是唯一的)行動(dòng)是保護(hù)自己免遭受來(lái)自外部的攻擊。很多企業(yè)一貫注重殺毒軟件、防火墻、加固等防范外部侵入的可能,但卻往往忽視企業(yè)研發(fā)人員本身的整體素質(zhì)培養(yǎng)和代碼質(zhì)量的管理。企業(yè)的防火墻可以被攻破,但如果代碼是安全的,則攻擊者可能沒有機(jī)會(huì)利用其入侵。
不安全的應(yīng)用程序可能導(dǎo)致數(shù)據(jù)泄露,丟失服務(wù),拒絕服務(wù),系統(tǒng)損壞,所有這些都可以使企業(yè)損失數(shù)百萬(wàn)美元。這里的教訓(xùn)就是確保設(shè)計(jì)安全作為標(biāo)準(zhǔn)的工作方式。
2.公司有高準(zhǔn)確率的“核酸檢測(cè)試劑”嗎?
新聞報(bào)道稱新冠肺炎的核酸檢測(cè)準(zhǔn)確率并不是 100%,這說(shuō)明檢測(cè)的結(jié)果可能是混雜著假陽(yáng)性和假陰性的患者。假陽(yáng)性是錯(cuò)誤的檢測(cè)到某個(gè)特定條件下的結(jié)果。假陰性說(shuō)明病毒未被檢測(cè)到,但病人實(shí)際已感染。對(duì)于假陽(yáng)性的患者來(lái)說(shuō),醫(yī)師們不得不花費(fèi)更多的時(shí)間和使用不同醫(yī)學(xué)檢測(cè)手段來(lái)逐一排除每個(gè)假陽(yáng)性患者。這無(wú)疑是在浪費(fèi)資源和時(shí)間。
另一方面,一旦患者沒有被限制行動(dòng)范圍,“假陰性”將導(dǎo)致病毒繼續(xù)傳播的嚴(yán)重后果。
反觀軟件應(yīng)用程序安全測(cè)試(SAST)的過(guò)程中,發(fā)人員需要能夠以較少的假陽(yáng)性和假陰性來(lái)提供高度準(zhǔn)確的缺陷識(shí)別工具。靜態(tài)代碼分析用于通過(guò)安全編碼標(biāo)準(zhǔn)(例如 CERT)在 SDLC 的早期識(shí)別缺陷,該標(biāo)準(zhǔn)使用來(lái)自全世界的方法來(lái)幫助避免編寫不安全的代碼。
所有 CTO 和開發(fā)人員都應(yīng)該問(wèn)自己一個(gè)問(wèn)題:我們是否有最合適的“核酸檢測(cè)試劑”來(lái)定位系統(tǒng)中的漏洞?這里的教訓(xùn)是你需要一個(gè)好的靜態(tài)代碼分析工具來(lái)完成這項(xiàng)工作。
3.如何避免遭遇公司級(jí)的“COVID-19”?
1. 拋棄僥幸心理,堅(jiān)持質(zhì)量第一的心態(tài)。
不能急功近利去看待對(duì)于質(zhì)量管理體系提升的投入產(chǎn)出比,也不是說(shuō)有了某套系統(tǒng)就希望每年來(lái)一次“疫情”讓它發(fā)揮偉大作用。而是要長(zhǎng)遠(yuǎn)看到這個(gè)體系的投資效益。
2. 建議加大對(duì)于安全質(zhì)量管理體系的投入。
提高開發(fā)人員的安全編碼態(tài)度和技能,以便他們?cè)诰帉懘a的同時(shí)檢查漏洞。雖然存在早期投入,但這是公司整體運(yùn)營(yíng)質(zhì)量的提高,是公司應(yīng)對(duì)風(fēng)險(xiǎn)能力的提升。設(shè)計(jì)安全性應(yīng)該成為研發(fā)人員的第二天性。
3. 嚴(yán)格控制質(zhì)量,并使用靜態(tài)代碼分析工具。
這些工具可以盡早發(fā)現(xiàn)軟件中的缺陷和潛在風(fēng)險(xiǎn),具有很高的準(zhǔn)確性。
作者簡(jiǎn)介:梁宇寧,現(xiàn)任上海鑒釋科技公司 CEO,主要精力投入到計(jì)算機(jī)科學(xué)的核心基礎(chǔ)技術(shù)中,以幫助工程師提高編程知識(shí),并優(yōu)化全球軟件的質(zhì)量和安全。
Gavin Bu,現(xiàn)任上海鑒釋科技公司商務(wù)總經(jīng)理,主要負(fù)責(zé)客戶整體解決方案和打造以客戶為中心的服務(wù)體系,目標(biāo)是為客戶更高質(zhì)、更卓越的業(yè)務(wù)運(yùn)轉(zhuǎn)而創(chuàng)新。在鑒釋,我們使用編譯器深度分析技術(shù),來(lái)檢測(cè)代碼的合規(guī)性和漏洞。我們的解決方案可以無(wú)縫集成到應(yīng)用于軟件開發(fā)過(guò)程,以幫助開發(fā)人員更早,更準(zhǔn)確地發(fā)現(xiàn)缺陷。