安全建設之平台搭建
一、信息搜集類
基礎信息
基礎信息搜集包括ip,域名,埠,框架,組件信息。Ip、域名甲方可通過運維同事獲取,其他獲取方式仁者見仁智者見智。埠,需要我們根據獲取的域名、ip進行埠掃描,這裡推薦masscan、nmap,寫調度腳本入庫處理,記錄並對比是一個持久的工作,並對埠做服務探測,有時會有不一樣的收穫。框架、組件信息,也許很多架構師、程序員都無法理清,這就需要我們去主動搜集。比較直接的辦法是收集php.ini、pom.xml,收集相關的組件信息查看組件是否存在漏洞,比如imagemagick、fastjson等等。
敏感目錄、文件
敏感目錄、文件的收集,防止目錄出現非項目文件,比如sql、rar、test等。曾經遇到一個test頁面,直接甩出admin表所有數據。建議根據自家公司的特點,完善字典,可以借用姐姐的神器(BBScan),定期監控,會有收穫。此外,還有搜索引擎大法,對大型公司有奇效,因為大型公司迭代會有下架不及時、歷史老頁面無人維護的現象,存在漏洞可能性會更高。通過特定語法,可以讓你眼前一亮,通過爬取入庫,可掌握對外暴露信息,提前發現問題,走在hacker前面。
Github監控
Github監控,現在市面上有許多github監控腳本,各有各的長處,個人覺得要知其然知其所以然,堅持親自動手。因為在探索的過程中,可以了解到更多的姿勢點。比如防爬策略、繞過方法等。Github監控已經成為各大公司必備神器,因為很多人提交github信息泄露類都會被反饋,「內部已知曉,感謝反饋」的提示。但還是會有漏網的,這就需要優化自己的策略,讓爬取更精準,更全面。比如精準查找、ua變化、失敗重試策略等等,盡最大的努力把誤差降到最小。一樣的功能,你能做到更好,就能在賽跑中勝出!
威脅情報
威脅情報,現在有很多羊毛論壇、QQ群。比如之前出現過外賣紅包機器人自動搶最大紅包、某咖啡被薅千萬等等,很多人會把薅羊毛的方法發送到論壇或羊毛群里。如果業務方能提前發現風險,並做及時響應,可及時止損,減小損失,比如某住之前的用戶信息泄露。上個直觀的歷史圖舉個例子:
網盤監控
網盤方便存儲、分享資料。個別員工把工作相關內容如員工資料、公司資料傳上網盤,這就帶來了信息泄露的風險。網盤監控自動化實現會遇到各種問題,歷史的可以通過各個網盤分享站爬取,比如pansoso,panduoduo。但很難做到實時,目前沒有相關介面可查,更多的在於教育宣導、限制。
二、掃描工具
漏洞掃描,是每個企業必需的部分。我將掃描任務分為四類:主動掃描、被動掃描(代理掃描)、插件掃描、埠掃描。
主動掃描
主動掃描,可以自主開發掃描器加以商用掃描器輔助的形勢。可以編寫動態爬蟲,抓取url去重後放入掃描隊列,但目前很少有爬蟲能做到全覆蓋。藉助市面優秀的掃描器比如awvs、appscan、arachni等,可以根據個人喜好,嵌入主動掃描。這裡我主要介紹下awvs,老版本有命令行介面,可以調度爬蟲、掃描,可以定製xml文件配置不同的掃描策略,掃描結果相對比較全面。我們可以通過對比掃描,優化自主開發的工具。曾在14年寫了一個調度腳本,多線程調用掃描器,並把結果讀取入庫統計,在一個人的安全部可以極大的簡化工作。當年稚嫩的調度架構如下:
個人覺得掃描器的核心是爬蟲,爬蟲像一個嚮導,在一個好的嚮導的指引下,可以少走很多彎路,更快到達目的地!所以,要做好掃描器,首先要寫好一個好的爬蟲。目前有很多動態爬蟲組件,比如phantomjs(封存歸檔暫停開發)、Chrome Headless等等。這裡用phantomjs實現了一版。分為調度、執行、探測模塊。
執行模塊負責:
1.javascript動態解析,觸發click等操作;
2.hook所有的網路請求;
3.靜態頁面鏈接分析,如href、frame等等;
4.自動分析表單幷提交。
執行模塊獲取數據後反饋給調度,調度根據去重演算法、爬蟲深度判斷是否繼續發送到執行模塊。探測模塊其實就是用字典去探測是否存在特定目錄、文件,執行結束後發送給調度深入挖掘。測試了爬取http://demo.aisec.cn/demo/,結果只能說還算可以,還有很大的改進空間。
被動掃描
曾經遇到過這樣的情況,每天大量檢測任務,純手工又慢又累,而且容易遺漏。像XSS,xxe等常規漏洞,可以把檢測方法腳本化,是知識的積累的積累過程。把重複的工作做簡單,把簡單的事情做好是必須具備的能力。做測試的同學可能有比較深刻感觸。因此,被動掃描是剛需。設計原理大同小異,選用mitmproxy作為代理,截取流量,去重後發送到後端任務隊列。分享下掃描器設計思路,希望能給需要的朋友帶來靈感。掃描器採用純python實現,前端flask展現、mitmproxy代理、redis消息隊列、celery任務隊列、mongodb存儲。大致架構如下:
Web界面:
Celery隊列調用特定的檢測函數(xxe、埠掃描等等),實現檢測。此處有一個tips,在使用流量時,有部分欄位是不能帶入掃描的,否則檢測可能失效,比如content-length。此處只舉一個例子,檢測方法仁者見仁智者見智。但不管主動、被動、埠、插件掃描調度方法是一樣的。
具體實現如上圖,SQL注入調用了sqlmapapi,其他檢測都是根據特定漏洞定製。比如平行越權,首先根據基準頁面的反饋,查找相關的敏感欄位(手機號、訂單號、身份證號等等),然後根據id左右偏移,看返回。越權類很難做到通用,但可以發現70%以上的問題。曾經見到過比較雞賊的訂單號,訂單號為訂單號1001111202+用戶id後2位,組合訂單號即為100111120288。顯然這種訂單號遍歷難度就比較大。
插件掃描
0day的泛濫,特定漏洞檢測已經成為常規需求,快速定位發現問題,插件掃描應運而生。世面上有不少優秀的插件,如bugscan、xunfeng,目前收集的插件大概2k個左右。曾經有個哥們讓我幫忙把插件改成符合他的調用模式,其實摸清插件的運行規則,返回數據套路,寫一個集成調用函數,完美運行!
埠掃描
埠掃描的目的是為了防止埠異常開放。如22,3306,6379異常開放,可能導致破解、未授權等風險。定期的掃描,可以讓業務方及時發現問題,規避風險。
三、知識分享
漏洞多數是因為疏忽、無知導致,安全教育和培訓是必不可少的。持久的知識輸出,可以加強員工的安全意識,減少人為因素導致的安全問題。賞罰公告、知識分享、小課堂、漏洞預警,讓員工意識到安全和自己並不遙遠。
最近看到一個《12宮》的電影,講述的嫌犯高調調戲警察,案件拖了近10年仍未破案。最後一位漫畫家把所有資料串聯、分析,著作成書,最後協助警方鎖定嫌疑人。這個電影看完感觸很深:細心實作。每天有各種大牛分享自己的成果,我們能把需要的東西提取出來,增加到自己的體系中,這樣成長會很快。站在巨人肩膀上,會看的更遠!歡迎各路大神溝通交流。
*文章原創作者:野火,本文屬於FreeBuf原創獎勵計劃,未經許可禁止轉載


※FortiAppMonitor:用於監控macOS上的系統活動的強大工具
※2019年五大網路威脅走勢預測
TAG:FreeBuf |