?? 5.html
字號:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN"><HTML><HEAD> <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=gb2312"> <META NAME="GENERATOR" CONTENT="《良友》v2.1, 作者:安富國,http://winking.126.com"> <TITLE>LIDS</TITLE></HEAD><BODY style="font-family: 宋體; font-size: 9pt"> <CENTER><TABLE CELLSPACING=10 CELLPADDING=10 WIDTH="60%" BGCOLOR="#FFB693" ><TR><TD ALIGN=CENTER><FONT SIZE=+2><!--標題由此開始-->LIDS</TD></TR></TABLE></CENTER><p><h3>目 錄</h3><!--目錄由此開始--><A NAME="Content" ID="Content"></A><OL><LI><A HREF="#I707">LIDS</A></LI><OL><LI><A HREF="#I712">快速入門</A></LI><OL><LI><A HREF="#I708">特性</A></LI><LI><A HREF="#I709">安裝</A></LI><LI><A HREF="#I710">配置</A></LI><LI><A HREF="#I711">實例</A></LI></OL><LI><A HREF="#I722">使用手冊</A></LI><OL><LI><A HREF="#I723">介紹</A></LI><LI><A HREF="#I724">安裝</A></LI><LI><A HREF="#I725">配置</A></LI><LI><A HREF="#I726">測試</A></LI><OL><LI><A HREF="#I728">功能測試</A></LI><LI><A HREF="#I729">漏洞測試</A></LI></OL><LI><A HREF="#I727">附錄</A></LI></OL><LI><A HREF="#I713">原理分析</A></LI><OL><LI><A HREF="#I714">保護文件</A></LI><LI><A HREF="#I715">保護設備</A></LI><LI><A HREF="#I716">保護重要進程</A></LI><LI><A HREF="#I717">密封內核</A></LI><LI><A HREF="#I718">Capability</A></LI><LI><A HREF="#I719">LIDS在內核中的安全級別</A></LI><LI><A HREF="#I720">網絡安全</A></LI><LI><A HREF="#I721">入侵響應系統</A></LI></OL></OL></OL><hr><br><A NAME="I707" ID="I707"></A><center><b><font size=+2>LIDS</font></b></center><br> LIDS( Linux入侵偵察系統)是Linux內核補丁和系統管理員工具(lidsadm),它加強了Linus內核。 它在內核中實現了一種安全模式 -- 參考模式以及內核中的Mandatory Access Control(命令進入控制)模式。本文將闡述LIDS的功能和如何使用它來建立一個安全的Linux系統。<center><A HREF="#Content">[目錄]</A></center><hr><br><A NAME="I712" ID="I712"></A><center><b><font size=+2>快速入門</font></b></center><br><center><A HREF="#Content">[目錄]</A></center><hr><br><A NAME="I708" ID="I708"></A><center><b><font size=+2>特性</font></b></center><br>1. 為什么選擇LIDS<p> 隨著互連網上Linux越來越受歡迎 ,越來越多現有GNU/LINUX系統上的應用軟件中的安全<br>漏洞被發現。很多程序利用了程序員的粗心,例如緩存溢出、格式化代碼攻擊。當系統安全<br>受到程序的危及,黑客獲得ROOT權限以后,整個系統將被入侵者控制。<p> 由于代碼的開放性,我們可以獲得很多所希望Linux應用程序的原代碼,并且根據我們的<br>需要來修改。所以bug能很容易地被找到,并很快修補。但是當漏洞被揭示后,而系統管理員<br>疏于給漏洞打補丁,從而造成很容易地就被入侵,更糟的是黑客能獲得ROOT SHELL。利用現<br>有的GNU/Linux系統,他為所欲為。這正是LIDS想要解決的問題。<p> 首先看看現有的GNU/Linux系統存在哪些問題。<p> 文件系統未受到保護<p> 系統中的很多重要的文件,例如 /bin/login,一旦黑客入侵后,他可以上傳修改過的l<br>ogin文件來代替/bin/login ,然后他就可以不需要任何登陸名和密碼就登陸系統。這常被稱<br>為Trojan house。<p> 進程未受到保護<p> 系統上運行的進程是為某些系統功能所服務的,例如HTTPD是一個web服務器來滿足遠程<br>客戶端對于web的需求。作為web服務器系統,保護其進程不被非法終止是很重要的。但是當<br>入侵者獲得了ROOT權限后,我們卻無能為力。<p> 系統管理未受保護<p> 很多系統管理,例如,模塊的裝載/卸載,路由的設置,防火墻的規則,能很容易就被修<br>改,如果用戶的ID是0。所以當入侵者獲得ROOT權限后,就變得很不安全。<p> 超級用戶(root)作為ROOT可能濫用權限<p> 他可以為所欲為。作為ROOT他甚至可以對現有的權限進行修改。<p> 綜上所述,我們發現在現有的Linux系統中的進入控制模式是不足以建立一個安全的Linu<br>x系統。我們必須在系統中添加新的模式來解決這些問題。這就是LIDS所要做的。<p>2. LIDS的特色<p> Linux入侵偵察系統是Linux內核補丁和系統管理員工具,它加強了內核的安全性。它在<br>內核中實現了參考監聽模式以及Mandatory Access Control(命令進入控制)模式。當它起<br>作用后,選擇文件進入,每一個系統/網絡的管理操作,任何使用權限, raw device, mem<br> 和 I/O 進入將可以禁止甚至對于ROOT也一樣。它使用和擴展了系統的功能,在整個系統上<br>綁定控制設置,在內核中添加網絡和文件系統的安全特性,從而加強了安全性。你可以在線<br>調整安全保護,隱藏敏感進程,通過網絡接受安全警告等等。<p> 簡而言之,LIDS提供了保護、偵察、響應的功能,從而是LINUX系統內核中的安全模式得<br>以實現。<p> 2.1 保護<p> LIDS提供以下的保護 :<p>保護硬盤上任何類型的重要文件和目錄,任何人包括ROOT都無法改變。<br>能保護重要進程不被終止<br>能防止非法程序的RAW IO 操作。保護硬盤,包括MBR保護,等等。<br>能保護系統中的敏感文件,防止未被授權者(包括ROOT)和未被授權的程序進入。<br> 2.2 偵察<p> 當有人掃描你的主機, LIDS能偵察到并報告系統管理員。 LIDS也可以檢測到系統上任<br>何違法規則的進程。<p> 2.3 響應<p> 當有人違反規則, LIDS會將非法的運作細節記錄到受LIDS保護的系統log文件中。 LID<br>S還可以將log信息傳到你的信箱中。LIDS也可以馬上關閉與用戶的對話。<center><A HREF="#Content">[目錄]</A></center><hr><br><A NAME="I709" ID="I709"></A><center><b><font size=+2>安裝</font></b></center><br>1 下載LIDS補丁和相關正式的Linux內核<p> 可以從LIDS Home,LIDS Ftp Home或最近的LIDS Mirror獲得LIDS補丁和系統管理工具。<p><br> 補丁名稱是lids-x.xx-y.y.y.tar.gz, x.xx代表lids的版本, y.y.y代表Linux內核版本.例如, lids-0.9.9-2.2.17.tar.gz代表lids 版本是0.9.9 以及相關的內核版本是2.2.17.。<p> 必須下載相關的內核版本。例如,你下載了lids-0.9.9-2.2.17.tar.gz,那你就應該下載inux內核2.2.17的原代碼。可以從Kernel FTP Site或其他鏡象獲得內核原碼。<p> 然后,將內核原碼和LIDS tar解壓.例如,從 www.lids.org得到lids-0.9.9-.2.17.tar.gz,從ftp.us.kernel.org得到linux-2.2.17.tar.bz2后:<p>-----------------------------------------------------------<p>1. uncompress the Linux kernel source code tree.<br># cd linux_install_path/<br># bzip2 -cd linux-2.2.17.tar.bz2 | tar -xvf -<p>2. uncompress the lids source code and install the lidsadm tool.<br># cd lids_install_path<br># tar -zxvf lids-0.9.8-2.2.17.tar.gz<p>-----------------------------------------------------------<p>2 在正式的linux內核上打LIDS補丁<p> Linux內核原碼打LIDS補丁<p>-----------------------------------------------------------<p># cd linux_install_path/linux<br># patch -p1<p>/* link the default source path to lids patched version<br># rm -rf /usr/src/linux<br># ln -s linux_install_patch/linux /usr/src/linux<p>3 配置Linux內核<p>-----------------------------------------------------------<p>configure the Linux kernel<br># cd linux<br># make menuconfig or make xconfig<p>-----------------------------------------------------------<p> 現在,配置Linux內核,按照以下步驟實施:<p>[*] Prompt for development and/or incomplete code/drivers<br>[*] Sysctl support<p>After that, you will find that a new item appear in the bottom of the configura<br>tion menu name "Linux Intrusion Detection System". Entering this menu, turn the<p><br>[*] Linux Intrusion Detection System support (EXPERIMENTAL) (NEW).<p> 配置LIDS內核以后.退出配置界面,編譯內核。<p># make dep<br># make clean<br># make bzImage<br># make modules<br># make modules_install<p> 3.4 在Linux系統上安裝LIDS和系統管理工具<p> 復制 bzImage 到 /boot/ ,編輯 /etc/lilo.conf<p>-----------------------------------------------------------<p># cp arch/i386/boot/bzImage /boot/bzImage-lids-0.9.9-2.2.17<p>/* build admin tools */<br># cd lids-0.9.8-2.2.17/lidsadm-0.9.8/<br># make<br># make install<p># less /etc/lilo.conf<br>boot=/dev/hda<br>map=/boot/map<br>install=/boot/boot.b<br>prompt<br>timeout=50<br>default=linux<p>image=/boot/vmlinuz-2.2.16-3<br>label=linux<br>read-only<br>root=/dev/hda2<p>image=/boot/bzImage-lids-0.9.9-2.2.17<br>label=dev<br>read-only<br>root=/dev/hda2<p>-----------------------------------------------------------<p> 運行/sbin/lilo 來安裝新內核<p># /sbin/lilo<p>5 配置LIDS系統<p> 在重新啟動以前,必須配置lids系統,使其符合你的安全需要.你可以定義受保護的文件,受保護的進程等等。<p> 缺省情況下,lidsadm將把缺省配置文件安裝到 /etc/lids/。你必須根據自己的需要重新配。首先,可以更新缺省lids.conf的inode/dev值。<p># /sbin/lidsadm -U<p>6 重新啟動系統<p> 配置完Linux系統后,重新啟動.當lilo出現時,選擇裝載the lids enable kernel。然后,你就將進入美妙的LIDS世界。<p>7 封裝內核<p> 系統啟動后,不要忘記用lidsadm封裝內核,在最后/etc/rc.local加入以下命令<p># /sbin/lidsadm -I<p>8 在線管理<p> 封裝完內核后,你的系統就處于LIDS的保護下。可以做一些測試來驗證,如果想改變某些配置,例如修改權限,可以通過輸入密碼方式在線改變lids的安全等級。<p># /sbin/lidsadm -S -- -LIDS<p> 改變lids配置屬性后,例如lids.conf,lids.cap,你可以通過以下命令在內核中重新裝載配置文件<p># /sbin/lidsadm -S -- +RELOAD_CONF<p><center><A HREF="#Content">[目錄]</A></center><hr><br><A NAME="I710" ID="I710"></A><center><b><font size=+2>配置</font></b></center><br>1 LIDS配置目錄 -- “/etc/lids/”<p> 安裝 lidsadm以后,在/etc/lids/下會產生一個 lids配置目錄,當內核啟動時,配置信息將被讀入內核中來初始化 LIDS系統。<p> ·lids.conf 這是用來儲存 LIDS ACLs信息的文件。它包括定義事件進入類型的ACLs.其項目可以用lidsadm來添加或刪除。<br> ·lids.cap 這個文件包括了系統中所有的權限,可以通過編輯它來配置系統中啟動或禁止的權限。在想要啟動的名稱前設置 "+"或設置 "-"來禁止。安裝系統時, lids.cap 以缺省值存在,應該按照自己的需要改變它。<br> ·lids.net 這個文件是用來配置通過網絡傳送警告信件的。可以定義 SMTP服務器、端口、信息題目等等。<br> 這一文件需要在配置內核時選擇:<p> [*] Send security alerts through network (NEW)<p>lids.pw 這是用來儲存由"lidsadm -P"產生的密碼的文件,需要在配置內核時選擇:<br> [*] Allow switching LIDS protections (NEW)<p> 注意: 如果要改變lids保護等級,你必須在重新啟動內核前運行"lidsadm -P"l.<p>2 保護文件和目錄<p> 首先,要決定哪些文件需要受保護。建議你應該保護系統二進制文件和系統配置文件,<br>例如/usr/,/sbin/,/etc/,/var/log/。<p> 其次,要決定保護文件的方式. LIDS提供四種保護類型:<p> DENY access to any body(禁止任何人進入)。<p> 這種方式意味著沒有人能夠看見或修改文件或目錄. 最敏感的文件應該配置為DENY。 例<br>如,可以將 /etc/shadow設置為 DENY access to anybody,<p>-------------------------------------------------------<br>Usage<br>lidsadm -A -o file_to_protected -j DENY<p># lidsadm -A -o /etc/shadow -j DENY<br>After reboot or RELOAD the configurate files. you can see,<br># ls /etc/shadow<br>ls: /etc/shadow: No such file or directory<br>-------------------------------------------------------<p> 然后, 你要設置一些可以進入文件的程序,例如,登陸系統時,/bin/login文件需要從<br>受保護的文件/etc/shadow里讀取密碼 ,但/etc/shadow不允許任何人進入,所以你應該:<p>-------------------------------------------------------<br>Usage<br>lidsadm -A -s SUBJECT_PROGRAM -o OBJECT_PROGRAM -j READ/WRITE/APPEND<br># lidsadm -A -s /bin/login -o /etc/shadow -j READ<br>-------------------------------------------------------<p> 配置生效后,你可以登陸到系統上但無法進入/etc/shadow。這是MAC (mandatory acce<br>ss control命令進入控制)的一個實例。<p>Read Only Files(只讀文件)<p> 這種方式意味著沒有人可以改變文件,建議/etc/passwd,/bin/passwd等類似文件可以<br>采取這種方式。<p>-------------------------------------------------------<br>lidsadm -A -o file_to_protect -j READ<p>example,<p>1. to protect the whole /sbin/ as read-only.<p># /sbin/lidsadm -A -o /sbin/ -j READ<p>2. to protect /etc/passwd as read-only<p># /sbin/lidsadm -A -o /etc/passwd -j READ<br>-------------------------------------------------------<p> Append Only Files(只能添加文件)<p> 大多此類文件是指系統的log文件,例如 /var/log/message ,/var/log/secure。 文件<br>只能添加而不能刪除或修改以前的內容。<p>------------------------------------------------------<br>USAGE:<br>lidsadm -A -o filename_to_protect -j APPEND<p>example,<p>1. to protect the system log files<p># /sbin/lidsadm -A -o /var/log/message -j APPEND<br># /sbin/lidsadm -A -o /var/log/secure -j APPEND<p>2. to protect the apache httpd log files<p># /sbin/lidsadm -A -o /etc/httpd/logs/ -j APPEND<br>-----------------------------------------------------<br>WRITE(可寫)<p> 此類型用于定義可以改寫的文件。<p> Mandatory Access Control in file protection(文件保護中的命令進入控制)<p> 定義哪個項目(程序)可以以哪種方式(READ,APPEND,WRITE)進入哪個目標(文件)。<p> 例如,定義/home/httpd/為DENY to anybody然后讓/usr/sbin/httpd能從目錄中READ。<br> 這樣一來, Web服務器可以正常地作為公用WEB服務器,但在/home/httpd/下的內容和程序<br>是不可見的,也不能被修改。如果入侵者通過httpd的bug獲得了root shell,他即使在root<br> shell下也不能看到文件,即使他可以通過改寫堆棧在httpd服務器中插入危險的代碼,他也<br>只能讀到/home/httpd下的文件,而不能修改。<p>----------------------------------------------------<br># lidsadm -A -o /home/httpd -j DENY<br># lidsadm -A -s /usr/sbin/httpd -o /home/httpd -j READ<br>---------------------------------------------------<br><center><A HREF="#Content">[目錄]</A></center><hr><br><A NAME="I711" ID="I711"></A><center><b><font size=+2>實例</font></b></center><br>
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -