安全不僅僅是技術(shù)問題,,而是人的問題,。許多低級錯誤竟然經(jīng)常是由那些應該懂更多的人犯的:系統(tǒng)管理員或其他IT員工。 Intermedia公司《2015內(nèi)部風險報告》發(fā)現(xiàn):IT專業(yè)人士才是最有可能進行“危險”安全操作的人群,,比如說共享密碼/登錄,、重復使用個人密碼登錄業(yè)務應用,,或者將個人賬戶憑證交給他人。 有鑒于系統(tǒng)管理員對神一般的控制權(quán)限,,這類過失發(fā)生在他們身上比發(fā)生在普通用戶身上危險得多,。IT專業(yè)人士和普通用戶一樣容易被網(wǎng)絡(luò)釣魚、惡意軟件和其他攻擊攻陷,,被盜取的有特權(quán)的系統(tǒng)管理員憑證幾乎總是能造成嚴重得多的安全事故,。管理員犯錯比用戶犯錯危害大得多。下面給您列出十大常見的安全錯誤,,以及它們的補救措施: 1. 萬事用sudo 當你用root登錄,,你就對面前的金屬小盒子擁有了完全控制權(quán)。這是極端危險的,,因為只要你的憑證被盜,,攻擊者可以對你的系統(tǒng)為所欲為。 用Windows的說法,,只要不執(zhí)行管理員級的任務就沒必要用管理員賬戶登錄,。你可以用個人賬戶登錄,然后在需要執(zhí)行特定命令的時候用sudo,,而不是直接以root賬戶登錄系統(tǒng),。 一不小心,故態(tài)復萌簡直不要太容易,。只要一條命令需要sudo,,整個腳本就會執(zhí)行失敗——全部都得從頭再來。如果你不能搞清哪些命令需要特權(quán)而哪些不需要,,就很可能又退回到萬事用sudo的狀態(tài),。 2. 運行來源不明的腳本 安裝第三方Linux應用是另一個sudo可能被濫用的地方。你要做的僅僅是直接往終端里復制和粘貼命令來啟動安裝腳本——命令早已設(shè)置為利用sudo來執(zhí)行了,。腳本里的每一條命令都將以特權(quán)權(quán)限執(zhí)行,。 舉例如下,直接從網(wǎng)頁上復制過來的(URL隱去了): sudo -v && wget -nv -O- https://xxx/xxx/linux-installer.py | sudo python -c 'import sys; main=lambda:sys.stderr.write('Download failed\n'); exec(sys.stdin.read()); main()' 這條命令給網(wǎng)上其他地方托管的東西賦予了sudo權(quán)限,,以及本地運行Python的權(quán)限,。極端不建議這么做!,!Windows系統(tǒng)管理員面臨同樣的潛在災難——執(zhí)行下載的PowerShell腳本,。 即使你信任源,千萬別假設(shè)從互聯(lián)網(wǎng)上下載的腳本是安全的,。一定要先仔細檢查腳本的內(nèi)容,,確認執(zhí)行這些命令不會引發(fā)不良行為。 3. 以root運行特權(quán)服務 應用程序永遠不應該以root運行,。為機器上運行的每個應用程序和服務都創(chuàng)建單獨的具有特定權(quán)限的服務賬戶,。 服務賬戶通常都缺少主目錄,,如果以服務賬戶登錄,對文件系統(tǒng)的操作通常都是受限的,。即使攻擊者攻陷了服務賬戶,,他/她仍然需要搞定一個本地漏洞利用才能獲取更多的權(quán)限來執(zhí)行代碼。 每個應用程序都必須使用定制的賬戶訪問數(shù)據(jù)庫,,而不是用root或管理員個人賬戶訪問,。網(wǎng)頁應用應該歸屬于恰當?shù)慕M和用戶。給Windows應用程序分配域權(quán)限時,,不要給予管理員級別的權(quán)限,。 主流Linux版本都默認使用服務賬戶,但如果管理員手動配置第三方包,,很容易就會犯錯,。要記得在所有的安裝和配置都結(jié)束后切換許可,,確保root或管理員個人賬戶不再是該應用程序的所有者,。 4. 重復使用密碼 瞪大雙眼準備接受下一波驚嚇吧!我們都聽過太多在不同網(wǎng)站,、系統(tǒng)和應用間重復使用密碼的罪惡,。但事實總是殘酷的,這一問題到了今天依然是個大問題,,而系統(tǒng)管理員們也不能免俗,。 最近,Mozilla稱某未知攻擊者闖入了一名特權(quán)用戶的Bugzilla漏洞跟蹤數(shù)據(jù)庫賬戶,,盜取了大約33個關(guān)鍵漏洞的信息,。事情真相是:該“特權(quán)用戶”在另一個網(wǎng)站上重復使用了他的Bugzilla密碼,而該密碼已經(jīng)在那個網(wǎng)站的泄露事件中被曝光了,。 太多太多次,,服務器被設(shè)置了弱管理員密碼或與該網(wǎng)絡(luò)中其他機器的密碼相同。用常見密碼和字典進行暴力攻擊會奏效就是因為有足夠多的人依然在犯這種低級錯誤,。當多臺機器密碼相同,,問題便疊加了。 系統(tǒng)管理員們不應該在所有機器上都設(shè)置相同的root密碼,,而應該選擇使用密鑰文件,。每臺服務器都應有個公鑰文件而系統(tǒng)管理員的工作站上應該放有與該公鑰文件相關(guān)聯(lián)的私鑰。采用這種方式,,系統(tǒng)管理員可以訪問網(wǎng)絡(luò)上部署的所有機器,,而在網(wǎng)絡(luò)中橫向移動的攻擊者只要沒有有效密鑰便不能登錄。而且也攔截不到密碼了,。 5. 共享管理員賬戶 管理員賬戶——諸如訪問數(shù)據(jù)庫和管理頁面的,,常常會在網(wǎng)絡(luò)內(nèi)共享,。不通過設(shè)置環(huán)境以便管理員能在需要的時候請求特權(quán),而是亂七八糟地共享管理員賬戶,,那根本就是在自找麻煩,。 理想狀態(tài)下,應該是采用獨立賬戶:一個root賬戶,,然后每個管理員分發(fā)一個單獨的賬戶,。管理員賬戶不應該一開始就分配最高級別的訪問權(quán)限——可以在執(zhí)行特殊任務時請求特別訪問權(quán)。Intermedia的報告發(fā)現(xiàn)32%的IT專業(yè)人員將自己的登錄和密碼憑證給了其他員工,。 不清楚到底是誰在用管理員賬戶就已經(jīng)夠糟的了,,更糟的是:這些密碼在管理員離任后竟然還不帶改的。由于密碼沒有經(jīng)常更換,,前同事大模大樣地殺回來,,造成破壞后從容離去無跡可尋的場景也不是不可能發(fā)生。Intermedia的調(diào)查發(fā)現(xiàn),,1/5的IT專業(yè)人士承認自己會在離職后還去訪問原公司的信息,。密碼修改策略不僅僅針對終端用戶。要定期修改密碼,,尤其是管理員和服務賬戶密碼,。而且,無論何時,,只要管理員離任,,請務必重置密碼。 6. 故障診斷完后甩手不管 故障診斷的時候,,你執(zhí)行各種花招和試驗來找尋并修復問題,。在進行這些嘗試的時候,你很可能會繞過那些常規(guī)的處理過程,。問題往往出現(xiàn)在你修復了已發(fā)現(xiàn)的問題而進行到下一個任務的時候,。管理員總是很匆忙,有可能忘了恢復現(xiàn)場而令事情陷入混亂——給潛在的濫用以可乘之機,。 比如說,,在試圖找出為什么一個應用程序沒有響應的時候,你有可能在防火墻中開啟了一些端口,。當問題修復,,你得在這些被臨時開啟的端口被攻擊者利用之前關(guān)上它們。同樣地,,如果你由于SELinux干擾了故障診斷而暫時關(guān)閉了它,,記得在你完工之后重新啟動它。 故障診斷之時,記錄下你所做的改動,,這樣便能在之后將各種設(shè)置恢復到原始的狀態(tài)——除了你真的需要做出的那些修改,。 7. 未能跟蹤日志文件 日志文件很有用,尤其是在故障診斷的時候,,因為它們能讓你看到最細粒度層次上發(fā)生的事情,。當你不再需要這些日志文件,請停止產(chǎn)生它們的進程,。相信我,,你最不想看到的事情之一,就是調(diào)試進程一直開啟,,不停產(chǎn)生那些包含了可能對攻擊者也有用的信息的日志文件,。 作為最佳實踐,要記得總是記錄下有哪些日志被創(chuàng)建了,,做到對其中的信息類型心中有數(shù),。 8. 在文本文件中存儲密碼 要記的密碼太多時,很容易就會把它們都記在文本文件中,。對四處窺探的攻擊者而言,,這簡直就是叩開各種系統(tǒng)的天賜神物。這種做法的后果十分明顯,,但大家基本都聽說過那么一兩個將所有重要密碼記錄到文本文件中的例子,。 如果密碼必須以明文保存到某個文件中(比如某個應用程序的數(shù)據(jù)庫憑證),,設(shè)置文件權(quán)限以限制能查看該文件內(nèi)容的用戶,。另外,確保數(shù)據(jù)庫賬戶是一個只有最低權(quán)限的服務賬戶,。 9. 留下閑置賬戶 過期的,,限制的賬戶就是些礙事的東西??赡苡熊浖H僅是評測了一下就卸載了,,但作為安裝進程的一部分而添加的賬戶卻一直留在系統(tǒng)中。別那么干,。攻擊者很可能利用這類被遺忘的賬戶,,尤其是它們還保留有默認密碼的時候。 對那些需要留存在系統(tǒng)中但未來不會被使用的賬戶,,可以通過修改密碼文件,,用一串字符串替換掉賬戶密碼來禁用該賬戶。顯然,,當員工離職,,必然要進行的一步就是立即撤銷他們的賬戶。 10. 疏于打補丁 金科玉律:安全更新一出,,即刻安裝(當然,,備份好受影響的系統(tǒng)先),。太多太多的服務器不是因為零日漏洞利用被攻陷,而是因為經(jīng)年的補丁從未打上,。 即使是關(guān)鍵服務器,,一小段計劃維護的停機時間也遠比被攻擊者成功入侵后的數(shù)小時乃至數(shù)天的宕機時間要好得多。補丁發(fā)布就應立即測試并創(chuàng)建推出更新的計劃任務,。 然而,,不幸的是,在立即打補丁這件事上你很可能會感到挫敗——通常是由于該補丁會讓某個遺留應用崩潰,。這種情況下,,不要簡單地聳聳肩,甩一句“太糟了”了事,。應及時將情況上報恰當?shù)睦嫦嚓P(guān)者,。升級該問題?;蛟S就有方法將服務器隔離至最小風險或者采用新技術(shù)降低對遺留產(chǎn)品的依賴呢,。 在實際生活中,打補丁有可能就跟政治泥潭一樣恐怖,。如果有級別比你高的經(jīng)理級人物下令不對系統(tǒng)進行更新,,要確保每個人都知道不打補丁的風險。 不要吝惜您的安全技術(shù) 一般情況下,,安全技術(shù)能幫助阻擋已知慣犯,,并在事情變得不正常時幫助將問題暴露出來?;蛟S會有在某個特別的工作站或服務器上不宜運行反病毒或防火墻的情況,,但這種情況相當罕見。 考慮到當下有多種DDoS惡意軟件肆虐,,就因為Linux Web服務器沒有工具阻攔壞東西的入侵而感染這些服務器,,安全技術(shù)應該被部署到所有終端以保護所有用戶——高層管理人員、一線工人,、系統(tǒng)管理員和其他有著特殊權(quán)限的個人,,不受攻擊的侵害。 盡量保持機器的干凈清潔,。卸載那些你用不著的應用程序以便在機器上不留下被遺忘的賬戶或工具,。我們的目標是讓系統(tǒng)盡可能地干凈以最小化攻擊界面。僅僅需要一個小錯,,一瞬間的疏忽大意,,所有努力都可能付諸東流。 安全工具能幫你看清網(wǎng)絡(luò)中正在發(fā)生的事件??梢允褂肗map掃描那些可能在故障診斷會話中被打開的端口,。檢查哪些機器缺失了哪些補丁,制訂出修復計劃,。 有工具可以告訴你哪兒出了問題,,給你在攻擊者乘虛而入之前修復問題的機會。但世界上所有的安全技術(shù)都幫不了你——如果系統(tǒng)管理員不以身作則遵守那些他們?yōu)榇蠹抑贫ǖ囊?guī)則的話,。 --- 要聞/干貨/原創(chuàng)/專業(yè) 關(guān)注“安全牛” |
|