成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

照這樣下去,“千年蟲”還得再來十遍

新聞 應用安全
在 21 年前世紀之交,全球的計算機系統和互聯網曾經出過一個重大事件:千年蟲。

 

在 21 年前世紀之交,全球的計算機系統和互聯網曾經出過一個重大事件:千年蟲。

  當時的計算機系統處理年份的方式都是兩位數(如 1998 年會被系統縮略成 98),而 2000 年在老系統里仍然以 00 顯示,則會被系統當成 1900 年。

  然而誰都沒想到的是,就在前幾天,”千年蟲“又重演了……

發生了什么?

  首先,幸運的是,這次的事故規模,并沒有千年蟲那次那么大。目前已知受到影響的,只有采用了微軟 Exchange Server2016 和 2019 版本的企業本地郵件服務器。

  因為全球很多企業內部的電子郵件,采用的都是自主搭建的系統(而非基于 Gmail、網易、阿里云等云端郵件的方案),而微軟的 Exchange 服務器 (Microsoft Exchange Server) 則是很多企業用戶都在用的本地郵件系統。

  然而在 2021 年 12 月 31 日——去年的最后一天,在 IT 人員都已經放假的時候,微軟突然推送了一個全新的 Exchange Server 版本,直接把所有企業客戶的電子郵件系統都給搞宕機了,大量郵件積壓在發送序列當中,卻無法正常發送和接收。

  錯誤代碼大概是下面這樣的:

  1. Log Name: Application 
  2. Source: FIPFS 
  3.  
  4. Logged: 1/1/2022 1:03:42 AM 
  5.  
  6. Event ID: 5300 
  7.  
  8. Level: Error 
  9.  
  10. Computer: server1.contoso.com 
  11.  
  12. Description: The FIP-FS "Microsoft" Scan Engine failed to load. PID: 23092, Error Code: 0x80004005. Error 
  13.  
  14. Description: Can't convert "2201010001" to long

  一夜之間,大量的 IT 人員在 Reddit 和微軟官方技術社區上大倒苦水。

“這玩意兒是怎么發布出來的?而且還是在新年夜???”

“電話都被打爆了。微軟你弄啥嘞?”

  問題,出在微軟推送的這次更新的版本號上。

  這次的更新,里面包含的電子郵件惡意軟件掃描引擎的版本號是 2201010001,表示的是 202201010001分。

  微軟的產品和系統在表示時間的時候,用的都是這種符號整數。然而,根據微軟自己的開發文檔,其系統能夠接受的 Int32 符號整數的最大值是 2147483647。

  這個最大值的前兩位是21

  也就是說,采用這種整數方式來記錄和表示時間,只能夠正常覆蓋到 2021 年的最后一秒。

  所以,當微軟推送出這個 2201010001 版本的時候,版本數字超過了系統能夠接受的整數最大值,結果就直接把 Exchange Server 郵件系統給搞崩潰了……

  目前,微軟方面已經提供了修復此問題的方法,可以執行 PowerShell 腳本來自動修復,也可以用手動方法修復。修復必須在所有被波及的 Exchange Server 2016 或 2019 版本服務器上執行。

  很多被影響到的公司 IT,在修復過程中也遇到了各種各樣的問題。總的來說,這次微軟送的這個新年大禮包,讓大家整個新年都沒過好……

  在微軟官方技術論壇上,一位用戶發出了靈魂拷問:誰會在 12 月 31 日推送生產環境更新啊?

千年蟲重演,原因依然很蠢

  這次微軟郵件服務器的 bug,以及其它公司/產品發生的類似的日期時間處理錯誤,一起被命名為 Y2K22(也即 Year 2022 的縮寫)。

  為什么這樣命名?正是因為,導致這些 bug 出現的問題,和 21 年前的千年蟲 (Y2K bug),幾乎一模一樣。

  文章開始提到,千年蟲的出現,是因為當時一些相對比較古老的計算機系統,在處理年份的時候會采用兩位數簡寫。

  當時的普通人壓根想不到,新千年的到來會讓計算機系統出故障——唯一有可能預知這種情況發生的,也就只有程序員了。

  而當千年蟲事件即將發生的時候,那些已經投入使用十年甚至 20 年的系統,背后的 COBOL 程序員(大多已經或者快要退休了),又被請出山來修復他們當年“埋”下的這些漏洞……

  在當時,有兩種修復的思路:

  1)全盤重寫所有系統的代碼,稱為“expansion”;

  2)打個快速的補丁,讓計算機能夠將從 00 到 20 的數字,正確識別為 2000 年到 2020 年——這種方式也被稱為“windowing”.

  具體來說,這個補丁讓計算機系統將 1970 年 1 月 1 日 0 時 0 秒(也即程序員都非常熟悉的 Unix 時間戳)作為百年“時間窗口”的中間點,也即從 1920 年到 2020 年的任何一個時間點,在計算機系統里都可采用其到 Unix 時間戳的距離作為表示方法。

  “高性能計算機新聞網”的一篇發布于 1999 年的報道顯示,在當時,大約有八成的系統最后都是用第二種快速補丁的方式修復的。相比一勞永逸的全盤重寫,快速補丁的方式的成本優勢非常明顯,然而即便如此,全世界的預估修復成本加起來也高達 3000 億美元……

  當面臨一個足夠大的問題的時候,相信一般人的正常反應,都是“這個問題遲早得徹底解決”,并且也會傾向于一勞永逸地解決問題。

  然而在當時,人們沒有選擇一勞永逸,而是選擇了打補丁,還有另一層考慮,也即:這些系統已經足夠老了,在未來的 20 年里總是要還的,所以沒必要一勞永逸的重寫了,反正到時候換新系統的時候,把日期時間的問題搞好,不就行了。

  對此,倫敦經濟學院的 Dylan Mulvin 教授表示,“Windowing 即使在當時也是所有可選方案中最差的一個,它就是把皮球踢給后人的做法。

  果不其然,當新系統替代舊系統的時候,當年的編程思路,仍然被繼承了下來了……

  事實上,到了 2020 年的時候,一些千年蟲修復過的系統,以及新安裝的系統,都又一次出現了和千年蟲幾乎一樣的問題:Y2K20 bug.

  比如,在當時有些用戶驚訝地發現,他們從寬帶公司收到的賬單顯示日期為 1920 年:

  游戲公司 2K 開發的摔角游戲《WWE 2K20》,也在游戲標題里這一年的第一天的第一秒就宕機了:

  當時紐約市的很多停車自動繳費機,也因為系統時間錯誤而觸發了防火墻機制,無法接受信用卡支付:

  結果你猜怎么著?這些故障,很快就被修復了。

  至于他們采用了哪種思路——是一勞永逸,還是快速補丁——你應該也能猜出來了……

  如果說人類一定有什么做不到的話,那一定是從歷史中吸取教訓。

  緊接著,Y2K21 bug 又來了。比如,去年美國氣象局 (NWS) 的官方數據庫出現了重大誤差,對外提供的接口的數據晚了足足一天,導致很多第三方機構的天氣數據都出現了錯誤,影響了民航、海洋捕撈、畜牧養殖等諸多行業的正常運作。

  也有一些普通用戶發現,自己的電腦夢回 1921 年了:

  再然后,2021 年也翻篇了,Y2K22 bug 也毫無懸念地按時來到了……

  除了這次微軟 Exchange Server 出了故障之外,一些本田車主也發現,他們的車每天早上啟動都會把時間自動跳回到 2002 年。

  汽車專業人士調查分析發現,本田車載系統的問題原因和微軟一樣,都是出在 Int32 整數上,開頭 22 的字符串無法被讀取,在本田這里就變成時間回退到 2002 年了……從 2004 到 2012 年的上百款車型都有較高幾率遇到此問題。

  在公開場合,本田公司發言人表示,目前還在調查這個問題的具體原因。不過有車友在論壇上發帖表示,本田公司派人聯系他們,說這個問題會在今年 8 月份自行消除……

  在可見的未來,Y2K23, 24, 25... 各種各樣的問題還會陸續發生。

  并且,已經在各種計算機系統中廣泛采用的 Unix 時間戳,還會在 32 位系統中導致一個問題,使得某些軟件在 2038 年 1 月 19 日 3 時 14 分 07 秒后無法工作:

  對于”2038 年問題“,整個行業(特別是硬件壽命極長的嵌入式行業)的應對方式,和 21 年前如出一轍:反正到了 2038 年的時候,應該新系統又換了一茬了吧,到時候再說吧……

  看來,大家根本不想徹底解決”千年蟲“以及其衍生問題。

  可這又是為什么?

“一勞永逸”,不如多勞多得?

  對于千年蟲這樣反復出現的情況,有人開玩笑說是程序員埋的坑

  至少在千年蟲肆虐的時候,那些 COBOL 老古董程序員被請出山來修復問題的時候,就有人質疑:他們是不是當年故意給我們埋的坑啊?

  這種想法有它的道理:程序員的職業生涯是有限的,不是所有人都能升到高管。那么那些平庸的程序員,如何保證在自己臨到退休的時候還能夠被需要?

  埋個只有自己才懂得怎么修的漏洞,也沒什么毛病?20 年一個周期,正好覆蓋從大學畢業到中年不惑……

  當然,實際上,在具體操作中,大多數運作計算機系統的公司,在事故發生的時候,也一定會更傾向于選擇速度快、見效快、成本低的修復方式。

  所以,程序員也不是什么陰謀家,因為他們不是決策者——他們只是在正確的時間,執行了對大家都合適的解決方案而已。

責任編輯:張燕妮 來源: 品玩
相關推薦

2012-07-05 09:56:04

千年蟲閏年蟲閏秒蟲

2012-06-15 13:01:07

云計算SaaSPaaS

2022-01-06 14:36:52

漏洞網絡安全網絡攻擊

2022-01-07 11:46:55

本田謳歌千年蟲漏洞

2012-06-01 13:26:45

千年蟲病毒

2020-01-13 10:23:08

程序員技能開發者

2010-01-04 09:33:19

網絡技術

2022-04-24 16:29:28

千年蟲時間計算機系統

2010-01-12 10:27:56

IPv62012

2021-04-10 10:20:42

黑客攻擊網絡安全

2009-12-22 02:48:23

COBOL語言Grace Hoppe編譯語言

2013-10-11 12:46:05

Linux操作系統

2016-10-28 15:29:53

華為無線城市

2017-01-15 13:42:07

數據中心時間網絡

2017-04-14 13:33:32

政務云華為平臺

2022-10-21 20:45:18

紫光云

2009-02-20 09:02:42

谷歌互聯網溫頓·瑟夫

2015-05-14 11:09:34

微軟Office 365

2019-11-25 17:09:57

中科曙光

2018-01-09 13:45:31

臍橙
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 亚洲视频免费在线 | 日韩在线播放第一页 | 精品欧美乱码久久久久久 | 一区二区三区四区不卡视频 | 国精产品一品二品国精在线观看 | 欧美一区二区三区小说 | 国产精品国产成人国产三级 | 日韩一区二区三区四区五区 | 夜夜草天天草 | 欧美成人精品激情在线观看 | 亚洲情视频| 国产一区二区免费 | 亚洲精品在线免费 | 欧美一区二区三区在线免费观看 | 干一干操一操 | 亚洲综合中文字幕在线观看 | 国产精品视频综合 | 99一区二区 | 天天操天天摸天天爽 | 亚洲人成人一区二区在线观看 | 午夜影院操 | 国产一区二区三区免费 | 日韩欧美精品在线播放 | 91精品久久久久久久久中文字幕 | 超碰成人免费观看 | 国产在线精品一区 | 亚洲午夜一区二区 | 少妇一区二区三区 | 国产欧美一区二区三区久久手机版 | 亚洲国产精品人人爽夜夜爽 | 欧美成人在线免费 | 中文字幕电影在线观看 | 亚洲人人 | 国产女人第一次做爰毛片 | 国产一区在线看 | 久久精品在线 | 欧美日韩一 | 99久久影院 | 高清人人天天夜夜曰狠狠狠狠 | aaaaa毛片 | 色一级|