最近在某群聽(tīng)到這句話:運(yùn)維是必需品,安全是奢侈品。
安全,一直是大部分公司想引起重視,又不引起重視的存在。想引起重視的原因是安全問(wèn)題不斷出現(xiàn),經(jīng)常會(huì)聽(tīng)到某某云廠商的服務(wù)器不可用了,某某公司的服務(wù)器被入侵了,某某公司的數(shù)據(jù)庫(kù)被前員工刪了,層出不窮的安全問(wèn)題讓安全人員防不勝防。
就算如此,大部分公司還是不引起重視。我覺(jué)得主要有以下三種原因:
(1)公司并沒(méi)有專業(yè)的安全人員,沒(méi)有較強(qiáng)的安全意識(shí),再加上沒(méi)有發(fā)生太大的安全事故
(2)安全==花錢,要做安全,就要做好花錢的準(zhǔn)備,并且價(jià)格不菲
(3)僥幸心里
我有段時(shí)間也曾抱著僥幸心里:這類事情應(yīng)該不會(huì)發(fā)生在我身上。
但是,僥幸往往會(huì)在未來(lái)的某一時(shí)刻發(fā)生。今年,我負(fù)責(zé)的環(huán)境就發(fā)生了兩次安全事故,雖然沒(méi)有造成損失,但是給我敲了警鐘。
(1)第一個(gè)安全事故是一臺(tái) Windows 系統(tǒng)被入侵,植入后門,我在《服務(wù)器中毒了——菜是原罪》中有闡述整個(gè)過(guò)程。
(2)第二個(gè)安全事故是一臺(tái) Linux 服務(wù)器被黑客利用應(yīng)用軟件漏洞植入惡意腳本進(jìn)行挖礦
兩件事情雖然都在第一時(shí)間去解決了,但是現(xiàn)在想想還是后背發(fā)涼,如果我這些服務(wù)器和其他服務(wù)器開(kāi)了免密,那后果將是怎樣的?
所幸的是,雖然我并沒(méi)有買其他的安全產(chǎn)品,但是基礎(chǔ)的安全規(guī)范還是做了,并沒(méi)有造成太大的影響。
鑒于個(gè)人的能力水平有限,我總結(jié)整理了下面幾個(gè)安全規(guī)范:
- 端口安全
- 系統(tǒng)安全
- 應(yīng)用安全
- 網(wǎng)絡(luò)安全
- 數(shù)據(jù)安全
端口安全
現(xiàn)在的應(yīng)用基本都是 TCP/IP 形式進(jìn)行通信,如果想從外面環(huán)境進(jìn)行訪問(wèn),就需要放開(kāi)相應(yīng)的端口和 IP,比如常用的 HTTP/HTTPS 端口,SSH 端口,RDP 端口等,為了安全,我會(huì)遵從以下原則:
- 除了 80 和 443 端口,都不對(duì)外開(kāi)放
- 遠(yuǎn)程維護(hù)端口要開(kāi)白名單
- 能用 443 的盡量不使用 80
如果是普通的服務(wù)器,可以使用 iptables 進(jìn)行規(guī)則制定,如果是云服務(wù)器,可以通過(guò)云安全組進(jìn)行訪問(wèn)控制。
系統(tǒng)安全
如果按著等保 3 級(jí)的標(biāo)準(zhǔn),系統(tǒng)安全要做的就比較多,比如要開(kāi)啟防火墻,要備份審計(jì)日志,要配置各種策略。我一般只做下面幾種:
- 登錄/密碼管理
- 漏洞管理
- 基線檢查
登錄/密碼管理
日常的服務(wù)器維護(hù)需要我們登錄到目標(biāo)服務(wù)器進(jìn)行操作,那么就會(huì)涉及到密碼、密鑰等問(wèn)題,我一般會(huì)遵從以下原則:
- 提升密碼復(fù)雜度
- 設(shè)置密碼失效時(shí)間
- 定期修改密碼
- 設(shè)置密碼重試次數(shù)
- 檢查系統(tǒng)是否存在空密碼
- 禁止空密碼登錄
- 建議使用密鑰進(jìn)行登錄管理
- 通過(guò)堡壘機(jī)來(lái)做訪問(wèn)控制
漏洞管理
“漏洞是修不完的,我們只能查漏補(bǔ)缺”。
大部分公司現(xiàn)在都是以開(kāi)源為主,而且大部分公司都是借助開(kāi)源軟件構(gòu)造自己的業(yè)務(wù)體系,并沒(méi)有對(duì)這些開(kāi)源軟件做太多的安全質(zhì)量把控,以至于很多安全問(wèn)題都是開(kāi)源軟件引起的。而且現(xiàn)在很多軟件供應(yīng)商對(duì)外售賣的商業(yè)軟件中也大量采用了開(kāi)源軟件,但是安全責(zé)任并沒(méi)有從開(kāi)源代碼提供者轉(zhuǎn)移到軟件供應(yīng)商,這就導(dǎo)致最終還是由用戶來(lái)承擔(dān)了軟件漏洞的安全風(fēng)險(xiǎn)。
就拿 CentOS 系統(tǒng)而言,企業(yè)會(huì)在服務(wù)器上安裝各種軟件,比如 ssh、mysql、redis 等,而這些應(yīng)用軟件又會(huì)有許多漏洞,這就導(dǎo)致我們的系統(tǒng)就像一個(gè)篩子:漏洞百出。如果被用心之人利用,損失將不可估量。
為此,我們一定要經(jīng)常對(duì)系統(tǒng)進(jìn)行漏洞掃描和修復(fù),切記抱著僥幸心里。
如果你常用云,就算不買安全產(chǎn)品,它們也會(huì)提供基礎(chǔ)的漏洞掃描能力,但是不會(huì)幫你修復(fù),不然就要額外收費(fèi)了。我們可以借助它把漏洞整理出來(lái),自己修復(fù)。
基線檢查
基線檢查是一個(gè)日常檢查維護(hù),主要檢查以下問(wèn)題:
- 弱口令
- 賬號(hào)權(quán)限
- 身份鑒別
- 密碼策略
- 訪問(wèn)控制
- 安全審計(jì)
- 入侵防范
安全并不是一勞永逸的事情,它需要每時(shí)每刻都投入心血、時(shí)間,而基線檢查可以有效的指出安全問(wèn)題,方便進(jìn)行安全加固。
條件允許,建議購(gòu)買商業(yè)的軟件。退而求其次,就只能去找一些開(kāi)源的軟件了,比如百度推出的 OpenRASP。
應(yīng)用安全
應(yīng)用是業(yè)務(wù)的基石,應(yīng)用是業(yè)務(wù)的載體。如果應(yīng)用出問(wèn)題,業(yè)務(wù)也不遠(yuǎn)了。
而且,現(xiàn)在很多開(kāi)放人員都只關(guān)注業(yè)務(wù)實(shí)現(xiàn)與否,并不太關(guān)注應(yīng)用的安全,這就會(huì)導(dǎo)致:
- 在開(kāi)發(fā)的過(guò)程中可能引入了有漏洞的組件
- 涉及的用戶密碼沒(méi)有做加密處理
- 把用戶密碼直接放代碼中,然后上傳到公開(kāi)倉(cāng)庫(kù)中
我就遇到過(guò)某開(kāi)發(fā)人員將代碼放到 Github,而里面有阿里云 OSS 的密鑰,這就直接導(dǎo)致密鑰泄漏。幸虧阿里在這方面的掃描能力很足,很快就發(fā)現(xiàn)并告警處理。
在應(yīng)用安全這塊,主要關(guān)注以下問(wèn)題:
- 應(yīng)用漏洞掃描
- 網(wǎng)站后門
- 密鑰泄漏
- 入侵檢測(cè)
這類基本需要借助商業(yè)軟件來(lái)完成,比如 WAF。
網(wǎng)絡(luò)安全
買買買。重要的事情說(shuō)三遍。
網(wǎng)絡(luò)防御這塊,除了買,好像沒(méi)什么其他的辦法,比如 DDoS。
當(dāng)然,除了 DDoS 這類攻擊外,暴力破解也是常有的事,如果不嫌麻煩,可以自己去封禁 IP,其結(jié)果是真麻煩。
所以,最終都要以 RMB 破萬(wàn)法。
數(shù)據(jù)安全
數(shù)據(jù)安全牽扯的就比較多,常規(guī)主要以下幾種:
- 防止 SQL 注入
- 敏感數(shù)據(jù)脫敏
- 數(shù)據(jù)庫(kù)審計(jì)
- 訪問(wèn)控制
- 備份冗余
這里以數(shù)據(jù)庫(kù)為例,我們主要按以下規(guī)則進(jìn)行處理:
- 使用數(shù)據(jù)庫(kù)堡壘機(jī),所有操作都通過(guò)數(shù)據(jù)庫(kù)堡壘機(jī)進(jìn)行
- 原則上不開(kāi)放讀寫權(quán)限給個(gè)人用戶
- 應(yīng)用建議一個(gè)應(yīng)用一個(gè)賬號(hào)原則
- 要對(duì)敏感數(shù)據(jù)進(jìn)行脫敏處理
最后
大家有沒(méi)有發(fā)現(xiàn),安全拼到最后都是 RMB,當(dāng) RMB 都不能解決的時(shí)候,就拼人脈了。
道路千萬(wàn)條,
安全第一條。
操作不規(guī)范,
運(yùn)維兩行淚。