本文講的是漏洞眾測--人類自動化的力量,自動化的全面應用是過去100年來全球技術進步的典型特徵。我們生活中的各個方面幾乎都可以找出某種方法來應用那些能夠提高效率的技術,將人類自身從枯燥乏味的重複性勞動中解放出來,從事那些更高階別的工作。
安全領域也如此,比如漏洞評估,用**推送來排程靜態**審查,部署工具對海量錄入資料進行更快捷的檢測和更有效率的反饋。然而問題及挑戰在於,儘管人為產生的問題集合可在自動化的幫助下解決大半,卻永遠不能僅僅依靠自動化本身徹底解決。
生產一件產品或進行一項業務的過程,連同那些支援這項產品或業務的系統,基本上而言,是創造性的。生產過程背後的人,及人類創造性中的優勢和弱點都深深的烙印在過程核心中(有趣的是,發現漏洞並構建和執行惡意攻擊的過程也是創造性的)。
儘管我們可以將相同的創造性應用自動化上,使之更加完美。但最終,計算機只是按人類的指令行事,進行重複性、大規模的廉價勞動。我們現在用於發現業務漏洞的自動化過程和工具已經達到了一定的程度,剩下的工作則需要人的介入。
無法避免的是,自動化會形成「安全盲點」,而後者同樣也是惡意攻擊者關注並為之努力攻克的地方。
摩根大通與塔吉特資訊洩露事件就是當自動化偏離軌道時會呈現的樣子。兩起事件中,攻擊者所用的最初入口點——乙個臨時web伺服器和面向外部的空調供暖系統(hvac)控制入口,都是應該被認定為有風險並進行修復的。然而,兩起事件中,這些系統最終都淪為了自動化盲點的犧牲品。
心臟滴血和shellshock漏洞在源**中已存在多年,期間歷經無數次**審計,卻依然存活,直至最終被人發現並利用。
自動化過程和自動化工具能幫我們做很多事。如果考慮「二八法則」,自動化絕對是將我們帶到80%價值那端的原因。但不管自動化帶來的價值是80%還是更多,最終總會遇到「收益遞減規律」接管的拐點(見圖中1號),我們在增加或改進自動化上的投入產出便開始逐漸減少,直至趨於水平。
每個軟體,每套系統,每個平台都會有安全漏洞。那麼,我們能對那20%作些什麼呢?我們該怎樣解決這些「安全盲點」(見圖中2號)呢?
正如企業可以享受自動化帶來的效率提公升,攻擊者也同樣可利用相同的自動化技術提高攻擊效率。畢竟,沒人想把時間和金錢花在突破已經修補好的漏洞上。攻擊者認為你可能沒注意到的地方,就是他們努力的方向。他們不會停止自動化的腳步,他們甚至會在人力資源上下功夫,以推動攻擊水平向更高等級發展。在攻擊方看來,有很多人身懷各種各樣的技能,被各種不同的動機驅動(不僅僅是錢),還有一套基於追求結果的激勵模式。
但這並不是說,在我們的自動化套件之上還需要外聘1000個白帽子來幫你排查各種系統。對大多數公司而言,這是很不實際的。當你招募或外包工作給安全專家時,他們應該為防禦和培訓服務,並將評估結果的剩餘價值驅動起來供下至工程團隊上至管理層所用,發揮他們的持續性影響。這些專家將會幫助彌補差距縮小空白(見圖中3號)。
剩下的空白(見圖中4號)是那些真正糟糕的東西所在,那些黑客能找到而高薪聘請的專家發現不了的東西。
這裡,就是眾測需要隆重出場的地方。在這個領域,人類本身也融入了自動化之中。通過利用績效薪酬模式,以及通過眾測凝結安全社群的集體創造力,可以將人力資本以一種低成本高效益的方式發揮出來,進一步縮短自動化能力和人類專家能力間的差距,達成想要的最高安全級別。
最後,我們需要注意的是:不要想當然地認為自動化就是萬能的。這麼想的話只能把自己陷入危險的安全盲區之中。相反,我們應該運用眾人的智慧型,讓一組能體現人類效率的高水平安全測試員來縮小差距,那些潛在攻擊者惦記的就是這一差距,他們不只追逐那些能被自動化工具和市場上售賣的商業工具輕易發現的漏洞。而且,即使他們使用這些工具,也一定不會是跟你一樣的方式。他們會關注那些你容易忽略掉的地方,他們也想快速有效地突破防禦。
robot framework 介面自動化測試
介面測試比ui測試更有價值,如果專案時間緊張,測試介面更好一些,但每次都頻繁的手工填寫介面進行測試也浪費時間,下面給大家介紹一下很好的自動化測試框架robot framework,並且做介面自動化測試事半功倍。其返回值驗證和與資料庫連線進行增刪改查很方便,邏輯也很嚴謹,如果公司沒有造輪子推薦這麼做。...
Robotframework 介面自動化測試
1.目的 1 以雲平台為例 實現註冊 登入 更新apikey 新增專案 新增裝置 新增感測器 新增執行器 感測器每隔3s上報一次資料 1分鐘後與雲平台主動斷開連線的介面自動化測試。2 斷言每條用例是否執行成功。3 程式不管執行多少次都不報錯。2.robotframework環境搭建 1 安裝pyth...
python requests介面自動化測試 一
python requests環境部署 1.安裝python,配置系統環境變數 4.安裝requests庫 pip install requests 在進行介面自動化測試時,常用到的幾個requests庫方法。如下 get 不帶引數的請求 n requests.get 帶引數的請求 引數是以字典的形...