看完這篇解決你99%的運維安全陋習撞蜂,快別踩坑了盲镶!

隨著IT技術(shù)和業(yè)務的發(fā)展及各式各樣安全漏洞的涌現(xiàn),運維與安全這兩個專業(yè)日漸交融蝌诡,人們對運維安全的重視程度越來越高溉贿,于是逐漸出現(xiàn)了一個新的交叉領(lǐng)域叫“運維安全”。

黑客浦旱、白帽子忙于挖掘運維安全漏洞宇色,企業(yè)忙于構(gòu)建運維安全體系,一時間無數(shù)漏洞紛至沓來颁湖,座座堡壘拔地而起宣蠕。

作者立足自身多年運維安全實踐,也來探討一二甥捺。

本文將按照提出問題到回應答案的思路抢蚀,先拋出作者對運維安全的理解,并解釋重視運維安全的原因镰禾;接著根據(jù)在運維安全一線發(fā)現(xiàn)的工作陋習及企業(yè)面臨的常見問題皿曲,整理出通用運維安全問題分類;之后的下篇還將對癥下藥吴侦,提出一個好的運維安全形態(tài):不僅在于工程師們的安全意識屋休,更在于一套相對完整的運維安全體系,從流程到技術(shù)备韧,點線面多位一體共同締造劫樟。

一、什么是運維安全?

我們先看一張維恩圖毅哗,現(xiàn)實中的業(yè)務听怕、運維捧挺、安全的關(guān)系是互相關(guān)聯(lián)虑绵、彼此依賴的:

從這張圖中,衍生出三個不同與安全相關(guān)的子專業(yè):“運維+安全”闽烙、“安全+運維”翅睛、“業(yè)務+運維+安全”。在互聯(lián)網(wǎng)公司招聘崗位里黑竞,我們經(jīng)巢斗ⅲ看到的是運維安全工程師、安全運維工程師很魂,這兩個崗位比較好對號入座扎酷。而“業(yè)務+運維+安全”,通常被包含在安全工程師的崗位中遏匆,近年出現(xiàn)的應用運維安全工程師法挨,相比之下更符合“業(yè)務+運維+安全”的定位。

1幅聘、運維安全 = 運維 + 安全

運維安全研究的是與運維相關(guān)的安全問題的發(fā)現(xiàn)凡纳、分析與阻斷,比如操作系統(tǒng)或應用版本漏洞帝蒿、訪問控制漏洞荐糜、DDoS攻擊等。顯然葛超,運維安全立足于運維暴氏,從企業(yè)架構(gòu)上講通常屬于運維部門或基礎(chǔ)架構(gòu)部門,運維安全工程師的專業(yè)序列一般屬于運維工程師绣张。

2偏序、安全運維 = 安全 + 運維
安全運維研究的是安全系統(tǒng)或設(shè)備的運維,比如防火墻胖替、漏洞掃描器維護研儒、漏洞挖掘與應急響應等。這個也很明顯独令,安全運維屬于安全部門旗下端朵,安全運維工程師的專業(yè)序列也屬于安全工程師。

3燃箭、應用運維安全 = 業(yè)務 + 運維 + 安全

應用運維安全研究的是業(yè)務上的運維與安全冲呢,主要包括安全風險評估與安全方案規(guī)劃設(shè)計及其落地。組織架構(gòu)上該崗位有屬于安全部門的招狸,也有屬于業(yè)務部門的敬拓,對應的專業(yè)序列有屬于安全工程師的邻薯,也有屬于開發(fā)工程師。

通過對比“運維+安全”乘凸、“安全+運維”厕诡、“業(yè)務+運維+安全”三個子專業(yè)的不同,我們明確了運維安全的研究領(lǐng)域和崗位職責营勤×橄樱看到這里,可能大家會有疑問葛作,是什么導致運維安全現(xiàn)在這么“風光”寿羞?

二、為什么我們重視運維安全赂蠢?

可以說绪穆,2013-2014年是運維安全發(fā)展的一個分水嶺。這兩年特別之處在于作為互聯(lián)網(wǎng)基礎(chǔ)設(shè)施的幾大應用相繼被爆漏洞或被攻擊虱岂,例如Struts2遠程代碼執(zhí)行漏洞玖院、Openssl心臟滴血、Bash破殼漏洞量瓜,以及當時“史上規(guī)模最大的DDoS攻擊”導致大量.cn和.com.cn域名無法解析司恳。在這之后,企業(yè)對運維安全投入迅速加大绍傲,各種運維安全問題也引起廣泛關(guān)注扔傅。直到今天烫饼,運維安全已經(jīng)成為企業(yè)安全建設(shè)的重中之重猎塞。

1、漏洞百出的軟件供應鏈
struts2遠程代碼執(zhí)行漏洞

當年S2漏洞一出荠耽,整個互聯(lián)網(wǎng)一片哀嚎。下面是受影響的企業(yè)比藻,大家應該幾乎沒有不認識的吧?

openssl心臟滴血

跟S2漏洞一樣慢叨,殺傷力極強。

xcode開發(fā)的ios app感染木馬

研究者發(fā)現(xiàn)AppStore上的TOP5000應用有76款被感染。后來發(fā)現(xiàn)罪魁禍首是開發(fā)人員從非蘋果官方渠道下載xcode開發(fā)環(huán)境。

2轩拨、 運維安全漏洞占比明顯

自從某云離去以后践瓷,不得不說國內(nèi)互聯(lián)網(wǎng)安全態(tài)勢的共享逐步走向了封閉,不過借此機緣亡蓉,也涌現(xiàn)了很多商業(yè)公司晕翠。

即便是現(xiàn)在留下的某天某法某眼,能查詢到的統(tǒng)計分析數(shù)據(jù)其實也很有限寸宵。即便是某旦崖面,其用戶體驗也不夠好元咙,統(tǒng)計分析功能無法差強人意梯影。剩下的,各種研究報告也從來沒有把運維安全問題列入單獨的統(tǒng)計范疇庶香,所以這里借用2016年CNVD的統(tǒng)計甲棍,可以發(fā)現(xiàn)明顯屬于運維安全問題的網(wǎng)絡設(shè)備漏洞和操作系統(tǒng)漏洞,占比已超過20%赶掖,加上應用程序漏洞中包括的各種應用版本漏洞感猛,相信歸屬于運維安全領(lǐng)域的漏洞比例將極其可觀。

3奢赂、 運維安全漏洞利用性價比高

針對運維安全漏洞的攻擊屬于典型的“一兩撥千金”陪白,其ROI非常高:投入小、容易發(fā)現(xiàn)與利用膳灶、造成危害特別大咱士。

根據(jù)微軟的DREAD模型來衡量運維安全漏洞風險如下:

三、常見運維安全陋習

運維安全事件頻發(fā)轧钓,一方面固然是因為運維或安全規(guī)范空白或者沒有落地序厉,另一方面也在于運維人員缺乏強烈的運維安全意識,在日常工作中存在這樣那樣的安全陋習導致毕箍。

下面列出了14種坑弛房,大家可以試試對號入座,仔細想想曾幾何時自己是否也踩過同樣的坑而柑?

1文捶、修改iptables后沒有還原配置,甚至清空關(guān)閉iptables

出于測試需要臨時清空iptables可以理解媒咳,但是很多人會忘記還原粹排,也沒有設(shè)置自動還原機制。

iptables -F

2伟葫、腳本沒有檢查“*”恨搓、空格、變量

如果我們認可“不光用戶的輸入是不可信的,自己的輸入也是不可信”斧抱,這樣的坑就會少踩常拓。

rm -rf /var1/var1/var2

3、服務啟動默認監(jiān)聽全部地址

絕大部分應用默認配置便是如此辉浦,在沒有有效訪問控制的清空下開啟監(jiān)聽所有地址弄抬,離危險也就不遠了。

bind-address 0.0.0.0

4宪郊、給文件開放過大的權(quán)限時掂恕,任何人都能讀寫

這個跟phpinfo有點像,能給入侵者推一把弛槐。

chmod 777 dir || chmod 666script

5懊亡、用root啟動服務

對于大多數(shù)運維人員而言,一上機器就切到root乎串,后面用root啟動服務仿佛一氣呵成店枣。

nohup ./server &

6、嫌麻煩不配認證叹誉,也不配訪問控制

這個跟監(jiān)聽任意地址比較像鸯两,通常也是默認配置使然,使用者也沒有意識去加固长豁。

requirepass test

7钧唐、單機安裝docker之后忽略檢查iptables,導致docker修改iptables開放外網(wǎng)

docker技術(shù)給我們帶來的便利自不必言匠襟,但是docker帶來的安全風險卻一點也不少钝侠。而且,docker daemon默認是能控制宿主iptables的宅此,如果docker daemon使用tcp socket或者啟動的容器可被外部訪問机错,則連宿主一同淪陷也不在話下。比如下面一啟動容器則將tcp/443端口對外開放了:

docker restart
*nat
:PREROUTING ACCEPT [8435539:534512144]
:INPUT ACCEPT [1599326:97042024]
:OUTPUT ACCEPT [4783949:343318408]
:POSTROUTING ACCEPT [4783949:343318408]
:DOCKER - [0:0]
-A PREROUTING -m addrtype --dst-type LOCAL -j DOCKER
-A OUTPUT ! -d 127.0.0.0/8 -m addrtype --dst-type LOCAL -j DOCKER
-A POSTROUTING -s 172.17.0.0/16 ! -o docker0 -j MASQUERADE
-A POSTROUTING -s 172.17.0.1/32 -d 172.17.0.1/32 -p tcp -m tcp --dport 443 -j MASQUERADE
-A FORWARD -o docker0 -j DOCKER
-A FORWARD -o docker0 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -i docker0 ! -o docker0 -j ACCEPT
-A FORWARD -i docker0 -o docker0 -j ACCEPT
-A DOCKER -d 172.23.0.3/32 ! -i br-1bf61a2fa2e7 -o br-1bf61a2fa2e7 -p tcp -m tcp --dport 443 -j ACCEPT
*filter
:INPUT ACCEPT [1599326:97042024]
:OUTPUT ACCEPT [4783949:343318408]
-A INPUT -s 10.0.0.0/8 -j ACCEPT
-A INPUT -s 127.0.0.1 -j ACCEPT
-A INPUT -j DROP

最后的規(guī)則被繞過

8父腕、sudo授權(quán)過大弱匪,導致自定義腳本提權(quán)

如果攻擊者可修改腳本內(nèi)容則提權(quán)易如反掌。

sudo script.sh

參考鏈接:

script.shhttp://script.sh

9璧亮、給開發(fā)或者QA授權(quán)root權(quán)限萧诫,他搞事你背鍋?

一直以來我們強調(diào)RBAC枝嘶,但是運維太忙帘饶,開發(fā)測試人員需求太多時,很多運維人員會直接授權(quán)他們root權(quán)限群扶,而他們對系統(tǒng)級訪問控制不甚了了及刻,因此造成的漏洞非扯瓶悖“ 可觀 ”。

dev@pro-app-01:/home/dev$su
root@pro-app-01:/home/dev#whoami
root
10缴饭、key/token/ssh私鑰保存在txt文件里暑劝,也有把個人ssh私鑰放在服務器的

op@pro-app-01:/home/op$ls ~/.ssh

id_rsa id_rsa.pub

11、把工作上的代碼對外發(fā)布

連著遇到實習生把項目代碼提交github了颗搂,回復的理由是git配錯了担猛。雖然不知真假,但我認為丢氢,至少他們是安全意識不足傅联。

git remote add origin https://github.com/secondwatchCH/EFS.gitgit push origin master

12、個人home目錄那么敏感疚察,也有人拿來直接托管服務蒸走,至少.bash_history泄露是跑不了

dev@pro-app-01:/home/dev$python -m HTTPSimpleServer

13、應用選型時沒有考慮安全風險

Apache Struts Version:Struts 2.5 - Struts 2.5.12 #線上業(yè)務使用受S2-052影響的S2版本

14稍浆、對軟件供應鏈安全沒有概念

從xcode事件到pip官方發(fā)現(xiàn)惡意ssh庫载碌,都在向我們昭示一個道理:軟件供應鏈安全風險極大猜嘱。目前比較運維人員中比較常見問題有:

ssh客戶端或者開發(fā)IDE從百度網(wǎng)盤下載

兩眼一閉衅枫,把github/pypi/dockerhub等網(wǎng)站下載的應用/庫/鏡像直接用到生產(chǎn)環(huán)境

未清理默認口令或者默認配置

四、常見運維安全問題

前面我們談到了運維操作上朗伶、思路上的一些陋習弦撩,或者安全意識不足的問題,下面結(jié)合漏洞分析和響應過的情況來看论皆,常見的運維安全問題主要可分為下面幾種:

1益楼、敏感端口對外開放

db或者cache屬于敏感應用,通常部署在內(nèi)網(wǎng)点晴,但是如果部署的機器有內(nèi)外網(wǎng)ip感凤,且默認監(jiān)聽地址為0.0.0.0的話,則敏感端口會對外開放粒督。如 MySQL / MongoDB / Redis / rsync / docker daemon api 等端口對外開放陪竿。

2、敏感應用無認證屠橄、空口令或者弱口令

同上族跛,如果敏感應用使用默認配置,則不會開啟認證锐墙,MySQL / MongoDB / Redis / rsync / supervisord rpc / Memcache 等應用無認證礁哄。有時貪圖測試方便,配置了弱口令或空口令溪北,則認證形同虛設(shè)桐绒。

3夺脾、敏感信息泄露,如代碼備份茉继、版本跟蹤信息劳翰、認證信息泄露

web.tar.gz/backup.bak / .svn/.git / config.inc.php / test.sql 等信息泄露隨處可見,人人知道危險馒疹,但是始終時不時會有人會踩坑佳簸。

4、應用默認配置未清除

jenkins script / apache server-status等默認功能未清理颖变,例如下圖可直接執(zhí)行命令:

5生均、應用系統(tǒng)打開debug模式

Django debug模式開啟暴露uri路徑,phpinfo()暴露服務器信息甚至webroot等腥刹,之后攻擊者便可借此進一步滲透马胧,很多白帽子應當有此同感,發(fā)現(xiàn)了sql注入但是寫不了webshell衔峰,如果能遇上個phpinfo()那是再好不過的事情了佩脊。

6、應用漏洞未及時升級

越是通用的應用垫卤,就越經(jīng)常爆出漏洞威彰。有句話說的好:不是因為黑客這個世界才不安全,而是因為不安全才會有了黑客穴肘,黑客去揭開那層假象歇盼,我們才發(fā)現(xiàn)有那么多不安全。于是Struts2评抚、OpenSSL豹缀、Apache、Nginx慨代、Flash等等CVE接踵而來邢笙。

7、權(quán)限管理松散

不遵循最小權(quán)限原則侍匙,給開發(fā)提供root權(quán)限或者給業(yè)務賬號授權(quán)admin權(quán)限氮惯。

8、DDoS攻擊

DDoS攻擊對于運維人員而言丈积,是再熟悉不過的安全問題了筐骇。我們都知道通過占滿帶寬、耗盡資源等方式可讓服務器無法響應正常請求江滨,說到底是資源對抗的一種攻擊方式铛纬。如果僅依賴服務器資源去抗,去過濾唬滑,如下圖告唆,在大流量棺弊、高并發(fā)之下,只會引來雪崩:

加上DDoS攻擊平臺大量存在擒悬,而且價格低廉模她,這就讓DDoS攻擊成為打壓競爭對手、報復、勒索等陰謀詭計者首選方式了。

9肢簿、流量劫持

還記得2015年小米、騰訊畜侦、微博、今日頭條等六家共公司聯(lián)合發(fā)表聲明呼吁電信運營商打擊流量劫持的報告嗎躯保?即便如此旋膳,現(xiàn)如今的互聯(lián)網(wǎng)江湖仍是暗流滾滾。下面介紹三種常見的流量劫持方式途事,這也是困擾運維安全人員多年的痼疾:

arp劫持 : ARP協(xié)議的基本功能就是通過目標設(shè)備的IP地址验懊,查詢目標設(shè)備的MAC地址,以保證通信的進行尸变∫逋迹基于ARP協(xié)議的這一工作特性,黑客向?qū)Ψ接嬎銠C不斷發(fā)送有欺詐性質(zhì)的ARP數(shù)據(jù)包振惰,假冒目標IP進行ARP響應歌溉,從而實現(xiàn)中間人攻擊。

域名劫持 : 通過劫持掉域名的DNS解析結(jié)果骑晶,將HTTP請求劫持到特定IP上,使得客戶端和攻擊者的服務器建立TCP連接草慧,而非和目標服務器直接連接桶蛔。

HTTP劫持/直接流量修改 : 在數(shù)據(jù)通路上對頁面進行固定的內(nèi)容插入,比如廣告彈窗等漫谷。

10仔雷、案例

前面我們討論了很多運維安全陋習和問題分類,下面要講的舔示,則是大家再熟悉不過的幾個案例碟婆,且看運維安全漏洞如何“性價比”極高:

svn

部署web代碼時誤將.svn目錄上傳;

使用rsync上傳代碼時沒有exclude掉 .svn目錄惕稻,svn倉庫也沒有使用svn propedit svn:ignore <目錄或文件>的方式ignore掉不應當上傳的文件或目錄竖共;

攻擊者利用svn信息泄露利用工具Svn-Tool或者svn-extractor還原代碼。

rsync

rsync使用root用戶啟動俺祠,模塊沒有配置認證公给,還對外開放默認端口873借帘;

攻擊者利用rsync寫crontab任務成功反彈Shell,并種上了挖礦木馬淌铐。

Redis

Redis使用root用戶啟動肺然,沒有配置認證,還對外開放默認端口6379腿准;

攻擊者利用Redis寫ssh公鑰到root用戶的.ssh目錄成功登上機器际起;

一般部署Redis的機器都有內(nèi)網(wǎng)IP,攻擊者可借此進行內(nèi)網(wǎng)漫游了吐葱。

Kubernetes

K8S的API對外開放加叁,同時未開啟認證;

攻擊者調(diào)用API創(chuàng)建容器唇撬,將容器文件系統(tǒng)根目錄掛載在宿主根目錄它匕, 攻擊者利用寫crontab任務成功反彈Shell,并在宿主種上了挖礦木馬窖认;

有時候容器里跑著未編譯的代碼或者在淪陷的機器上可以拉到私有Docker鏡像倉庫的任意鏡像豫柬,后果將難以想象,如 下面K8S的API扑浸, 調(diào)用起來則非常簡單烧给。

那么,現(xiàn)在就該思考一個問題了:如何做好運維安全喝噪?中醫(yī)有句話叫對癥下藥础嫡。我們花大篇幅去剖析問題所在,也是想從問題入手酝惧,通過糾正或者培養(yǎng)良好的運維安全習慣榴鼎,結(jié)合完整的運維安全技術(shù)體系,才是問題的出路晚唇。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末巫财,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子哩陕,更是在濱河造成了極大的恐慌平项,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,968評論 6 482
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件悍及,死亡現(xiàn)場離奇詭異闽瓢,居然都是意外死亡,警方通過查閱死者的電腦和手機心赶,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,601評論 2 382
  • 文/潘曉璐 我一進店門扣讼,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人园担,你說我怎么就攤上這事届谈】菀梗” “怎么了?”我有些...
    開封第一講書人閱讀 153,220評論 0 344
  • 文/不壞的土叔 我叫張陵艰山,是天一觀的道長湖雹。 經(jīng)常有香客問我,道長曙搬,這世上最難降的妖魔是什么摔吏? 我笑而不...
    開封第一講書人閱讀 55,416評論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮纵装,結(jié)果婚禮上征讲,老公的妹妹穿的比我還像新娘。我一直安慰自己橡娄,他們只是感情好诗箍,可當我...
    茶點故事閱讀 64,425評論 5 374
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著挽唉,像睡著了一般滤祖。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上瓶籽,一...
    開封第一講書人閱讀 49,144評論 1 285
  • 那天匠童,我揣著相機與錄音,去河邊找鬼塑顺。 笑死汤求,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的严拒。 我是一名探鬼主播扬绪,決...
    沈念sama閱讀 38,432評論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼糙俗!你這毒婦竟也來了勒奇?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,088評論 0 261
  • 序言:老撾萬榮一對情侶失蹤巧骚,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后格二,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體劈彪,經(jīng)...
    沈念sama閱讀 43,586評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,028評論 2 325
  • 正文 我和宋清朗相戀三年顶猜,在試婚紗的時候發(fā)現(xiàn)自己被綠了沧奴。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,137評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡长窄,死狀恐怖滔吠,靈堂內(nèi)的尸體忽然破棺而出纲菌,到底是詐尸還是另有隱情,我是刑警寧澤疮绷,帶...
    沈念sama閱讀 33,783評論 4 324
  • 正文 年R本政府宣布翰舌,位于F島的核電站,受9級特大地震影響冬骚,放射性物質(zhì)發(fā)生泄漏椅贱。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,343評論 3 307
  • 文/蒙蒙 一只冻、第九天 我趴在偏房一處隱蔽的房頂上張望庇麦。 院中可真熱鬧,春花似錦喜德、人聲如沸山橄。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,333評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽航棱。三九已至,卻和暖如春贱呐,著一層夾襖步出監(jiān)牢的瞬間丧诺,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,559評論 1 262
  • 我被黑心中介騙來泰國打工奄薇, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留驳阎,地道東北人。 一個月前我還...
    沈念sama閱讀 45,595評論 2 355
  • 正文 我出身青樓馁蒂,卻偏偏與公主長得像呵晚,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子沫屡,可洞房花燭夜當晚...
    茶點故事閱讀 42,901評論 2 345

推薦閱讀更多精彩內(nèi)容

  • 運維安全作為企業(yè)安全保障的基石饵隙,特別是互聯(lián)網(wǎng)企業(yè),它不同于Web安全沮脖、移動安全金矛、或者業(yè)務安全,因為運維安全位于最底...
    安全牛課堂牛油果閱讀 248評論 0 0
  • 夜鶯2517閱讀 127,712評論 1 9
  • 版本:ios 1.2.1 亮點: 1.app角標可以實時更新天氣溫度或選擇空氣質(zhì)量勺届,建議處女座就不要選了驶俊,不然老想...
    我就是沉沉閱讀 6,878評論 1 6
  • 我是一名過去式的高三狗,很可悲免姿,在這三年里我沒有戀愛饼酿,看著同齡的小伙伴們一對兒一對兒的,我的心不好受。怎么說呢故俐,高...
    小娘紙閱讀 3,375評論 4 7
  • 這些日子就像是一天一天在倒計時 一想到他走了 心里就是說不出的滋味 從幾個月前認識他開始 就意識到終究會發(fā)生的 只...
    栗子a閱讀 1,613評論 1 3