創(chuàng)作聲明:本文為虛構(gòu)創(chuàng)作,請勿與現(xiàn)實(shí)關(guān)聯(lián)
「陳工,真的非常抱歉打擾您,我是明遠(yuǎn)科技的人事主管秦雅。我知道您已經(jīng)離開公司兩年了,但現(xiàn)在公司遇到了緊急情況,只有您能解決?!闺娫捘穷^的聲音帶著幾分焦急。
我放下手中的咖啡杯,看了看窗外深圳的夜景。兩年前,我從明遠(yuǎn)科技離職時,發(fā)誓再也不會和那家公司有任何瓜葛。當(dāng)時因?yàn)檫B續(xù)加班三個月導(dǎo)致住院,公司卻以績效不達(dá)標(biāo)為由克扣我的獎金,那種寒心的感覺至今記憶猶新。
「什么事?」我的語氣很冷淡。
「是這樣的,您當(dāng)初負(fù)責(zé)的那套智能生產(chǎn)線控制系統(tǒng)出現(xiàn)了嚴(yán)重故障,整條生產(chǎn)線已經(jīng)停工三天了。我們找了很多工程師都無法修復(fù),技術(shù)部的人說只有您最了解那套系統(tǒng)的底層邏輯。公司現(xiàn)在每天損失上百萬,真的很需要您的幫助。」
我冷笑了一聲。當(dāng)初我提出要優(yōu)化那套系統(tǒng),申請技術(shù)文檔歸檔預(yù)算時,領(lǐng)導(dǎo)說公司資金緊張,讓我先把精力放在新項目上?,F(xiàn)在出了問題,才想起我來?
![]()
01
「我現(xiàn)在在深圳,你們公司在蘇州,這個距離可不近?!刮夜室馔祥L了聲音。
秦雅的聲音立刻變得更加懇切:「陳工,公司愿意承擔(dān)您所有的差旅費(fèi)用,包括機(jī)票、住宿和餐飲。您看什么時候方便過來一趟?」
我靠在沙發(fā)上,腦海中快速盤算著。兩年前離職時,我手里還有一些公司欠我的加班費(fèi)和項目獎金,總共大約三萬塊錢。當(dāng)時人事說要走流程,結(jié)果一拖再拖,最后不了了之。現(xiàn)在他們有求于我,倒是個好機(jī)會。
「秦主管,我現(xiàn)在是自由職業(yè)者,時間成本很高的。而且說實(shí)話,我對明遠(yuǎn)科技的印象并不好。」我直接說道。
電話那頭沉默了幾秒鐘,然后傳來秦雅有些為難的聲音:「陳工,我理解您的顧慮。這樣吧,我向領(lǐng)導(dǎo)申請,給您支付技術(shù)咨詢費(fèi),您看怎么樣?」
「技術(shù)咨詢費(fèi)?」我來了興趣,「具體多少?」
「這個我需要請示一下,您稍等?!?/p>
我掛了電話,走到陽臺上點(diǎn)了根煙。夜晚的深圳燈火通明,科技園區(qū)的大樓里依然有很多人在加班。兩年前的我,也是其中的一員,為了公司的項目嘔心瀝血,最后換來的卻是冰冷的制度和無情的算計。
十分鐘后,秦雅再次打來電話。
「陳工,我跟技術(shù)總監(jiān)韓立商量過了,公司愿意支付您五千元的技術(shù)咨詢費(fèi),您看可以嗎?」
五千元?我差點(diǎn)笑出聲來。那套系統(tǒng)是我花了整整一年時間獨(dú)立開發(fā)的,涉及到復(fù)雜的工業(yè)控制算法和數(shù)據(jù)采集邏輯?,F(xiàn)在出了問題,他們用五千塊就想打發(fā)我?
02
「秦主管,五千塊我可能連機(jī)票錢都不夠?!刮抑苯泳芙^了。
「那陳工您的意思是?」
「這樣吧,我給你算一筆賬。從深圳飛蘇州,往返機(jī)票至少三千塊。在蘇州住酒店,按照四星標(biāo)準(zhǔn)一晚八百,至少要住兩晚。加上吃飯、打車等雜費(fèi),光差旅成本就要六千左右?!刮衣龡l斯理地說道。
「這些費(fèi)用公司都可以報銷的?!骨匮炮s緊說。
「報銷是一回事,技術(shù)咨詢費(fèi)是另一回事?!刮覐?qiáng)調(diào)道,「我現(xiàn)在做一個技術(shù)咨詢項目,日薪至少五千。這次過去修復(fù)系統(tǒng),保守估計需要兩天時間,也就是一萬的咨詢費(fèi)。加上差旅成本,總共一萬六?!?/p>
電話那頭傳來秦雅倒吸涼氣的聲音:「陳工,這個價格是不是有點(diǎn)高了?」
「高嗎?你們公司現(xiàn)在每天損失多少?一百萬還是兩百萬?」我反問道。
秦雅沉默了。我知道我說中了她的軟肋。明遠(yuǎn)科技是一家精密制造企業(yè),那條智能生產(chǎn)線承擔(dān)著公司百分之七十的訂單生產(chǎn)任務(wù)。停工一天的損失,遠(yuǎn)遠(yuǎn)超過我要的這點(diǎn)錢。
「陳工,您先別掛電話,我再去請示一下領(lǐng)導(dǎo)?!?/p>
我點(diǎn)了點(diǎn)頭,雖然她看不見。大約過了五分鐘,秦雅的聲音再次響起,這次語氣明顯緩和了許多。
「陳工,韓總監(jiān)說了,技術(shù)咨詢費(fèi)可以給到八千,差旅費(fèi)實(shí)報實(shí)銷,您看這樣可以嗎?」
八千加差旅費(fèi),總共也就一萬四五的樣子。但我要的不僅僅是錢,還有一個態(tài)度。兩年前他們欠我的那筆錢,必須要有個說法。
03
「秦主管,咱們打開天窗說亮話吧?!刮业恼Z氣變得嚴(yán)肅起來,「我離職的時候,公司還欠我將近三萬塊的加班費(fèi)和項目獎金。當(dāng)時你們說要走流程,結(jié)果拖了半年也沒給我?,F(xiàn)在你們有求于我,我可以幫忙,但有個前提條件。」
「什么條件?」秦雅的聲音有些緊張。
「把之前欠我的錢,一分不少地還給我?!?/p>
電話那頭又是一陣沉默。我知道這個要求會讓他們?yōu)殡y,但這是我的底線。我可以接受技術(shù)咨詢費(fèi)的妥協(xié),但絕不會讓他們繼續(xù)拖欠我的合法收入。
「陳工,這個事情比較復(fù)雜,涉及到財務(wù)的歷史賬目。我現(xiàn)在做不了主,需要向更高層匯報。」秦雅為難地說。
「那你去匯報吧。如果公司同意把欠款結(jié)清,再談咨詢的事情。否則免談?!刮艺f完就掛了電話。
我重新坐回沙發(fā)上,心里有些復(fù)雜。兩年的時間,足夠讓我看清很多東西。在公司的時候,我以為只要努力工作,就能得到應(yīng)有的回報。但現(xiàn)實(shí)給了我一記響亮的耳光,讓我明白了什么叫做資本的冷酷無情。
現(xiàn)在,我有了選擇的權(quán)利。我可以拒絕他們,讓他們自己想辦法解決問題。但我心里又有些猶豫,那套系統(tǒng)畢竟是我的心血,看著它癱瘓在那里,總覺得有些不甘心。
第二天上午,我正在健身房鍛煉,手機(jī)突然響了起來。屏幕上顯示的是一個陌生號碼。
04
「陳工嗎?我是明遠(yuǎn)科技的副總經(jīng)理白梓涵?!闺娫捘穷^傳來一個女人的聲音,語氣客氣中帶著幾分威嚴(yán)。
白梓涵?我愣了一下。這個名字我有印象,她是兩年前才從外企跳槽到明遠(yuǎn)科技的,據(jù)說是個雷厲風(fēng)行的職業(yè)經(jīng)理人。我在職的時候,她還沒有來公司,所以我們并不認(rèn)識。
「白總您好?!刮也亮瞬梁梗叩浇∩矸客饷娴男菹^(qū)。
「陳工,關(guān)于您的訴求,我已經(jīng)了解了。首先,我代表公司向您道歉,之前在離職款項處理上確實(shí)存在問題。我查過財務(wù)記錄了,公司確實(shí)還欠您二萬八千六百元的加班費(fèi)和項目獎金?!?/p>
我心里一驚,沒想到她這么快就把賬目查清楚了,而且金額分毫不差。
「其次,關(guān)于這次技術(shù)支持的費(fèi)用,我們可以支付您一萬的技術(shù)咨詢費(fèi),加上差旅費(fèi)實(shí)報實(shí)銷。但我有個條件?!拱阻骱^續(xù)說道。
「什么條件?」我問。
「您必須在三天內(nèi)趕到蘇州,并且確保在一周內(nèi)完成系統(tǒng)修復(fù)。如果超出這個時間,咨詢費(fèi)會相應(yīng)打折?!?/p>
一周的時間?我在心里估算了一下。那套系統(tǒng)的問題如果是硬件故障,可能很快就能解決。但如果是底層代碼出了問題,一周時間可能都不夠。
「白總,我需要先了解一下具體的故障情況,才能判斷需要多長時間?!刮艺f道。
「這個沒問題,我讓技術(shù)部的人把詳細(xì)的故障報告發(fā)給您。但陳工,我必須坦白地告訴您,公司現(xiàn)在的情況很緊急。這條生產(chǎn)線如果再停工三天,我們會面臨巨額的違約賠償。所以時間真的很緊迫。」白梓涵的語氣變得懇切起來。
我沉思了片刻。雖然我對明遠(yuǎn)科技沒什么好感,但白梓涵的態(tài)度還算誠懇,而且愿意把欠款結(jié)清,這個誠意已經(jīng)足夠了。
05
「好吧,我可以去。但有幾個條件必須寫進(jìn)合同?!刮艺f道。
「您說?!?/p>
「第一,之前欠我的二萬八千六百元,必須在我到達(dá)蘇州之前轉(zhuǎn)到我賬上。第二,技術(shù)咨詢費(fèi)一萬元,在我完成系統(tǒng)修復(fù)后立即支付。第三,所有差旅費(fèi)用按照實(shí)際發(fā)生額報銷,包括往返機(jī)票、酒店住宿、餐飲和市內(nèi)交通?!?/p>
「這些都沒問題。」白梓涵痛快地答應(yīng)了,「我讓財務(wù)部立即處理欠款,今天下午就能轉(zhuǎn)給您。合同我讓法務(wù)部起草,明天發(fā)到您郵箱。您看什么時候能出發(fā)?」
我看了看手機(jī)上的日歷,今天是周三。
「最快周五出發(fā),周六到達(dá)蘇州?!刮艺f。
「太好了!那我讓秦雅聯(lián)系您,安排具體的行程。陳工,這次真的麻煩您了?!拱阻骱恼Z氣明顯輕松了許多。
掛了電話,我坐在休息區(qū)的長椅上,心情有些復(fù)雜。兩年前,我?guī)е鴿M腔的失望離開明遠(yuǎn)科技,發(fā)誓再也不回去。但現(xiàn)在,我卻要因?yàn)殄X再次踏進(jìn)那個地方。
不過這次不一樣了。兩年前我是員工,受制于公司的各種規(guī)章制度?,F(xiàn)在我是獨(dú)立的技術(shù)顧問,有了談判的籌碼和選擇的自由。這種身份的轉(zhuǎn)變,讓我對這次蘇州之行多了幾分期待。
下午三點(diǎn),我收到了財務(wù)轉(zhuǎn)賬的短信通知。二萬八千六百元,一分不少地到了我的賬戶??粗謾C(jī)上的余額,我心里涌起一股說不出的感覺。這筆錢追了兩年,終于要回來了。
06
第二天上午,我收到了明遠(yuǎn)科技發(fā)來的合同。仔細(xì)看了一遍,條款都按照我的要求寫的,沒有什么陷阱。我簽了字,掃描后發(fā)了回去。
下午,秦雅打來電話,確認(rèn)了行程安排。周六早上八點(diǎn)的航班,從深圳飛蘇州,全程兩個半小時。公司會安排人到機(jī)場接我,住宿安排在公司附近的一家五星級酒店。
「陳工,還有件事要跟您說一下?!骨匮旁陔娫捓镄⌒囊硪淼卣f,「韓立韓總監(jiān)說,他想在您到達(dá)當(dāng)天就跟您見個面,商量一下系統(tǒng)修復(fù)的方案。」
韓立。這個名字讓我皺了皺眉頭。他是技術(shù)部的總監(jiān),也是兩年前克扣我項目獎金的直接責(zé)任人。當(dāng)時我完成了一個重要項目,按照公司規(guī)定應(yīng)該拿到五萬塊的項目獎金。但韓立以我的代碼質(zhì)量存在問題為由,硬是把獎金砍到了兩萬。
「可以,讓他安排時間吧。」我平靜地說道。
周五下午,我整理好了行李。除了必要的衣物,我還帶上了自己的筆記本電腦和一些專業(yè)工具。雖然公司說會提供所有必要的設(shè)備,但我還是習(xí)慣用自己的東西。
晚上,我給幾個朋友打了電話,告訴他們我要去蘇州出差幾天。我的好友林峰聽說我要回明遠(yuǎn)科技,驚訝地說:「你不是發(fā)誓再也不回那個鬼地方嗎?怎么又要去了?」
「沒辦法,他們給的太多了?!刮野腴_玩笑地說。
「多少?」
「差旅費(fèi)加咨詢費(fèi),總共能拿到一萬八?!?/p>
電話那頭傳來林峰的口哨聲:「可以啊兄弟,這個價格不錯。不過你小心點(diǎn),那幫人可不是什么好東西。」
「我知道,這次我是去掙錢的,不是去受氣的?!?/p>
07
周六早上六點(diǎn),我就起床了。收拾好東西,叫了輛網(wǎng)約車去機(jī)場。深圳的早晨有些霧氣,高速公路上的車輛還不算多。
到達(dá)機(jī)場后,我直接去了貴賓休息室。這次的機(jī)票是商務(wù)艙,明遠(yuǎn)科技在這方面倒是挺大方。坐在舒適的沙發(fā)上,喝著現(xiàn)磨咖啡,我打開筆記本電腦,查看技術(shù)部發(fā)來的故障報告。
報告寫得很詳細(xì),列出了系統(tǒng)出現(xiàn)的各種異?,F(xiàn)象。從描述來看,問題應(yīng)該出在主控模塊的通信協(xié)議上。這個模塊是整套系統(tǒng)的核心,負(fù)責(zé)協(xié)調(diào)各個子系統(tǒng)之間的數(shù)據(jù)交換。如果通信協(xié)議出現(xiàn)錯誤,整條生產(chǎn)線就會陷入混亂。
我記得當(dāng)初設(shè)計這個模塊時,為了提高效率,我采用了一種比較復(fù)雜的異步通信機(jī)制。這種機(jī)制的優(yōu)點(diǎn)是速度快,缺點(diǎn)是對時序要求很高,一旦出現(xiàn)時序錯誤,就會導(dǎo)致整個系統(tǒng)崩潰。
看完故障報告,我心里大概有了底。如果只是時序問題,應(yīng)該不難解決。但如果是硬件層面的故障,就比較麻煩了。
八點(diǎn)整,飛機(jī)準(zhǔn)時起飛。透過舷窗,我看著深圳的城市輪廓逐漸遠(yuǎn)去,心里涌起一種奇妙的感覺。兩年前,我也是坐著飛機(jī)從蘇州回到深圳,那時候我對未來充滿了迷茫和不確定?,F(xiàn)在,我又要回到那個地方,但心態(tài)已經(jīng)完全不同了。
兩個半小時后,飛機(jī)降落在蘇州碩放機(jī)場。走出航站樓,我看到了舉著接機(jī)牌的司機(jī)。
「陳工您好,我是明遠(yuǎn)科技的司機(jī)老周。」司機(jī)是個五十多歲的中年人,態(tài)度很客氣。
「你好。」我跟他握了握手,把行李箱遞給他。
08
車子駛出機(jī)場,沿著高速公路向市區(qū)開去。窗外是典型的江南景色,小橋流水,粉墻黛瓦。雖然已經(jīng)是初冬,但蘇州的天氣還算溫和,陽光透過薄霧灑在田野上,給這座古城鍍上了一層金色。
「陳工,您以前在咱們公司工作過吧?」老周主動搭話。
「嗯,兩年前離職的。」我簡單地回答。
「那您對公司應(yīng)該挺熟悉的。我跟您說啊,這兩年公司變化挺大的。自從白總來了以后,很多制度都改了,待遇也比以前好了?!估现苄跣踹哆兜卣f著。
我沒有接話,只是看著窗外的風(fēng)景。不管公司現(xiàn)在變成什么樣,那都跟我沒關(guān)系了。我這次來只是做個技術(shù)顧問,拿了錢就走人。
車子開了大約四十分鐘,到達(dá)了市區(qū)的一家五星級酒店。這家酒店我有印象,兩年前公司接待重要客戶時會安排住在這里,房價一晚要一千多。
「陳工,公司給您訂的是行政套房,在二十三樓。這是房卡?!估现馨岩粡埛靠ㄟf給我,「您先休息一下,韓總監(jiān)說下午兩點(diǎn)在公司見您?!?/p>
我點(diǎn)了點(diǎn)頭,拉著行李箱走進(jìn)了酒店大堂。辦理入住手續(xù)后,我坐電梯上了樓。推開房門,寬敞的套房映入眼簾??蛷d、臥室、書房一應(yīng)俱全,落地窗外是蘇州的城市景觀。
我把行李放好,在沙發(fā)上坐了下來。掏出手機(jī)看了看時間,現(xiàn)在是十一點(diǎn)半。距離下午兩點(diǎn)的會面還有兩個半小時,足夠我休息一會兒。
正想閉目養(yǎng)神,手機(jī)突然響了起來。是一個本地號碼。
09
「陳工您好,我是韓立。聽說您已經(jīng)到酒店了,我想咱們能不能把見面時間提前一下?現(xiàn)在生產(chǎn)線那邊的情況比較緊急,我想盡快跟您溝通一下修復(fù)方案。」電話里的聲音有些急切。
韓立。我在心里冷笑了一聲。兩年不見,他的聲音還是那么虛偽。
「韓總監(jiān),我剛下飛機(jī),還沒吃午飯。」我故意說道。
「這樣啊,那要不我請您吃個飯?咱們邊吃邊聊?」韓立立即說道。
我猶豫了一下。雖然我對韓立沒什么好感,但既然來了,早點(diǎn)了解情況也好。
「行,在哪兒見?」
「就在您住的酒店樓下,有家淮揚(yáng)菜餐廳,味道不錯。我十二點(diǎn)到,您看可以嗎?」
「可以?!?/p>
掛了電話,我去洗手間簡單洗漱了一下,換了身干凈的衣服??粗R子里的自己,我不禁想起兩年前的模樣。那時候的我憔悴、疲憊,眼神里滿是迷?!,F(xiàn)在的我雖然依然有些疲憊,但眼神變得堅定了許多。
十二點(diǎn)整,我下樓來到餐廳。韓立已經(jīng)到了,坐在靠窗的位置??吹轿?,他立刻站了起來,臉上堆滿了笑容。
「陳工,好久不見??!」韓立伸出手來。
我跟他握了握手,淡淡地說:「韓總監(jiān),兩年不見,您還是那么精神?!?/p>
韓立今年四十出頭,保養(yǎng)得不錯,穿著一身剪裁得體的西裝,頭發(fā)梳得一絲不茍。如果不是了解他的為人,光看外表,還真會覺得他是個成功的職業(yè)經(jīng)理人。
「來來來,先坐下。我點(diǎn)了幾個菜,都是這家的招牌,您嘗嘗?!鬼n立熱情地招呼我坐下。
10
菜很快就上來了。確實(shí)是淮揚(yáng)菜的經(jīng)典做法,賣相精致,味道也不錯。但我吃得并不香,因?yàn)槲抑理n立請這頓飯,肯定是有目的的。
「陳工,這兩年您在深圳發(fā)展得怎么樣?」韓立一邊給我倒茶,一邊試探性地問。
「還行,自由職業(yè),接點(diǎn)項目做做?!刮液唵蔚鼗卮?。
「自由職業(yè)好啊,時間自由,收入也不低?!鬼n立笑著說,「不像我們這些打工的,每天都被各種事情壓著。」
我沒有接話,只是默默地吃著菜。韓立見我不說話,有些尷尬地咳嗽了一聲。
「陳工,那個??關(guān)于兩年前的事情,我一直想找機(jī)會跟您道個歉。當(dāng)時公司的規(guī)定就是那樣,我也是身不由己。您知道的,我也是個打工的,很多事情做不了主?!鬼n立的語氣變得誠懇起來。
我放下筷子,看著他的眼睛:「韓總監(jiān),過去的事就過去了。我這次來是幫公司解決技術(shù)問題的,其他的我不想多提。」
「對對對,您說得對。」韓立趕緊點(diǎn)頭,「那我跟您說說系統(tǒng)的情況吧?!?/p>
他從公文包里拿出一疊資料,遞給我。我翻開看了看,是詳細(xì)的故障記錄和現(xiàn)場照片。
「從照片上看,主控柜的指示燈顯示正常,說明硬件應(yīng)該沒問題?!刮抑钢渲幸粡堈掌f。
「對,我們也覺得是軟件的問題。但技術(shù)部的人查了好幾天,就是找不到問題出在哪里?!鬼n立苦惱地說。
我繼續(xù)翻看資料。突然,一個細(xì)節(jié)引起了我的注意。故障發(fā)生的時間是在一次系統(tǒng)升級之后。
「你們最近對系統(tǒng)做過什么改動嗎?」我問。
11
韓立愣了一下:「改動倒是有,不過很小。您走了以后,公司又招了幾個工程師。其中有個叫沈墨的年輕人,技術(shù)不錯,去年升了主管。他覺得您之前設(shè)計的通信協(xié)議有些冗余,就優(yōu)化了一下。」
聽到這話,我心里咯噔一下。通信協(xié)議是整套系統(tǒng)的核心,稍有不慎就會出大問題。我當(dāng)初設(shè)計時,每一個參數(shù)都是經(jīng)過反復(fù)測試才確定的,看似冗余,實(shí)際上都有存在的必要。
「優(yōu)化了哪些地方?」我追問道。
「這個我不太清楚,具體的技術(shù)細(xì)節(jié)您得問沈墨?!鬼n立說,「他現(xiàn)在就在公司,下午您見到他就知道了?!?/p>
我點(diǎn)了點(diǎn)頭,心里已經(jīng)大概猜到問題出在哪里了。一個經(jīng)驗(yàn)不足的工程師,自以為是地修改核心代碼,結(jié)果把整套系統(tǒng)搞崩潰了。這種事在技術(shù)圈里并不少見。
「韓總監(jiān),我下午去公司看看現(xiàn)場,然后才能給出具體的修復(fù)方案?!刮艺f道。
「好好好,吃完飯我就帶您過去。」韓立高興地說。
吃完午飯,韓立開車帶我去了公司。車子穿過幾條街道,來到了一個工業(yè)園區(qū)。遠(yuǎn)遠(yuǎn)地,我就看到了明遠(yuǎn)科技的logo。那個熟悉的藍(lán)色標(biāo)志,勾起了我很多回憶。
走進(jìn)公司大門,保安看到韓立,立刻恭敬地敬禮。我跟在韓立身后,重新踏進(jìn)了這個兩年前發(fā)誓再也不回來的地方。
公司的布局跟兩年前差不多,但細(xì)節(jié)上有些變化。前臺換了新的裝修,更加現(xiàn)代化了。走廊的墻上掛著新的企業(yè)文化標(biāo)語,什么「以人為本」「共創(chuàng)未來」之類的。
「陳工,這邊請?!鬼n立領(lǐng)著我走向技術(shù)部。
推開技術(shù)部的門,里面坐著十幾個工程師,都在電腦前忙碌著。看到韓立進(jìn)來,大家都站了起來。
12
「各位,這位是陳默陳工,我們公司的老員工了。這次特地請他來幫忙解決生產(chǎn)線的問題?!鬼n立向大家介紹道。
工程師們紛紛跟我打招呼。我注意到其中有幾張熟悉的面孔,是當(dāng)年跟我一起工作過的同事。他們看到我,眼神里都流露出一絲復(fù)雜的情緒。
「陳工,這位是沈墨,現(xiàn)在是技術(shù)部的主管?!鬼n立指著一個二十七八歲的年輕人說。
沈墨走過來跟我握手。他長得清清秀秀,戴著一副黑框眼鏡,一看就是那種技術(shù)宅。
「陳工您好,久仰大名。那套智能生產(chǎn)線控制系統(tǒng)我研究過,設(shè)計得非常巧妙。」沈墨的態(tài)度很客氣。
「沈主管客氣了?!刮叶Y貌地回應(yīng),「聽說你對系統(tǒng)做了一些優(yōu)化?」
沈墨的臉上閃過一絲尷尬:「是的,但現(xiàn)在看來,我的優(yōu)化可能有些問題?!?/p>
「走吧,咱們?nèi)ガF(xiàn)場看看?!鬼n立打斷了我們的對話。
我們一行人來到了生產(chǎn)車間。偌大的車間里,那條智能生產(chǎn)線靜靜地躺在那里,像一頭沉睡的巨獸。幾個穿著工作服的工人正在檢查設(shè)備,看到我們進(jìn)來,紛紛停下了手里的活。
我走到主控柜前,打開柜門,里面的電路板和接線還跟我兩年前離開時一樣。熟悉的布局,熟悉的標(biāo)識,一切都那么熟悉,仿佛我從未離開過。
「沈主管,把你修改過的代碼調(diào)出來給我看看?!刮艺f道。
沈墨拿出筆記本電腦,打開了系統(tǒng)的源代碼。我仔細(xì)看了看他的修改,心里的疑惑越來越重。從表面上看,他的優(yōu)化是合理的,減少了一些看似多余的通信步驟,理論上應(yīng)該能提高系統(tǒng)的運(yùn)行效率。
但問題就出在這里。那些看似多余的步驟,實(shí)際上是為了確保通信的可靠性而設(shè)計的。工業(yè)控制系統(tǒng)不同于普通的軟件系統(tǒng),它對穩(wěn)定性和可靠性的要求極高。有時候,寧可犧牲一點(diǎn)效率,也要保證系統(tǒng)的穩(wěn)定運(yùn)行。
13
「沈主管,你知道我為什么要在這里加一個延時嗎?」我指著代碼中的一個片段問道。
沈墨愣了一下:「我覺得這個延時會降低系統(tǒng)的響應(yīng)速度,所以就把它去掉了?!?/p>
「這個延時不是隨便加的,而是為了等待從站的反饋信號?!刮医忉尩?,「工業(yè)設(shè)備的反應(yīng)速度不像電腦那么快,如果主站發(fā)送完命令后立即進(jìn)入下一個流程,從站可能還沒來得及處理,就會導(dǎo)致通信失敗?!?/p>
沈墨的臉漲得通紅:「陳工,我??我沒想到這一層?!?/p>
我沒有繼續(xù)責(zé)備他,因?yàn)槲抑?他只是經(jīng)驗(yàn)不足。當(dāng)年我剛開始做工業(yè)控制系統(tǒng)時,也犯過類似的錯誤。
「韓總監(jiān),修復(fù)這個問題不難,把沈主管改動的代碼還原回去就行了。但問題是,系統(tǒng)停了這么多天,可能已經(jīng)產(chǎn)生了一些數(shù)據(jù)錯誤。我需要對整套系統(tǒng)做一次全面的檢查,確保沒有遺留問題?!刮艺f道。
「那需要多長時間?」韓立急切地問。
「如果一切順利,今天晚上就能完成代碼還原。明天做系統(tǒng)測試,后天應(yīng)該能重新啟動生產(chǎn)線?!刮夜浪懔艘幌聲r間。
韓立松了一口氣:「太好了!陳工,那就拜托您了。」
我點(diǎn)了點(diǎn)頭,開始投入工作。雖然已經(jīng)離開兩年,但那套系統(tǒng)的每一個細(xì)節(jié)我都記得清清楚楚。找到備份的源代碼,逐一對比沈墨修改過的部分,然后把它們恢復(fù)到原來的狀態(tài)。
這個過程需要極大的耐心和細(xì)致。一個小小的錯誤,就可能導(dǎo)致整套系統(tǒng)再次崩潰。我盯著電腦屏幕,一行一行地檢查代碼,確保每一個參數(shù)、每一個邏輯判斷都準(zhǔn)確無誤。
沈墨就站在我旁邊,看著我工作。我能感覺到他的緊張和不安。
14
「陳工,真的對不起,都是我的錯?!股蚰÷曊f道。
我停下手里的活,轉(zhuǎn)頭看著他:「沈主管,犯錯不可怕,可怕的是不知道自己錯在哪里。工業(yè)控制系統(tǒng)不是你在學(xué)校里寫的那些Demo,每一行代碼都關(guān)系到設(shè)備的安全和生產(chǎn)的穩(wěn)定。在沒有充分測試之前,絕對不能貿(mào)然修改核心代碼?!?/p>
「我記住了?!股蚰\懇地點(diǎn)頭。
工作一直持續(xù)到晚上七點(diǎn)。我終于完成了代碼的還原工作,并且做了初步的模擬測試。從測試結(jié)果來看,系統(tǒng)應(yīng)該能正常運(yùn)行了。
「明天我還要做完整的系統(tǒng)測試,今天就先到這里吧?!刮疑炝藗€懶腰,感覺腰酸背痛。
韓立走過來:「陳工,辛苦了。晚上我請您吃飯,好好放松一下?!?/p>
我搖了搖頭:「不用了,我累了,想回酒店休息。」
「那好吧,老周送您回去。」韓立也沒有勉強(qiáng)。
回到酒店,我洗了個澡,然后躺在床上。雖然身體很累,但腦子里卻在不停地轉(zhuǎn)。今天的工作雖然順利,但我總覺得有什么地方不太對勁。
沈墨修改的代碼,從技術(shù)角度來說并沒有大的錯誤。如果他在修改之前做過充分的測試,理論上不應(yīng)該出現(xiàn)這么嚴(yán)重的系統(tǒng)崩潰。除非??除非還有其他的問題。
我坐起來,打開筆記本電腦,重新查看今天拷貝回來的系統(tǒng)日志。仔細(xì)分析了日志中的錯誤信息,我發(fā)現(xiàn)了一個奇怪的現(xiàn)象。
系統(tǒng)崩潰的時間點(diǎn),不是在沈墨修改代碼之后,而是在一次外部設(shè)備接入之后。
這是怎么回事?
15
我調(diào)出詳細(xì)的日志記錄,發(fā)現(xiàn)在系統(tǒng)崩潰前十分鐘,有一個未知的設(shè)備嘗試連接到主控系統(tǒng)。這個設(shè)備的MAC地址我從未見過,顯然不是生產(chǎn)線上的正常設(shè)備。
更奇怪的是,這個設(shè)備嘗試連接了三次,每次都被系統(tǒng)拒絕了。但第四次嘗試時,它居然成功連接了,而且在連接后立即向主控系統(tǒng)發(fā)送了大量的數(shù)據(jù)包。
就在這些數(shù)據(jù)包涌入系統(tǒng)后,整條生產(chǎn)線癱瘓了。
這不像是沈墨的代碼修改導(dǎo)致的問題,更像是??遭到了外部攻擊。
我的心跳加快了。如果真的是外部攻擊,那問題就嚴(yán)重了。這意味著有人在蓄意破壞明遠(yuǎn)科技的生產(chǎn)系統(tǒng),而沈墨的代碼修改,只是一個巧合,或者說是一個煙霧彈。
我立即給韓立打了電話。
「韓總監(jiān),我發(fā)現(xiàn)了一些新情況,需要立即跟您匯報?!?/p>
「什么情況?」韓立的聲音里透著緊張。
「系統(tǒng)崩潰可能不是代碼問題,而是遭到了外部攻擊?!刮液喴卣f明了我的發(fā)現(xiàn)。
電話那頭沉默了幾秒鐘。
「陳工,這件事太重要了。我現(xiàn)在就去公司,您能過來一趟嗎?」
「好,我馬上過去?!?/p>
我掛了電話,迅速換好衣服,拿起筆記本電腦就往外走。在電梯里,我的腦子飛快地轉(zhuǎn)動著。如果真的是外部攻擊,那攻擊者的目的是什么?僅僅是為了破壞生產(chǎn)?還是有更深層次的目的?
出租車把我送到公司門口時,已經(jīng)是晚上八點(diǎn)半了。韓立在門口等著我,臉色凝重。
「陳工,白總也來了,在會議室等我們?!?/p>
白梓涵?她這么晚還在公司?
16
我們快步走進(jìn)公司大樓,來到三樓的會議室。推開門,白梓涵正坐在會議桌前,旁邊還有兩個我不認(rèn)識的人。
「陳工,這兩位是公司的信息安全顧問?!拱阻骱榻B道。
我點(diǎn)了點(diǎn)頭,坐了下來。然后把我發(fā)現(xiàn)的情況詳細(xì)地說了一遍,并且把日志記錄投影到了屏幕上。
兩位信息安全顧問仔細(xì)查看了日志,臉色也變得嚴(yán)肅起來。
「從日志來看,確實(shí)存在外部攻擊的可能性?!蛊渲幸粋€顧問說道,「而且攻擊者對系統(tǒng)的架構(gòu)非常了解,知道怎么繞過防火墻,直接攻擊主控系統(tǒng)?!?/p>
「這說明什么?」白梓涵問。
「說明攻擊者可能是內(nèi)部人員,或者曾經(jīng)接觸過系統(tǒng)的人?!诡檰栒f道。
會議室里的氣氛變得凝重起來。內(nèi)部人員?這個推斷讓所有人都感到不安。
「陳工,您離開公司之后,還有誰對這套系統(tǒng)很了解?」白梓涵看著我問道。
我想了想:「技術(shù)部應(yīng)該有幾個工程師參與過系統(tǒng)的維護(hù)工作。不過他們對底層架構(gòu)的了解應(yīng)該不如我深入?!?/p>
「會不會是沈墨?」韓立突然說道。
「不太可能?!刮覔u了搖頭,「沈墨今天的反應(yīng)很真實(shí),不像是裝出來的。而且如果他想破壞系統(tǒng),完全可以在修改代碼時直接下手,沒必要用這么復(fù)雜的方式?!?/p>
「那會是誰呢?」白梓涵皺著眉頭。
我看著屏幕上的日志記錄,突然想到了一個可能。
「白總,這個攻擊設(shè)備的MAC地址,能查到是什么設(shè)備嗎?」
信息安全顧問敲了敲鍵盤:「可以查,但需要一點(diǎn)時間。」
「查吧,這可能是突破口?!拱阻骱f道。
17
顧問開始工作,我們在會議室里等著。氣氛很壓抑,大家都在思考這件事背后的真相。
大約過了二十分鐘,顧問抬起頭來:「查到了。這個MAC地址屬于一臺工業(yè)平板電腦,型號是西門子的S7-1200系列?!?/p>
「公司有這種設(shè)備嗎?」白梓涵問韓立。
韓立想了想:「生產(chǎn)線上用的是S7-1500系列,沒有1200?!?/p>
「那這臺設(shè)備是從哪里來的?」我問道。
「根據(jù)日志顯示,這臺設(shè)備第一次出現(xiàn)是在三個月前。當(dāng)時它嘗試連接系統(tǒng),但被防火墻攔截了。之后每隔一段時間就會出現(xiàn)一次,直到上周才成功連接?!诡檰栒f道。
三個月前?我在腦海中快速搜索著可能的線索。三個月前,公司發(fā)生了什么事情?
「韓總監(jiān),三個月前公司有沒有外來人員接觸過生產(chǎn)系統(tǒng)?」我問道。
韓立陷入了沉思:「三個月前??對了!那時候公司接待了一個客戶考察團(tuán),他們參觀了生產(chǎn)車間,還詳細(xì)了解了生產(chǎn)線的技術(shù)參數(shù)?!?/p>
「是哪個客戶?」白梓涵追問道。
「是泰昌集團(tuán),他們想從我們這里采購一套類似的智能生產(chǎn)線。」韓立說道。
泰昌集團(tuán)?這個名字我有印象。他們是明遠(yuǎn)科技的競爭對手,主營業(yè)務(wù)也是精密制造。如果他們能拿到明遠(yuǎn)科技的核心技術(shù),就能在市場上占據(jù)優(yōu)勢。
「白總,我建議立即報警?!刮艺f道,「這已經(jīng)不是簡單的技術(shù)問題了,涉及到商業(yè)竊密和惡意攻擊?!?/p>
白梓涵點(diǎn)了點(diǎn)頭:「你說得對。不過在報警之前,我們需要收集更多的證據(jù)?!?/p>
「還有一個問題。」我說道,「就算確定是泰昌集團(tuán)干的,他們是怎么讓那臺設(shè)備連接到我們的系統(tǒng)的?我們的生產(chǎn)網(wǎng)絡(luò)跟外網(wǎng)是物理隔離的,理論上不可能被遠(yuǎn)程攻擊。」
這個問題讓大家都沉默了。物理隔離的網(wǎng)絡(luò),除非有人在內(nèi)部配合,否則外部設(shè)備根本無法接入。
18
「會不會是參觀時,他們偷偷在車間里放置了設(shè)備?」韓立猜測道。
「不太可能?!刮艺f道,「車間有監(jiān)控,而且那種設(shè)備體積不小,很難隱藏。更重要的是,就算放置了設(shè)備,也需要有人定期維護(hù)和充電。三個月時間,設(shè)備早就沒電了?!?/p>
「那就只有一種可能了。」白梓涵的聲音很冷,「內(nèi)部有人配合?!?/p>
這句話說出來,會議室里的溫度仿佛降低了幾度。大家面面相覷,都不敢相信公司內(nèi)部會有叛徒。
「白總,我建議調(diào)查一下最近三個月接觸過生產(chǎn)系統(tǒng)的所有人員。」顧問說道。
「好,韓立,你把名單整理出來?!拱阻骱愿赖?。
韓立點(diǎn)了點(diǎn)頭,掏出手機(jī)開始查詢。
我坐在椅子上,腦海中不斷回放著今天看到的各種細(xì)節(jié)。突然,一個場景閃過我的腦海。今天在車間的時候,我注意到主控柜旁邊有一個工具箱,工具箱上有新的劃痕。
當(dāng)時我沒在意,現(xiàn)在想來,那個工具箱的位置有些奇怪。它放在主控柜的旁邊,但車間的工具通常都放在指定的工具間,不會隨意擺放。
「韓總監(jiān),車間主控柜旁邊的那個工具箱是誰的?」我突然問道。
韓立愣了一下:「工具箱?我沒注意。車間的工具箱都是維修工在用,具體是誰的我不清楚?!?/p>
「我想再去車間看看?!刮艺玖似饋?。
「現(xiàn)在?」韓立看了看表,已經(jīng)快九點(diǎn)了。
「對,現(xiàn)在?!?/p>
白梓涵看著我,眼神里閃過一絲銳利:「陳工,你是不是發(fā)現(xiàn)了什么?」
「只是一個猜測,需要驗(yàn)證一下?!刮艺f道。
「那走吧,一起去?!拱阻骱舱玖似饋?。
19
我們一行人來到車間。夜晚的車間很安靜,只有應(yīng)急照明燈發(fā)出微弱的光。我徑直走向主控柜,那個工具箱還在原來的位置。
我蹲下來仔細(xì)檢查工具箱。箱子是普通的金屬工具箱,表面有些磨損,但有一處劃痕很新,顯然是最近才弄上去的。
我打開工具箱,里面整齊地擺放著各種工具。扳手、螺絲刀、電工刀,都是車間常用的東西。但在工具箱的底部,我發(fā)現(xiàn)了一塊凸起。
我把工具都拿出來,仔細(xì)查看箱底。那塊凸起的下面是雙層結(jié)構(gòu),中間有個夾層。我用電工刀撬開夾層,一個巴掌大小的黑色設(shè)備出現(xiàn)在眼前。
「這是什么?」韓立湊過來問。
我拿起那個設(shè)備,仔細(xì)觀察。這是一個無線網(wǎng)橋設(shè)備,用于在兩個網(wǎng)絡(luò)之間建立連接。設(shè)備的側(cè)面有個小型天線,背面有個SIM卡槽。
「找到了?!刮艺f道,「這就是攻擊者用來接入系統(tǒng)的設(shè)備。」
白梓涵接過設(shè)備,臉色鐵青:「這東西是誰放在這里的?」
「從位置來看,只有能接觸到主控柜的人才有機(jī)會放置這個設(shè)備。」我說道,「韓總監(jiān),最近有哪些人維修過主控柜?」
韓立想了想:「應(yīng)該是維修組的工人。他們每周都會對設(shè)備做常規(guī)檢查?!?/p>
「把維修記錄調(diào)出來?!拱阻骱畹?。
韓立立即打電話讓人把維修記錄發(fā)過來。幾分鐘后,一份詳細(xì)的維修記錄表發(fā)到了他的郵箱。
「最近一次維修是在上周五,維修人員是??」韓立看著記錄,聲音突然卡住了。
「是誰?」白梓涵追問。