程序員幫捉 Bug 卻被判罰 2.3 萬元,一切隻因幫客戶檢查出一個恐洩露 700000 條數據的漏洞
作爲一名 IT 自由從業者,本是受客戶委托去檢查軟件安全問題,卻最終被定性爲黑客,還成爲了被告,甚至遭到了處罰,這究竟是怎麽一回事?
1 月 17 日,德國于利希地方法院宣布了一項最新判決結果:
" 一位獨立程序員幫助一家零售公司檢查軟件問題時,發現此軟件存在一個導緻近 70 萬買家數據會暴露的重大漏洞。
爲此,該名程序員聯系了開發這款軟件的公司,卻遭軟件開發商矢口否認,随後他與一名科技博主将這一漏洞公之于衆,受到了廣泛的關注。令人沒想到的是,後來軟件開發商将相關軟件進行了下線處理後,也向警方舉報了該名程序員,并稱之爲‘黑客’。
由于這種情況,這名程序員現因未經授權訪問第三方計算機系統和刺探數據(根據《德國刑法典》(StGB)中所謂的黑客條款 202a 應受到懲罰)而被處以 3,000 歐元(約 2.3 萬元)的罰款,同時還必須支付訴訟費用。"
身份的快速轉換,這樣的處罰,不僅讓當事人一臉懵,也讓不少開發者感到不解。
前情:一則 70 萬條數據洩露事件引出的真相
最初這一事件發生在 2021 年 6 月,彼時有不少外媒報道稱,德國一家名爲 Modern Solution 公司發生嚴重的數據洩露事件,其軟件存在的安全漏洞導緻 70 萬終端用戶受到了影響。
根據資料顯示,德國 Kaufland 超市、電子商務公司 Otto、互聯網金融企業 Check24 和比價網站 Idealo 等公司爲小型零售商提供了一個在線平台,方便小型零售商可以在這些網站上提供商品并進行售賣。
作爲一家接口服務商,Modern Solution 幫助不想或不能直接連接到平台本身的零售商,并在此過程中将平台的界面與想要通過在線市場銷售商品的零售商各自的商品管理系統連接起來。
簡單來看,Modern Solution 幫助這些小的零售商将其商品管理系統連接到 Otto、Kaufland 和 Check24 等大公司的在線市場上,同時也保護平台上這些客戶的數據。
然而彼時外媒披露的這一漏洞,能夠查看自 2018 年夏季以來該平台上的所有交易信息,即誰從哪個零售商、何時購買了什麽商品,包括姓名、地址,乃至銀行卡等。
洩露事件爆出後,也引起了當地市場的廣泛關注,在查證之後,幾個大型公司接連出面安撫用戶,其中互聯網金融企業 Check24 表示,作爲安全措施的一部分,他們隻使用電子郵件别名,因此不會傳遞銀行詳細信息或實際電子郵件地址等個人信息。因此,該公司的客戶不會受到數據洩露的影響。
緊接着,追責問題,衆人也發現數據洩露是發生在服務提供商 Modern Solution 身上,而探其背後,揭曉這一漏洞的是一名程序員。
從拿錢查 Bug 的第三方程序員,到變成了非法訪問後台的黑客
2021 年 6 月,一家零售商發現他使用的軟件産生過多日志消息,填充了整個數據庫,于是便花錢聘請這名程序員來幫他們解決問題,也讓他有權查看安裝在服務器上的軟件。
起初這名程序員在排查問題時以爲,這家零售商服務器上的軟件連接的是 Modern Solution 公司的一個數據庫,而這個數據庫隻爲這一家零售商服務,隻包含客戶一家的數據。
然而不久之後,該程序員發現了不對勁,因爲這一數據庫包含的信息要多得多,而他随即也發現 Modern Solution 公司提供的軟件通過互聯網與其公司在 Gladbeck 城市的服務器建立了 MySQL 連接。
後來他驚覺,數據庫中包含了 Modern Solution 公司所有其他客戶的數據以及其網上商店所有最終客戶的數據。
不過,據後來這名程序員的代理律師稱," 當他發現自己可以訪問其他客戶的數據時,他立即斷開了數據庫連接。"
而回歸當時,在發現問題之後,這位程序員第一時間找到了自己熟知的電子商務界知名博主 Mark Steier 簡單地透露了自己的發現。Mark Steier 也建議這名程序員首先向 Modern Solution 公司報告他的發現。
第二天早上,這名程序員向 Modern Solution 報告了該漏洞,并提醒對方應該在三天内修複這個漏洞。
不過,後來程序員向媒體透露,他被粗暴地拒絕了,Modern Solution 公司否認存在漏洞。另一邊,他發現 Modern Solution 将存在漏洞的系統下線處理。
既然漏洞已經修複,程序員和這位博主決定迅速向公衆通報。博主 Steier 在發稿前,再次要求 Modern Solution 公司發表聲明,但遭到拒絕。
所以,在 2021 年 6 月 23 日,Mark Steier 發表了關于一篇主題爲《警告:JTL 合作夥伴 Modern Solution GmbH & Co. KG 數據洩露》(https://wortfilter.de/warnung-datenleck-beim-jtl-partner-modern-solution-gmbh-co-kg/)的文章,詳解了漏洞的詳情。
尴尬的披露時間
由于在這篇文章中,提到了超過 700,000 名終端客戶受到影響,毫無疑問,此案吸引了公衆的關注。
此外,有些尴尬的是,這名程序員和博主 Steier 在向制造商和相關數據保護機構報告數據洩漏和漏洞的當天就向公衆公布了消息,也引發了不小的争論。
在很多人看來,有經驗的安全研究人員通常會給公司更多的時間來對此事發表評論。
然而,如果 Modern Solution 公司真的粗暴地向這位程序員否認了漏洞,那麽也可以理解爲他們并不希望得到建設性的合作。
雖然披露的時間過于倉促,但是在不少外媒看來,技術上講,這名程序員和科技博主已經遵守了負責任地披露信息的基本規則:在他們向公衆通報時,漏洞顯然已經修複。
不過,Modern Solution 公司并不這麽認爲,他們也在當天被動地發布了一份有關《數據洩露報告》的聲明,分享了他們正在調查這一事件,同時将該程序員描述爲 " 道德黑客 "。
https://wortfilter.de/wp-content/uploads/2021/06/moso-1.pdf
随後 Modern Solution 以程序員刺探數據、竊取數據和違反聯邦數據保護法等罪名向警局報了案。
2021 年 9 月 15 日,德國亞琛警方第 22 刑事調查局的一個搜查小組來到這名程序員的家裏。據該程序員稱,警察假裝是包裹快遞員,進入了他的公寓,并将他按在牆上,還沒收了一台個人電腦、五台筆記本電腦、一部手機和五個外部存儲設備,這是該程序員的全部工作設備。
根據調查文件,Modern Solutions 告訴警方,程序員隻有在掌握内幕知識的情況下才能訪問公司的系統。而且他們發現該程序員曾在位于 H ü ckelhoven 的 JTL 公司工作過。JTL 公司生産商品管理系統,Modern Solution 公司的軟件與零售商方面的管理系統相連接。當時,程序員與 JTL 公司的雇傭關系因沖突而終止。
根據 Modern Solution 公司自己提供的信息,該公司專門從事安裝和托管 JTL 公司所謂的 WaWi 系統。Modern Solution 公司的代表告訴警方,這名程序員利用他在 JTL 公司獲得的内幕消息獲取了密碼,并通過該密碼訪問了 Modern Solution 公司的數據。
此外,Modern Solution 公司還稱,軟件的編譯提供了有效的保護,可以防止諸如讀取密碼字符串之類的攻擊。同時,Modern Solution 認爲,該程序員想以公司競争對手的身份出現,因此試圖傷害公司。
如果按照這種解釋,倘若這名程序員通過反編譯等操作方式獲取密碼,訪問了數據庫,那麽可能會導緻刑事責任。
然而,不少 IT 專家們懷疑編譯源代碼是否能有效保護密碼。在研究過程中,外媒 heise online 使用普通工具從 Modern Solution 的軟件中讀取了類似密碼的字符串,該軟件可在互聯網上免費下載。
對此,這名程序員表示自己受一家零售商的邀請,本來隻是來幫助解決問題的,偶然間發現 Modern Solution 軟件的數據交換是通過 SQL 連接進行的,可以用純文本查看,而且訪問數據被牢牢固定在軟件中。這意味着,任何人隻要獲得一份原則上免費提供的軟件拷貝,就可以訪問通過 Modern Solution 系統進行購買的所有客戶的數據。
爲期三年的調查,現在有了結論
各有各的說法。在被指控期間,檢察官花了大量時間試圖證明被告程序員爲了獲取數據庫連接密碼而反編譯了 Modern Solution 軟件的程序代碼。
正如上文所述,該程序員在訴訟書中指出,他隻是用文本編輯器查看了有關文件(MSConnect.exe),從而讀出了純文本的數據庫密碼。他是在他先前觀察到的 MySQL 連接的其他已知連接數據的地方發現這一點的。
幾經調查,法官也無法證明被告是通過反編譯獲得密碼的。在審判結束時,實則這一點對判決也沒有什麽影響。因爲主審法官指出,僅憑 Modern Solution 軟件設置了連接密碼這一事實,就意味着該程序員查看程序的原始數據以及随後與 Modern Solution 的數據庫連接,就構成了黑客刑事犯罪。
最終,這名程序員現因未經授權訪問第三方計算機系統和刺探數據(根據《德國刑法典》(StGB)中所謂的黑客條款 202a 應受到懲罰)而被處以 3,000 歐元(約 2.3 萬元)的罰款,同時還必須支付訴訟費用。
不少開發者爲這名程序員叫冤
當然,判決尚未最終确定。雙方都有一周的時間對刑事判決提出上訴。在這種情況下,訴訟程序将由地區法院重新審理。
然而,對于這樣的初步判罰,不少開發者也覺得這名程序員實屬冤枉:
這名程序員的犯罪似乎是 " 使用 " 暴露的數據庫憑據登錄第三方數據庫服務器。而不是他向外界暴露了憑據,實際上隻是利用他們進行了探索。
如果不進入系統四處查看,基本上不可能知道系統是什麽。這就好比在一棟大樓裏拿到一張安全檢查的鑰匙卡。你會認爲它打開的任何一扇門都是你可以進入的房間。如果保安發現你進入了一個你不該進入的房間,那是你的錯嗎?還是誰給了你一張權限級别錯誤的卡?還有,如果你打開一扇門,朝裏面看了一眼,馬上意識到你不該在那裏,然後向保安報告,這種情況又如何?你應該受到懲罰嗎?
這更像是你拿到了一張寫着 "20 樓 " 的大樓的鑰匙卡,但随後發現它可以進入所有樓層,并告訴大樓保安。他們所做的隻是 " 打開 " 這裏的 " 電梯門 ",暴露了他們錯誤進入的通道。聽起來他們并沒有窺探其他客戶的數據或下載任何東西。
這就像給某人一本你寫的書來校對,而你的密碼無意中出現在文本中。他們用它來登錄,然後告訴你。當然,他們不應該登錄,但感覺不應該受到刑事指控。
看來這些法律需要重寫。意圖很重要,而且這個 " 黑客 " 似乎并沒有試圖造成任何傷害。公司被抓了小辮子,他們想懲罰這個揭露此事的人。