![]() ![]() |
敏捷應(yīng)用程序安全 ![]()
你將在本書(shū)中學(xué)習(xí)到:在軟件開(kāi)發(fā)生命周期的每一階段中加入安全措施。在計(jì)劃、需求、設(shè)計(jì)和編碼階段集成安全。在每個(gè)發(fā)布版本中加入安全測(cè)試,并將它作為團(tuán)隊(duì)發(fā)布工作中的一部分。在敏捷開(kāi)發(fā)或 DevOps 環(huán)境中實(shí)現(xiàn)合規(guī)。通過(guò)共鳴、開(kāi)放、透明、協(xié)作構(gòu)建高效安全的程序。
在全世界的所有組織中,敏捷開(kāi)發(fā)正在成為*廣泛使用的軟件開(kāi)發(fā)方法,但它通常無(wú)法和傳統(tǒng)的安全管理技術(shù)相融合。大部分安全專業(yè)技術(shù)人員的知識(shí)都跟不上敏捷開(kāi)發(fā)的發(fā)展。為了將這連個(gè)領(lǐng)域打通,本書(shū)引入了幾個(gè)在敏捷開(kāi)發(fā)使用的安全工具和技術(shù)。這本書(shū)由安全專家和敏捷高手編寫,本書(shū)一開(kāi)始就向敏捷實(shí)踐者介紹了安全原則,同時(shí)向安全實(shí)踐者介紹了敏捷原則。作者還介紹了他們?cè)谧约旱拿艚莅踩珜?shí)踐中所遇到的問(wèn)題,以及他們?nèi)绾谓鉀Q這些問(wèn)題。
前言
軟件正在改變這個(gè)世界。開(kāi)發(fā)者成為了新的無(wú)冕之王。物聯(lián)網(wǎng)意味著每個(gè)電燈泡中都會(huì)有一臺(tái)計(jì)算機(jī)存在。這種說(shuō)法也表明軟件開(kāi)發(fā)越來(lái)越占據(jù)了統(tǒng)治地位,世界上大多數(shù)人距離某臺(tái)計(jì)算機(jī)不會(huì)超過(guò)1米,在任何時(shí)候我們都生活在計(jì)算機(jī)輔助類物品或環(huán)境的影響下。但隨之而來(lái)的卻是某種危機(jī)。
在過(guò)去,安全通常是銀行業(yè)和政府系統(tǒng)才需要真正考慮的事情。但由于計(jì)算機(jī)無(wú)處不在,通過(guò)系統(tǒng)濫用的可行性增加了,從而誘發(fā)了系統(tǒng)濫用,增加了系統(tǒng)所要面對(duì)的風(fēng)險(xiǎn)。敏捷開(kāi)發(fā)技術(shù)越來(lái)越被大多數(shù)組織所快速采用。通過(guò)響應(yīng)式改變以及開(kāi)發(fā)成本的明顯降低,它們以一種敏捷的方式提供了理想的、能夠不斷迭代直到軟件大版本被構(gòu)建出來(lái)的標(biāo)準(zhǔn)。
但是,從歷史觀點(diǎn)來(lái)說(shuō),安全和敏捷從來(lái)不是天生的一對(duì)。在前面提到的政府、經(jīng)濟(jì)和銀行系統(tǒng)中,安全專家正在忙得不可開(kāi)交,他們正在努力構(gòu)建、測(cè)試和加固這些系統(tǒng),以應(yīng)對(duì)層出不窮的各種威脅。而且,我們經(jīng)常可以在技術(shù)博客和晚間新聞中看到的最有趣、最刺激的東西,也主要集中在職業(yè)黑客團(tuán)隊(duì)所做的漏洞研究、Exploit開(kāi)發(fā)和特技攻擊上。你可能聽(tīng)過(guò)幾個(gè)最新的漏洞,比如心血漏洞(Heartbleed)、阻塞漏洞(Logjam)及破殼漏洞(Shellshock),也可能知道幾個(gè)能夠越獄最新iPhone和Android設(shè)備的團(tuán)隊(duì)。但除了最終出現(xiàn)的那個(gè)帶有好聽(tīng)的、媒體友好名字的防御措施或方法之外,你還記得任何一個(gè)防御者或者建設(shè)者的名字嗎?安全專家在敏捷開(kāi)發(fā)方面的知識(shí)和經(jīng)驗(yàn)已經(jīng)落伍了,在我們這個(gè)行業(yè)中已經(jīng)出現(xiàn)了一個(gè)驚人的鴻溝。同樣地,敏捷開(kāi)發(fā)團(tuán)隊(duì)拒絕和擺脫了過(guò)去的羈絆。沒(méi)有詳細(xì)的需求說(shuō)明、沒(méi)有系統(tǒng)建模、沒(méi)有傳統(tǒng)的瀑布切換和控制門。
但問(wèn)題是,敏捷團(tuán)隊(duì)將洗澡水和嬰兒一起潑出去了。那些有時(shí)候既緩慢又不靈活的實(shí)踐,在過(guò)去也曾經(jīng)證明過(guò)是有價(jià)值的。它們的存在是有原因的,敏捷團(tuán)隊(duì)丟棄了它們,很容易就忽略和丟掉了它們的價(jià)值。這意味著敏捷團(tuán)隊(duì)是盡可能地不考慮安全問(wèn)題。有一些敏捷實(shí)踐讓系統(tǒng)更安全,但那通常是一個(gè)意外驚喜而不是故意設(shè)計(jì)。很少有敏捷團(tuán)隊(duì)會(huì)意識(shí)到他們系統(tǒng)面臨的威脅;不理解他們正處于風(fēng)險(xiǎn)之中;不跟蹤或者不會(huì)控制這些風(fēng)險(xiǎn);對(duì)有人會(huì)攻擊他們的系統(tǒng)缺乏理解。
本書(shū)的讀者對(duì)象我們不知道你是一個(gè)敏捷團(tuán)隊(duì)的領(lǐng)導(dǎo)者,還是一個(gè)想知道更多安全知識(shí)的開(kāi)發(fā)者,也可能是一個(gè)安全行業(yè)的從業(yè)者,發(fā)現(xiàn)整個(gè)開(kāi)發(fā)團(tuán)隊(duì)已經(jīng)不是你曾經(jīng)認(rèn)識(shí)過(guò)的樣子,你想學(xué)習(xí)更多。這本書(shū)的目標(biāo)是針對(duì)這三種主要的讀者。敏捷開(kāi)發(fā)者你活著、呼吸著,所以敏捷。你從你的Kaizen中知道你的Scrum,在你的反饋循環(huán)中進(jìn)行測(cè)試驅(qū)動(dòng)開(kāi)發(fā)。無(wú)論你是不是一個(gè)Scrum大師,開(kāi)發(fā)者、測(cè)試者、敏捷開(kāi)發(fā)講師、產(chǎn)品的業(yè)主,還是客戶代理,你都需要理解敏捷開(kāi)發(fā)的實(shí)踐和價(jià)值。本書(shū)將幫助你學(xué)習(xí)什么是安全,存在什么樣的威脅,以及安全從業(yè)者用于描述所發(fā)生的事情的語(yǔ)言。我們會(huì)幫助你理解如何建模威脅,度量風(fēng)險(xiǎn),從理論上構(gòu)建安全軟件,安全地安裝軟件,以及理解運(yùn)營(yíng)中來(lái)自于某個(gè)在線服務(wù)的安全問(wèn)題。
安全從業(yè)者無(wú)論你是否是一個(gè)風(fēng)險(xiǎn)管理者、一個(gè)信息安全專家,還是一個(gè)安全運(yùn)營(yíng)分析家,你應(yīng)該理解安全。你可能關(guān)心如何使用在線服務(wù),無(wú)時(shí)不刻不在思考各種威脅、風(fēng)險(xiǎn)以及緩解措施,你甚至發(fā)現(xiàn)過(guò)新漏洞并利用它們進(jìn)行過(guò)提權(quán)。這本書(shū)會(huì)幫助你理解敏捷團(tuán)隊(duì)是如何真正對(duì)軟件進(jìn)行開(kāi)發(fā)的,這個(gè)地球上的這類團(tuán)隊(duì)正在談?wù)撌裁,以及他們口中的沖刺和故事是什么。你將學(xué)習(xí)查看chaos中的模板,以及幫助你和團(tuán)隊(duì)進(jìn)行交流并影響他們。本書(shū)將告訴你可以從哪些地方介入或者做出努力,這也是對(duì)一個(gè)敏捷團(tuán)隊(duì)最具價(jià)值和最能發(fā)揮作用的地方。敏捷安全從業(yè)者從風(fēng)險(xiǎn)到?jīng)_刺,你無(wú)一不知。無(wú)論你是一個(gè)幫助團(tuán)隊(duì)做好安全的工具創(chuàng)建者,還是一個(gè)負(fù)責(zé)對(duì)團(tuán)隊(duì)提建議的顧問(wèn),本書(shū)都適合你。拋開(kāi)本書(shū)的主要內(nèi)容,去理解本書(shū)作者的意圖,也就是正在增長(zhǎng)的良好實(shí)踐。本書(shū)將有助于了解在你領(lǐng)域內(nèi)的其他人,以及我們正在組織中處理這個(gè)問(wèn)題時(shí)出現(xiàn)的想法和概念。這會(huì)提高、擴(kuò)展你對(duì)相關(guān)域的理解,以及為你提供一個(gè)繼續(xù)研究學(xué)習(xí)的目標(biāo)。
本書(shū)主要內(nèi)容你可以按從頭到尾的順序來(lái)逐章閱讀本書(shū)。實(shí)際上我們也推薦你以這種方式閱讀;我們努力編寫本書(shū),希望在每一章都包含對(duì)所有讀者有用的內(nèi)容,哪怕一個(gè)小小的冷幽默或趣聞?shì)W事!但實(shí)際上,我們也認(rèn)為有的章對(duì)你來(lái)說(shuō)會(huì)比其他章更有用。
大致將本書(shū)分成三個(gè)部分。
第一部分:基礎(chǔ)敏捷和安全是非常寬的領(lǐng)域,我們不知道你掌握了什么。尤其當(dāng)你是來(lái)自其中某一個(gè)領(lǐng)域時(shí),你可能不知道另一個(gè)領(lǐng)域的知識(shí)。如果你是敏捷專家,我們建議你先閱讀第1章,安全概述,以確保你具備基本的安全知識(shí)。如果你不是,或者你還剛剛開(kāi)始接觸敏捷開(kāi)發(fā),那么在我們開(kāi)始介紹敏捷之前,我們建議你閱讀第2章,敏捷促進(jìn)者。這一章介紹了我們認(rèn)為的基本實(shí)踐是什么,以及我們將從什么樣的基礎(chǔ)開(kāi)始。第3章,迎接敏捷革命的到來(lái),介紹敏捷軟件開(kāi)發(fā)的歷史,以及它的不同實(shí)現(xiàn)方式。對(duì)于安全專家和沒(méi)有敏捷開(kāi)發(fā)經(jīng)驗(yàn)的人來(lái)說(shuō),這也是他們最感興趣的部分。
第二部分:敏捷和安全我們建議每個(gè)人都開(kāi)始閱讀第4章,在現(xiàn)有的敏捷生命周期中工作。在這一章中,試圖將我們想到的安全實(shí)踐和真實(shí)的敏捷開(kāi)發(fā)生命周期聯(lián)系到一起,同時(shí)解釋說(shuō)明為什么要將它們聯(lián)系起來(lái)。第5~7章,學(xué)習(xí)需求和漏洞管理、風(fēng)險(xiǎn)管理,這些更全面的實(shí)踐將從一個(gè)方面支撐起開(kāi)發(fā)中的產(chǎn)品管理和總體方案。第8~13章包括了安全軟件開(kāi)發(fā)生命周期的各個(gè)組成部分,從評(píng)估、代碼評(píng)審、測(cè)試到運(yùn)行安全。
第三部分:最后組裝第14章,介紹合規(guī)性,以及它和安全有何關(guān)系,如何在敏捷開(kāi)發(fā)或DevOps環(huán)境中實(shí)現(xiàn)合規(guī)。第15章,介紹安全的文化體系。沒(méi)錯(cuò),你可以實(shí)現(xiàn)本書(shū)介紹的所有實(shí)踐,前面的章節(jié)介紹了你能夠使這些改變持續(xù)的各種工具。然而敏捷開(kāi)發(fā)都是關(guān)于人的,有效的安全持續(xù)也是這樣:安全其實(shí)是改變內(nèi)心的文化,這一章會(huì)提供一些我們?cè)谡鎸?shí)世界中找到的有效案例。
對(duì)于一個(gè)公司,要改變它的安全性,它需要安全專家和開(kāi)發(fā)人員相互支持和尊重,他們需要密切合作以構(gòu)建安全持續(xù)。它不僅僅是一堆工具或一系列實(shí)踐,還需要這個(gè)組織的徹底改變。第16章,介紹敏捷安全對(duì)不同的人意味著什么,并歸納出要讓團(tuán)隊(duì)敏捷和安全,我們每個(gè)人應(yīng)該干什么和不應(yīng)該干什么。
本書(shū)約定本書(shū)常用到的排版方式約定如下:斜體(Italic)表示新出現(xiàn)的術(shù)語(yǔ)、URL、email地址、文件名及擴(kuò)展名。等寬字體(Constant Width)在代碼清單中使用,或者在段落中用于表示程序中的對(duì)象,如變量名、函數(shù)名、數(shù)據(jù)庫(kù)、數(shù)據(jù)類型,環(huán)境變量、語(yǔ)句和關(guān)鍵字。如果在代碼行后出現(xiàn)字符,表示這一行后面是下一行。加粗的等寬字體(Constant width bold)表示命令或需要用戶輸入的其他文本。傾斜的等寬字體(Constant Width Italic)表示文本應(yīng)該由用戶自己提供的內(nèi)容替換,或者根據(jù)上下文改變。OReilly SafariSafari(過(guò)去叫Safari圖書(shū)在線)是一個(gè)針對(duì)企業(yè)、政府、教育機(jī)構(gòu)和個(gè)人的會(huì)員制培訓(xùn)和參考平臺(tái)。成為會(huì)員將可以從數(shù)據(jù)庫(kù)中查找和瀏覽數(shù)以千計(jì)的圖書(shū)、培訓(xùn)視頻、學(xué)習(xí)路徑、交互式教程和組織好的播放列表,這些資料的來(lái)源遍及250個(gè)出版社,如OReilly Media、Harvard Business Review、Prentice Hall Professional、Addison-Wesley Professional、Microsoft Press、Sams、Que、Peachpit Press、Adobe、Focal Press、Cisco Press、John Wiley & Sons、Syngress、Morgan Kaufmann、IBM Redbooks、Packt, Adobe Press、FT Press、Apress、Manning、New Riders、McGraw-Hill、Jones & Bartlett、Course Technology等。更多信息,請(qǐng)?jiān)L問(wèn):http://oreilly.com/safari。
聯(lián)系我們請(qǐng)把你對(duì)本書(shū)的意見(jiàn)和疑問(wèn)發(fā)給出版社:美國(guó):OReilly Media, Inc.1005 Gravenstein Highway NorthSebastopol, CA 95472中國(guó):北京市西城區(qū)西直門南大街2號(hào)成銘大廈C座807室(100035)奧萊利技術(shù)咨詢(北京)有限公司本書(shū)有一個(gè)專屬網(wǎng)頁(yè),我們會(huì)在上面列出勘誤、示例,以及其他附加信息。你可以通過(guò)以下地址訪問(wèn)它:http://bit.ly/agile-application-security。如果是評(píng)論或者討論和本書(shū)相關(guān)的技術(shù)問(wèn)題,那么請(qǐng)發(fā)郵件到bookquestions@oreilly.com。關(guān)于我們出版社的其他書(shū)籍、教程、會(huì)議和新聞,請(qǐng)?jiān)L問(wèn)我們的網(wǎng)站http://www.oreilly.com。我們的Facebook:http://facebook.com/oreilly。我們的Twitter:http://twitter.com/oreillymedia。我們的YouTube:http://www.youtube.com/oreillymedia。
致謝首先要感謝三位了不起的編輯:Courtney Allen、Virgnia Wilson和Nan Barber。沒(méi)有你們和其他OReilly團(tuán)隊(duì)的成員,我們無(wú)法完成本書(shū)。我們還要感謝技術(shù)評(píng)審的耐心和真知灼見(jiàn),分別是:Ben Allen、Geoff Kratz、Pete McBreen、Kelly Shortridge和Nenad Stojanovsk。最后還要感謝我們的朋友和家人,忍受我們?cè)俅螐氖逻@樣一個(gè)瘋狂的項(xiàng)目。
Laura Bell,SafeStack創(chuàng)始人和首席顧問(wèn)。Michael Brunton-Spall,公共數(shù)字服務(wù)部的技術(shù)及運(yùn)營(yíng)副主任。Rich Smith,Duo的研發(fā)總監(jiān)。
你還可能感興趣
我要評(píng)論
|