我們都看到過一些大公司的系統被黑客入侵的報道,一般來說,黑客都是從獲得root訪問權開始的,一旦獲得root訪問權,可以說你的任何文件,只要入侵者想要,他們都是可以取走的,這就引出了兩個問題:
數據路徑應該變得更安全點嗎?
如果數據路徑應該變得更安全,我們該怎么做呢?
數據路徑應該變得更安全點嗎?
看起來似乎有點瘋了,人們告訴我沒有存儲安全需求,需要的是網絡和操作系統安全,保護文件系統和數據路徑并不重要,他們的理由是存儲安全太難以管理了,當然,我問他們究竟是怎么想的,他們并沒有給我直接的答復。我認為人們關心的是磁盤驅動器密鑰管理的復雜性,但這僅僅是存儲安全的一個方面。磁盤加密一旦磁盤從系統移除,很容易造成破壞。磁盤加密并不能阻止任何人訪問你系統中的數據,就像磁盤驅動器寫入時加密,讀取時解密一樣,那些認為只有網絡和操作系統需要安全保護的論點在我看來是有缺陷的,是站不住腳的。
如果黑客想進入你的系統,你必須采取多層次的安全,才能防止非法訪問和縮小損害范圍,如果你有寶貴的數據,當黑客攻破系統后,他們獲得的成功將是巨大的。
如何增強安全
我認為存儲安全需要從文件系統開始,并從多個層次進行防御,包括一些大型系統,可能是光纖通道網絡,但我認為存儲的安全性必須從文件系統開始,目前的框架是借助用戶(UID)、組(GID)和訪問控制列表(ACLS)來實施安全保護的,不能滿足所有的安全需求。一旦有人獲得root訪問權,游戲就結束了,所有文件就像被脫光的人站在大街上一樣,當然,用戶可以選擇加密數據,但沒有為每個文件加密設立一個標準,密鑰管理也是個問題,從MVS到Linux,再到Windows或其它系統,使用的文件系統可能也不一樣,管理也是一個問題,如可能需要訪問一個已解雇雇員的文件,或雇員在休了四個星期的假后忘記了加密密鑰。我使用TrueCrypt加密磁盤分區,密鑰超過20個字符,但如果我不小心刪除了密鑰,如何才能獲得我電腦中的文件呢?老實說,如果沒人知道我的密鑰,難度是很大的,唯一的辦法就是破解硬盤,所花的時間和金錢不是每個人都能承受得起的。
在我看來,答案是SELinux(Security Enhanced Linux,安全增強的Linux)和MLS(multi-level security,多級安全),專有安全增強操作系統的歷史是骯臟的,從Cray Research機器上的UNICOS到Secure Solaris,Secure IRIX和一長串其它安全廠商提供的MLS操作系統,沒有一個在商業上取得了成功,沒有一個得到了市場的廣泛認可,只有極少數得到了商業世界的認可,下面是我能想到的幾個原因:
1、操作系統和特定硬件在當時的市場環境中不符合要求,因為性能需求超出了廠商的提供能力。
2、操作系統只支持有限的功能集,本地文件系統的性能不能滿足應用程序和備份的需求,HSM應用程序不能工作。
3、除了少數政府網站,人們不關心安全。
4、管理成本太高,每個操作系統都需要專門的培訓。
這些都是一些原因,但我認為可能最重要的原因是,MLS系統對過去的用戶來說,使用起來太難了,他們不能再以一貫的方式共享文件了,因為每個文件的安全級別都具體到了用戶,即使兩個用戶的級別相同,他們也可能無法像以前那樣共享文件了,因為管理員可以設置許多其它安全約束。以超級用戶(root)用戶登錄并不意味著你就可以看到所有文件(如果設置正確的話),對系統做的修改想不被記錄進日志也是不可能的。如果黑客獲得了系統的超級用戶權限,他可能獲得從普通文件到系統日志文件所有文件的訪問權,意味著黑客可以將自己的罪證消除。
解決麻煩
我的建議是使用SELinux,它已經成為所有系統的基礎,使用它的人也越來越多,現在它也能和NFS、CIFS、共享文件系統和NAS文件系統等一起工作,操作系統應該支持這個層次,這將需要改變人們業務往來的方式,廠商需做出一些改變,標準機構將采取新的框架來訪問,管理員和用戶如何交換文件,系統如何管理都將發生變化,文件系統也需要做出一些改變以支持新的安全需求,對共享文件系統來說,變化將非常大,需要認證。
網絡訪問NFS和CIFS文件系統會怎么樣呢?我預計它們將可能有額外的身份驗證,以支持這些新的安全框架和新標準,SELinux不是解決所有安全問題的萬能鑰匙,但它肯定是朝著正確的方向邁出了一大步,解決了當前黑客猖獗環境中一些很難得到解決的問題。
如果有人攻入系統,SELinux有助于保護數據的安全性,當然,如果SELinux配置不當,或使用非常簡單的,如abc123或更簡單的密碼,所有的努力都是白費,因為黑客通常都會以每個用戶的身份嘗試登錄,從最近的索尼,新聞媒體和世界各地政府網站發生的入侵事件來看,我們應該調整方向,停止僅僅重視周邊安全,我們必須重視端到端安全,需要設置更強大的密碼,真正將SELinux利用起來,強密碼和強認證必須解決員工忘記他們的身份認證信息能夠登錄系統。
這一切都不簡單,但一個不安全的面向外部的機器將引起入侵者可以訪問內部無數的機器,我們必須在操作系統中實施更強大的身份驗證和數據訪問權限控制,我相信SELinux是這個方向一個很好的開端。