Linux內核的Meltdown和Spectre漏洞修補情況+Python 2.7 “退休”倒計時【馬哥教育早報-178期】
2018年01月08日 星期一
【馬哥教育新聞快報178期】
導讀:Linux內核的Meltdown和Spectre漏洞修補情況+Python 2.7 “退休”倒計時
每日一句
芝蘭生于幽林,不以無人而不芳;君子修道立德,不為窮困而改節。
早報內容
0.Linux內核的Meltdown和Spectre漏洞修補情況
穩定版內核維護者 Greg Kroah-Hartman 釋出了更新 4.14.12,4.9.75 和 4.4.110,主要是將 Meltdown 和 Spectre 修補補丁移植到穩定內核分支,他隨后在個人博客上介紹了 Meltdown 和 Spectre 的內核修補情況。Kroah-Hartman 稱大部分發行版都已經打了補丁,但如果用戶使用內核版本不是 4.4、4.9、4.14 或沒有發行版支持,那么用戶只能不走運了。
然而相比修補 Meltdown 和 Spectre 漏洞,用戶目前使用的內核顯然還包含了數以百計的其它漏洞,用戶需要擔心的不是 Meltdown 和 Spectre,而是更迫切的其它安全漏洞。
他建議用戶及時更新系統。對于廣大的 Android 用戶來說,新的漏洞真的不是什么大問題。
1.Ubuntu 17.10 將于 1 月 11 日“重新”發布 修復“變磚”問題
Canonical 上個月從 Ubuntu 的官方網站臨時 關閉 了 Ubuntu 17.10 的下載通道,并留下通知:
由于在 某些筆記本電腦(主要為聯想)上出現 BIOS 固件問題, 導致筆記本電腦無法啟動,目前不推薦下載 Ubuntu 17.10 。待問題解決后,再重新開放。
現在,Canonical 宣布將計劃于 1 月 11 日發布新的 Ubuntu 17.10(Artful Aardvark) ISO 鏡像,還包括 Kubuntu,Xubuntu,Lubuntu,Ubuntu MATE,Ubuntu Kylin,Ubuntu Studio 和 Ubuntu Budgie 在內的所有官方版本的 ISO 鏡像。
2.Python 2.7 “退休”倒計時 預計在 2020 年將不再提供維護
Python 發布了一個 網站 以對 Python 2.7 的“退休”進行倒計時。可以看到 Python 2.7 預計將于兩年后退休。
Python 2.7 是 2.x 系列的最后一個版本,它的繼承者 Python 3.0 在 2008 年 12 月發布,但不兼容 2.x 系列,3.0 的許多特性和語法向后移植到了 2.6 和 2.7。2.7 的支持時間將最少為 10 年,2020 年前會一直提供 bug 修正。
3.英特爾因 Meltdown 與 Spectre 漏洞面臨起訴
Intel 本周爆出的 Meltdown 與 Spectre 安全漏洞還未徹底解決,就已經有不少官司找上門了。據 Gizmodo 報道,目前在美國已有三起針對上述漏洞的集體訴訟。英特爾被指在得知漏洞后數月都隱瞞不報,而且對應的補丁程序還會拖累設備的性能。按照 The Register 的說法,性能的降幅大約在 5% 到 30% 之間,但英特爾則表示影響「跟系統負載有很大關系」,并稱普通用戶并不會注意到有太大的區別(望向最近有類似煩惱的 Apple)。
考慮到 Meltdown 與 Spectre 漏洞被正式公開的時間并不久,接下來英特爾很有可能會面臨更多的訴訟呢。
4.加密貨幣挖礦病毒通過SSH傳播
F5 Networks發現,Linux加密挖礦病毒利用SSH和Python進行傳播,使得傳播過程難以察覺。
這個被稱為PyCryptoMiner的挖礦病毒會用Pastebin接收新的命令。現在作者還加入了新功能,它會掃描存在漏洞的JBoss服務器(利用CVE-2017-12149)。
據估計,截至12月底,該僵尸網絡的收入約為46,000美元,收入都來自挖到的門羅幣。
PyCryptoMiner并不是針對Linux系統的唯一的僵尸網絡,但是由于它基于腳本語言更容易混淆。此外,F5的研究人員發現它是通過一個合法程序執行的。
【每日一個知識點】
【每日一個Linux知識點第035期】
問題:當文件系統受到破壞時,如何檢查和修復系統?
答案:成功修復文件系統的前提是要有兩個以上的主文件系統,并保證在修復之前首先卸載將被修復的文件系統。
使用命令fsck對受到破壞的文件系統進行修復。fsck檢查文件系統分為5步,每一步檢查系統不同部分的連接特性并對上一步進行驗證和修改。在執行 fsck命令時,檢查首先從超級塊開始,然后是分配的磁盤塊、路徑名、目錄的連接性、鏈接數目以及空閑塊鏈表、i-node。
【每日一個Python知識點第035期】
問題:請解釋Python下多線程的限制以及多進程中傳遞參數的方式,以及多進程與多線程的區別。
答案:(1)Python下多線程的限制以及多進程中傳遞參數的方式
Python多線程有個全局解釋器鎖(global interpreter lock),這個鎖的意思是任一時間只能有一個線程使用解釋器,跟單cpu跑多個程序一個意思,大家都是輪著用的,這叫“并發”,不是“并行”。
多進程間共享數據,可以使用 multiprocessing.Value 和 multiprocessing.Array
(2)Python多線程與多進程的區別
在UNIX平臺上,當某個進程終結之后,該進程需要被其父進程調用wait,否則進程成為僵尸進程(Zombie)。所以,有必要對每個Process對象調用join()方法 (實際上等同于wait)。對于多線程來說,由于只有一個進程,所以不存在此必要性。
多進程應該避免共享資源。在多線程中,我們可以比較容易地共享資源,比如使用全局變量或者傳遞參數。在多進程情況下,由于每個進程有自己獨立的內存空間,以上方法并不合適。此時我們可以通過共享內存和Manager的方法來共享資源。但這樣做提高了程序的復雜度,并因為同步的需要而降低了程序的效率。
【近期開班】
Linux面授班28期:2018年01月08號(今日)
Linux網絡班29期:2018年02月10號(網絡)
Python面授班10期:2018年03月05號(北京)
Python網絡班09期:騰訊課堂隨到隨學(網絡)