中小型互聯網企業安全建設漫談。

1、背景
最近發現很多都在討論一個人的安全部這個話題,兩年前在某A輪互聯網公司(80人左右的研發團隊)做過一段一個人的安全部的經驗就簡單分享自己的經驗。

2、工作環境
往往也就是自己一個人做安全,通常就放在了測試部門或者運維部門或者開發部門,你的直屬上級可能是一個經驗豐富的開發大佬、運維大佬、或者有着PMP管理經驗的項目經理,他們對於安全的理解並沒有那麼深刻。
目標就只有一個:安全還是很重要。你來了,安全方面的事情就交給你了,不要再出安全事件了。
由於互聯網公司往往提倡扁平化管理,公司的Boss對你也是有一定期待的:大家都說安全很重要,你要做好儘量少花錢。

3、 工作計劃
主要系統產品可能包括手機APP包括安卓端與IOS端、幾個對外的網站系統、幾個對內的網站系統,涉及幾十臺主機系統。
當務之急是儘快發現未知的安全漏洞,先救火再治理分5步走:安全漏洞修復、應用加固、安全開發、安全測試、安全運營。

4、 安全漏洞修復
首先需要確認範圍從同事們手裏拿到當前最新的應用系統清單與開發的同事確認一下使用了怎麼樣的技術組件等,順便熟悉一下相關的一些業務流程與功能。
需要治理的安全漏洞主要簡單的分爲4類:
1.傳統的web安全風險,如常見的sql盲注、cookies注入、多種xss、代碼注入、CSRF、敏感數據泄漏、命令執行漏洞,文件包含、文件上傳繞過、弱密碼、任意文件下載等;
2.業務相關的安全風險,比如短信藉口過濾不嚴格、越權查詢、配置文件合理、校驗不嚴格、驗證碼爆破、明文傳輸密碼、任意用戶密碼重置等;
3.組件框架類安全風險,比如Struct2命令執行、Weblogic組件漏洞、jboss漏洞、ImageMagick命令執行、網頁編輯器漏洞、Apace解析漏洞、Nginx解析漏洞等;
4.操作系統類風險,比如windows 338弱口令、MS08-067、http.sys命令執行 數據庫的弱漏洞、Sqlserver的配置風險等。

企業安全建設

剩下的工作就是對每一個系統和應用進行測試、當然也許要藉助一些成熟的安全工具進行測試。
當時也想到一些不錯的idea可以偷懶比如Burpsuit聯動Sqlmap跑接口參數對測試sql注入與xss就能省下不少工作量、比如使用wvs的web端設置任務列表可以半夜掃描、檢查linux配置項可以自己寫shell、github找poc批量測試組件漏洞等等。
其實還是一個比較費時間的工作,一個應用系統差不多一週到二週就測試完畢,畢竟996的工作模式。將發現的安全問題截圖保存並梳理成excel表格提交給領導,並跟進後續的整改工作,後來發現常見的安全問題基本都有,比如一些參數遍歷可以導致系統所有的訂單數據被***、還有短信驗證碼就4位又沒有次數限制的情況也是很普遍的,想想還是覺得很可怕比較還是有不少個人數據。

5、應用加固
安全加固就是相對比較容易一些了,但是風險也是比較大的因爲不清楚可能會造成什麼樣的影響,所以這個事情之前一定要給領導們說清楚先慢慢測試最後實施的時候出一個整體的方案。
主要包含Linux主機的加固、Windows主機的加固、數據庫的策略優化、應用加固,其實google一下還是能搜到不少相關資料具體的流程還是要結合業務流程,內容大同小異。
網站應用的防護不想花錢買WAF,只能用開源的,比如有modsecurity、nginx+lua方式。但真講,用起來很費勁!不少地方是需要自己能安全編程能力的。WEB安全,不是一個人可以搞的。所以這裏強烈的建議,這一塊多少花錢搞一下。WEB是企業門面,也是來業務的地方。如果是經營性網站,安全性更是十分重要。
這裏可以推薦兩個WEB產品,便宜,好用:
http://waf.jshaman.com/
http://www.sharewaf.com/
運維安全也是要有才行,既然不花錢買設備就使用開源的JumpServer,現在都已經支持docker部署了,當時我搭建這個還是花了一些時間,有需要的還可以做二次開發。
https://github.com/jumpserver/jumpserve
接口安全,由於一個應用有很多客戶端比如IOS、安卓端、微信端等多種平臺一套統一的API就顯得格外重要了。由於接口很多參數的條件過濾不嚴格、權限控制不嚴格存在較大的安全隱患、整改起來工作量較大,於是想了一個簡單的辦法,對http提交的安全進行加密,主要採用AES加密保證了完整性和保密性,性能消耗也在毫秒級可以忽略不計。
由於有前車之鑑,對圖片上傳的控制就更加嚴格一些,最開始只是準備採用數據流的方式加上白名單進行校驗,領導居然還覺得不夠。於是就將所有的圖片重名之後保存在另外的服務器,數據庫當中只關聯相關的訪問的路徑。

6、安全開發
開發的各位都是大佬們,當然不能得罪只能小心伺候着。但是安全也還是要做,那就只能提需求了,這裏較多的參考了OWASP 指南,與各類編程語言的安全編碼規範,但是又不能說別人代碼有問題,只能說代碼可以這樣優化一下會更好。
代碼審計的設備還是比較貴的、什麼Fortify,Checkmarx就想都不要想了,還好有一些開源的代碼審計工具可以用用。
RIPS:https://sourceforge.net/projects/rips-scanner/
VCG(VisualCodeGrepper):http://sourceforge.net/projects/visualcodegrepp/
對於編碼完成之後的項目,都可以去跑一下但是涉及到的誤報也是相當的多,所以靜態掃描一般就只解決高中風險的問題,自己還要配合開發大佬們一起看看是不是問題還要說一下要怎麼優化會更好,開發大佬是得罪不起的。

7、安全測試
在中小型企業推SDL落地其實就有點扯淡了,談ISO27001之類的安全體系也沒有那麼精力支撐。對上線前的應用系統主要進行安全測試,主要還是部署漏掃工具,主要沒有什麼大問題其他都好說。
比如在Kali下面就集成了ZAP、openvas和github上也能找到一些掃描工具重點關注一些高位漏洞風險大的問題,有預算的可以考慮買了個Appscan或者WVS的商業版也不是特別貴,pojie版不推薦如果不怕版權也無所謂。
大版本有較多新代碼的版本就自己手動測試一下,不過還好頻率也不是特別頻繁,發現的問題及時修正可以在內部jira這種缺陷管理工具註冊一個帳號專門來提安全Bug。

8、安全運營
運營工作工作主要分成三個部分:
第一,將日常發現的安全問題、被各大SRC披露的安全問題及時響應並跟進修復,形成案例庫定期給開發大佬們交流經驗根本不敢說是培訓。
第二,及時跟進一些最新的安全漏洞、最新的***手法督促開發大佬修補。
第三,總結工作內容,日常給領導彙報體現價值。

9、總結
一個人的安全部有時候壓力還是很大的,要和很多對安全不是很瞭解大佬們一起工作總會被嫌棄,感覺是親媽不要後孃不愛的感覺。領導們的想法也很簡單,只要不出特別大的安全事件不花太多錢工作自由度還是比較高的。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章