背景
公司上市不到兩週,便遭受到了駭客攻擊,其中筆者團隊的驗證碼比較容易識別,攻擊者透過ORC識別刷了10幾萬的簡訊,除了造成一筆資金開銷外,也給伺服器帶來了很大的壓力;
並且在阿里雲的控制檯當中每天都能看到很多攻擊資訊,卻沒有攔截,原因是沒有購買WAF防火牆,售後也頻繁催促購買其安全設施;所以技術負責人也開始重視起安全問題來,筆者因為懂一些安全技術,所以老大希望筆者在這方面做一些規劃指導,週末花了點時間根據公司的現狀做了一下規劃設想,下文便是當時的口述彙報,後來整理成了文字版,給讀者做一些參考吧。
一、網路安全威脅
提到安全可能直覺上會想到安全漏洞,程式碼安全等問題,不過安全一般比直覺上的範圍更廣泛,主要有來自於六個方面:網路安全、主機安全、應用安全、資料安全、運維安全、法律風險等。
1.1 網路層
拒絕服務攻擊,分散式拒絕服務攻擊(DDoS),是最暴力、血腥、有效的攻擊方式,可直接導致企業雲上業務系統頻寬堵塞。
DDOS攻擊防禦有兩個核心點,首先是識別誰是惡意攻擊,另外就是要有足夠的頻寬和伺服器效能來處理這些請求,DDOS攻擊是在太野蠻,應對的方法也比較被動,可以使用雲平臺的防DDOS產品,但也會有誤傷,所以遇到這種攻擊也只能使用這種無奈的處理來應對。
1.2 主機層
雲主機入侵攻擊,雲主機是企業雲上業務系統的重要承載,攻擊者透過暴力破解或配置漏洞等缺陷入侵雲主機,用以構建殭屍網路、竊取資料及敲詐勒索等。
主機層的風險通常是一些通用漏洞的風險,比如2016年心臟滴血事件全球的伺服器都會受到此影響,因此到相對好處理,我們可以使用阿里雲的安騎士產品,一鍵修復系統中的安全漏洞。
1.3 應用層
Web應用漏洞攻擊,企業雲上業務系統對外提供服務的諸多系統採用HTTP/S應用協議(Web),攻擊者利用Web服務可能存在的諸多漏洞進行攻擊,竊取業務系統資料或許可權等。
應用層變更最為頻繁,每家的應用特點都有一些差異,所以通常應用層受攻擊的可能性最大,要防禦此風險需要持續不斷的進行跟進,比如對開發的安全意識,安全開發進行培訓,對專案上線前的測試增加安全測試部分。
1.4 資料層
資料竊取或篡改雲上業務系統資料在傳輸過程中經過網際網路,可能被中途竊取或篡改,造成資料完整性和機密性受到影響。資料層相對範圍比較廣,比如程式碼是否洩漏,是否有資料洩漏,以及頁面掛馬,網站的留言的黃賭毒關鍵詞篩選等,因為這些資料洩漏的途徑會隨著應用層的變化而變化,因此資料層也同樣需要持續跟進。
1.5 運維層
運維人員違規風險操作企業雲上業務系統需要內部人員進行運維操作,如何防範高風險的運維操作至關重要。
不過運維層的操作風險倒也是各個廠家的一些通用風險,因此解決方案也相對較多,比如使用堡壘機在視覺化介面上分配許可權,這個許可權可以讓一個賬戶指定開啟多長時間,並且還可以全程監控,以及操作記錄回查,因此風險不大。
1.6 合規層
國家等級保護2017年6月,國家網路安全法開始實施,企業安全建設不僅僅是內部驅動,同時也有法律驅動。
包括實名制,以及日至留存,制定相應的企業安全防護策略等。
二、安全制度
大多數人可能想到安全是從安全技術上來解決,實際上安全問題不僅僅靠的是技術層面,更多的是從制度上去解決的;
2.1 安全工程化
這裡提一下SDL,SDL是英文字母的縮寫,中文名稱是安全開發生命週期,他是一套安全的生成流程。最開始來自於微軟,在微軟2004年以前windows系統和office中存在大量安全漏洞,為了解決這些問題提出了SDL,當使用了SDL之後office、windows的安全漏洞大量降低,後來被各個廠商推廣。
SDL從 安全培訓-》需求分析-》設計-》實施-》安全驗證-》釋出-》響應 這7個方面入手,每一個環節有相應的安全標準,不過微軟標準版的SDL推廣並不是很順利,原因很多,但標準版SDL比較繁重是一個重要的因素,因此各家都有自己的一套SDL標準,在這方面我們也可以進行一些借鑑,制定一套自己的SDL標準,這個標準的制定一定要符合可執行可落地來為依據,可以參考我下面的落地實施部分。
2.2 對外溝通
2016年前以前,白帽子發現漏洞在烏雲網報告,烏雲網通知到各個公司,2016年7月之後烏雲閘道器閉,一批白帽子被抓,導致白帽子發現漏洞不敢報告;不過後來各家開始組建自己的漏洞報告平臺,2017年6月安全法出來之後,大部分公司要合規,因此大一些的公司通常都有自己的安全團隊,比如教育行業好未來的應急響應中心;現在大家發現漏洞通常會報告給對應的平臺的SRC;
比如教育行業的好未來SRC:http://src.100tal.com/
瓜子二手車的SRC:https://security.guazi.com/
以及更多的SRC平臺,如下圖
2.3 安全落地
上面提到了安全工程化,不過SDL的標準對於我們現階段太過於理想,所以需要針對實際情況制定一些可落地的方案
安全程式設計規範
將一些可能帶來安全風險的操作寫入規範當中去,比如引數的輸入輸出,伺服器的安全配置,以及程式碼的安全釋出流程等。
安全培訓
很多時候開發者並不重視安全,又或許對安全缺乏瞭解,比如系統中有哪些安全漏洞,漏洞的危害和原理是什麼樣的,怎麼去防止這些漏洞等等,大部分開發者的安全意識還是很弱,和網際網路技術不重視安全也有關係,可能一些開發者知道一些SQL隱碼攻擊、XSS,但是一深入去問一下,就不知所以然,而開發者對安全起了至關重要的作用,所以很有必要對開發者進行安全意識和安全基礎技術的培訓,這樣才能從源頭解決安全問題。
程式碼審計
這個不管是對於安全的角度還是對於減少BUG的角度都是很有必要的一個環節,對每個專案設定一個程式碼審計人員,可以對此這些審計人員組織一次程式碼審計指導;
安全測試
目前我們專案上線做了充足的功能測試,但是安全測試相對偏少,或者說並不全面,可以專門針對測試的人進行一些安全工具的測試的指導。
三、安全產品
阿里雲提供的安全產品比較齊全,不過價格比較貴,而目前我們沒有專門負責安全的人來維護,因此選擇的安全產品方向為能直接提升安全,這樣才能發揮最大價值,否則便成了手有寶刀,卻無刀法,下面是三個必要的安全產品:
3.1 安騎士
前面提到了主機安全,主機安全不會經常變動,因此應對的是一些通用風險,安騎士提供一鍵修復通用主機漏洞的能力,可以快速修補主機安全,避免人工去修復並不知道如何去修,或者修復不及時。
3.2 WAF防火牆
WAF防火牆對應的是應用層安全,可以針對一些程式碼級的安全漏洞做一些安全防護,應用層變化最大,因此必要性比較大,不過要注意的是WAF防火牆只能處理程式碼級的漏洞,而邏輯層的卻無能為力,比如上次的刷驗證碼,防火牆則只能將頻率非常高的IP封鎖,但無法阻擋刷驗證碼的漏洞問題。
3.3 CA證照
CA證照的作用是HTTPS,是用來對傳輸過程加密,比如伺服器提交資料到伺服器過程不被攻擊者攔截,又或者我們伺服器的資料不被一些網路運營商插入廣告等,因此重要性也是十分重要。
另外針對阿里雲的安全產品較貴的,可以參考也可以參考其他家的安全產品,比如百度的雲加速,就帶有了WAF防火牆和防DDOS功能,地址為 su.baidu.com
四、新書推薦
如果對筆者的文章較為感興趣,可以關注筆者新書《PHP Web安全開發實戰》,現已在各大平臺上架銷售,封面如下圖所示
作者:湯青松
日期:2018-11-13
微信:songboy8888