當(dāng)前位置:首頁 >  科技 >  互聯(lián)網(wǎng) >  正文

防患于未來:如何建設(shè)深度防御體系

 2017-01-03 10:20  來源: A5專欄   我來投稿 撤稿糾錯(cuò)

  域名預(yù)訂/競價(jià),好“米”不錯(cuò)過

概述

從Google的BeyondCorp計(jì)劃說起。

Google的這項(xiàng)行動(dòng)計(jì)劃名為BeyondCorp,目的是為了徹底打破內(nèi)外網(wǎng)之別。其基本假設(shè)是——內(nèi)部網(wǎng)絡(luò)實(shí)際上跟互聯(lián)網(wǎng)一樣危險(xiǎn),原因有兩點(diǎn):

1)一旦內(nèi)網(wǎng)邊界被突破,攻擊者就很容易訪問到企業(yè)內(nèi)部應(yīng)用。

2)現(xiàn)在的企業(yè)越來越多采用移動(dòng)和云技術(shù),邊界保護(hù)變得越來越難。所以干脆一視同仁,不外區(qū)分內(nèi)外網(wǎng),用一致的手段去對待。

本文不深入闡述Google的這個(gè)方案是如何做的,從這個(gè)案例只想說明一個(gè)問題,隨著信息安全漏洞層出不窮,而且利用手法也日益精妙,內(nèi)部網(wǎng)絡(luò)也會(huì)面臨極大的風(fēng)險(xiǎn)(除非是完全物理隔離的內(nèi)網(wǎng))。所以需要同時(shí)關(guān)注內(nèi)部網(wǎng)絡(luò)和邊界網(wǎng)絡(luò)的安全。

原理篇

有段時(shí)間經(jīng)??粗醒胍惶椎摹督袢照f法》,其中有一個(gè)案件尋找破案線索的過程令我印象非常深刻。當(dāng)時(shí)大概的案情是在一段沒有監(jiān)控的路上,有個(gè)女的被綁架了,這個(gè)時(shí)候?qū)ふ医壖茏靼傅能囕v就非常重要。由于事發(fā)路段沒有監(jiān)控,尋找作案車輛就陷入了困難,后面公安干警想出了一個(gè)非常簡單的辦法找到了作案的車輛。在綁架的現(xiàn)場是沒有監(jiān)控的,但在路的兩頭是有監(jiān)控的,干警用給每輛車計(jì)時(shí)的方法來查找作案的車輛。如果要作案,必須要有作案的時(shí)間,也就是說這輛車的通過時(shí)間要比其他車輛時(shí)間要長。這就是最簡單的邏輯推理破案。

同理,網(wǎng)絡(luò)安全事件的發(fā)生也會(huì)有類似的邏輯,很多時(shí)候通過直接的手段很難發(fā)現(xiàn)入侵行為,但如果用推理的方式,入侵一定會(huì)存在某些不同尋常的行為。就像剛才的案件,沒有直接監(jiān)控發(fā)現(xiàn),但車輛通過的時(shí)間會(huì)比其他時(shí)間長。如果我們擁有多樣化的縱深防御能力,對進(jìn)攻行為體系化防御,就帶來了更多的防御點(diǎn)和監(jiān)測點(diǎn),樣就可以極大的降低安全的風(fēng)險(xiǎn)。

防御具有排兵布陣的的先發(fā)優(yōu)勢,在精心策劃下,可以通過深度防御防止單點(diǎn)突破造成的入侵。我們以主機(jī)入侵為例來說明深度防御的架構(gòu)。對于主機(jī)來說,主要有幾個(gè)層面的內(nèi)容,網(wǎng)絡(luò),進(jìn)程,文件,操作命令,文件操作,系統(tǒng)事件大概幾個(gè)方面。通過這幾個(gè)方面的綜合分析,就可以發(fā)現(xiàn)絕大多數(shù)的入侵行為。

無標(biāo)題

我們從一些假設(shè)的攻擊開始分析,大多數(shù)的攻擊都是從弱點(diǎn)開始,包括一些漏洞、弱口令、0day等等,由其是0day,大多數(shù)基于規(guī)則的安全防護(hù)都是失效的。攻擊的第一步是踩點(diǎn),踩點(diǎn)的行為有多種多樣,最常用的是掃描,包括主機(jī)掃描,端口掃描,漏洞掃描等,掃描的發(fā)現(xiàn)可以從兩個(gè)方面來發(fā)現(xiàn),一是從網(wǎng)絡(luò)上發(fā)現(xiàn)流量的異常行為,比如端口掃描就會(huì)發(fā)現(xiàn)一臺主機(jī)在短時(shí)間內(nèi)容會(huì)有大量的不同端口請求。一是從主機(jī)上可以發(fā)現(xiàn),比如密碼猜測掃描就會(huì)發(fā)現(xiàn)大量的登錄失敗的日志等。

當(dāng)發(fā)現(xiàn)主機(jī)有漏洞的時(shí)候,下一步要做的事情是漏洞利用,漏洞的利用過程有時(shí)候很難被感知,比如緩沖區(qū)溢出等,但利用后的結(jié)果還是從系統(tǒng)中可以發(fā)現(xiàn)。比如如果有弱口令就會(huì)發(fā)現(xiàn)有異常登錄行為,包括時(shí)間異常,登錄源IP異常等等。比如文件的上傳行為,用戶操作行為,大多數(shù)黑客攻擊成功后會(huì)到服務(wù)器上上傳一些木馬等文件,會(huì)做一些操作行為,比如創(chuàng)建一些隱蔽賬號等。

當(dāng)一臺主機(jī)被黑客控制后,往往這臺機(jī)器機(jī)會(huì)淪為黑客的肉雞,這個(gè)時(shí)候也會(huì)產(chǎn)生一些異常的行為,比如在網(wǎng)絡(luò)上,會(huì)有非法外聯(lián),不管是木馬主動(dòng)發(fā)起還是木馬被動(dòng)監(jiān)聽,都會(huì)在網(wǎng)絡(luò)上產(chǎn)生這些異常信息。在進(jìn)程層面,很多時(shí)候會(huì)產(chǎn)生異常進(jìn)程,很多進(jìn)程會(huì)通過偽裝成系統(tǒng)進(jìn)程名,但是只要留意依然能夠被發(fā)現(xiàn)。

技術(shù)篇

對linux系統(tǒng)而言,這些參數(shù)和指標(biāo)都是比較容易的。下面是我經(jīng)常用的一些腳本可以參考下。

進(jìn)程:ps aux|sed -n '2,$p'|awk 'BEGIN{count=0;}{suser[count]=$1;pid[count]=$2;cpu[count]=$3;mem[count]=$4;p[count]=$11;count++;};END{for (i = 1; i < NR; i++)print "seci-host-process user="suser[i]" pid="pid[i]" cpu="cpu[i]" mem="mem[i]" process="p[i]}' |sort |uniq|egrep -v "suser|grep|ps|sed|awk|sort|uniq|egrep|[[*]"

端口:ss -ntu|sed -n '2,$p'|awk 'BEGIN{count=0;}{pr[count]=$1;fl[count]=$4;si[count]=substr($5,1,index($5,":")-1);sp[count]=substr($5,index($5,":")+1,length($5));ti[count]=substr($6,1,index($6,":")-1);tp[count]=substr($6,index($6,":")+1,length($6));count++;};END{for (i = 0; i < NR; i++)if(si[i]!=ti[i])print "seci-host-network pro="pr[i]" sendFlow="fl[i]" sourceIp="si[i]" sourcePort="sp[i]" targetIp="ti[i]" targetPort="tp[i];}'

操作命令審計(jì):export PROMPT_COMMAND='{ msg=$(history 1 | { read x y; echo $y; });logger " secisland user=$(whoami)" client=$SSH_CLIENT path=`pwd` command: "$msg"; }'

系統(tǒng)事件:正常在/var/log/secure文件中,比如登錄成功失敗等。

上傳下載:目前l(fā)inux sshd會(huì)自帶的sftp協(xié)議日志,通過配置可以記錄sftp的日志。

配置:#vi /etc/ssh/sshd_config

修改 Subsystem sftp /usr/libexec/openssh/sftp-server

如下Subsystem sftp internal-sftp -l INFO -f local0

去掉下面一行的注釋 #LogLevel INFO

修改syslog配置 vi /etc/rsyslog.conf

# 增加一行

local0.* @ip

文件修改:對文件修改的監(jiān)控稍微麻煩點(diǎn),可以通過輪詢文件修改時(shí)間,通過實(shí)現(xiàn)對文件進(jìn)行打標(biāo)簽對比。效果比較好的方式是利用linux的inotify機(jī)制來監(jiān)控文件操作。

Inotify 是一個(gè) Linux特性,它監(jiān)控文件系統(tǒng)操作,比如讀取、寫入和創(chuàng)建。Inotify 反應(yīng)靈敏,用法非常簡單,并且比 cron 任務(wù)的繁忙輪詢高效得多。多用在主機(jī)防篡改,網(wǎng)頁防篡改中,比較重要所以系統(tǒng)也集成了此功能。

安裝SeciInofify,這個(gè)版本支持syslog發(fā)送,安裝好后,運(yùn)行:

nohup ./inotifywait -c -rme create,modify,delete,move,attrib,delete_self /home /etc &

這樣就對指定的目錄/home /etc進(jìn)行監(jiān)控,這兩個(gè)目錄中文件的任何變化都會(huì)發(fā)送到日志服務(wù)器中。

總結(jié)

如果在日常運(yùn)維中能構(gòu)建深度防御體系,實(shí)時(shí)的分析主機(jī)中的網(wǎng)絡(luò),進(jìn)程,操作命令,文件操作,系統(tǒng)操作,上傳下載行為,能把這些環(huán)節(jié)都記錄加以分析的話,應(yīng)該大多數(shù)的情況下能第一時(shí)間發(fā)現(xiàn)入侵行為。這樣就降低了很大的風(fēng)險(xiǎn)。但這些東西如果都手工來做,效率還是比較低的,可以借助日志收集分析工具來進(jìn)行分析,比如splunk,arcsight,SeciLog,elk等。這樣就會(huì)達(dá)到事半功倍的效果。

申請創(chuàng)業(yè)報(bào)道,分享創(chuàng)業(yè)好點(diǎn)子。點(diǎn)擊此處,共同探討創(chuàng)業(yè)新機(jī)遇!

相關(guān)文章

熱門排行

信息推薦