CVE 2020-0601 相關討論 - 資安
By Kristin
at 2020-01-15T18:02
at 2020-01-15T18:02
Table of Contents
昨天凌晨到今天有一個 CVE 狂刷我的 twitter ,很多人瘋狂轉貼想必問題十分嚴重,於
是看了下一些分析和公告,大概有個底後想說分享一下,順便賺 P 幣 XD
因為 M$ 的公告被 taviso 吐槽說 NSA 寫的公告比 M$ 的有用,所以我直接看了 NSA 的
公告,這個問題好像也是 NSA 爆出來的
NSA CyberSecurity Advisory
https://media.defense.gov/2020/Jan/14/2002234275/-1/-1/0/
CSA-WINDOWS-10-CRYPT-LIB-20190114.PDF
要把 CSA 那邊拼接到上面的 url 上才看的到 (url 太長了QQ)
內容我大概簡短的摘要下:
該漏洞編號 cve 2020 0601 ,問題發生在密碼學相關功能元件上 (根據其他篇的說法好像
是出在 CRYPT32.DLL 上,下面補上來源),根據幾篇文章來看應該是橢圓曲線驗證的地方
出差錯導致的
該漏洞主要破壞了 windows 驗證憑證的方法和允許 remote code execution 以及把惡意
程式碼當作可信任並接收下來
受影響的部分包括:
HTTPS network connections
Signed files and emails
Signed executable code launched as user-mode process
另外被影響的作業系統版本包括 Windows 10, Windows server 2016/2019, 任何依賴
windows 信任機制的應用程式
建議的措施:
立刻打上補丁
企業方若不能將所有機器打上補丁則應優先對關鍵和廣泛使用的 services 打上
補丁,像是: windows based web appliances, web servers, 任何用到 tls 驗證的
proxy, domain controllers, DNS server, update server, VPN server,
IPsec negotiation
另外對優先考慮以下具高風險的端點: 直接對外連接的端點、被特權用戶平凡使
用的端點
使用 tls 檢查的 proxy 對有漏洞的端點
用 wireshark parse 和 extract 憑證
用 openssl 和 windows certutil 對憑證進行深度分析、檢查有無惡意的特性
NSA 提供了幾個方法來驗證 X509 憑證:
$ certutil -asn <certificate_filename>
$ openssl asn1parse -inform DER -in <certificate_filename> -i -dump
(以下的內容因為有些不是很了解,就姑且翻譯一下丟上來)
上述的命令 parse 和印出特定 DER 編碼憑證的 ASN.1 物件,檢查這些結果有無橢圓曲線
的性質,若憑證具有明確的 curve OID 值可以被判定為良性,舉例來說 NISTP384 中
的 curve OID value 是 1.3.132.0.34 。若憑證有明確定義與標準相吻合的參數則可以視
為良性
可以透過以下命令列出已註冊的橢圓曲線和其參數:
$ certutil -displayEccCurve
$ certutil -displayEccCurve <curve_name>
openssl 可以透過以下命列看到編譯在 openssl 內的標準曲線:
$ openssl ecparam -list_curves
$ openssl ecparam -name <curve_name> -param_enc explicit -text
若有憑證包含明確定義的橢圓曲線參數但參數跟標準曲線只有「部分吻合」的話應被視為可
疑,特別是有可信任的憑證的公鑰的憑證。
下面這篇是在 reddit 上看到的,有人分享該漏洞的可能發生原因
https://keychest.net/stories/massive-ms-windows-bug-by-nsa-how-it-works-maybe
因為對密碼學不是說非常熟怕誤人子弟,大家有興趣的就自己上去看看吧,作者也說可能
是根本不同的成因,權當作參考。
另外這篇最下面 DETECT 的部分有檢查 CRYPT32.DLL 有無更新的方法,可以去看一下,其
他內容跟 NSA advisory 差不多就不貼了
https://gist.github.com/SwitHak/62fa7f8df378cae3a459670e3a18742d
再補上幾個參考資料:
M$ 的 advisory:
https://portal.msrc.microsoft.com/en-US/security-guidance/advisory/CVE-2020-0601
M$ 的 defender ATP threat and vulnerability management 可以偵測出該漏洞並阻止:
https://twitter.com/djteller/status/1217347590301396992?s=20
來自 @jovi0608 的圖片解釋(日文的,不過大多是漢字和公式):
https://pbs.twimg.com/media/EOUBXENUEAARsy1?format=png&name=small
另一份詳細的原理和成因
https://medium.com/zengo/win10-crypto-vulnerability-cheating-in-elliptic-curve-
billiards-2-69b45f2dcab6
打算等等看這篇 ><
剛剛發現有人放出 poc
https://github.com/kudelskisecurity/chainoffools
--
是看了下一些分析和公告,大概有個底後想說分享一下,順便賺 P 幣 XD
因為 M$ 的公告被 taviso 吐槽說 NSA 寫的公告比 M$ 的有用,所以我直接看了 NSA 的
公告,這個問題好像也是 NSA 爆出來的
NSA CyberSecurity Advisory
https://media.defense.gov/2020/Jan/14/2002234275/-1/-1/0/
CSA-WINDOWS-10-CRYPT-LIB-20190114.PDF
要把 CSA 那邊拼接到上面的 url 上才看的到 (url 太長了QQ)
內容我大概簡短的摘要下:
該漏洞編號 cve 2020 0601 ,問題發生在密碼學相關功能元件上 (根據其他篇的說法好像
是出在 CRYPT32.DLL 上,下面補上來源),根據幾篇文章來看應該是橢圓曲線驗證的地方
出差錯導致的
該漏洞主要破壞了 windows 驗證憑證的方法和允許 remote code execution 以及把惡意
程式碼當作可信任並接收下來
受影響的部分包括:
HTTPS network connections
Signed files and emails
Signed executable code launched as user-mode process
另外被影響的作業系統版本包括 Windows 10, Windows server 2016/2019, 任何依賴
windows 信任機制的應用程式
建議的措施:
立刻打上補丁
企業方若不能將所有機器打上補丁則應優先對關鍵和廣泛使用的 services 打上
補丁,像是: windows based web appliances, web servers, 任何用到 tls 驗證的
proxy, domain controllers, DNS server, update server, VPN server,
IPsec negotiation
另外對優先考慮以下具高風險的端點: 直接對外連接的端點、被特權用戶平凡使
用的端點
使用 tls 檢查的 proxy 對有漏洞的端點
用 wireshark parse 和 extract 憑證
用 openssl 和 windows certutil 對憑證進行深度分析、檢查有無惡意的特性
NSA 提供了幾個方法來驗證 X509 憑證:
$ certutil -asn <certificate_filename>
$ openssl asn1parse -inform DER -in <certificate_filename> -i -dump
(以下的內容因為有些不是很了解,就姑且翻譯一下丟上來)
上述的命令 parse 和印出特定 DER 編碼憑證的 ASN.1 物件,檢查這些結果有無橢圓曲線
的性質,若憑證具有明確的 curve OID 值可以被判定為良性,舉例來說 NISTP384 中
的 curve OID value 是 1.3.132.0.34 。若憑證有明確定義與標準相吻合的參數則可以視
為良性
可以透過以下命令列出已註冊的橢圓曲線和其參數:
$ certutil -displayEccCurve
$ certutil -displayEccCurve <curve_name>
openssl 可以透過以下命列看到編譯在 openssl 內的標準曲線:
$ openssl ecparam -list_curves
$ openssl ecparam -name <curve_name> -param_enc explicit -text
若有憑證包含明確定義的橢圓曲線參數但參數跟標準曲線只有「部分吻合」的話應被視為可
疑,特別是有可信任的憑證的公鑰的憑證。
下面這篇是在 reddit 上看到的,有人分享該漏洞的可能發生原因
https://keychest.net/stories/massive-ms-windows-bug-by-nsa-how-it-works-maybe
因為對密碼學不是說非常熟怕誤人子弟,大家有興趣的就自己上去看看吧,作者也說可能
是根本不同的成因,權當作參考。
另外這篇最下面 DETECT 的部分有檢查 CRYPT32.DLL 有無更新的方法,可以去看一下,其
他內容跟 NSA advisory 差不多就不貼了
https://gist.github.com/SwitHak/62fa7f8df378cae3a459670e3a18742d
再補上幾個參考資料:
M$ 的 advisory:
https://portal.msrc.microsoft.com/en-US/security-guidance/advisory/CVE-2020-0601
M$ 的 defender ATP threat and vulnerability management 可以偵測出該漏洞並阻止:
https://twitter.com/djteller/status/1217347590301396992?s=20
來自 @jovi0608 的圖片解釋(日文的,不過大多是漢字和公式):
https://pbs.twimg.com/media/EOUBXENUEAARsy1?format=png&name=small
另一份詳細的原理和成因
https://medium.com/zengo/win10-crypto-vulnerability-cheating-in-elliptic-curve-
billiards-2-69b45f2dcab6
打算等等看這篇 ><
剛剛發現有人放出 poc
https://github.com/kudelskisecurity/chainoffools
--
Tags:
資安
All Comments
By Todd Johnson
at 2020-01-19T08:49
at 2020-01-19T08:49
By Dora
at 2020-01-22T23:36
at 2020-01-22T23:36
Related Posts
對稱密碼學跟非對稱密碼學
By Bethany
at 2020-01-13T23:07
at 2020-01-13T23:07
公司資安事件造成的影響
By Ula
at 2020-01-07T17:31
at 2020-01-07T17:31
2020 我想問:這網站是否有毒
By Todd Johnson
at 2020-01-01T14:50
at 2020-01-01T14:50
新型的釣魚信件?
By Ina
at 2019-12-29T00:15
at 2019-12-29T00:15
北韓駭客Lazarus開發出瞄準Linux的木馬程式
By Thomas
at 2019-12-28T19:52
at 2019-12-28T19:52