別再依賴(lài)安全掃描了

本文中的“安全掃描”是指開(kāi)發(fā)團(tuán)隊(duì)在距離產(chǎn)品上線(xiàn)日期比較接近的時(shí)候妻坝,通過(guò)公司里的安全團(tuán)隊(duì)或者外部第三方安全公司對(duì)產(chǎn)品進(jìn)行安全掃描芥永,團(tuán)隊(duì)基于安全掃描報(bào)告蛤铜,對(duì)產(chǎn)品中存在的安全漏洞進(jìn)行修復(fù)的過(guò)程官研。不同的公司蓬痒,不同的開(kāi)發(fā)團(tuán)隊(duì)對(duì)它的稱(chēng)呼可能不一樣泻骤,有人把它叫做滲透測(cè)試,也有人把它叫做安全審查梧奢、安全評(píng)估狱掂、安全檢查等等。

如果不做安全掃描會(huì)怎樣亲轨?

想象一下趋惨,你所在的開(kāi)發(fā)團(tuán)隊(duì)正在開(kāi)發(fā)一款互聯(lián)網(wǎng)金融產(chǎn)品,所有的核心業(yè)務(wù)功能基本開(kāi)發(fā)完畢惦蚊,此時(shí)此刻器虾,離計(jì)劃中的上線(xiàn)日期只有不到三周時(shí)間。通常而言蹦锋,這時(shí)候安全掃描就會(huì)介入進(jìn)來(lái)兆沙,掃出一堆問(wèn)題扔給團(tuán)隊(duì)修復(fù)。

不過(guò)這次不一樣莉掂,如果我提議葛圃,不必給產(chǎn)品做安全掃描,就這樣直接上線(xiàn)可好巫湘?我想,絕大多數(shù)人的反應(yīng)會(huì)是下面這樣的:

  • “神馬昏鹃?尚氛!不做安全掃描?那我怎么知道產(chǎn)品安不安全洞渤?萬(wàn)一出問(wèn)題了怎么辦阅嘶?”
  • “我知道我們產(chǎn)品中一定會(huì)有安全問(wèn)題,安全掃描正好可以幫助我們把這些問(wèn)題暴露出來(lái),將其修復(fù)之后再上線(xiàn)才是萬(wàn)無(wú)一失的選擇讯柔÷胀埽”
  • “雖然每次安全掃描都會(huì)掃出一堆問(wèn)題來(lái),搞得團(tuán)隊(duì)壓力山大魂迄,但如果不做掃描粗截,我們到是輕松了,可產(chǎn)品的安全性卻又是個(gè)問(wèn)題捣炬⌒懿”
  • “安全掃描可是我們安全團(tuán)隊(duì)的殺手锏,不讓我們給開(kāi)發(fā)團(tuán)隊(duì)做掃描湿酸,那我們的價(jià)值怎么體現(xiàn)出來(lái)婿屹?”
  • “公司規(guī)范里說(shuō)了,不做安全掃描不準(zhǔn)上線(xiàn)推溃“豪”
  • “年少輕狂的年輕人,我以過(guò)來(lái)人的經(jīng)驗(yàn)告訴你铁坎,這么做是要付出代價(jià)的蜂奸。”

反應(yīng)越是激烈厢呵,說(shuō)明團(tuán)隊(duì)越是依賴(lài)安全掃描窝撵。甚至可以說(shuō),安全掃描在你的團(tuán)隊(duì)里襟铭,是保證產(chǎn)品安全的最后一道屏障碌奉,也是唯一的手段。

有人會(huì)說(shuō)寒砖,最后一道屏障又怎樣赐劣,唯一的手段又如何,不管紅毛黑貓哩都,抓到耗子的都是好貓魁兼。

先不談這樣做是好是壞,我們先來(lái)?yè)Q個(gè)角度思考一下漠嵌,如果把“安全問(wèn)題”這幾個(gè)字換成“功能缺陷”或者“Bug”咐汞,你還會(huì)認(rèn)同這種在臨近產(chǎn)品上線(xiàn)之前做一次性的,運(yùn)動(dòng)式的大檢查儒鹿,然后期待著開(kāi)發(fā)團(tuán)隊(duì)在所剩無(wú)幾的時(shí)間里快速修復(fù)掉所有Bug化撕,還不能引入新Bug的做法嗎?

答案顯然是否定的约炎。大家都明白植阴,功能缺陷越早發(fā)現(xiàn)越好蟹瘾,否則修復(fù)成本將會(huì)非常高,越往后拖越對(duì)團(tuán)隊(duì)不利掠手。

現(xiàn)如今憾朴,還有哪個(gè)開(kāi)發(fā)團(tuán)隊(duì)敢說(shuō),在開(kāi)發(fā)過(guò)程中不需要對(duì)軟件做測(cè)試喷鸽,等到最后上線(xiàn)前做一次集中式的測(cè)試就夠了众雷?開(kāi)發(fā)團(tuán)隊(duì)也是極盡所能的快速響應(yīng)軟件質(zhì)量問(wèn)題,例如進(jìn)行測(cè)試驅(qū)動(dòng)開(kāi)發(fā)魁衙,編寫(xiě)大量的自動(dòng)化測(cè)試并且通過(guò)CI持續(xù)的對(duì)軟件質(zhì)量進(jìn)行監(jiān)控报腔。

安全問(wèn)題是如此的重要,它也是軟件質(zhì)量的一部分剖淀,只不過(guò)換了個(gè)名字纯蛾,變了種表現(xiàn)形式而已,而我們卻用如此落后的方式來(lái)對(duì)待它纵隔,顯然不合理翻诉。

又有人說(shuō),安全掃描不就是太晚了一點(diǎn)嘛捌刮,我們把掃描時(shí)間點(diǎn)往前提一些不就好了嗎碰煌?

思路是對(duì)的,但很可惜绅作,要做到這一點(diǎn)卻幾乎是不可能的芦圾。因?yàn)榘踩珤呙栌幸欢ㄇ疤釛l件,它只能對(duì)已經(jīng)開(kāi)發(fā)完成了的功能進(jìn)行掃描俄认,這也就意味著个少,那些還處于開(kāi)發(fā)過(guò)程中的功能是覆蓋不到的。而且隨著開(kāi)發(fā)的進(jìn)行眯杏,軟件功能會(huì)有所調(diào)整夜焦,之前做過(guò)的安全掃描很可能會(huì)失去意義,最終還是得等到所有功能都開(kāi)發(fā)完畢了岂贩,在上線(xiàn)之前再做一次最終的安全掃描茫经。于是這又回到了上面那個(gè)問(wèn)題。

安全掃描除了上面講到的時(shí)間太晚的問(wèn)題之外萎津,還有不少缺點(diǎn)卸伞。首當(dāng)其沖的就是速度太慢,跟不上開(kāi)發(fā)團(tuán)隊(duì)的節(jié)奏锉屈。盡管有自動(dòng)化工具的幫助荤傲,但是一次全面、細(xì)致部念、深入的安全掃描弃酌,往往需要好幾天,甚至更長(zhǎng)時(shí)間儡炼。在如今追求快速開(kāi)發(fā)上線(xiàn)妓湘,迅速調(diào)整以響應(yīng)市場(chǎng)變化的環(huán)境下,開(kāi)發(fā)團(tuán)隊(duì)沒(méi)有這么多時(shí)間和耐心來(lái)等待掃描結(jié)果乌询。

某些采用敏捷或者精益開(kāi)發(fā)方式的團(tuán)隊(duì)榜贴,每個(gè)迭代甚至每天都有新功能上線(xiàn)和舊功能調(diào)整、問(wèn)題修復(fù)等等妹田,而等到幾天甚至幾周后唬党,團(tuán)隊(duì)拿到安全掃描報(bào)告的時(shí)候,被掃描的功能可能早就被廢棄了鬼佣,這么做簡(jiǎn)直是在浪費(fèi)資源驶拱。

其次,留給安全掃描的時(shí)間窗口十分有限晶衷,它往往只能在產(chǎn)品功能完成之后蓝纲,最終上線(xiàn)之前才能進(jìn)行,在這種情況下晌纫,往往只有一次機(jī)會(huì)進(jìn)行掃描税迷,也只能給團(tuán)隊(duì)提供一次性的安全反饋。但實(shí)際情況卻是锹漱,業(yè)務(wù)需求在不斷發(fā)展和變化箭养,開(kāi)發(fā)團(tuán)隊(duì)也在持續(xù)對(duì)產(chǎn)品功能做出調(diào)整,除非每次產(chǎn)品功能發(fā)生變化之后立即進(jìn)行一次安全掃描哥牍,否則以現(xiàn)有的模式毕泌,是沒(méi)有辦法及時(shí)給開(kāi)發(fā)團(tuán)隊(duì)提供安全性反饋的。

最后砂心,安全掃描的成本也是不得不考慮的因素懈词。購(gòu)買(mǎi)外部安全公司的安全掃描服務(wù)到是很方便,可是動(dòng)不動(dòng)就是幾十萬(wàn)的支出不是任何團(tuán)隊(duì)都能承受得起的辩诞。通過(guò)自有安全團(tuán)隊(duì)做安全掃描看上去可能更加經(jīng)濟(jì)實(shí)惠坎弯,畢竟是公司內(nèi)部資源,但是別忘了译暂,自建安全團(tuán)隊(duì)也是有成本的抠忘,而且要招到杰出的安全工程師也不是件容易的事情。

既然安全掃描有這么多缺點(diǎn)外永,那為什么還有如此多的團(tuán)隊(duì)在用它崎脉?

拋開(kāi)安全問(wèn)題暴露出來(lái)之后,解決起來(lái)是如何痛苦這件事情不談伯顶,其實(shí)安全掃描也并非一無(wú)是處囚灼。

盡管安全掃描在時(shí)間上晚了一些骆膝,速度上慢了一點(diǎn),還不可持續(xù)灶体,但由于軟件開(kāi)發(fā)本身是個(gè)復(fù)雜的過(guò)程阅签,開(kāi)發(fā)團(tuán)隊(duì)在產(chǎn)品安全性上總有疏忽大意的時(shí)候,只要進(jìn)行安全掃描蝎抽,大多數(shù)時(shí)候都會(huì)有所“收獲”政钟。這樣的話(huà),一方面安全掃描幫開(kāi)發(fā)團(tuán)隊(duì)發(fā)現(xiàn)了問(wèn)題樟结,另一方面安全團(tuán)隊(duì)也體現(xiàn)出了自身價(jià)值养交,正是在這樣的背景下,安全掃描無(wú)論是對(duì)于開(kāi)發(fā)團(tuán)隊(duì)還是安全團(tuán)隊(duì)而言瓢宦,都具有難以抗拒的誘惑力碎连。

此外,有時(shí)候做安全掃描也是一種無(wú)奈之舉驮履,因?yàn)橛行╅_(kāi)發(fā)團(tuán)隊(duì)不見(jiàn)黃河不死心破花,除非你把安全問(wèn)題明確的擺在他們面前,否則他們意識(shí)不到問(wèn)題的嚴(yán)重性疲吸,不會(huì)輕易的主動(dòng)去關(guān)注安全問(wèn)題座每。

除了安全掃描,還有別的什么辦法摘悴?

既然安全問(wèn)題這么重要峭梳,安全掃描又是如此的低效,那我們?cè)撛趺醋霾拍芨玫慕鉀Q這個(gè)問(wèn)題呢蹂喻?答案其實(shí)早就擺在眼前了葱椭,軟件的安全性是軟件質(zhì)量的一部分变勇,為何不嘗試一下把它和功能需求一樣做粤,都當(dāng)做頭等公民來(lái)看待呢?那些用于保證軟件質(zhì)量的最佳實(shí)踐對(duì)于軟件安全性同樣適用惠呼。

更具效率的做法是蔓彩,在產(chǎn)品開(kāi)發(fā)的全生命周期里治笨,直接植入安全最佳實(shí)踐,我們把它叫做Build Security In(簡(jiǎn)稱(chēng)BSI)赤嚼。例如旷赖,在分析業(yè)務(wù)需求的時(shí)候,主動(dòng)去分析安全需求更卒,給用戶(hù)故事建立安全驗(yàn)收標(biāo)準(zhǔn)等孵;在開(kāi)發(fā)過(guò)程中時(shí)刻關(guān)注安全,通過(guò)自動(dòng)化的安全測(cè)試持續(xù)性的關(guān)注產(chǎn)品安全蹂空;在測(cè)試過(guò)程中俯萌,不僅測(cè)試產(chǎn)品看其是否滿(mǎn)足了業(yè)務(wù)需求果录,還基于安全驗(yàn)收標(biāo)準(zhǔn)設(shè)計(jì)并執(zhí)行安全測(cè)試用例。

傳統(tǒng)的安全掃描是從后外前推咐熙,倒逼著開(kāi)發(fā)團(tuán)隊(duì)做改變雕憔,而B(niǎo)SI的做法則是從前往后梳理,融入到日常的開(kāi)發(fā)過(guò)程中糖声。正是因?yàn)樘崆安⑶页掷m(xù)性的關(guān)注產(chǎn)品安全,所以在后續(xù)的開(kāi)發(fā)中分瘦,團(tuán)隊(duì)才會(huì)有意識(shí)的去做安全防御蘸泻,使得最后開(kāi)發(fā)出來(lái)的軟件默認(rèn)就已經(jīng)具備了不錯(cuò)的安全性,給團(tuán)隊(duì)帶來(lái)的沖擊和壓力也是最小的嘲玫。

邁出改變的第一步

安全掃描已經(jīng)深深的烙在了很多開(kāi)發(fā)團(tuán)隊(duì)的骨髓里悦施,突然之間要改變這一切勢(shì)必不容易,但是我們還是可以做很多嘗試來(lái)逐漸改變這個(gè)現(xiàn)狀的去团。在這里我推薦一些比較好的切入點(diǎn)抡诞,開(kāi)發(fā)團(tuán)隊(duì)可以作為參考,邁出改變的第一步土陪。

每當(dāng)在創(chuàng)建用戶(hù)故事的時(shí)候昼汗,多問(wèn)幾個(gè)和安全相關(guān)的問(wèn)題,比如:

  • 這個(gè)業(yè)務(wù)需求面臨著哪些威脅鬼雀?
  • 和這個(gè)業(yè)務(wù)需求相關(guān)聯(lián)的安全需求是什么顷窒?
  • 有沒(méi)有什么東西是應(yīng)該被保護(hù)起來(lái)的?
  • 應(yīng)該提前做些什么以應(yīng)對(duì)可能的黑客攻擊源哩?
    然后鞋吉,團(tuán)隊(duì)共同給這個(gè)用戶(hù)故事設(shè)定安全相關(guān)的驗(yàn)收標(biāo)準(zhǔn)。

開(kāi)發(fā)人員在每日代碼審查的時(shí)候励烦,多問(wèn)一下:“這樣設(shè)計(jì)谓着,或者代碼這么寫(xiě),有沒(méi)有什么安全風(fēng)險(xiǎn)坛掠?安全驗(yàn)收標(biāo)準(zhǔn)滿(mǎn)足了嗎赊锚?”

每當(dāng)測(cè)試人員拿到一張用戶(hù)故事對(duì)其進(jìn)行測(cè)試的時(shí)候,也問(wèn)問(wèn)自己:“除了測(cè)試產(chǎn)品看其是否正確實(shí)現(xiàn)了業(yè)務(wù)需求之外屉栓,還需要基于安全驗(yàn)收標(biāo)準(zhǔn)設(shè)計(jì)并執(zhí)行哪些安全測(cè)試用例改抡?”

上面這些提問(wèn)看似簡(jiǎn)單,但是當(dāng)你在團(tuán)隊(duì)里問(wèn)出這些問(wèn)題的時(shí)候系瓢,你一定會(huì)驚訝于它們帶來(lái)的影響力阿纤。試試唄。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末夷陋,一起剝皮案震驚了整個(gè)濱河市欠拾,隨后出現(xiàn)的幾起案子胰锌,更是在濱河造成了極大的恐慌,老刑警劉巖藐窄,帶你破解...
    沈念sama閱讀 218,755評(píng)論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件资昧,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡荆忍,警方通過(guò)查閱死者的電腦和手機(jī)格带,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,305評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)刹枉,“玉大人叽唱,你說(shuō)我怎么就攤上這事∥⒈Γ” “怎么了棺亭?”我有些...
    開(kāi)封第一講書(shū)人閱讀 165,138評(píng)論 0 355
  • 文/不壞的土叔 我叫張陵,是天一觀(guān)的道長(zhǎng)蟋软。 經(jīng)常有香客問(wèn)我镶摘,道長(zhǎng),這世上最難降的妖魔是什么岳守? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,791評(píng)論 1 295
  • 正文 為了忘掉前任凄敢,我火速辦了婚禮,結(jié)果婚禮上湿痢,老公的妹妹穿的比我還像新娘贡未。我一直安慰自己,他們只是感情好蒙袍,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,794評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布俊卤。 她就那樣靜靜地躺著,像睡著了一般害幅。 火紅的嫁衣襯著肌膚如雪消恍。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 51,631評(píng)論 1 305
  • 那天以现,我揣著相機(jī)與錄音狠怨,去河邊找鬼。 笑死邑遏,一個(gè)胖子當(dāng)著我的面吹牛佣赖,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播记盒,決...
    沈念sama閱讀 40,362評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼憎蛤,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起俩檬,我...
    開(kāi)封第一講書(shū)人閱讀 39,264評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤萎胰,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后棚辽,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體技竟,經(jīng)...
    沈念sama閱讀 45,724評(píng)論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,900評(píng)論 3 336
  • 正文 我和宋清朗相戀三年屈藐,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了榔组。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,040評(píng)論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡联逻,死狀恐怖搓扯,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情遣妥,我是刑警寧澤,帶...
    沈念sama閱讀 35,742評(píng)論 5 346
  • 正文 年R本政府宣布攀细,位于F島的核電站箫踩,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏谭贪。R本人自食惡果不足惜境钟,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,364評(píng)論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望俭识。 院中可真熱鬧慨削,春花似錦、人聲如沸套媚。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,944評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)堤瘤。三九已至玫芦,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間本辐,已是汗流浹背桥帆。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,060評(píng)論 1 270
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留慎皱,地道東北人老虫。 一個(gè)月前我還...
    沈念sama閱讀 48,247評(píng)論 3 371
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像茫多,于是被迫代替她去往敵國(guó)和親祈匙。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,979評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容

  • 本文中的“安全掃描”是指開(kāi)發(fā)團(tuán)隊(duì)在距離產(chǎn)品上線(xiàn)日期比較近的時(shí)候天揖,通過(guò)公司里的安全團(tuán)隊(duì)或者外部第三方安全公司對(duì)產(chǎn)品進(jìn)...
    ThoughtWorks閱讀 583評(píng)論 2 5
  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,162評(píng)論 25 707
  • 宜賓市南溪區(qū)立維鋼結(jié)構(gòu)工程有限公司章程 為適應(yīng)社會(huì)主義市場(chǎng)經(jīng)濟(jì)的要求菊卷,發(fā)展生產(chǎn)力缔恳,依據(jù)《中華人民共和國(guó)公司法》...
    立維鋼結(jié)構(gòu)工程閱讀 780評(píng)論 0 0
  • 依然是沒(méi)有進(jìn)行封裝處理和驗(yàn)證處理 JSP頁(yè)面代碼 Servlet代碼
    胖先森閱讀 278評(píng)論 0 2
  • 9月是特殊的月份,離開(kāi)了工作6年的企業(yè)洁闰,開(kāi)啟了我的自由職業(yè)生涯歉甚,三年前我愛(ài)上了培訓(xùn),也開(kāi)啟了我追夢(mèng)生涯扑眉,回顧三年纸泄,...
    夢(mèng)想教練景云閱讀 671評(píng)論 0 1