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