Linux 入侵檢測分析技術__Linux

來源:互聯網
上載者:User

1. 概述

最好的安全防護當然是“禦敵於國門之外”, 通過安全防護技術,來保證當前主機不被非授權人員入侵,但是“道高一尺,魔高一丈”, 再好的防護手段、往往也會有疏漏的地方。在這種情況下,事後(入侵後)的追溯技術就很重要了。好比一個竊賊到我們家溜達一圈,我竟然無法知道是否竊賊來過,細思這是一件非常恐怖的事情。這就意味著,我們的家(主機)不在安全,鬼知道竊賊什麼時候再來溜達一圈。

入侵分析技術一般通過是通過分析主機關鍵的檔案記錄、進程資訊等來達到分析主機是否被侵入的目的。從安全防護的角度來講,這是一項事後追蹤技術(可追溯性);從攻擊的角度來說, 當Hack成功實施攻擊(入侵)後,要進行掩蹤滅跡,也就是清除入侵痕迹,當知道入侵分析哪些地方後,那麼作為入侵者也就明白需要重點關注哪些入侵痕迹了。

所謂“未知攻,焉知防”, 同樣也可以說“未知防,焉知攻”, 攻防之道,本就是在攻防博弈中相互提高。 2. 環境

本次介紹的入侵分析技術基於環境如下:

l 發行版:

Panda.Guo@2018-04-18 10:42:55 $ lsb_release -a

No LSB modules are available.

Distributor ID: Debian

Description:    Debian GNU/Linux 9.4 (stretch)

Release:    9.4

Codename:   stretch

 

l 核心

Panda.Guo@2018-04-18 10:59:33 $ uname -a

Linux PandaGuo 4.9.0-6-amd64 #1 SMP Debian 4.9.82-1+deb9u3 (2018-03-02) x86_64 GNU/Linux

  3. Debian 9 入侵分析 3.1 使用者帳號

從攻擊的角度來講,Hacker實施攻擊後,除了會“掩蹤滅跡”之外還會進行“建立後門”,以便將這種攻擊的機會持續下去,而建立後門使用者帳號,往往是比較可行的途徑。

1. 搜尋具備shell使用者的帳號, /etc/passwd

Panda.Guo@2018-04-18 11:34:31 $ cat /etc/passwd|awk -F: '{print $7}'| sort |uniq -c

  3 /bin/bash

  21 /bin/false

  1 /bin/sync

  17 /usr/sbin/nologin

Panda.Guo@2018-04-18 11:45:31 $ cat /etc/passwd | grep "bash"

  root:x:0:0:root:/root:/bin/bash

  panda:x:1000:1000:panda,,,:/home/panda:/bin/bash

  itcast:x:2001:2001::/home/itcast:/bin/bash

Panda.Guo@2018-04-18 11:45:40 $

對其中有shell的使用者需要重點關注,本文假設itcast使用者為“需重點關照”使用者

2.進一步分析使用者itcast

3.查看使用者id和組資訊:

Panda.Guo@2018-04-18 11:45:40 $ id itcast

  uid=2001(itcast) gid=2001(itcast) group=2001(itcast)

l 查看使用者最近登入資訊

Panda.Guo@2018-04-18 11:51:33 $ lastlog -u itcast

Username         Port     From             Latest

itcast           pts/10   127.0.0.1        Thu Apr 12 19:03:20 +0800 2018

l 查看使用者曆史登入資訊: last hacker

Panda.Guo@2018-04-18 11:51:35 $ last itcast

itcast   pts/10       127.0.0.1        Thu Apr 12 19:03 - 10:16  (15:12)

itcast   pts/6        172.16.28.59     Thu Apr 12 16:03 - 16:03  (00:00)

itcast   pts/6        172.16.28.59     Thu Apr 12 16:02 - 16:03  (00:00)

 

wtmp begins Sun Apr  1 23:41:17 2018

 

l 查看使用者登入失敗資訊:

Panda.Guo@2018-04-18 11:52:45 $ sudo lastb itcast

itcast   ssh:notty    127.0.0.1        Thu Apr 12 19:03 - 19:03  (00:00)

itcast   ssh:notty    172.16.28.59     Thu Apr 12 16:03 - 16:03  (00:00)

 

btmp begins Tue Apr  3 09:20:30 2018

Panda.Guo@2018-04-18 11:52:49 $

 

l 查看綜合資訊: finger hacker

Panda.Guo@2018-04-18 11:53:20 $ finger itcast

Login: itcast                   Name:

Directory: /home/itcast                 Shell: /bin/bash

Last login Thu Apr 12 19:03 (CST) on pts/10 from 127.0.0.1

No mail.

No Plan.

如果itcast使用者登入有異常的IP登入, 則需重點關注 3.2 可提權使用者(sudo

Debian系統允許普通使用者通過sudo來擷取root使用者權限, 因此對於已經存在的普通使用者,如果其在/etc/sudoers或者/etc/sudoers.d/下的檔案中, 則表示此普通使用者可以通過sudo來完成root操作, 需要特別關注。

另可以通過命令groups itcast(其中itcast指代需要關注的使用者username), 如果該使用者所屬的組是root或者 sudo組,或者該使用者在/etc/sudoers(包括/etc/sudoer.d/目錄), 那就需要重點關注了。 3.3 開機自啟服務

不同的Linux發行版,採用的服務管理員是不同的, Debian 8以上已經採用Systemd作為伺服器管理員,其實目前較新的發行版系統上多在採用systemd。本次我們以Systemd為例來分析開機自起的一些程式。

對於systemd服務管理員來說,可以通過下述方式查看開機自啟的服務:

Panda.Guo@2018-04-18 15:25:23 $ systemctl list-unit-files --type=service | grep "enabled"

  accounts-daemon.service                    enabled

  anacron.service                            enabled

  auditd.service                             enabled

  autovt@.service                            enabled

  。。。

 

入侵後,留下一些開機自起的服務,以便後續繼續入侵。也是入侵保持持久性的一種手段。 3.4 計劃(定時)任務

除了開機自啟動服務外, Debian還可以通過計劃任務來進行持久化運行。

檢查異常的計劃任務相對簡單:

只需要查看/etc/crontab以及子目錄下/etc/cron.*的計劃任務檔案即可. 3.5 shell的初始化

不同的Linux發行版的預設shell是不一致的, 一般debian系統預設是dash, 而我自己偏愛bash, 一般系統安裝完成後,我會調整我的shell為bash, 本節以bash為例進行描述。

對於shell來說,可分為互動shell/非互動shell、 登入shell和非登入shell。本質上就是在shell啟動期間,預設執行的設定檔不同而已。 關於這塊的詳細區別,可參考man bash 中的INVOCATION章節。或者參考下圖:  

簡單分析如下:

l 非互動/非登入shell: $BASh_ENV(環境變數)

l 非互動/登入shell:/etc/profile ($HOME/.bash_profile、$HOME/.bash_login、$HOME/.profile按次序先存在的執行)

l 互動/非登入shell: /etc/bash_bashrc、$HOME/.bashrc

l 互動/登入shell:/etc/profile ($HOME/.bash_profile、$HOME/.bash_login、$HOME/.profile按次序先存在的執行)

上面描述的比較複雜。簡單說,就是bash在啟動時,要執行幾個指令檔。 這些檔案中如果有命令,在某種情況下(登入非登入、互動非互動)可能會被執行。 入侵分析的重點就是查看這些檔案中是否存在可疑命令。


3.6 曆史命令

一般而言, 入侵者擷取shell之後會在上面執行某些命令, 我們可以通過history命令來查看曾經運行過的命令.或者直接查看~/.bash_history檔案. 高明的入侵者完成入侵後,也會進行某些掩蹤滅跡。 因此, 如果發現曾經運行過的命令中有一些可疑命令(莫名奇妙的命令),或者發現history被惡意清除,或者被異常篡改, 這也是我們常用的入侵分析技術。

和history命令相關有幾個環境變數,需要我們特別關注,詳情可通過man bash 查看

l HISTFILE: 儲存曆史命令的檔案, 預設是 ~/.bash_history

l HISTFILESIZE: 曆史檔案中包含的最大行數。

l HISTSIZE: 命令曆史中儲存的命令數量行數。

l HISTTIMEFORMAT: 儲存曆史命令的時間格式。 3.7 系統日誌

在debian9上,系統日誌統一由rsyslog進程產生, 和rsyslog相關的配置可參考/etc/rsyslog.conf檔案以及/etc/rsyslog.d/目錄。

l 登入相關資訊

 查看每個使用者最近的登入時間和ip: lastlog

 查看每個使用者的登入記錄: last

 查看每個使用者的登入嘗試(包括失敗的)記錄: lastb

 查看當前登入的使用者,ip以及正在執行的命令: w

l 一些常見的系統日誌介紹如下:

 /var/log/messages: 一般的系統日誌

 /var/log/kern.log: 系統核心日誌

 /var/log/boot.log: 系統開機記錄

 /var/log/auth.log: 登入相關的日誌, 比如ssh/sudo成功失敗的日誌都在這裡

 /var/log/cron.d: cron計劃任務的執行日誌

l 審計, 審計日誌由auditd產生,/etc/audit/auditd.conf為審計設定檔,/etc/audit/audit.rules 為審計規則檔案。

 /var/log/audit/* : 為審計記錄,可以進一步分析,也許可以發現一些意想不到的痕迹(如果有的話). 3.8 可疑進程

一般可通過top命令查看正在啟動並執行程式所佔用的資源, 或者用ps aux列出當前系統所用的進程. 如果發現可疑進程(沒見過、耗資源), 可以用以下命令進一步:

l 查看該進程啟動的完整命令列: ps eho command -p $PID

l 查看該進程啟動時候所在的目錄: readlink /proc/$PID/cwd

l 查看該進程啟動時的完整環境變數: strings -f /proc/$PID/environ | cut -f2 -d ‘ ‘

l 列出該進程所開啟的所有檔案: lsof -p $PID

如果某個可疑進程正在活動,一般會與外界有網路互動,可通過如下方法進一步分析:

l 查看當前主機的網路連接情況, netstat -apn | grep $PID

l 抓包分析,tcpdump 或者 使用圖形化抓包工具wireshark

l 查看主機防火牆iptables, DNS(/etc/resolv.conf和/etc/resolvconf/)、http代理,或者/etc/hosts, 都可能會導致我們正常的網路請求被攻擊者監聽並篡改. 這些小小的修改也許不是很明顯,可一旦發現自身網路環境’不太對勁’, 就要提高警惕, 仔細排查了. 4. 小結

我們研究入侵分析,從“攻”的角度來說,是為了在“

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.