Linux禦敵策略談(轉)
Linux禦敵策略談(轉)[@more@]由於Linux作業系統是一個開放原始碼的免費系統,因此越來越受到使用者的歡迎。隨著Linux在我國的不斷普及,有關的政府部門更是將基於Linux開發具有自主版權的作業系統提高到保衛國家資訊保安的高度來看待,因此我們不難預測;Linux在我國將得到更快更大的發展。而對於眾多習慣了Unix和Windows NT的系統管理員來講,如何保證Linux作業系統的安全將面臨許多新的挑戰。
苦修內功
第一步:安裝檔案系統要分割槽
在Linux系統中,如果分別為不同的應用安裝單獨的主分割槽,再將關鍵的分割槽設定為只讀,將大大提高檔案系統的安全性。
1.檔案分割槽
Linux的檔案系統可以分成幾個主要的分割槽,一般情況下至少要建立/、/usr/local、/var和/home等幾個分割槽。其中/usr可以安裝成只讀並且可以被認為是不可修改的,如果/usr中有任何檔案發生了改變,那麼系統將立即發出安全報警。/lib、/boot和/sbin的安裝和設定也一樣。在安裝時應該儘量將它們設定為只讀,這樣 對它們的檔案、目錄和屬性進行的任何修改都會導致系統報警。
當然將所有主要的分割槽都設定為只讀是不可能的,有的分割槽如/var,其自身的性質就決定了不能將它設定為只讀,但應該不允許它具有執行許可權。
2.擴充套件ext2
使用ext2檔案系統上的只新增和不可變這兩種檔案屬性,可以進一步提高檔案系統的安全級別。一個標記為不可變的檔案不能被修改,甚至不能被根使用者修改。一個標記為只新增的檔案可以被修改,但只能在它的後面新增內容,即使根使用者也只能如此。
如果你關鍵的檔案系統安裝成只讀的,並且檔案被標記為不可變的,入侵者必須重新安裝系統才能刪除這些不可變的檔案,但這會立刻產生報警,這樣就大大減少了被非法入侵的危險。
3.保護log檔案
當與log檔案和log備份一起使用時,不可變和只新增這兩種檔案屬性特別有用。系統管理員應該將活動的log檔案屬性設定為只新增。當log檔案被更新時,新產生的log備份檔案屬性應該設定成不可變的,而新的活動的檔案屬性又變成了只新增。這通常需要在log更新指令碼中新增一些控制命令。
第二步:系統一定要備份
在完成Linux系統的安裝以後應該對整個系統進行備份,以後可以根據這個備份來驗證系統的完整性,這樣就可以發現系統檔案是否被非法竄改過。如果發現系統檔案已經被破壞,也可以使用備份來恢復系統。
1.用CD-ROM備份
當前最好的系統備份介質就是CD-ROM光碟,如果對安全級別的要求特別高,那麼可以將光碟設定為可啟動的,並且將驗證工作作為系統啟動過程的一部分。這樣只要透過光碟啟動,就說明系統尚未被破壞過。
如果你建立了一個只讀的分割槽,那麼可以定期從光碟映像重新裝載它們。即使像/boot、/lib和/sbin這樣不能被安裝成只讀的分割槽,你仍然可以根據光碟映像來檢查它們,甚至可以在啟動時從另一個安全的映像重新下載它們。
2.其它方式的備份
雖然/etc中的許多檔案經常會變化,但/etc中的許多內容仍然可以放到光碟上用於系統完整性驗證。其它不經常進行修改的檔案,可以備份到另一個系統(如磁帶)或壓縮到一個只讀的目錄中。這種辦法可以在使用光碟映像進行驗證的基礎上,再進行額外的系統完整性檢查。
第三步:改進內部安全機制
透過改進Linux作業系統的內部功能,可以防止緩衝區溢位攻擊,這種破壞力極強卻又最難預防的攻擊方式,雖然這樣的改進需要系統管理員具有相當豐富的經驗和技巧,但對於安全級別要求高的Linux系統來講還是很有必要的。
1.Solaris Designer
Solaris Designer為2.0版核心的安全Linux補丁提供了一個不可執行的棧,以減少緩衝區溢位的威脅,從而大大提高了整個系統的安全性。
緩衝區溢位預防起來十分困難,系統管理員必須完全去掉緩衝區溢位存在的條件,才能防止這種方式的攻擊。正因為如此,許多人甚至包括Linux Torvalds本人也認為這個安全Linux補丁十分重要,因為它防止了所有使用緩衝區溢位的攻擊。但是需要引起注意的是,這些補丁也會導致對執行棧的某些程式和庫的依賴問題,這些問題也給系統管理員帶來的新的挑戰。
2.StackGuard
StackGuard是一個十分強大的安全補丁工具。你可以使用經StackGuard修補過的gcc版本來重新編譯和連結關鍵的應用。
StackGuard進行編譯時增加了棧檢查以防止發生棧攻擊緩衝區溢位,雖然這會導致系統的效能略有下降,但對於安全級別要求高的特定應用來講,StackGuard仍然是一個十分管用的工具。
3.增加新的訪問控制功能
Linux的2.3版核心正試圖在檔案系統中實現一個訪問控制列表,這要求在原來的三類(Owner、Group和Other)訪問控制機制的基礎上再增加更詳細的訪問控制。
在2.2和2.3 版的Linux核心中還將開發新的訪問控制功能,它最終將會影響當前有關ext2檔案屬性的一些問題。與傳統的具有ext2檔案系統相比,它提供了一個更加精確的安全控制功能。有了這個新的特性,應用程式將能夠在不具有超級使用者許可權的情況下訪問某些系統資源,如初始套接等。
巧御外敵
方法一:將入侵消滅在“萌芽”
入侵者進行攻擊之前最常做的就是端號掃瞄,如果能夠及時發現和阻止入侵者的這種行為,那麼可以大大減少入侵事件的發生率。
Abacus Port Sentry是開放原始碼的工具包,它能夠監視網路介面,並且與防火牆互動操作來關閉埠掃瞄攻擊。
Abacus Port Sentry能夠檢測到慢掃瞄(Slow Scan),但它不能檢測到結構化攻擊(Structured Attack),這兩種方式的最終目的都是要試圖掩蓋攻擊意圖。正確地使用這個軟體將能夠有效地防止對IMAP服務大量的並行掃瞄,並且阻止所有這樣的入侵者。Abacus Sentry與Linux 2.2核心的IPChains工具一起使用時最有效,它 能夠自動將所有的埠掃瞄行為定向到Port Sentry。
當然更好的辦法就是使用專門的入侵檢測系統,但這樣的產品一般價格較高,普通使用者承受起來有困難。
方法二:登入伺服器“單一化”
將系統的登入伺服器移到一個單獨的機器中會增加系統的安全級別,在大的Linux網路中,最好使用一個單獨的登入伺服器用於Syslog服務。更安全的登入伺服器會大大削弱入侵者透過登入系統竄改日誌檔案的能力。
1.安全Syslog
即使使用單獨的登入伺服器,Linux自身的Syslog工具也是相當不安全的。因此,有人開發了所謂的安全log伺服器,將密碼簽名整合到日誌中,這會確保入侵者即使在竄改系統日誌以後也無法做到不被發現。現在最常用於取代Syslog的安全log伺服器稱為“安全Syslog”,使用者可以從Core SDI站點處下載這個工具。這個守護程式實現一個稱為PEQ-1的密碼協議來實現對系統日誌的遠端審計。即使在入侵者獲得系統超級使用者許可權的情況下也仍然可以進行審計,因為協議保證了以前以及入侵過程中的log資訊沒有審計者的通知無法被修改。
2.第二代Syslog
另一個取代Syslog的工具是Syslogs-ng(下一代的Syslog)。它提供了密碼簽名來檢測對日誌檔案的竄改。密碼安全登入伺服器和遠端審計功能可以使入侵者極難進行日誌竄改並且很容易被檢測到。使用者可以從處下載這個工具。
方法三:單一登入系統更安全
維護分散的大網路環境中的多個使用者賬號對於系統管理員來講是一件非常頭疼的事情。現在有一些單一的登入(Sign On)系統不僅可以減輕管理員的負擔,而且同時還提高了安全級別。
1.NIS
網路資訊服務(NIS)是一個很好的單一登入系統,它是在Sun公司的Yellow Page服務的基礎上發展起來的 ,它的基本安全特性不夠健壯。NIS的更新版本NIS+,對原NIS的不足進行了改進,現在已經有了用於Linux的NIS+版本。
2.Kerberos
Kerberos也是一種非常有名的單一登入系統。Kerberos V4存在一些安全漏洞,Ketberos V5對此進行了改進。
方法四:用陷阱和蜜罐誘敵深入
所謂陷阱就是啟用時能夠觸發報警事件的軟體,而蜜罐(honeypot)程式是指設計用來引誘有入侵企圖者觸發專門報警的陷阱程式。
透過設定陷阱和蜜罐程式,一旦出現入侵事件,系統就可以很快發出報警。
在許多大的網路中,一般都設計有專門的陷井程式。陷阱程式一般分為兩種:一種是隻發現入侵者而不對其採取報復行動,另一種是同時採取報復行動。
設定蜜罐的一種常用方法是故意聲稱Linux系統使用了具有許多脆弱性的IMAP伺服器版本。當入侵者對這些IMAP伺服器進行大容量埠掃瞄,就會落入陷阱並且激發系統報警。
另一個蜜罐陷阱的例子就是很有名的phf,它是一個非常脆弱的Webcgi-bin指令碼。最初的phf是設計來查詢電話號碼的,但它有一個嚴重的安全漏洞:允許入侵者使用它來獲得系統口令檔案或執行其它惡意操作。系統管理員可以設定一個假的phf指令碼,但是它不是將系統的口令檔案傳送給入侵者,而是向入侵者返回一些假資訊並且同時向系統管理員發出報警。
另外一類蜜罐陷阱程式可以透過在防火牆中將入侵者的IP地址設定為黑名單來立即拒絕入侵者繼續進行訪問。拒絕不友好的訪問既可以是短期的,也可以是長期的。Linux核心中的防火牆程式碼非常適合於這樣做。
苦修內功
第一步:安裝檔案系統要分割槽
在Linux系統中,如果分別為不同的應用安裝單獨的主分割槽,再將關鍵的分割槽設定為只讀,將大大提高檔案系統的安全性。
1.檔案分割槽
Linux的檔案系統可以分成幾個主要的分割槽,一般情況下至少要建立/、/usr/local、/var和/home等幾個分割槽。其中/usr可以安裝成只讀並且可以被認為是不可修改的,如果/usr中有任何檔案發生了改變,那麼系統將立即發出安全報警。/lib、/boot和/sbin的安裝和設定也一樣。在安裝時應該儘量將它們設定為只讀,這樣 對它們的檔案、目錄和屬性進行的任何修改都會導致系統報警。
當然將所有主要的分割槽都設定為只讀是不可能的,有的分割槽如/var,其自身的性質就決定了不能將它設定為只讀,但應該不允許它具有執行許可權。
2.擴充套件ext2
使用ext2檔案系統上的只新增和不可變這兩種檔案屬性,可以進一步提高檔案系統的安全級別。一個標記為不可變的檔案不能被修改,甚至不能被根使用者修改。一個標記為只新增的檔案可以被修改,但只能在它的後面新增內容,即使根使用者也只能如此。
如果你關鍵的檔案系統安裝成只讀的,並且檔案被標記為不可變的,入侵者必須重新安裝系統才能刪除這些不可變的檔案,但這會立刻產生報警,這樣就大大減少了被非法入侵的危險。
3.保護log檔案
當與log檔案和log備份一起使用時,不可變和只新增這兩種檔案屬性特別有用。系統管理員應該將活動的log檔案屬性設定為只新增。當log檔案被更新時,新產生的log備份檔案屬性應該設定成不可變的,而新的活動的檔案屬性又變成了只新增。這通常需要在log更新指令碼中新增一些控制命令。
第二步:系統一定要備份
在完成Linux系統的安裝以後應該對整個系統進行備份,以後可以根據這個備份來驗證系統的完整性,這樣就可以發現系統檔案是否被非法竄改過。如果發現系統檔案已經被破壞,也可以使用備份來恢復系統。
1.用CD-ROM備份
當前最好的系統備份介質就是CD-ROM光碟,如果對安全級別的要求特別高,那麼可以將光碟設定為可啟動的,並且將驗證工作作為系統啟動過程的一部分。這樣只要透過光碟啟動,就說明系統尚未被破壞過。
如果你建立了一個只讀的分割槽,那麼可以定期從光碟映像重新裝載它們。即使像/boot、/lib和/sbin這樣不能被安裝成只讀的分割槽,你仍然可以根據光碟映像來檢查它們,甚至可以在啟動時從另一個安全的映像重新下載它們。
2.其它方式的備份
雖然/etc中的許多檔案經常會變化,但/etc中的許多內容仍然可以放到光碟上用於系統完整性驗證。其它不經常進行修改的檔案,可以備份到另一個系統(如磁帶)或壓縮到一個只讀的目錄中。這種辦法可以在使用光碟映像進行驗證的基礎上,再進行額外的系統完整性檢查。
第三步:改進內部安全機制
透過改進Linux作業系統的內部功能,可以防止緩衝區溢位攻擊,這種破壞力極強卻又最難預防的攻擊方式,雖然這樣的改進需要系統管理員具有相當豐富的經驗和技巧,但對於安全級別要求高的Linux系統來講還是很有必要的。
1.Solaris Designer
Solaris Designer為2.0版核心的安全Linux補丁提供了一個不可執行的棧,以減少緩衝區溢位的威脅,從而大大提高了整個系統的安全性。
緩衝區溢位預防起來十分困難,系統管理員必須完全去掉緩衝區溢位存在的條件,才能防止這種方式的攻擊。正因為如此,許多人甚至包括Linux Torvalds本人也認為這個安全Linux補丁十分重要,因為它防止了所有使用緩衝區溢位的攻擊。但是需要引起注意的是,這些補丁也會導致對執行棧的某些程式和庫的依賴問題,這些問題也給系統管理員帶來的新的挑戰。
2.StackGuard
StackGuard是一個十分強大的安全補丁工具。你可以使用經StackGuard修補過的gcc版本來重新編譯和連結關鍵的應用。
StackGuard進行編譯時增加了棧檢查以防止發生棧攻擊緩衝區溢位,雖然這會導致系統的效能略有下降,但對於安全級別要求高的特定應用來講,StackGuard仍然是一個十分管用的工具。
3.增加新的訪問控制功能
Linux的2.3版核心正試圖在檔案系統中實現一個訪問控制列表,這要求在原來的三類(Owner、Group和Other)訪問控制機制的基礎上再增加更詳細的訪問控制。
在2.2和2.3 版的Linux核心中還將開發新的訪問控制功能,它最終將會影響當前有關ext2檔案屬性的一些問題。與傳統的具有ext2檔案系統相比,它提供了一個更加精確的安全控制功能。有了這個新的特性,應用程式將能夠在不具有超級使用者許可權的情況下訪問某些系統資源,如初始套接等。
巧御外敵
方法一:將入侵消滅在“萌芽”
入侵者進行攻擊之前最常做的就是端號掃瞄,如果能夠及時發現和阻止入侵者的這種行為,那麼可以大大減少入侵事件的發生率。
Abacus Port Sentry是開放原始碼的工具包,它能夠監視網路介面,並且與防火牆互動操作來關閉埠掃瞄攻擊。
Abacus Port Sentry能夠檢測到慢掃瞄(Slow Scan),但它不能檢測到結構化攻擊(Structured Attack),這兩種方式的最終目的都是要試圖掩蓋攻擊意圖。正確地使用這個軟體將能夠有效地防止對IMAP服務大量的並行掃瞄,並且阻止所有這樣的入侵者。Abacus Sentry與Linux 2.2核心的IPChains工具一起使用時最有效,它 能夠自動將所有的埠掃瞄行為定向到Port Sentry。
當然更好的辦法就是使用專門的入侵檢測系統,但這樣的產品一般價格較高,普通使用者承受起來有困難。
方法二:登入伺服器“單一化”
將系統的登入伺服器移到一個單獨的機器中會增加系統的安全級別,在大的Linux網路中,最好使用一個單獨的登入伺服器用於Syslog服務。更安全的登入伺服器會大大削弱入侵者透過登入系統竄改日誌檔案的能力。
1.安全Syslog
即使使用單獨的登入伺服器,Linux自身的Syslog工具也是相當不安全的。因此,有人開發了所謂的安全log伺服器,將密碼簽名整合到日誌中,這會確保入侵者即使在竄改系統日誌以後也無法做到不被發現。現在最常用於取代Syslog的安全log伺服器稱為“安全Syslog”,使用者可以從Core SDI站點處下載這個工具。這個守護程式實現一個稱為PEQ-1的密碼協議來實現對系統日誌的遠端審計。即使在入侵者獲得系統超級使用者許可權的情況下也仍然可以進行審計,因為協議保證了以前以及入侵過程中的log資訊沒有審計者的通知無法被修改。
2.第二代Syslog
另一個取代Syslog的工具是Syslogs-ng(下一代的Syslog)。它提供了密碼簽名來檢測對日誌檔案的竄改。密碼安全登入伺服器和遠端審計功能可以使入侵者極難進行日誌竄改並且很容易被檢測到。使用者可以從處下載這個工具。
方法三:單一登入系統更安全
維護分散的大網路環境中的多個使用者賬號對於系統管理員來講是一件非常頭疼的事情。現在有一些單一的登入(Sign On)系統不僅可以減輕管理員的負擔,而且同時還提高了安全級別。
1.NIS
網路資訊服務(NIS)是一個很好的單一登入系統,它是在Sun公司的Yellow Page服務的基礎上發展起來的 ,它的基本安全特性不夠健壯。NIS的更新版本NIS+,對原NIS的不足進行了改進,現在已經有了用於Linux的NIS+版本。
2.Kerberos
Kerberos也是一種非常有名的單一登入系統。Kerberos V4存在一些安全漏洞,Ketberos V5對此進行了改進。
方法四:用陷阱和蜜罐誘敵深入
所謂陷阱就是啟用時能夠觸發報警事件的軟體,而蜜罐(honeypot)程式是指設計用來引誘有入侵企圖者觸發專門報警的陷阱程式。
透過設定陷阱和蜜罐程式,一旦出現入侵事件,系統就可以很快發出報警。
在許多大的網路中,一般都設計有專門的陷井程式。陷阱程式一般分為兩種:一種是隻發現入侵者而不對其採取報復行動,另一種是同時採取報復行動。
設定蜜罐的一種常用方法是故意聲稱Linux系統使用了具有許多脆弱性的IMAP伺服器版本。當入侵者對這些IMAP伺服器進行大容量埠掃瞄,就會落入陷阱並且激發系統報警。
另一個蜜罐陷阱的例子就是很有名的phf,它是一個非常脆弱的Webcgi-bin指令碼。最初的phf是設計來查詢電話號碼的,但它有一個嚴重的安全漏洞:允許入侵者使用它來獲得系統口令檔案或執行其它惡意操作。系統管理員可以設定一個假的phf指令碼,但是它不是將系統的口令檔案傳送給入侵者,而是向入侵者返回一些假資訊並且同時向系統管理員發出報警。
另外一類蜜罐陷阱程式可以透過在防火牆中將入侵者的IP地址設定為黑名單來立即拒絕入侵者繼續進行訪問。拒絕不友好的訪問既可以是短期的,也可以是長期的。Linux核心中的防火牆程式碼非常適合於這樣做。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10617731/viewspace-947183/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 淺談撞庫防禦策略
- 亨登談判策略(轉載)
- 微軟∶Linux 是 Windows 的頭號敵人 (轉)微軟LinuxWindows
- 細說DDoS攻擊的趨勢與防禦策略(轉)
- 國科雲:淺談DNS快取投毒常見型別和防禦策略DNS快取型別
- 轉 Linux 備份策略Linux
- CC防禦的四大策略
- 前端的安全問題與防禦策略前端
- 談Linux分割槽(轉)Linux
- Torvalds給Linux核心打補丁抵禦病毒(轉)Linux
- 談ERP實施中的幾個策略(轉)
- 淺談DDos攻擊與防禦
- 談談API版本控制的策略API
- 【雜談】策略模式模式
- 【虹科分享】一種動態防禦策略——移動目標防禦(MTD)
- 生成樹欺騙攻擊與防禦策略
- 談談Live-cd版Linux的使用(轉)Linux
- 談談財務資料管理策略
- 淺談如何提高防禦DDOS的效果
- 淺談策略模式(strategy)模式
- 敵人——建立敵人Rioter
- 談談系統密碼儲存策略密碼
- 淺談 JavaScript DDoS 攻擊原理與防禦JavaScript
- 淺談JavaScript DDoS攻擊原理與防禦JavaScript
- 淺談JS DDoS攻擊原理與防禦JS
- 淺談DDOS攻擊攻擊與防禦
- wse說談(2)——策略,匿名使用者策略
- 淺談線上廣告分配策略
- 也談談同源策略和跨域問題跨域
- 與幕府為敵,策略卡牌遊戲《將軍 對決》現已在Steam推出序章遊戲
- Akamai淺談網路攻擊的防禦AI
- 防禦攻擊策略之保持領先黑客一步黑客
- Linux從初期化檔案談Linux的Shell(轉)Linux
- 淺談Linux的檔案系統(轉)Linux
- 談linux磁碟結構及分割槽(轉)Linux
- Linux網路安全之經驗談(轉)Linux
- 作業系統市場Unix腹背受敵(轉)作業系統
- Linux與Windows聯手逼宮 UNIX腹背受敵LinuxWindows