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

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

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

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

概述

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

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)邊界被突破,攻擊者就很容易訪問(wèn)到企業(yè)內(nèi)部應(yīng)用。

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

本文不深入闡述Google的這個(gè)方案是如何做的,從這個(gè)案例只想說(shuō)明一個(gè)問(wèn)題,隨著信息安全漏洞層出不窮,而且利用手法也日益精妙,內(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)常看中央一套的《今日說(shuō)法》,其中有一個(gè)案件尋找破案線索的過(guò)程令我印象非常深刻。當(dāng)時(shí)大概的案情是在一段沒(méi)有監(jiān)控的路上,有個(gè)女的被綁架了,這個(gè)時(shí)候?qū)ふ医壖茏靼傅能?chē)輛就非常重要。由于事發(fā)路段沒(méi)有監(jiān)控,尋找作案車(chē)輛就陷入了困難,后面公安干警想出了一個(gè)非常簡(jiǎn)單的辦法找到了作案的車(chē)輛。在綁架的現(xiàn)場(chǎng)是沒(méi)有監(jiān)控的,但在路的兩頭是有監(jiān)控的,干警用給每輛車(chē)計(jì)時(shí)的方法來(lái)查找作案的車(chē)輛。如果要作案,必須要有作案的時(shí)間,也就是說(shuō)這輛車(chē)的通過(guò)時(shí)間要比其他車(chē)輛時(shí)間要長(zhǎng)。這就是最簡(jiǎn)單的邏輯推理破案。

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

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

無(wú)標(biāo)題

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

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

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

技術(shù)篇

對(duì)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é)議日志,通過(guò)配置可以記錄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

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

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

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

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

這樣就對(duì)指定的目錄/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)。但這些東西如果都手工來(lái)做,效率還是比較低的,可以借助日志收集分析工具來(lái)進(jìn)行分析,比如splunk,arcsight,SeciLog,elk等。這樣就會(huì)達(dá)到事半功倍的效果。

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

相關(guān)文章

熱門(mén)排行

信息推薦