淺談企業運維安全
之前在《淺談web后門隱藏與檢測思路》這篇文章里有個小哥已經對檢測webshell的一些方法做了簡單介紹,我在這方面略有經驗,檢測webshell不能只是簡單的查殺,而該把這個當作一個長期任務來做,防御webshell不能單單從”行為”上去判斷,前期需要做的工作還有很多,我從企業的全局防御來說說如何從架構上防御webshell,和搞運維安全,希望此文能拋磚引玉激起討論火花。
一,主動與被動發現漏洞:
這里的主動是指安全工程師主動去做的事情,而被動并不是被動挨打,而是積極去獲取信息,積極防御。因為攻防之間信息不對稱,很多攻擊、利用方式及漏洞安全工程師不一定能第一時間獲取到信息,就導致了服務器被黑,出現被上傳webshell無外乎這集中情況:使用開源程序出現高危漏洞被攻擊者上傳webshell,服務器配置錯誤導致攻擊者利用運維缺陷上傳webshell,程序員編寫代碼存在諸如sql注入、文件包含,命令執行問題被攻擊者發現并利用導致被上傳webshel,那是不是說作為防御者我們就一定是被動挨打的呢?答案當然是否定的,如果運維安全做的好的情況下,會在服務器上線初期做安全檢查將加固服務做成加固基線包,后期邀請外部人員進行滲透測試來檢查企業安全情況,安全基礎就牢靠。從主動來說,企業可以通過這些辦法來將攻擊者的想法消滅在萌芽之中。1、積極主動的做好對系統加固工作,堅決消滅弱口令、回收外網默認管理后臺(能回收的回收,不能回收的做好訪問控制),對諸如tomcat、jboss、resin之類的服務器做好加固,避免出現弱口令,因為互聯網上每時每刻都有人來通過這幾種服務來抓肉雞。
2、對于漏洞的修復不能只僅限于加固還要主動去發現,需要定期對生產環境和web進行掃描、其中外網端口掃描需要結合資產進行,如果不能結合資產,掃描的結果會差強人意。
3、對企業所使用的開源程序另外諸如webserver、第三方中間件都有深入了解,并關注這些app近期存在安全風險:比如struts漏洞,如果能早發現事情也可控制(通過關注烏云、微博等來及時獲取信息)。
其次是權限控制,在struts漏洞中,使用root運行的struts2,受影響最嚴重而運行權限為tomcat之類的較輕,較輕不是說不被脫褲,而是攻擊者沒有權限對服務器來做更進一步操作比如rm -rf /,所以對于權限的控制也需要考慮到加固中去。
4、被動發現漏洞可以依靠對烏云等平臺的漏洞提交來預測可能爆發的漏洞情況,并且結合第3點對應用做檢測,如果發現漏洞了則快速修復,將不會到被攻擊者上傳webshell的情況。
二,監控為主分析為輔:
監控的重要性不需要在陳述,在城市的各個角度都有監控攝像頭,監控的作用是屬于事中或者事后階段,舉個例子,某人犯罪如果沒有監控的情況下,無法追溯,這時候如果有監控的話就可以對其行為做分析和追溯。舉一反三,在企業安全防護方面也可以這樣做,通過部署ossec之類的行為監控,對攻擊者的行為做檢測。比如對于webshell的檢測來說,更關注”行為”,啥叫行為呢,你的一舉一動都是行為,上傳了文件,修改了權限,刪除了權限這些都該被記錄下來,而類似ossec之類的監控工具可以做到,當然你也可以編寫腳本來對目錄做實時檢測。分析為輔,可以從多點上來結合,比如攻擊者對于網站的注入行為,都會觸發記錄,記錄到log里,攻擊者對ssh的掃描行為,都會被記錄到日志里,而這些都可以用作對攻擊者的行為分析,更超前一些惡意的掃描都可以算作是行為,并且這些行為都是可以分析和追溯攻擊者的,其次日志需要備份到遠程,并且可以利用大數據日志分析利器splunk來對日志分析,備份到遠程也導致了攻擊者刪除本機日志時能被追溯到。對于webshel檢測來說,可以從日志里進行分析,因為任何攻擊者的操作都會在日志里顯現記錄,這時候只要有足夠的日志分析能力就可以對產生的webshell揪出來,使攻擊者無處遁形。最后說說運維安全,運維安全工作本來其實是工作范疇的事,但運維做不好這部分工作或者說大多數運維對安全的理解并不深入,所以企業有了運維安全這個職位,或者你可以把它叫做安全運維,運維安全需要有較寬的知識面來撐起企業安全的一片天。