胡宇佳
(四川大學(xué)計(jì)算機(jī)學(xué)院,成都610065)
隨著信息技術(shù)的發(fā)展,互聯(lián)網(wǎng)公司全力研發(fā)新的產(chǎn)品以提高自己的行業(yè)競(jìng)爭(zhēng)力。一般的,在臨近產(chǎn)品發(fā)布的時(shí)期,公司對(duì)內(nèi)部可能會(huì)發(fā)生的一切異常的現(xiàn)象以及員工行為都十分敏感。為了確保產(chǎn)品能夠按時(shí)安全地發(fā)布,公司的核心利益能夠不受影響。公司高層常常會(huì)在這樣的時(shí)期成立臨時(shí)的情報(bào)威脅分析小組,這樣的小組可以獲取到公司在一定時(shí)期內(nèi)的所有數(shù)據(jù),對(duì)這些數(shù)據(jù)中包含的信息進(jìn)行提取和分析,并根據(jù)分析結(jié)果,處理可能存在的各種會(huì)對(duì)公司安全造成影響的潛在威脅[1]。在這樣的分析過(guò)程中,數(shù)據(jù)的復(fù)雜性會(huì)影響工作小組對(duì)結(jié)果的分析。因此,本文采取一定的信息挖掘方法,對(duì)數(shù)據(jù)進(jìn)行清洗、處理,進(jìn)而挖掘出一定的規(guī)律,從龐大的數(shù)據(jù)中挖掘出可能存在的異常行為[2]。我們根據(jù)該公司提供的員工數(shù)據(jù),通過(guò)可視分析的方法,幫助該公司找到可能存在的內(nèi)部威脅情報(bào)并給出相應(yīng)的建議。我們的完成過(guò)程分為三個(gè)階段:第一個(gè)階段是對(duì)原始數(shù)據(jù)進(jìn)行預(yù)處理;第二階段是對(duì)數(shù)據(jù)的可視化;第三階段是對(duì)可視化視圖進(jìn)行可視分析,找到規(guī)律并發(fā)現(xiàn)問(wèn)題。
本文的數(shù)據(jù)處理主要是通過(guò)Python,以及Python中的數(shù)據(jù)處理庫(kù)pandas[3]和numpy[4]完成的。根據(jù)我們要解決的問(wèn)題,即發(fā)現(xiàn)公司中存在的異常,我們將問(wèn)題拆解為一下三步:第一步,找到員工的部門(mén)劃分方式;第二步,探索員工的正常行為模式;第三步,和正常行為模式對(duì)比,確定員工的異常行為模式,以及這些異常之間的關(guān)聯(lián)。
同部門(mén)的員工之間會(huì)有一定的郵件往來(lái),因此,我們首先從郵件數(shù)據(jù)入手,去處理數(shù)據(jù)。第一步,對(duì)垃圾郵件進(jìn)行處理,主要是將垃圾廣告篩選刪除,這部分主要是通過(guò)讀取郵件的主題,將繁體字、含有手機(jī)號(hào)或者QQ 號(hào)的郵件剔除,最后清洗得到完整的員工往來(lái)郵件。第二步,從收發(fā)件人中,通過(guò)正則匹配的方式提取出員工ID。第三步,對(duì)主題進(jìn)行jieba[5]分詞處理,以關(guān)鍵詞的形式存儲(chǔ)主題。最終,我們以“發(fā)件人-收件人-主題詞”這樣的方式存儲(chǔ)數(shù)據(jù),劃分研發(fā)、財(cái)務(wù)和人力資源部門(mén)員工。
員工的行為模式,主要包括:?jiǎn)T工的正常上下班打卡時(shí)間、員工上網(wǎng)的瀏覽模式、員工收發(fā)郵件數(shù)量、員工上網(wǎng)流量高峰以及員工的端口使用模式這五種。
針對(duì)部門(mén)的員工劃分,我們將員工ID 提取出來(lái),按照部門(mén)進(jìn)行劃分,并分別統(tǒng)計(jì)員工的上下班時(shí)間,根據(jù)統(tǒng)計(jì)得到的結(jié)果,考慮以半個(gè)小時(shí)、一個(gè)小時(shí)這樣的時(shí)間區(qū)間去統(tǒng)計(jì)打卡的人數(shù),以此確定該部門(mén)員工的正常上下班打卡的時(shí)間段。
針對(duì)員工的上網(wǎng)瀏覽模式,我們將所有員工劃分為研發(fā)人員和非研發(fā)人員兩類(lèi),進(jìn)行分析,將所有網(wǎng)址拆分成了:娛樂(lè)網(wǎng)址和工作網(wǎng)址。娛樂(lè)網(wǎng)址包括一些視頻瀏覽和新聞網(wǎng)站,工作網(wǎng)址則是公司的內(nèi)部網(wǎng)站。然后根據(jù)瀏覽的時(shí)間和數(shù)量,統(tǒng)計(jì)某時(shí)段中員工瀏覽這些網(wǎng)站的頻次,最終得到員工上網(wǎng)行為模式。
針對(duì)員工收發(fā)郵件數(shù)量、員工的端口模式和員工的上網(wǎng)流量高峰,這些也是按照部門(mén)以及一定的時(shí)間周期去統(tǒng)計(jì)。我們會(huì)重點(diǎn)關(guān)注部門(mén)leader 的行為,以及他們工作期間涉及到的郵件和使用的端口和協(xié)議等等。
本文所使用的數(shù)據(jù)是某公司部2017 年11 月共30天內(nèi)產(chǎn)生的所有CSV 文件數(shù)據(jù),包括員工上下班打卡數(shù)據(jù)checking(員工id,日期,上班時(shí)間,下班時(shí)間)、員工間的郵件往來(lái)數(shù)據(jù)email(時(shí)間,使用協(xié)議,源ip,端口號(hào),目標(biāo)ip,目標(biāo)端口號(hào),發(fā)件人郵箱,收件人郵箱,主題)、員工的協(xié)議使用數(shù)據(jù)login(協(xié)議,目標(biāo)ip,目標(biāo)端口,源ip,源端口,登陸狀態(tài),時(shí)間,用戶(hù))、員工往來(lái)的上下行流量以及使用的協(xié)議數(shù)據(jù)tcpLog(使用時(shí)間,結(jié)束時(shí)間,協(xié)議名稱(chēng),目的ip,目的端口,源ip,源端口,上行流量和下行流量)以及瀏覽網(wǎng)址數(shù)據(jù)weblog(時(shí)間,源ip,源端口,目的ip,目的端口,域名),共計(jì)40w條數(shù)據(jù)信息。圖形的繪制以Echarts[6]和Gephi[7]為主。
對(duì)員工所屬部門(mén)及人員結(jié)構(gòu)進(jìn)行分析,通過(guò)郵件主題對(duì)員工所屬部門(mén)進(jìn)行分類(lèi),并根據(jù)員工之間的收發(fā)郵件關(guān)系輔助證明。我們分別使用旭日?qǐng)D和玫瑰圖展示不同部門(mén)員工經(jīng)常發(fā)送的郵件主題以及某部門(mén)發(fā)送郵件主題的數(shù)量關(guān)系;通過(guò)Gephi 生成的網(wǎng)絡(luò)關(guān)系圖展示員工與員工之間的聯(lián)系,如圖1 和2 所示。
圖1 三個(gè)部門(mén)的主題分類(lèi)
圖2 員工郵件往來(lái)關(guān)系圖及研發(fā)部門(mén)展示
通過(guò)節(jié)點(diǎn)鏈接圖發(fā)現(xiàn)可能是BOSS 的員工與其他的各個(gè)部門(mén)leader 間的聯(lián)系和郵件往來(lái),確定最終的大BOSS;通過(guò)雷達(dá)圖展示重要員工的信息,如圖3-5所示。
圖3 員工部門(mén)展示
圖4 BOSS往來(lái)郵件展示
圖5 關(guān)鍵員工的相關(guān)屬性圖
在對(duì)員工日常行為進(jìn)行分析總結(jié)時(shí),通過(guò)折線圖和極坐標(biāo)圖對(duì)11 月的員工打卡時(shí)間進(jìn)行展示,并通過(guò)郵件中的遲到早退信息發(fā)現(xiàn)三個(gè)部門(mén)的規(guī)定上下班時(shí)間,同時(shí)注意到研發(fā)部門(mén)的上下班時(shí)間分兩種;通過(guò)詞云的方式展示研發(fā)部門(mén)與非研發(fā)部門(mén)訪問(wèn)過(guò)的網(wǎng)站,并通過(guò)環(huán)圖展示出他們最常訪問(wèn)的10 個(gè)網(wǎng)站;通過(guò)氣泡圖展示三個(gè)部門(mén)員工每三天的收發(fā)郵件數(shù)量;通過(guò)折線圖展示員工上網(wǎng)的高峰時(shí)間以及協(xié)議上下行分布情況,發(fā)現(xiàn)員工發(fā)郵件的高峰。
圖6 員工上下班打卡時(shí)間
圖7 員工打卡時(shí)間段統(tǒng)計(jì)
我們根據(jù)check 中的打卡日志,做出了三個(gè)部門(mén)的打卡時(shí)間圖,其中紅色代表研發(fā)部門(mén),黑色代表財(cái)務(wù)部門(mén),淺藍(lán)色代表人力資源部門(mén),然后通過(guò)對(duì)時(shí)間軸的縮放,展示出一個(gè)月打卡的時(shí)間段和人數(shù)。同時(shí)我們也對(duì)員工一個(gè)月的打卡時(shí)間段進(jìn)行了統(tǒng)計(jì),可以看出研發(fā)部門(mén)員工的打卡時(shí)間段在8:00-9:45、18:00-21:00頻繁;財(cái)務(wù)部門(mén)員工的打卡時(shí)間段在7:00-7:45、17:00-19:15 頻繁;人力資源部門(mén)員工的打卡時(shí)間段在8:15-8:45、18:00-20:45 頻繁。在此基礎(chǔ)上,我們對(duì)包含了遲到早退主題的郵件進(jìn)行分析,發(fā)現(xiàn)人力資源部門(mén)最晚上班時(shí)間為9:00,最早下班時(shí)間為18:00;財(cái)務(wù)部門(mén)最晚上班時(shí)間為8:00,最早下班時(shí)間為17:00。研發(fā)部門(mén)正常上下班時(shí)間分兩種:以1059 為領(lǐng)導(dǎo)的小組工作時(shí)間為10:00-19:00,以1007 和1068 為領(lǐng)導(dǎo)的小組工作時(shí)間為9:00-18:00。
圖8
圖8 可以看出研發(fā)部門(mén)常用的工作網(wǎng)站是emali.hightech.com,git.hightech.com、OA.hightech.com、jira.hightech.com 等內(nèi)部網(wǎng)站,非研發(fā)部門(mén)的常用工作網(wǎng)站是 emali.hightech.com、OA.hightech.com、www.baidu.com、www.google.com、www.yahoo.com、ju.taobao.com 等,他們使用搜索引擎查詢(xún)信息,也會(huì)訪問(wèn)淘寶等其他網(wǎng)站。
圖9 部門(mén)員工收發(fā)郵件數(shù)
如圖9 所示,我們按部門(mén)統(tǒng)計(jì)員工每三天的收發(fā)郵件數(shù)量。發(fā)現(xiàn)人力資源部門(mén)每三天的個(gè)人收發(fā)件區(qū)間在25-210 之間;財(cái)務(wù)部門(mén)每三天的收發(fā)件區(qū)間在25-245 之間;研發(fā)部門(mén)每三天的收發(fā)件數(shù)分為2 個(gè)團(tuán)體,其中普通員工的收發(fā)件數(shù)在0-200 之間,員工id為1060、1087、1092、1098、1100、1154、1191、1207、1209的員工每三天的收發(fā)件數(shù)在300-1450 之間。
圖10 員工11月上下行流量圖
圖11 員工某天上下行流量示例
我們首先將E-mail 文件中的郵件主題和checking文件打卡信息結(jié)合,發(fā)現(xiàn)打卡系統(tǒng)存在異常。存在員工請(qǐng)假成功、員工已經(jīng)辭職,但仍被判定為曠工的情況,這種誤判可能會(huì)影響員工積極性,值得關(guān)注。
然后,觀察到郵件主題存在EmergencyDataBaseFatalError,對(duì)tcpLog 文件統(tǒng)計(jì)分析,發(fā)現(xiàn)該類(lèi)郵件集中發(fā)送的時(shí)間段內(nèi),存在四種數(shù)據(jù)庫(kù)崩潰的情況。
圖12 數(shù)據(jù)庫(kù)預(yù)警時(shí)間前后的數(shù)據(jù)庫(kù)流量和
圖10 可以看出產(chǎn)生流量的時(shí)間區(qū)間為4:00-22:00,再與郵件日志信息匹配,發(fā)現(xiàn)4:00-6:00 為系統(tǒng)自動(dòng)發(fā)件時(shí)間,員工則在8:00-10:00、12:00-16:00 為上下行流量高峰期,10:00-12:00 為上下行流量緩和期。圖12 可以看出在周六的時(shí)候,SMTP 協(xié)議的上行流量達(dá)到每周的峰值,有可能員工們?cè)谶@一天通過(guò)郵件往來(lái)匯報(bào)一周的工作情況等,郵件使用頻率高。
接下來(lái),對(duì)login 文件分析,發(fā)現(xiàn)其中有許多登陸失敗的狀態(tài),統(tǒng)計(jì)各個(gè)協(xié)議登錄的頻率和成功率。發(fā)現(xiàn)11/04 該天的成功率明顯低于其他日期。進(jìn)一步分析該天協(xié)議對(duì)應(yīng)的IP 服務(wù)器,尋找端口問(wèn)題。
圖13 所有協(xié)議登錄的頻率與成功率
對(duì)tcplog 文件進(jìn)一步細(xì)化分析,對(duì)每個(gè)協(xié)議在一個(gè)月內(nèi)的上下行流量進(jìn)行了繪圖。
圖14 所有協(xié)議上下行流量
可以發(fā)現(xiàn),在7 號(hào)的mongodb 協(xié)議和15 號(hào)的FTP協(xié)議存在明顯的高峰異常。分別對(duì)其中流量排名前五的IP 進(jìn)行單點(diǎn)追蹤,找出了這些IP 在一個(gè)月內(nèi)的下行流量使用情況??梢钥闯觯?0.64.105.107 在15 號(hào)的FTP 文件傳輸下行流量異常;10.64.105.192 在15 號(hào)和22 號(hào)的FTP 文件傳輸有下行流量異常。
圖15 FTP協(xié)議的月下行流量
最后,對(duì)HTTP 協(xié)議的上下行流量分析,發(fā)現(xiàn)存在部分不活躍的服務(wù)器(超過(guò)十五天沒(méi)有訪問(wèn)過(guò)HTTP協(xié)議),提取這些IP 進(jìn)一步對(duì)它們?cè)谄渌麉f(xié)議上的流量分析分析,這些不活躍服務(wù)器中的大部分都沒(méi)有連接過(guò)其他協(xié)議。綜合上述異常,我們發(fā)現(xiàn)打卡離職人員中,ID 為1487 的員工也擔(dān)任著接收EmergencyData-Base 郵件并對(duì)數(shù)據(jù)庫(kù)進(jìn)行維護(hù)的責(zé)任,這個(gè)時(shí)候重要人物的離職可能會(huì)對(duì)公司造成影響。
本文所選取的數(shù)據(jù)可視分析[9]方案從不同的角度對(duì)數(shù)據(jù)集進(jìn)行分析,得到的結(jié)果可以從多方面驗(yàn)證員工分組的有效性;我們從實(shí)際出發(fā),盡可能多地從各方面展示員工的正常工作模式;我們考慮與網(wǎng)絡(luò)有關(guān)的方方面面,去挖掘網(wǎng)絡(luò)日志背后的信息和故事。使用戶(hù)可以從多個(gè)維度對(duì)數(shù)據(jù)進(jìn)行分析,得到問(wèn)題的答案,挖掘潛在的信息價(jià)值[8]。