隨著虛擬化技術(shù)的蓬勃發(fā)展,近幾年云計(jì)算產(chǎn)業(yè)規(guī)模不斷壯大,各行業(yè)的數(shù)據(jù)量激增,通過云計(jì)算挖掘數(shù)據(jù)價(jià)值,以及企業(yè)IT基礎(chǔ)架構(gòu)向云遷移已經(jīng)成為主流趨勢(shì)。
國務(wù)院發(fā)展研究中心國際技術(shù)經(jīng)濟(jì)研究所近日發(fā)布的《中國云計(jì)算產(chǎn)業(yè)發(fā)展白皮書》顯示,2018年中國云計(jì)算產(chǎn)業(yè)規(guī)模已經(jīng)達(dá)到962.8億元;預(yù)計(jì)2023年,中國云計(jì)算產(chǎn)業(yè)規(guī)模將超過3000億元。
大量的企業(yè)將數(shù)據(jù)遷移到云上,帶來的網(wǎng)絡(luò)安全問題卻日益凸顯,以云計(jì)算行業(yè)巨頭阿里云為例,每天遭受攻擊的次數(shù)就高達(dá) 50 億次,這些攻擊包括通過系統(tǒng)漏洞進(jìn)行提權(quán)、DDOS攻擊、CC 攻擊、暴力破解,入侵成功對(duì)數(shù)據(jù)進(jìn)行加密、植入木馬或挖礦程序等手段非法牟利。
那么企業(yè)上云后應(yīng)該做哪些工作,云服務(wù)器,才能避免被入侵而造成的不可估量的損失呢?
作為一名云計(jì)算行業(yè)的從業(yè)者,我見過太多企業(yè)的服務(wù)器被入侵后遭受嚴(yán)重?fù)p失的案例,在這里,我在這里和大家分享以下上云后的安全防護(hù)應(yīng)該如何做。
首先,大家要糾正一個(gè)觀念,那就是上云并非萬事大吉了。云計(jì)算提供的彈性伸縮和水平擴(kuò)容大大縮減了企業(yè)運(yùn)維人員的工作提升了效率,例如不用大老遠(yuǎn)的跑到機(jī)房去升級(jí)操作系統(tǒng)、擴(kuò)容硬件了。
但是對(duì)于操作系統(tǒng)自身的安全問題我相信任何一家云計(jì)算公司都不敢打包票說你買了我們的服務(wù)器就絕對(duì)不會(huì)遭受任何攻擊。一般他們會(huì)提供安全防護(hù)類的產(chǎn)品或建議,但是實(shí)際的安全策略部署還是需要自己去完成。
購買服務(wù)器后的當(dāng)務(wù)之急
那么當(dāng)你在云廠商購買一臺(tái)服務(wù)器之后,你必須要做的事情就是:
第一,修改你的遠(yuǎn)程連接端口,例如 windows 的 3389,Linux 的 22 端口。應(yīng)用服務(wù)盡量不要對(duì)公網(wǎng)開放,尤其是中間件服務(wù),除了 web 服務(wù)所提供的 80,443 端口之外都應(yīng)該盡量不要對(duì)公網(wǎng)開放默認(rèn)端口,例如 MySQL 的 3306 ,Redis 的 6379 等等。
因?yàn)?a href="http://m.qzkangyuan.com/cnidc/cio/">互聯(lián)網(wǎng)上大量的入侵都是首先掃描到開放這些默認(rèn)端口的機(jī)器,然后在探測(cè)是否存在已知的漏洞進(jìn)而發(fā)起攻擊。
舉個(gè)例子,假如入侵者想入侵 redis 3.0 以下版本的 redis,攻擊者可以通過 nmap 或 masscan 這類掃描攻擊掃描某一個(gè) IP 段是否開放以及根據(jù)你的服務(wù)器特征探測(cè)你的服務(wù)器是 Linux 還是 Windows來選擇以何種方式發(fā)起攻擊,以 masscan 為例,探測(cè)49.111.0.0/16網(wǎng)段內(nèi)是否有 redis 服務(wù)開啟默認(rèn) 6379 端口。
masscan -p6379 49.111.0.0/16 --rate 10000 >> scan.txt
然后獲取到該網(wǎng)段開放了 6379 端口的 IP,并進(jìn)行下一步判斷其是否有設(shè)置密碼,版本是否是 3.0 以下。執(zhí)行如下命令即可查看這臺(tái) redis 的相關(guān)信息
./redis-cli -h IP info
然后判斷是否設(shè)置了密碼,如果沒有設(shè)置密碼,通過 redis 的持久化機(jī)制將入侵者的公鑰寫入到/.ssh 目錄
>config set dir /root/.ssh/OK> config set dbfilename authorized_keysOK>set xxx " ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDWuati70x2tsLBJ6FxDgK5NnRhUiIYMHEL9Nt0cwtOvlc8it7Ta9uSzQX6RV3hpF0Txg8/ARZaq75JyzN+1jsNh35mR49YWJloU8FbiI28IjdKAVvCOcAd/WWsPWrRIJPG38Z8Bu2xXBsNCmMwOtPd6VL4k9j6xmeA52PLe4wBJHZbGkPrbTxd7TTtvuWWmbx0dzvXBYCIalhVOJ7u5471tMBoCFGCYh5V8lzS0c4Hm3tf5SuQ8G3vWP8fLE6iUGen9rqBu+QNSxlYJSwz+O5T/ErFTFPZI3USQM7th1r6iY/Z8O7AzZlhXzPCHKcd/+8mzcEJ1JFU8m9gXgF6JwER ubuntu@ubuntu-xenial "OK> save
遭遇攻擊后應(yīng)該怎么辦?
如果你恰好 root 權(quán)限開放的,那么你這臺(tái)服務(wù)器就成功被入侵者提權(quán)了。從上面這個(gè)例子中,我們要防止這樣的入侵案例發(fā)生,除了修改默認(rèn)端口還是遠(yuǎn)遠(yuǎn)不夠的。還需要養(yǎng)成定期更新你的系統(tǒng)和應(yīng)用軟件,因?yàn)榕f版本軟件大多都會(huì)存在漏洞被攻擊者利用。
另外就是盡量不要以管理員權(quán)限運(yùn)行一些應(yīng)用程序,例如Linux 使用 root 這樣的權(quán)限去運(yùn)行程序。要以一個(gè)普通用戶運(yùn)行指定程序,防止被提權(quán)。
禁止密碼登錄,改為更安全的密鑰登錄。密鑰采用rsa非對(duì)稱加密算法,并設(shè)置大于 2048 位以上密鑰,安全系數(shù)更高。因?yàn)槿绻捎妹艽a登錄,入侵者只要密碼字典足夠強(qiáng)大,機(jī)器運(yùn)算能力夠強(qiáng)是可以非常輕松的破解的,例如通過 hydra 來暴力破解密碼
hydra-s 22 -v-lroot-Ppass.txt 49.111.95.153ssh
以 Linux 為例,修改/etc/ssh/sshd_config 中的
PermitRootLoginyes 為 noLoginGraceTime 30PasswordAuthentication yes 為 noMaxAuthTries 3# 限制最大重試次數(shù)Protocol 2
`LoginGraceTime` 允許一次登錄花費(fèi) 30 秒;如果用戶花費(fèi)的時(shí)間超過 30 秒,就不允許他訪問,必須重新登錄。`MaxAuthTries` 把錯(cuò)誤嘗試的次數(shù)限制為 3 次,3 次之后拒絕登錄嘗試。上面的 `Protocol 2` 行禁止使用比較弱的協(xié)議。