歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux綜合 >> Linux資訊 >> Linux業界

用戶行為監控:bash history logging攻防

  Bash堪稱Unix世界使用最廣泛的shell,其特性之一是歷史命令(history)機制。此機制主要用於為用戶提供方便--少敲幾下鍵盤,提高工作效率。然而,被廣泛討論的是bash_history可以用作logging機制以此來監控用戶的活動。此文將對上述問題進行討論並解釋為啥 logging機制在少數人面前會失效。我們將見到各種用於保護history文件的防御措施是如何不費吹灰之力或稍微費點力就被突破的。隨著討論的跟進,突破的限制也將變得更嚴,但這並不代表突破起來就更困難,與之相反大部分方法都是可以不費腦子的。最後,我們將修改bash的源碼來實現”無敵”logging機制,也將看到”無敵”並不是真正的無敵。

  加固bash_history

  假設你所管理的系統提供shell登錄功能,你的用戶當中有個別及其討人厭的家伙,於是你想監控他的活動,因為你非常懷疑他半夜三更使用你所負責保護的CPU和系統資源作惡意行為(或是其他的,例如下點小孩不宜的東西等)。我們暫且叫他二哥(此處原文為Bob,Bob一名在國外經常用來指代壞蛋)。

  因為所有用戶都是使用bash作為默認shell,你開始著手修改bash的配置文件:

  第1步:使bash歷史記錄文件和相關文件無法被刪除或修改。

  二哥所做的第一件事應該是建立history到/dev/null的鏈接。

  bob$ rm ~/.bash_history

  bob$ ln -s /dev/null ~/.bash_history

  這可以通過修改歷史記錄文件為只能被追加來進行阻止,執行以下命令來改變其屬性:

  # chattr +a /home/bob/.bash_history

  這是使用文件系統附加屬性來指定文件只能被追加,大多數文件系統支持此功能(例如ext2/3,XFS,JFS)。在FreeBSD上可以執行:

  # sappnd /home/bob/.bash_history

  你還應修改shell啟動相關的其他文件的這個屬性:

  # chattr +a /home/bob/.bash_profile

  # chattr +a /home/bob/.bash_login

  # chattr +a /home/bob/.profile

  # chattr +a /home/bob/.bash_logout

  # chattr +a /home/bob/.bashrc

  前三個文件在交互式bash shell(或非交互式sehll使用–login選項)調用時被讀取(在讀完全局配置文件/etc/profile後)。.bashrc文件只在當 non-login交互式shell調用時被讀取。這意味著當二哥已登進系統後,用以下方法自己調用一個新shell時:

  bob$ bash

  此時只有.bashrc文件被讀取,而上面所列的前三個配置文件不會再次被讀取了。

  做了以上屬性的修改後再來做更進一步的”加固”,一個所謂的保護措施。

Copyright © Linux教程網 All Rights Reserved