Mac 上的開發者可能非常熟悉 iTerm2 這款終端應用程序,甚至已經用它取代了 Apple 官方終端應用的地位。但就在今天之前,iTerm2中還存在一個嚴重級別的安全問題——這個問題出現在自動檢查功能上的DNS請求中,可能泄露終端內部分內容。相關的用戶請務必及時升級版本至最新的 3.0.13 版本,并關閉某些設置。
這個功能能夠查詢鼠標懸停在 iTerm2 終端內的文本內容,在 iTerm 3.0.0 版中首次引入。也就是說,用戶懸停在某個“詞匯內容”上的的時候,iTerm2 會自動調查這個“內容”是不是一個有效的URL并自動添加高亮。為了避免通過使用不準確的字符串模式匹配算法創建死鏈接,該功使用了 DNS 請求來確定這個域名是否真實存在。
意外出現:用戶密碼以及 API key 被發至 DNS 服務器上
現在的問題在于——應用這個功能的時候,如果用戶將鼠標懸停在密碼,API密鑰,用戶名或其他敏感內容的時候,這些內容也會不經意地通過DNS請求泄漏。而我們知道,DNS請求是明文通信,意味著任何能夠攔截這些請求的用戶都可以訪問 iTerm終端中經過鼠標懸停的敏感數據。
而如果查看這個版本的發布信息,我們看到 iTerm2 的 3.0.0 版本是在2016年7月4日發布,這意味著在過去一年中,在不知情的情況下,也許許多用戶都將敏感內容泄露給了 DNS 服務器。
iTerm2 開發者致歉
iTerm2 此次信息泄漏事件在10個月之前首次發現。iTerm2的開發者立即在iTerm3.0.13版本中增加了一個選項,讓用戶可以關閉這個“DNS查詢功能”。但新版本中仍然默認將該功能打開。
PowerDNS 的軟件工程師 Peter van Dijk 指出除了之前的問題,iTerm2 中還有其他隱私泄露沒有得到足夠的重視。
iTerm2 以普通文本的形式發送了很多信息(包括密碼)到我的ISP DNS服務器上。
今天他也發布了相關的 漏洞報告 來向大家闡述這個問題的嚴重性。
目前開發者也意識到了這個問題可能導致的后果,并立即發布了 iTerm3.1.1版本進行修復。他對于自己未經深思熟慮、默認啟用此功能,向開發者們表示歉意。
沒有什么借口,我沒有足夠重視安全問題。我為我的過失道歉,并且今后一定更加謹慎。你們的隱私安全會是我之后最優先考慮的問題。
目前能夠提供的建議是:使用3.0.0和3.0.12之間 iTerm2 版本的用戶請至少更新至3.0.13版,然后可以通過 “Preferences Advanced Semantic History”中將“Perform DNS lookups to check if URLs are valid?” 這個選項改為“NO”。