Unix操作系統(tǒng)的安全性是眾所周知的。但是如果要你說出Unix系統(tǒng)到底安全在哪里,估計也沒有人能夠說出一個所以然來。筆者也一下子不能夠把Unix系統(tǒng)的安全特性向大家娓娓道來。筆者這里僅僅舉Unix系統(tǒng)安裝設(shè)計方面的三個小細(xì)節(jié)。估計從這個三個小細(xì)節(jié)中,大家看到Unix工程師在系統(tǒng)安全性與便利性方面所做的努力。
一、同一個命令不同用戶不同的權(quán)限。
Date命令是Unix系統(tǒng)的一個常用命令,其顯示了系統(tǒng)的日期與時間。但是不同的用戶角色其具有不同的功能。如是系統(tǒng)管理員用戶,則可以通過這個命令來更改系統(tǒng)時間。但是如果執(zhí)行這個命令的用戶是系統(tǒng)普通用戶,那么這個命令則只能夠顯示時間,而無法更改時間。也就是說,默認(rèn)情況下,只有系統(tǒng)管理員才可以更改系統(tǒng)時間,但是修改時間與查看時間用的是同一個命令。系統(tǒng)會自動去判斷當(dāng)前用戶是否有修改時間的權(quán)利。
這就是Unix系統(tǒng)中一個很有用的安全特性。一方面類似的功能采用同一個命令,方便了系統(tǒng)管理員的操作與維護(hù);另一方面系統(tǒng)會自動對命令的權(quán)限進(jìn)行審查,以保障用戶只能夠利用命令進(jìn)行與自己權(quán)限相符合的操作。從這里可以看出,Unix系統(tǒng)不僅在安全上有保障,其更加看重與安全和便利的一種結(jié)合。不會為了安全,而犧牲管理維護(hù)的便利性。
大家都知道,隨意更改系統(tǒng)的日期可能會給系統(tǒng)造成很大的負(fù)面影響,會使得一些作業(yè)計劃混亂。如系統(tǒng)當(dāng)前可能有多個進(jìn)程在后臺運(yùn)行,此時系統(tǒng)會根據(jù)進(jìn)程的優(yōu)先性、管理員定義的作業(yè)計劃等等安排好了這些命令進(jìn)程執(zhí)行的時間進(jìn)度表,規(guī)定在某個特定
的時刻啟動這些作業(yè)或者進(jìn)程。此時如果允許一個非管理員員用戶隨意更改系統(tǒng)時間,則系統(tǒng)中的作業(yè)可能會亂了套。如系統(tǒng)管理員為了系統(tǒng)的安全,設(shè)置了每天中午12點(diǎn)30分對系統(tǒng)中的重要文件進(jìn)行備份。如果在中午 12點(diǎn)的時候普通用戶修改了時間,把時間從12點(diǎn)改為了1點(diǎn)。那么此時系統(tǒng)就不會對系統(tǒng)重要文件進(jìn)行備份。若不幸的是,在第二天上午由于一些意外導(dǎo)致系統(tǒng)硬盤損壞或者其他系統(tǒng)故障,那么由于前一天沒有正常備份,則損壞的文件將無法修復(fù)??梢噪S意更改系統(tǒng)時間會導(dǎo)致很多難以預(yù)料的結(jié)果。
所以從這個date命令中就可以看出,Unix系統(tǒng)在安全設(shè)計上確實比其他操作系統(tǒng)略高一籌。同一個命令不同帳戶具有不同的操作功能,這讓Unix系統(tǒng)在安全與便利上達(dá)到了同一。
二、不提示具體的出錯信息。
Unix系統(tǒng)跟其他操作系統(tǒng)一樣,也是通過賬戶名與密碼來保證操作系統(tǒng)的基本安全性。但是,筆者認(rèn)為Unix在這方面可能考慮的更全面一點(diǎn)。
Unix系統(tǒng)是一個多用戶操作系統(tǒng)。通常情況下,Unix系統(tǒng)只允許擁有帳號和密碼的用戶登錄。用戶的帳號列表往往有系統(tǒng)管理員來進(jìn)行維護(hù)。系統(tǒng)管理員授予用戶使用計算機(jī)的權(quán)限,并為其計統(tǒng)帳號、口令等信息。當(dāng)系統(tǒng)出現(xiàn)提示信息要求用戶登錄時,用戶只能夠輸入系統(tǒng)管理員所提供的正確用戶名與密碼之后才能夠登陸到操作系統(tǒng)。如當(dāng)系統(tǒng)出現(xiàn)了logon提示符之后,就表示該系統(tǒng)終端允許某個用戶通過帳號與密碼進(jìn)行登錄。在輸入賬戶名之后,按下回車鍵之后,就需要輸入密碼。系統(tǒng)會要求用戶輸入準(zhǔn)確的密碼來進(jìn)行身份驗證。萬一用戶輸入密碼錯誤后(用戶名準(zhǔn)確),此時系統(tǒng)只會含糊的提示“l(fā)ogin incorrect”(登陸不準(zhǔn)確)。而不會提示用戶到底錯在哪里,是錯在密碼錯誤又或者是用戶名輸入錯誤。
這個含糊的提示,將會給非法攻擊者造成一定的障礙。由于非法攻擊者不知道到底是密碼錯誤又或者是賬戶名錯誤,這會增加對方攻擊的成本?;蛘哒f,這個提示對于攻擊者來說,或多或少有一些欺騙性。但是,這個措施卻可以很明顯的提高系統(tǒng)的安全性?;蛟S有些員工會抱怨這么設(shè)計友好性太差。不僅會欺騙攻擊者,而且也會欺騙普通的用戶。不過從安全性來說,這個安全措施仍然是必要的。
另外值得一提的是,在用戶登錄時,Unix系統(tǒng)還跟其他操作系統(tǒng)一樣,提供了一種更高級別的安全措施。即當(dāng)用戶登錄到Unix系統(tǒng)時,根據(jù)系統(tǒng)安全策略,可以讓用戶強(qiáng)制更改管理員所賦予的口令。此時用戶能夠立即更改默認(rèn)口令,設(shè)置一個只有自己知道的口令(連管理員可能都不知道)。畢竟賬戶名或者口令若太多人知道的話,會給操作系統(tǒng)帶來一定的安全隱患。
當(dāng)Unix系統(tǒng)在登陸時如果用戶名或者密碼驗證錯誤,系統(tǒng)不會提供詳細(xì)的出錯信息,從而不讓非法攻擊者找到出錯的原因,增加其攻擊的難度。其實這些類似的安全措施,在Unix系統(tǒng)中是比比皆是。在后續(xù)的文章中,筆者可能還會多次談到這個安全特性。從這個小小的安全設(shè)計中,就可以看出Unix操作系統(tǒng)的安全確實不是吹的。
一、同一個命令不同用戶不同的權(quán)限。
Date命令是Unix系統(tǒng)的一個常用命令,其顯示了系統(tǒng)的日期與時間。但是不同的用戶角色其具有不同的功能。如是系統(tǒng)管理員用戶,則可以通過這個命令來更改系統(tǒng)時間。但是如果執(zhí)行這個命令的用戶是系統(tǒng)普通用戶,那么這個命令則只能夠顯示時間,而無法更改時間。也就是說,默認(rèn)情況下,只有系統(tǒng)管理員才可以更改系統(tǒng)時間,但是修改時間與查看時間用的是同一個命令。系統(tǒng)會自動去判斷當(dāng)前用戶是否有修改時間的權(quán)利。
這就是Unix系統(tǒng)中一個很有用的安全特性。一方面類似的功能采用同一個命令,方便了系統(tǒng)管理員的操作與維護(hù);另一方面系統(tǒng)會自動對命令的權(quán)限進(jìn)行審查,以保障用戶只能夠利用命令進(jìn)行與自己權(quán)限相符合的操作。從這里可以看出,Unix系統(tǒng)不僅在安全上有保障,其更加看重與安全和便利的一種結(jié)合。不會為了安全,而犧牲管理維護(hù)的便利性。
大家都知道,隨意更改系統(tǒng)的日期可能會給系統(tǒng)造成很大的負(fù)面影響,會使得一些作業(yè)計劃混亂。如系統(tǒng)當(dāng)前可能有多個進(jìn)程在后臺運(yùn)行,此時系統(tǒng)會根據(jù)進(jìn)程的優(yōu)先性、管理員定義的作業(yè)計劃等等安排好了這些命令進(jìn)程執(zhí)行的時間進(jìn)度表,規(guī)定在某個特定
的時刻啟動這些作業(yè)或者進(jìn)程。此時如果允許一個非管理員員用戶隨意更改系統(tǒng)時間,則系統(tǒng)中的作業(yè)可能會亂了套。如系統(tǒng)管理員為了系統(tǒng)的安全,設(shè)置了每天中午12點(diǎn)30分對系統(tǒng)中的重要文件進(jìn)行備份。如果在中午 12點(diǎn)的時候普通用戶修改了時間,把時間從12點(diǎn)改為了1點(diǎn)。那么此時系統(tǒng)就不會對系統(tǒng)重要文件進(jìn)行備份。若不幸的是,在第二天上午由于一些意外導(dǎo)致系統(tǒng)硬盤損壞或者其他系統(tǒng)故障,那么由于前一天沒有正常備份,則損壞的文件將無法修復(fù)??梢噪S意更改系統(tǒng)時間會導(dǎo)致很多難以預(yù)料的結(jié)果。
所以從這個date命令中就可以看出,Unix系統(tǒng)在安全設(shè)計上確實比其他操作系統(tǒng)略高一籌。同一個命令不同帳戶具有不同的操作功能,這讓Unix系統(tǒng)在安全與便利上達(dá)到了同一。
二、不提示具體的出錯信息。
Unix系統(tǒng)跟其他操作系統(tǒng)一樣,也是通過賬戶名與密碼來保證操作系統(tǒng)的基本安全性。但是,筆者認(rèn)為Unix在這方面可能考慮的更全面一點(diǎn)。
Unix系統(tǒng)是一個多用戶操作系統(tǒng)。通常情況下,Unix系統(tǒng)只允許擁有帳號和密碼的用戶登錄。用戶的帳號列表往往有系統(tǒng)管理員來進(jìn)行維護(hù)。系統(tǒng)管理員授予用戶使用計算機(jī)的權(quán)限,并為其計統(tǒng)帳號、口令等信息。當(dāng)系統(tǒng)出現(xiàn)提示信息要求用戶登錄時,用戶只能夠輸入系統(tǒng)管理員所提供的正確用戶名與密碼之后才能夠登陸到操作系統(tǒng)。如當(dāng)系統(tǒng)出現(xiàn)了logon提示符之后,就表示該系統(tǒng)終端允許某個用戶通過帳號與密碼進(jìn)行登錄。在輸入賬戶名之后,按下回車鍵之后,就需要輸入密碼。系統(tǒng)會要求用戶輸入準(zhǔn)確的密碼來進(jìn)行身份驗證。萬一用戶輸入密碼錯誤后(用戶名準(zhǔn)確),此時系統(tǒng)只會含糊的提示“l(fā)ogin incorrect”(登陸不準(zhǔn)確)。而不會提示用戶到底錯在哪里,是錯在密碼錯誤又或者是用戶名輸入錯誤。
這個含糊的提示,將會給非法攻擊者造成一定的障礙。由于非法攻擊者不知道到底是密碼錯誤又或者是賬戶名錯誤,這會增加對方攻擊的成本?;蛘哒f,這個提示對于攻擊者來說,或多或少有一些欺騙性。但是,這個措施卻可以很明顯的提高系統(tǒng)的安全性?;蛟S有些員工會抱怨這么設(shè)計友好性太差。不僅會欺騙攻擊者,而且也會欺騙普通的用戶。不過從安全性來說,這個安全措施仍然是必要的。
另外值得一提的是,在用戶登錄時,Unix系統(tǒng)還跟其他操作系統(tǒng)一樣,提供了一種更高級別的安全措施。即當(dāng)用戶登錄到Unix系統(tǒng)時,根據(jù)系統(tǒng)安全策略,可以讓用戶強(qiáng)制更改管理員所賦予的口令。此時用戶能夠立即更改默認(rèn)口令,設(shè)置一個只有自己知道的口令(連管理員可能都不知道)。畢竟賬戶名或者口令若太多人知道的話,會給操作系統(tǒng)帶來一定的安全隱患。
當(dāng)Unix系統(tǒng)在登陸時如果用戶名或者密碼驗證錯誤,系統(tǒng)不會提供詳細(xì)的出錯信息,從而不讓非法攻擊者找到出錯的原因,增加其攻擊的難度。其實這些類似的安全措施,在Unix系統(tǒng)中是比比皆是。在后續(xù)的文章中,筆者可能還會多次談到這個安全特性。從這個小小的安全設(shè)計中,就可以看出Unix操作系統(tǒng)的安全確實不是吹的。