夜晚的保定,雪越下越大。街道兩旁的梧桐樹不堪積雪的重壓,不時有樹枝斷裂,發出沉悶的哢嚓聲。路燈在飛舞的雪花中投下昏黃的光暈,整座城市籠罩在一片蒼茫的白中。
吳普同回到家時,已經是晚上七點多了。他沒有立即進門,而是在樓道裡站了一會兒,拍掉身上厚厚的積雪。羽絨服的帽子邊緣已經結了一層薄冰,手指凍得幾乎失去知覺。
推開門,屋裡的溫暖撲麵而來。馬雪豔正在客廳裡等他,看見他一身雪,連忙接過外套:“怎麼不打車回來?這麼大的雪還騎車。”
“路上車少,騎車也不慢。”吳普同說,聲音有些啞。
馬雪豔幫他拍掉頭發上的雪,又去衛生間拿毛巾:“快擦擦,彆感冒了。飯還熱著,先吃飯吧。”
餐桌上擺著兩菜一湯:青椒肉絲,西紅柿炒雞蛋,還有紫菜蛋花湯。都是他愛吃的,但他沒什麼胃口。勉強吃了半碗飯,就放下了筷子。
“怎麼了?不好吃?”馬雪豔問。
“不是,不餓。”吳普同說,“今天公司出了點事。”
他把數據篡改的事簡單說了一遍。馬雪豔聽完,眉頭緊皺:“有人故意改數據?為什麼?”
“不知道。”吳普同搖頭,“可能是惡作劇,可能是想陷害誰,也可能是彆的目的。現在查不出來。”
“那你的係統……”
“係統沒問題,是有人用測試賬號登錄改的。”吳普同說,“但我是係統管理員,安全管理不到位,有責任。”
馬雪豔沉默了。她知道這意味著什麼。在職場裡,出了問題,總要有人承擔責任。而吳普同,作為係統設計者和維護者,自然首當其衝。
“吃飯吧,”她輕聲說,“吃完飯再說。”
飯後,吳普同主動洗碗。水流嘩嘩地衝在碗碟上,蒸汽升騰,模糊了窗戶。他看著窗外紛飛的大雪,心裡亂糟糟的。
洗好碗,他沒有像往常那樣陪馬雪豔看電視,而是徑直走到書桌前,打開了電腦。
“還要工作?”馬雪豔走過來。
“嗯,再查查係統日誌。”吳普同說,“有些細節白天沒來得及看。”
“彆太晚了,明天還要上班。”
“知道。”
馬雪豔沒再勸,隻是給他泡了杯熱茶,放在桌上。茶香嫋嫋,熱氣升騰,在冰冷的房間裡格外溫暖。吳普同端起茶杯,喝了一口,暖意從喉嚨一直延伸到胃裡。
他打開係統管理後台,調出所有的日誌文件。這些日誌記錄了係統運行以來的每一個操作:登錄、查詢、修改、刪除……數據龐大,但結構清晰。他需要找到test001賬號的所有操作記錄,分析它的使用模式。
首先,他查了test001賬號的創建時間。係統日誌顯示,這個賬號是今年三月份創建的,創建人是吳普同自己。當時為了方便測試,設了簡單密碼“”,之後一直沒有改過。
然後,他查了這個賬號的使用記錄。從三月份到現在,test001一共登錄過87次。其中大部分是正常的測試操作,集中在係統上線初期。但從七月份開始,使用頻率明顯下降,最近兩個月幾乎沒有登錄記錄——除了昨天那次。
吳普同仔細查看了每次登錄的ip地址。大部分都是192.168.1.100110這個段,也就是辦公樓三樓的ip。具體分布是:化驗室電腦(105)登錄32次,周經理辦公室電腦(102)登錄15次,劉總辦公室電腦(101)登錄8次,其他電腦登錄32次。
這個分布看起來正常。測試賬號嘛,誰需要用誰就用。
但昨天那次登錄很特彆。ip地址是192.168.1.105,化驗室公用電腦。登錄時間下午五點四十,退出時間五點五十。期間隻有一個操作:修改生產批號pc110203的鈣磷數據。
吳普同把這次操作前後的日誌都調出來。下午五點二十,牛麗娟(nj001)登錄,修改了同批記錄的豆粕投料量。五點二十五,牛麗娟退出。五點四十,test001登錄。五點五十,test001退出。
時間銜接得很緊。牛麗娟退出後十五分鐘,test001就登錄了,修改了同一批數據。是巧合嗎?
吳普同繼續往前查。他發現,在過去的三個月裡,牛麗娟和test001的登錄時間,有六次是緊挨著的。比如,某天牛麗娟登錄查詢數據,退出後不久,test001就登錄了,也是查詢類似的數據。
這又是巧合嗎?
吳普同感到後背發涼。如果一次是巧合,兩次是巧合,六次還是巧合嗎?
但他沒有證據。日誌隻能記錄ip地址和操作,不能記錄操作者是誰。192.168.1.105是化驗室公用電腦,誰都可以用。可能是陳芳,可能是小王,可能是小李,也可能是牛麗娟自己——她有化驗室的鑰匙。
他繼續分析。test001昨天的操作很專業:隻修改了鈣磷數據,而且修改得很“合理”。鈣從1.2改到1.5,磷從0.8改到0.6,這樣一改,鈣磷比例就失衡了,但單看數據,並不突兀。如果不是檢測發現異常,可能根本沒人會注意到。
這章沒有結束,請點擊下一頁繼續閱讀!
這說明什麼?說明操作者懂技術,懂飼料配方,知道怎麼改才能讓問題“合理”地暴露出來。
懂技術的人……化驗室的陳芳懂,牛麗娟更懂。車間的老師傅也懂,但他們不會用電腦,更不會用測試賬號登錄係統。
範圍在縮小。
吳普同看了看時間,已經晚上十點了。窗外的雪還在下,玻璃上結了一層薄霜,外麵的燈光變得模糊而朦朧。屋子裡很安靜,隻有電腦風扇的嗡嗡聲,還有馬雪豔在臥室裡輕輕的翻書聲。
他站起來活動了一下僵硬的脖子和肩膀,又去倒了杯水。回到書桌前,他決定換個思路。
既然從日誌上找不到直接證據,那就從其他方麵入手。比如,動機。
誰有動機篡改數據?誰會從這件事中受益?或者,誰想通過這件事達到什麼目的?
首先,車間工人?可能性不大。數據篡改導致一批料返工,損失的是公司利益,工人沒好處。而且工人不會用測試賬號,也不懂怎麼改數據才“合理”。
其次,化驗室的人?陳芳、小王、小李?他們有可能。但如果他們想陷害誰,為什麼要用test001賬號?用自己的賬號不是更直接?而且,他們為什麼要陷害吳普同?無冤無仇的。
第三,牛麗娟?她有動機嗎?吳普同想起之前的種種:源代碼事件,樣品拖延,方案擱置,係統被忽視……牛麗娟一直在或明或暗地打壓他。如果數據篡改是她乾的,目的可能有兩個:一是證明係統不安全,二是打擊吳普同的威信。
但如果是她,為什麼要用自己的工號先修改數據?這不是暴露自己嗎?除非……她是故意的?先用自己的工號修改一個無關緊要的數據豆粕投料量),製造一個“工作認真”的形象,然後再用test001賬號修改關鍵數據?
這個想法讓吳普同不寒而栗。如果真是這樣,那牛麗娟的心機就太深了。
他繼續查日誌。牛麗娟昨天修改豆粕投料量的理由是“覺得實際投料量可能隻有750公斤”。這個理由聽起來很主觀,但符合她一貫的風格——憑經驗,憑感覺。
但問題在於,她修改之後,粗蛋白計算值從18.5降到17.8,還是高於檢測值16.8。也就是說,即使她的修改是對的,也解釋不了檢測結果異常。
那麼,test001修改鈣磷數據,就是為了“補全”這個異常?讓檢測結果看起來更“合理”?
吳普同感到腦子有點亂。這些推理,都建立在假設的基礎上,沒有任何證據支持。
他揉了揉太陽穴,感到一陣疲憊。連續工作了十幾個小時,眼睛發澀,腦袋發脹。但他不能停,這件事必須查清楚。
馬雪豔從臥室裡走出來,看見他還坐在電腦前,輕聲說:“還不睡?快十二點了。”
“馬上,看完這一段就睡。”吳普同說。
“彆熬太晚,身體要緊。”馬雪豔走到他身後,輕輕按摩他的肩膀,“查出什麼了嗎?”
“有點眉目,但沒證據。”吳普同說,“修改數據的電腦是化驗室的公用電腦,時間點跟陳芳值班吻合。但化驗室的人都說當時下班了,沒人加班。”
“陳芳?”馬雪豔想了想,“就是那個總是拖延你樣品的化驗員?”
“嗯。”
“她跟你有什麼過節嗎?”
“沒有。”吳普同搖頭,“就是工作接觸,沒私交。但她跟牛工關係好,是牛工的徒弟。”
馬雪豔的手停了一下:“那會不會是……牛工讓她乾的?”
“不知道。”吳普同說,“沒證據,不能亂猜。”