icon_install_ios_web icon_install_ios_web icon_install_android_web

區塊鏈黑暗森林自我守護手冊

新人必讀1 年前 (2023)更新 懷亞特
1,255 0

(資料來源:https://github.com/slowmist/Blockchain-dark-forest-selfguard-handbook)

序幕

首先,恭喜您找到這本手冊!無論你是誰——如果你是加密貨幣持有者或你想將來進入加密世界,這本手冊都會對你有很大幫助。您應該仔細閱讀本手冊並將其教導應用到現實生活中。

此外,要完全理解本手冊需要一些背景知識。不過,請不要擔心。對於初學者來說,不要害怕可以克服的知識障礙。如果你遇到不懂的東西,需要進一步探索,強烈推薦Google。此外,記住一條安全規則也很重要:保持懷疑!無論您在網路上看到什麼訊息,您都應該始終尋找至少兩個來源以進行交叉引用。

再次強調,始終保持懷疑態度,包括本手冊中所提及的知識。

區塊鏈是一項偉大的發明,帶來了生產關係的改變,並在某種程度上解決了信任問題。具體來說,區塊鏈創造了許多不需要中心化和第三方的「信任」場景,例如不變性、按約定執行、防止否認等。然而,現實是殘酷的。人們對區塊鏈有許多誤解,不法之徒就會利用這些誤解來鑽漏洞,竊取人們的錢財,造成大量的經濟損失。如今,加密世界變成了一片黑暗森林。

請記住以下兩條安全規則,才能在區塊鏈黑暗森林中生存。

  1. 零信任:簡單來說,保持懷疑,並且始終保持如此。
  2. 持續安全驗證:為了相信某件事,你必須驗證你懷疑的東西,並讓驗證成為一種習慣。

註:以上兩條安全規則是本手冊的核心原則,本手冊中提到的所有其他安全原則都源自於它們。

好了,我們的介紹就到這裡了。讓我們從一張圖開始,探索這片黑暗森林,看看我們會遇到哪些風險以及我們應該如何應對。

圖表

區塊鏈黑暗森林自我守護手冊

您可以先瀏覽此圖,然後再仔細查看手冊的其餘部分。它是關於這個世界上的關鍵活動(無論你想怎麼稱呼它:區塊鏈、加密貨幣或 Web3),它由三個主要過程組成:創建錢包、備份錢包和使用錢包。

讓我們跟隨這三個過程並逐一分析。

創建錢包

錢包的核心是私鑰(或助記詞)。

私鑰如下所示:

0xa164d4767469de4faf09793ceea07d5a2f5d3cef7f6a9658916c581829ff5584

此外,種子短語如下所示:

殘酷的週末尖峰點無辜頭暈外星人使用喚起棚調整錯誤

注意:我們在這裡使用以太坊作為範例。請自行查看私鑰/助記詞的更多詳細資訊。

私鑰是您的身分。如果私鑰遺失/被盜,那麼您就遺失了您的身分。有許多著名的錢包應用程序,本手冊不會涵蓋所有這些應用程式。

不過,我會提到一些特定的錢包。請注意,這裡提到的錢包在某種程度上是可信的。但我不能保證它們在使用過程中不會出現預期或預期之外的安全問題或風險(我不再重複,請始終牢記序言中提到的兩個主要安全規則)

按應用程式分類,有PC錢包、瀏覽器擴充錢包、手機錢包、硬體錢包和網頁錢包。從網路連線方面來說,主要可以分為冷錢包和熱錢包。在我們進入加密世界之前,我們必須先考慮錢包的用途。用途不僅決定了我們應該使用哪個錢包,還決定了我們如何使用錢包。

無論你選擇哪種錢包,有一點是肯定的:當你在這個世界上有了足夠的經驗之後,一個錢包是不夠的。

這裡我們要牢記另一個安全原則:隔離,不要把所有雞蛋放在一個籃子裡。錢包使用得越頻繁,風險就越大。永遠記住:嘗試任何新事物時,首先準備一個單獨的錢包,然後用少量的錢嘗試一段時間。即使對於我這樣的加密老手來說,如果你玩火,你也更容易被燒傷。

下載

這聽起來很簡單,但實際上並不容易。原因如下:

  1. 很多人找不到真正的官方網站,或是合適的應用程式市場,最後安裝了假錢包。
  2. 很多人不知道如何識別下載的應用程式是否被篡改。

因此,對許多人來說,在進入區塊鏈世界之前,錢包就已經空了。

解決上面的第一個問題,有一些技巧可以找到正確的官網,例如

  • 使用谷歌
  • 使用知名官方網站,例如CoinMarketCap
  • 詢問值得信賴的人和朋友

您可以對照從這些不同來源獲得的信息,最終只有一個真相:)恭喜您,您找到了正確的官方網站。

接下來,您必須下載並安裝該應用程式。 如果是PC錢包,從官網下載後,需自行安裝。強烈建議在安裝前驗證連結是否被篡改。雖然這種驗證可能無法防止原始碼被完全篡改的情況(由於內部詐騙、內部駭客、或官網可能被駭客攻擊等),但是可以防止原始碼部分篡改等情況,中間人攻擊等

驗證文件是否被竄改的方法就是文件一致性檢查。通常有兩種方式:

  • 哈希檢查:例如MD5、SHA256等。MD5適用於大多數情況,但仍有微小的哈希衝突風險,所以我們一般選擇SHA256,足夠安全。
  • GPG簽名驗證: 這個方法也很流行。強烈建議掌握GPG工具、指令與方法。雖然這個方法對於新手來說有點困難,但是一旦熟悉了就會發現非常有用。

然而,加密世界中提供驗證的項目並不多。所以,能找到一個人是一件很幸運的事。例如,這是一個名為 Sparrow Wallet 的比特幣錢包。它的下載頁面上寫著“Verifying the Release”,真是令人印象深刻,而且上面提到的兩種方法都有明確的指導方針,大家可以參考一下:

https://sparrowwallet.com/download/

下載頁面提到了兩個GPG工具:

  • GPG 套件,適用於 MacOS。
  • Gpg4win,適用於 Windows。

如果您留意的話,您會發現這兩種 GPG 工具的下載頁面都提供了一些有關如何檢查兩種方法的一致性的說明。不過,沒有一步一步的指導,也就是說,需要你自己學習和練習:)

如果是瀏覽器擴充錢包,例如MetaMask,你唯一要注意的是Chrome網上商店中的下載數量和評級。例如,MetaMask 的下載量超過 1000 萬次,評分超過 2000 條(儘管總體評分不高)。有些人可能認為下載量和收視率可能被誇大了。說實話,造假這麼大的數字是非常困難的。

手機錢包 類似瀏覽器擴充錢包。不過要注意的是,App Store針對每個地區都有不同的版本。加密貨幣在中國大陸是被禁止的,所以如果你是用中國的App Store帳號下載的錢包,只有一個建議:不要使用,換成美國等其他地區的帳號再重新下載它。另外,正確的官網也會引導你正確的下載方式(如imToken、Trust Wallet等)。官網保持較高的網站安全性非常重要,如果官網被駭了,就會出大問題。 )。

如果是硬體錢包,強烈建議從官方網站購買。不要從網上商店購買它們。收到錢包後,也要注意錢包是否完好。當然,包裝上也有一些難以察覺的惡作劇。無論如何,在使用硬體錢包時,您應該從頭開始至少創建三次助記詞和錢包地址。並確保它們不重複。

如果是網頁錢包,我們強烈建議不要使用它。除非你別無選擇,否則請確保它是正品,然後謹慎使用,切勿依賴它。

助記詞

創建錢包後,我們直接處理的關鍵是助記詞/助記詞,而不是私鑰,這樣更容易記住。助記詞有標準約定(例如BIP39);英文單字一般有12個;可以是其他數字(3的倍數),但不能超過24個字。否則太複雜,不容易記住。若字數少於12,則安全性不可靠。常見的是 12/15/18/21/24 個字。在區塊鏈世界裡,12個字已經很流行,也夠安全。但是,仍然有硬派硬體錢包,像是Ledger,是24個字開頭的。除了英文單字外,還可以使用一些其他語言,例如中文、日文、韓文等。以下是 2048 個單字清單供參考:

https://github.com/bitcoin/bips/blob/master/bip-0039/bip-0039-wordlists.md

創建錢包時,您的助記詞很容易受到攻擊。請注意,您周圍沒有人、網路攝影機或任何其他可能竊取您助記詞的東西。

另外,請注意助記詞是否是隨機產生的。通常知名錢包可以產生足夠數量的隨機種子短語。但是,您應該始終小心。很難知道錢包是否有問題。請保持耐心,因為養成這些習慣對您的安全非常有益。最後,有時您甚至可以考慮斷開與互聯網的連接來創建錢包,特別是如果您要將錢包用作冷錢包。斷開與互聯網的連接總是有效的。

免鑰匙

無鑰匙意味著沒有私鑰。這裡我們將Keyless分成兩大場景(為了方便解釋。這樣的劃分不是業界標準)

  • 保管。例如中心化交易所和錢包,用戶只需要註冊帳戶,不擁有私鑰。他們的安全性完全依賴這些中心化平台。
  • 非託管。使用者擁有類似私鑰的控制權,但它不是實際的私鑰(或助記詞)。它依賴知名的雲端平台進行託管和身份驗證/授權。因此雲端平台的安全性成為最脆弱的部分。其他公司則利用安全多方運算 (MPC) 來消除單點風險,並與流行的雲端平台合作以最大限度地提高用戶體驗。

就我個人而言,我使用過各種 Keyless 工具。財力雄厚、信譽良好的中心化交易所提供了最好的體驗。只要您個人不對丟失代幣負責(例如您的帳戶資訊被駭客入侵),中心化交易所通常會補償您的損失。基於MPC的Keyless方案看起來很有前景,值得推廣。我對 ZenGo、Fireblocks 和 Safeheron 有很好的經驗。優點很明顯:

  • MPC演算法工程在知名的區塊鏈上越來越成熟,只需要針對私鑰操作。
  • 一套想法就可以解決不同區塊鏈多重簽章方案差異巨大的問題,創造一致的使用者體驗,也就是我們常說的:通用多重簽章。
  • 透過多重簽章計算,可以保證真正的私鑰永遠不會出現,解決單點風險。
  • 與雲端(或Web2.0技術)結合,使得MPC不僅安全,而且創造了良好的體驗。

然而,仍然存在一些缺點:

  • 並非所有開源專案都能滿足業界公認的標準。還需要做更多的工作。
  • 很多人基本上只使用以太坊(或基於EVM的區塊鏈)。因此,像 Gnosis Safe 這樣基於智慧合約方法的多重簽名解決方案就足夠了。

總的來說,無論你使用哪種工具,只要你感到安全可控、體驗良好,就是一個好工具。

到目前為止,我們已經介紹了有關創建錢包需要注意的事項。其他一般安全問題將在後面的部分介紹。

備份你的錢包

這就是很多好手會落入陷阱的地方,包括我自己。我沒有正確備份,我知道這種情況遲早會發生。幸運的是,這不是一個有大量資產的錢包,慢霧的朋友幫我找回了它。儘管如此,這仍然是一次可怕的經歷,我認為沒有人願意經歷。因此,請繫好安全帶,讓我們學習如何安全備份您的錢包。

助記詞/私鑰

當我們談論備份錢包時,本質上是在談論備份助記詞(或私鑰,為了方便起見,下面我們將使用助記詞)。大多數助記詞可以分為以下幾類:

  • 純文字
  • 有密碼
  • 多重簽名
  • 沙米爾的秘密共享,簡稱 SSS

我將簡要解釋每種類型。

純文字,純文字很容易理解。一旦你掌握了這 12 個英文單詞,你就擁有了錢包中的資產。您可以考慮進行一些特殊的改組,甚至用其他單字取代其中一個單字。兩者都會增加駭客侵入你錢包的難度,但如果你忘記了這些規則,你會很頭痛。你的記憶力並不是刀槍不入的。相信我,幾年後你的記憶就會變得混亂。幾年前,當我使用Ledger硬體錢包時,我改變了24個單字助記詞的順序。幾年後,我忘記了順序,也不確定是否替換了任何單字。如前所述,我的問題是透過一個特殊的程式碼解密程式解決的,該程式使用強力來猜測正確的序列和單字。

有密碼,根據標準,助記詞可以有密碼。它仍然是相同的短語,但使用密碼時,將獲得不同的種子短語。種子短語用於派生一系列私鑰、公鑰和相應的地址。所以不僅要備份助記詞,還要備份密碼。順便說一句,私鑰也可以有密碼,它有自己的標準,例如比特幣的 BIP 38 和以太坊的 Keystore。

多重簽名,顧名思義,需要多人簽名才能存取錢包。它非常靈活,因為您可以設定自己的規則。例如,如果有 3 個人擁有金鑰(助記詞或私鑰),則可以要求至少兩個人簽署才能存取錢包。每個區塊鏈都有自己的多重簽名解決方案。大多數知名的比特幣錢包都支援多重簽名。然而,在以太坊中,多重簽名主要透過智能合約來支持,例如 Gnosis Safe。此外,MPC(安全多方運算)變得越來越流行。它提供了類似於傳統多重簽章的體驗,但採用了不同的技術。與多重簽章不同,MPC 與區塊鏈無關,並且可以適用於所有協定。

SSS,Shamir 的秘密共享,SSS 將種子分解為多個共享(通常每個共享包含 20 個單字)。要恢復錢包,必須收集並使用指定數量的份額。有關詳細信息,請參閱以下行業最佳實踐:

https://support.keyst.one/advanced-features/recovery-phrase/import-or-create-shamir-backup
https://wiki.trezor.io/Shamir_backup

使用多重簽章、SSS等解決方案可以讓您安心,避免單點風險,但管理相對複雜,有時會涉及多方。便利性和安全性之間總是需要妥協。由個人決定,但原則上絕對不能偷懶。

加密

加密是一個非常非常廣泛的概念。加密是對稱的、非對稱的還是使用其他先進技術都沒關係;只要加密的訊息可以被您或您的緊急處理團隊輕鬆解密,但幾十年後其他人都無法解密,那麼它就是好的加密。

基於「零信任」的安全原則,我們在備份錢包時,必須假設任何一步都可能被駭客入侵,包括保險箱等實體環境。請記住,除了你自己之外,沒有人可以完全信任。事實上,有時你甚至不能相信自己,因為你的記憶可能會消失或放錯地方。不過,我不會一直做出悲觀的假設,否則會導致一些不想要的結果。

備份時,必須特別考慮災難復原。災難復原的主要目的是避免單點風險。如果您離開或儲存備份的環境發生故障,會發生什麼情況?所以重要的東西一定要有容災人員,一定要有多重備份。

我不會過多闡述如何選擇災難復原人員,因為這取決於您信任的人。我將重點放在如何進行多重備份。讓我們來看看備份位置的一些基本形式:

  • 裝置

許多人不信任雲端備份,他們認為雲端備份很容易受到駭客攻擊。歸根結底,關鍵在於哪一方(進攻方或防守方)在人力和預算方面投入更多努力。就我個人而言,我對Google、蘋果、微軟等公司提供的雲端服務很有信心,因為我知道他們的安全團隊有多強大,以及他們在安全方面花了多少錢。除了對抗外部駭客,我也非常關心內部安全風控和隱私資料保護。我信任的少數服務提供者在這些領域做得相對更好。但沒有什麼是絕對的。如果我選擇這些雲端服務中的任何一個來備份重要資料(例如錢包),我肯定會至少再加密一次錢包。

我強烈建議掌握 GPG。可用於“簽名驗證”,同時提供強大的加密和解密安全性。您可以在以下位置了解有關 GPG 的更多資訊:

https://www.ruanyifeng.com/blog/2013/07/gpg.html

好了,你已經掌握了GPG 🙂 現在你已經在離線安全環境中用GPG 加密了錢包中的相關數據(助記詞或私鑰),現在你可以將加密文件直接扔到這些雲端服務中並保存在那裡。一切都會好起來的。但這裡需要提醒您:千萬不要遺失您的 GPG 私鑰或忘記私鑰密碼…

此時,您可能會發現這種額外的安全等級相當麻煩:您必須了解 GPG 並備份您的 GPG 私鑰和密碼。事實上,如果您已經完成了上述所有步驟,那麼您已經熟悉了該過程,並且不會感到困難或麻煩。我不再多說了,因為熟能生巧。

如果你想省點力氣,還有另一種可能,但它的安全性可能會打折扣。我無法衡量確切的折扣,但有時當我使用一些眾所周知的工具來尋求幫助時,我會偷懶。該工具是 1Password。最新版本的1Password已經支援直接儲存錢包相關數據,如助記詞、密碼、錢包位址等,方便用戶使用。其他工具(例如 Bitwarden)也可以實現類似的功能,但沒有那麼方便。

許多硬體錢包都附帶幾張高品質的紙卡,您可以在上面寫下助記詞(明文、SSS 等)。除了紙之外,有些人還用鋼板(耐火、耐水、耐腐蝕的,當然這些我沒試過)。複製助記詞後進行測試,如果一切正常,請將其放在您感到安全的地方,例如保險箱。我個人非常喜歡使用紙張,因為如果存放得當,紙張的使用壽命比電子產品長得多。

裝置,指各類設備;電子產品是常見的備份類型,例如電腦、iPad、iPhone、硬碟等,依個人喜好而定。我們還必須考慮設備之間的安全傳輸。我覺得使用 AirDrop 和 USB 等點對點方法很舒服,中間人很難劫持這個過程。我只是自然地擔心電子設備可能會在幾年後出現故障,所以我保持了每年至少檢查一次設備的習慣。有一些重複的步驟(例如加密),您可以參考雲端部分。

,依靠你的記憶是令人興奮的。其實,每個人都有自己的「記憶宮殿」。記憶並不神秘,可以透過訓練來更好地發揮作用。有些事情用記憶確實比較安全。是否僅僅依靠大腦是個人的選擇。但要注意兩個風險:一是記憶會隨著時間的推移而消失,容易造成混亂;另一個風險是您可能會發生事故。我就停在這裡,讓你探索更多。

現在你們都得到了支持。不要加密太多,否則幾年後你會吃虧的。根據「持續驗證」的安全原則,你的加密和備份方式,無論是否過度,都必須持續驗證,既可以定期驗證,也可以隨機驗證。驗證頻率取決於您的記憶,您不必完成整個過程。只要過程正確,部分驗證也是有效的。最後,還需要注意認證過程的保密性和安全性。

好吧,讓我們在這裡深呼吸一下。入門是最難的部分。現在你準備好了,讓我們進入這片黑暗的森林吧 🙂

如何使用您的錢包

創建並備份錢包後,真正的挑戰就來了。如果你不經常移動你的資產,或者你很少與 DeFi、NFT、GameFi 或 Web3 這些現在經常提到的流行術語的智能合約進行交互,那麼你的資產應該是相對安全的。

反洗錢

然而,「相對安全」並不意味著「完全沒有風險」。因為“你永遠不知道哪個先發生,明天還是事故”,對嗎?為什麼?想一想,你從哪裡得到加密貨幣?它不是憑空而來的,對吧?您隨時可能會遇到您所獲得的所有加密貨幣的 AML(反洗錢)。這意味著你此刻持有的加密貨幣可能是髒的,如果你不幸運的話,它甚至可能會直接凍結在鏈上。據公開報道,Tether曾根據執法機構的要求凍結了部分USDT資產。凍結資金清單可在此處找到。

https://dune.xyz/phabc/usdt—banned-addresses

您可以透過 USDT 合約驗證某個地址是否已被 Tether 凍結。

https://etherscan.io/token/0xdac17f958d2ee523a2206206994597c13d831ec7#readContract

區塊鏈黑暗森林自我守護手冊

使用目標錢包位址作為輸入 int isBlackListed 進行檢查。其他接受USDT的鏈也有類似的驗證方式。

但是,您的 BTC 和 ETH 永遠不應該被凍結。如果有一天這種情況真的發生,去中心化的信念也會崩潰。我們今天聽到的大多數加密貨幣資產凍結案例實際上都發生在中心化平台(例如Binance、Coinbase等),而不是區塊鏈上。當您的加密貨幣留在中心化交易平台時,您實際上並不擁有它們中的任何一個。當中心化平台凍結你的帳戶時,他們實際上是在撤銷你的交易或提領權限。凍結的概念可能會誤導該領域的新手。於是,一些魯莽的自媒體就會散播各種關於比特幣的陰謀論。

雖然您的BTC 和ETH 資產不會被凍結在區塊鏈上,但一旦您的資產轉移到這些平台,並且涉及執法部門正在處理的任何未決案件,中心化交易所可能會根據AML 的要求凍結您的資產。

為了更好地避免反洗錢問題,請務必選擇信譽良好的平台和個人作為交易對手。對於此類問題實際上有幾種解決方案。例如,在以太坊上,幾乎所有壞人和非常關心隱私的人都使用 Tornado Cash 進行混幣。我不會再深入探討這個主題,因為這裡的大多數方法都被用來作惡。

冷錢包

使用冷錢包的方式有很多種。從錢包的角度來看,只要不連接任何網絡,就可以被視為冷錢包。但是離線時如何使用呢?首先,如果你只是想接收加密貨幣,那沒什麼大不了的。冷錢包可以與手錶錢包搭配使用,例如imToken、Trust Wallet等,提供良好的體驗。只需添加目標錢包地址,這些錢包就可以變成手錶錢包。

如果我們想使用冷錢包發送加密貨幣,以下是最常用的方式:

  • QR 圖碼
  • USB
  • 藍牙

所有這些都需要一個專門的應用程式(這裡稱為Light App)來與冷錢包配合使用。 Light 應用程式將與上述的 Watch-only 錢包一起上線。一旦我們了解底層的基本原理,我們就應該能夠理解這些方法。基本原則是:最終,這只是弄清楚如何將簽名內容廣播到區塊鏈上的問題。詳細流程如下:

  • 待簽名的內容由 Light App 透過以下方式之一傳輸到冷錢包。
  • 簽章由擁有私鑰的冷錢包處理,然後使用相同的方式傳回Light App
  • Light App 在區塊鏈上播放簽署內容。

所以無論使用二維碼、USB或藍牙哪種方式,都應該遵循上述流程。當然,不同的方法,細節可能會有所不同。例如,二維碼的資訊容量有限,當簽章資料太大時,我們就必須將其拆分。

看起來有點麻煩,但習慣了就好多了。你甚至會感受到滿滿的安全感。不過,不要認為100%是安全的,因為這裡仍然有風險,而且已經有許多因為這些風險而造成重大損失的案例。以下是風險點:

  • 沒有仔細檢查轉幣的目標地址,導致幣被轉給別人了。人有時是懶惰和粗心的。例如,大多數時候他們只檢查錢包地址的開頭和結尾幾位,而不是完全檢查整個地址。這給壞人留下了後門。他們將運行程式來獲取與您所需的目標地址相同的前幾位和後幾位的錢包地址,然後使用一些技巧將您的硬幣轉移目標地址替換為他們控制下的目標位址。
  • 硬幣被授權到未知的地址。通常授權是以太坊智能合約代幣的機制,即「批准」功能,一個參數是目標授權地址,另一個是數量。很多人不理解這個機制,所以他們可能會向目標地址授權無限數量的代幣,此時目標地址就有權限將所有這些代幣轉走。這稱為授權硬幣盜竊,並且該技術還有其他變體,但我不會在這裡擴展。
  • 有些看似不重要的簽名,其實背後隱藏著巨大的陷阱,我現在不深究,稍後會詳細解釋。
  • 冷錢包可能沒有提供足夠的必要信息,導致您粗心、誤判。

這一切都歸結為兩點:

  • 缺少「所見即所簽」的使用者互動安全機制。
  • 使用者缺乏相關背景知識。

熱錢包

與冷錢包相比,熱錢包基本上具有冷錢包所具有的所有風險。另外,還有一個:秘密短語(或私鑰)被盜的風險。此時熱錢包還有更多的安全問題需要考慮,例如運作環境的安全性。如果存在與運行環境相關的病毒,則存在被盜的風險。還有一些熱錢包存在一定的漏洞,可以透過這些漏洞直接竊取密語。

除了常規的轉幣功能外,如果您想與其他 DApp(DeFi、NFT、GameFi 等)進行交互,您要么需要使用自己的瀏覽器直接訪問它們,要么通過 PC 瀏覽器中打開的 DApp 進行交互WalletConnect 協議。

注意:本手冊中提及的 DApp 預設指的是以太坊區塊鏈上運行的智慧合約專案。

預設情況下,此類互動不會導致秘密短語被盜,除非錢包安全設計本身有問題。從我們的安全審計和安全研究歷史來看,存在錢包秘密短語被目標頁面上的惡意 JavaScript 直接竊取的風險。然而,這種情況很少見,因為這實際上是一個極低級的錯誤,任何知名錢包都不會犯。

這些其實都不是我真正關心的問題,它們對我來說是可以管理的(對你來說也是如此)。我最大的擔憂/擔憂是:知名錢包的每次迭代如何確保不被植入惡意程式碼或後門?這個問題的含義很明確:我驗證了當前版本的錢包沒有安全性問題,並且我很舒服地使用它,但我不知道下一版本的安全性如何。畢竟,我或我的安全團隊不可能有那麼多時間和精力來完成所有驗證。

這裡已經發生了多起惡意程式碼或後門導致的盜幣事件,像是CoPay、AToken等,具體事件大家可以自行搜尋。

在這種情況下,作惡的方式有以下幾種:

  • 當錢包運行時,惡意程式碼會將相關密語直接打包上傳到駭客控制的伺服器中。
  • 當錢包運作時,用戶發起轉帳時,目標位址、金額等資訊會在錢包後台秘密替換,用戶很難察覺。
  • 破壞與秘密短語產生相關的隨機數熵值,這使得它們相對容易破解。

安全是一個無知和知識的事情,有很多事情很容易被忽視或錯過。因此,對於持有重要資產的錢包,我的安全規則也很簡單:足夠使用時,不要輕易更新。

什麼是 DeFi 安全

當我們談論DApp時,它可以是DeFi、NFT或GameFi等。這些的安全基礎基本上相同,但它們也會有各自的功能。我們先以 DeFi 為例來解釋一下。當我們談論 DeFi 安全時,我們到底在說什麼?業內人士幾乎總是只看智能合約。看來智能合約好了,一切都會好起來的。事實上,這遠非事實。

DeFi 安全性至少包括以下幾個部分:

  • 智能合約安全
  • 區塊鏈基礎安全
  • 前端安全
  • 通訊安全
  • 人類安全
  • 財務安全
  • 合規安全

智能合約安全

智慧合約安全確實是安全審計最重要的切入點,慢霧針對智慧合約的安全審計標準可以參考:

https://www.slowmist.com/service-smart-contract-security-audit.html

對於高階玩家來說,如果智能合約部分本身的安全性是可控的(是否能夠自我審計或看懂專業機構所發出的安全審計報告),那麼其他部分是否安全並不重要。可控是一個棘手的概念,其中一些取決於玩家自身的實力。例如,玩家對智能合約權限過高的風險有一定的要求。如果專案本身很強大,而且背後的人有很好的聲譽,那麼完全中心化就沒有關係。然而,對於那些不太知名、有爭議或新興的項目,如果你意識到該項目的智能合約存在過多的權限風險,特別是這種權限也會影響你的本金或收益,你肯定會不願意。

過度許可的風險非常微妙。在許多情況下,專案的管理員可以進行相關的治理和風險應急。但對使用者來說,這是人性的考驗。如果團隊決定作惡怎麼辦?所以業界有一個權衡做法:加入Timelock來降低這類權限過多的風險,例如:

知名的 DeFi 專案Compound,其核心智慧合約模組 Comptroller 和 Governance 均在管理權限中加入了 Timelock 機制:
控制器(0x3d9819210a31b4961b30ef54be2aed79b9c9cd3b)
治理(0xc0da02939e1441f497fd74f78ce7decb17b66529)
管理員這兩個模組是
時間鎖(0x6d903f6003cca6255d85cca4d3b5e5146dc33925)

可以直接在鏈上查到Timelock(延遲變數)為48小時(172,800秒):

區塊鏈黑暗森林自我守護手冊

也就是說,如果Compound的管理員需要更改目標智能合約的某些關鍵變量,則該交易在區塊鏈上發起後就會被記錄,但必須等待48小時才能最終確定並執行。這意味著,如果您願意,您可以審核管理員的每項操作,並且您將有至少 48 小時的時間採取行動。例如,如果您不確定,您可以在 48 小時內提取資金。

另一種降低管理者權限過多風險的方法是新增多重簽名,例如使用 Gnosis Safe 進行多重簽名管理,因此至少不會出現獨裁者。這裡要注意的是,多重簽名可以是「皇帝的新衣」。例如,一個人可能持有多把鑰匙。因此,需要明確目標項目的多重簽章策略。誰持有鑰匙,每個鑰匙持有者的身分必須是有信譽的。

這裡值得一提的是,任何安全策略都可能導致「皇帝的新衣」問題,看似策略做得很好,但實際上卻做得不好,造成安全假象。再舉個例子,Timelock 在紙上看起來不錯。事實上,曾經有一些專案部署的Timelock存在後門的情況。一般來說,使用者不會查看Timelock的原始程式碼,即使查看也不一定能理解,因此管理員在那裡放置了一個後門,並且在足夠長的時間內沒有人會真正注意到。

除了過度許可的風險之外,智能合約安全的其他要素也至關重要。不過,考慮到理解的前提,我這裡就不展開了。我的建議是:你至少應該學會閱讀安全審計報告,熟能生巧。

區塊鏈基礎安全

區塊鏈基礎安全是指區塊鏈本身的安全,例如共識帳本安全、虛擬機器安全等。如果區塊鏈本身的安全性令人擔憂,那麼鏈上運行的智慧合約專案將直接受到影響。選擇一個具有足夠安全機制和聲譽的區塊鏈非常重要,並且更好地具有更高的長壽機率。

前端安全

前端安全確實是魔鬼。離用戶太近,特別容易讓用戶上當。也許大家主要關注的是錢包和智能合約的安全,導致前端安全很容易被忽略。我想再次強調,前端安全是魔鬼!請允許我更深入地挖掘。

我對前端安全性最關心的是:我如何知道我從這個特定前端頁面與之互動的合約是我期望的智能合約?

這種不安全感主要源自於兩個因素:

  • 內部工作
  • 第三者

了解內部工作很簡單。例如,開發者偷偷將前端頁面中的目標智慧合約地址替換為有後門的合約地址,或植入授權釣魚腳本等。當您訪問這個被操縱的前端頁面時,一系列涉及您錢包中的加密貨幣的後續操作可能會在陷阱中完成。在你意識到之前,硬幣已經不見了。

第三方主要指兩類:

  • 一是依賴鏈被滲透。例如,前端頁面使用的第三方依賴存在後門,該後門會隨著打包和發布而潛入目標前端頁面。以下是SushiSwap的套件依賴結構(僅供參考,並不一定表示截圖中的項目有此類問題):
    區塊鏈黑暗森林自我守護手冊

  • 另一個例子是前端頁面匯入的第三方遠端 JavaScript 檔案。如果這個 JavaScript 檔案被駭客攻擊,目標前端頁面也可能受到影響,例如 OpenSea(僅用於說明,並不一定意味著螢幕截圖中的專案存在此類問題):
    區塊鏈黑暗森林自我守護手冊

我們之所以說這是可能但不確定的原因是,如果開發人員透過以下方式引用前端頁面上的第三方遠端 JavaScript 文件,則可以減輕風險:

<script src=”https://example.com/example-framework.js” 完整性=”sha384-Li9vy3DqF8tnTXuiaAJuML3ky+er10rcgNR/VqsVpcw+ThHmYcwiB1pbOxEbzJr7″ crossorigin=”匿名”>

這裡的關鍵點是HTML5的一個很好的安全機制:標籤中的完整性屬性(SRI機制)。完整性支援 SHA256、SHA384 和 SHA512。如果第三方 JavaScript 檔案不符合雜湊完整性檢查,則不會載入這些檔案。這是防止意外程式碼執行的好方法。然而,利用這種機制需要目標資源支援CORS響應。詳細資訊請參考以下內容:

https://developer.mozilla.org/zh-CN/docs/Web/Security/Subresource_Integrity

通訊安全

本節我們將重點放在 HTTPS 安全性。首先,目標網站必須使用HTTPS,絕不允許HTTP明文傳輸。這是因為HTTP明文傳輸太容易被中間人攻擊劫持。如今,HTTPS 作為一種安全傳輸協定非常普遍。如果HTTPS存在中間人攻擊,且攻擊者將惡意JavaScript注入到網頁應用程式的前端,則使用者的瀏覽器中將顯示非常明顯的HTTPS憑證錯誤警報。

我們以MyEtherWallet事件為例來說明這一點。

MyEtherWallet曾經是一個非常流行的網路應用錢包,直到現在它仍然非常有名。然而,它不再只是一個網路應用程式錢包。如前所述,出於安全原因,我強烈反對使用網路應用程式錢包。除了前端安全的各種問題外,HTTPS劫持也是一個很大的潛在風險。

2018年4月24日,MyEtherWallet發生一起HTTPS劫持重大安全事件。該事件的回顧可以在這裡找到:

https://www.reddit.com/r/MyEtherWallet/comments/8eloo9/official_statement_regarding_dns_spoofing_of/
https://www.reddit.com/r/ethereum/comments/8ek86t/warning_myetherwalletcom_highjacked_on_google/

區塊鏈黑暗森林自我守護手冊

攻擊中,駭客透過古老的路由協定BGP劫持了MyEtherWallet大量使用者使用的DNS服務(Google Public DNS),直接導致每個使用者嘗試造訪時瀏覽器中都會顯示HTTPS錯誤警報MyEtherWallet 網站。事實上,用戶在看到此警報時應該停止,因為它基本上表明目標網頁已被劫持。但實際上,許多用戶很快就忽略了該警報,並繼續與被劫持的網站進行交互,因為他們根本不了解 HTTPS 錯誤警報背後的安全風險。

由於目標網頁已被劫持,駭客在其中註入了惡意JavaScript,透過用戶的交互,駭客將成功竊取用戶的明文私鑰並轉移他們的資金(主要是ETH)。

這絕對是駭客利用BGP劫持技術竊取加密貨幣的經典案例。這簡直是太過分了。此後類似的案例還有好幾個,這裡就不一一贅述了。對於用戶來說,只有一件事真正需要注意:如果您決定使用網頁應用程式錢包,或嘗試與 DApp 交互,請務必確保在看到 HTTPS 憑證錯誤警報時停止並關閉頁面!而且你的資金會很好。安全中有一個殘酷的現實:當有風險時,不給使用者任何選擇。如果你這樣做了,總是會有用戶因為某些原因落入陷阱。事實上,專案團隊需要承擔責任。截至目前,針對上述HTTPS劫持問題,已經有了非常有效的安全解決方案:專案組需要正確設定HSTS。 HSTS 代表 HTTP 嚴格傳輸安全性;它是大多數現代瀏覽器支援的網路安全策略機制。如果啟用 HSTS,如果 HTTPS 憑證錯誤,瀏覽器將強制使用者停止存取目標 Web 應用程序,並且無法繞過該限制。現在你明白我的意思了嗎?

人性安全

這一部分很容易理解。例如,專案團隊心懷邪惡,行事不誠實。相關內容我在前面已經提過,這裡不再贅述。更多內容將在後面的章節中介紹。

財務安全

金融安全應受到高度尊重。在 DeFi 中,用戶最關注的是代幣價格和收益。他們想要卓越的,或至少是穩定的投資回報。換句話說,身為用戶,我玩遊戲是為了贏,如果我輸了,至少我需要確信這是一場公平的遊戲。這就是人性。

DeFi 中的金融安全容易受到以下形式的攻擊:

  • 預挖、預售等不公平的啟動行為;
  • 加密鯨魚攻擊;
  • 泵送和傾倒;
  • 黑天鵝事件,就像突發的市場瀑布;或者說,當一個 DeFi 協定與其他 DeFi/Token 嵌套或互通時,其安全性/可靠性將高度依賴其他協定
  • 其他技術攻擊或我們所說的科學技術,例如搶先交易、三明治攻擊、閃貸攻擊等

合規要求

合規要求是一個很大的話題,前面提到的AML(反洗錢)只是其中的一點。還有像是KYC(了解你的客戶)、制裁、證券風險等方面,其實對我們用戶來說這些都不是我們能控制的。當我們與某個項目互動時,由於該項目可能受到某些國家的相關法規的約束,我們的隱私資訊可能會被收集。您可能不關心此類隱私問題,但有人關心。

例如,2022年初發生了一個小事件:一些錢包決定支持地址所有權證明協議(AOPP)協議:

我看了協議設計,發現支援AOPP的錢包可能會洩漏用戶隱私。監管機構可能會了解受監管的加密貨幣交易所和未知的外部錢包位址之間的互連。

https://gitlab.com/aopp/address-ownership-proof-protocol

難怪許多注重隱私的錢包如此關心用戶的回饋,並迅速從其產品中刪除了 AOPP 支援。但說實話:協議設計還挺有趣的。我注意到有些錢包沒有計劃取消對 AOPP 的支持,例如 EdgeWallet。他們認為,AOPP並不一定會暴露更多的用戶隱私,相反地有助於增強加密貨幣的流通。在許多受監管的加密貨幣交易所中,用戶在證明其所有權之前不得提取到特定的外部錢包位址。

起初,知名硬體錢包 Trezor 拒絕取消 AOPP 支援。但後來迫於社群和推特用戶的壓力,它被迫妥協才這麼做。

正如您所看到的,這是一個很小的事件,但對於某些人來說,隱私確實很重要。這並不是說我們應該違反法規,完全忽略合規要求。事實上,我確實認為有必要對合規性要求做出一定程度的妥協。我們不會繼續深入探討這個主題,請隨意以自己的方式消化內容。

到目前為止,我們已經涵蓋了 DeFi 安全部分的大部分內容。

此外,未來的新增或更新也會帶來安全性問題。我們常說「安全態勢是動態的,而不是靜態的」。例如,現在大多數專案團隊都會進行安全審計並顯示乾淨的安全審計報告。如果您仔細閱讀過高品質的報告,您會發現這些報告會清楚地解釋審核內容的範圍、時間範圍和唯一識別碼(例如經過驗證的開源智慧合約地址,或 GitHub 儲存庫上的提交地址,或目標原始碼檔案的哈希值)。也就是說,報告是靜態的,但是如果在專案中你發現與報告中提到的內容有任何偏差,你可以指出來。

NFT安全

前面提到的所有關於 DeFi 安全的內容都可以應用在 NFT 安全上,而 NFT 本身也有幾個非常具體且獨特的安全主題,例如:

  • 元資料安全
  • 簽名安全

元資料主要是指嵌入的圖片、動畫等內容。具體標準建議參考OpenSea:

https://docs.opensea.io/docs/metadata-standards

這裡可能會出現兩個主要的安全問題:

  • 一是圖像(或動畫)所在的 URI 可能不可信。它可以只是隨機選擇的中心化服務,一方面無法保證可用性,另一方面專案團隊可以隨意修改影像,因此NFT將不再成為一成不變的「數位收藏品」。一般建議使用IPFS、Arweave等中心化儲存解決方案,並選擇知名的URI網關服務。
  • 另一個是隱私洩漏的可能性。隨機選擇的 URI 服務可能會捕獲使用者的基本資訊(例如 IP、User-Agent 等)

簽名安全性是這裡的另一個大問題,我們將在下面進行說明。

簽名要小心!

我想特別提到簽名安全性,因為存在許多陷阱,您應該始終小心。已經發生了幾起事件,尤其是在 NFT 交易方面。然而,我注意到並沒有太多人了解如何準備和處理此類安全問題。根本原因是很少人把問題說得夠清楚。

簽名安全中第一個也是最重要的安全原則是: 你所看到的就是你所簽署的。也就是說,您收到的簽名請求中的訊息是您在簽名後應該期望的內容。當你簽字之後,結果應該是你所期望的,而不是讓你後悔的。

簽名安全的一些細節在“冷錢包”部分已經提到。如果您不記得了,我建議您重新訪問該部分。在本節中,我們將重點討論其他方面。

2022 年左右,OpenSea 發生了幾起著名的 NFT 駭客攻擊事件。2022 年 2 月 20 日,發生了重大爆發。根本原因是:

  • 用戶在 OpenSea 上簽署了 NFT 上幣請求。
  • 駭客透過網路釣魚獲取用戶的相關簽名。

對於駭客來說,要獲得相關簽名其實不難。黑客需要 1)。建構要簽名的訊息,2)。散列它,3)。欺騙目標用戶簽署請求(這將是盲簽名,這意味著用戶實際上並不知道他們正在簽署什麼),4)。取得簽名內容並建構資料。此時,該用戶已被駭客攻擊。

我將以 Opensea 為例(實際上,它可以是任何 NFT 市場)。當目標用戶授權在市場上進行 NFT 上幣操作後,駭客將建立需要簽署的訊息。使用Keccak256對其進行哈希處理後,釣魚頁面上會彈出簽名請求。用戶會看到類似以下內容:

區塊鏈黑暗森林自我守護手冊

仔細看看。我們可以從這個 MetaMask 彈出視窗中獲得什麼樣的資訊?帳戶資訊和帳戶餘額、簽名請求的來源網站、用戶即將簽署的訊息以及…僅此而已。用戶怎麼會懷疑災難已經來臨呢?他們怎麼會意識到,一旦他們點擊「簽名」按鈕,他們的 NFT 就會被偷走。

這其實是盲簽名的一個例子。用戶無需在 NFT 市場內簽署。相反,用戶可能會被誘騙進入任何網路釣魚網站來簽署訊息,而無需完全理解這些簽名的實際含義和後果。不幸的是,駭客知道。作為用戶,請記住:切勿盲目簽署任何內容。 OpenSea 曾經有盲簽名問題,他們在 2022 年 2 月 20 日之後透過採用 EIP-712 解決了這個問題。但是,如果沒有盲簽名,用戶仍然可能會因不小心而以其他方式被駭客攻擊。

發生這種情況的最根本原因是簽名不限於遵循瀏覽器的同源策略。你可以簡單地理解為:同源策略可以保證某個動作只發生在特定域下,不會跨域,除非項目組有意希望發生跨域。如果簽章遵循同源策略,那麼即使使用者簽署了非目標網域產生的簽章請求,駭客也無法利用該簽章在目標網域下進行攻擊。在討論更多細節之前我會先停在這裡。我注意到了關於協議層面安全性改進的新提議,希望這種情況能盡快改善。

我們已經提到了簽名訊息時可能發生的大多數主要攻擊格式,但實際上有許多變體。無論它們看起來多麼不同,它們都遵循相似的模式。理解它們的最好方法就是自己從頭到尾重現一次攻擊,甚至創造一些獨特的攻擊方法。例如這裡提到的簽章請求攻擊,其實包含了許多細節,像是要簽名的訊息是如何建構的,簽章後到底生成了什麼?除了「Approve」之外是否還有其他授權方式(有,例如:increaseAllowance)。好吧,如果我們在這裡擴展,那就太技術性了。好處是您應該已經了解簽署訊息的重要性。

使用者可以透過取消授權/審批的方式從源頭杜絕此類攻擊。以下是您可以使用的一些知名工具。

⚠️筆記:如果您想更全面、深入地了解 SIGNATURE SECURITY,請檢查以下儲存庫新增中的擴充功能作為參考:

https://github.com/evilcos/darkhandbook
確實,SIGNATURE SECURITY 的知識對於初學者來說是相當有挑戰性的。知識庫整理了相關內容,仔細閱讀有助於您掌握安全知識。這樣,你就不會再覺得困難了。 (如果你能閱讀並理解所有內容,我相信安全知識對你來說將不再困難🙂

小心違反直覺的簽名請求!

我想特別提一下另一個風險: 反直覺風險.

什麼是反直覺的?例如,你已經對以太坊非常熟悉,並且已經成為各種 DeFi 和 NFT 的 OG。當您第一次進入 Solana 生態系統時,您可能會遇到一些類似的釣魚網站。你可能會覺得自己已經做好了充分的準備,以至於你開始思考“我在以太坊生態系統中已經見過這些一千次了,我怎麼會被愚弄呢?”

同時,駭客會很高興,因為你已經被愚弄了。人們遵循自己的直覺,這使得他們粗心大意。當出現反直覺的攻擊時,人們就會陷入陷阱。

好吧,讓我們來看一個利用反直覺的真實案例。

區塊鏈黑暗森林自我守護手冊

首先,警告:Solana 上的授權網路釣魚要殘酷得多。上面的例子發生在2022年3月5日,攻擊者向用戶批量空投NFT(圖1)。用戶透過空投NFT描述中的連結(www_officialsolanares_net)進入目標網站並連接錢包(圖2)。點選頁面上的「Mint」按鈕後,就彈出審批視窗(圖3)。請注意,此時彈出視窗中沒有任何特殊通知或訊息。一旦他們批准,錢包中的所有 SOL 都將被轉移。

當用戶點擊「批准」按鈕時,他們實際上是在與攻擊者部署的惡意智慧合約進行互動: 3VtjHnDuDD1QreJiYNziDsdkeALMT6b2F9j3AXdL4q8v

該惡意智能合約的最終目標是發起“SOL 轉帳”,幾乎所有用戶的 SOL轉帳。從鏈上數據分析,該釣魚行為持續了數天,期間受害者人數不斷增加。

這個例子有兩個陷阱要注意:

  1. 用戶批准後,惡意智能合約可以轉移用戶的原生資產(本例中為 SOL)。這在以太坊上是不可能的。以太幣上的授權釣魚只會影響其他代幣,不會影響ETH原生資產。這是違反直覺的部分,會讓使用者降低警覺性。
  2. Solana 上最知名的錢包 Phantom 的安全機制存在漏洞,沒有遵循「所見即所得」原則(我們尚未測試其他錢包),並且不支援給用戶足夠的風險提示。這很容易造成安全盲點,從而導致用戶損失金錢。

一些高級攻擊方法

事實上,先進的攻擊手段有很多,但從公眾的角度來看,它們大多被視為網路釣魚。然而,有些攻擊並非正常的網路釣魚攻擊。例如:

https://twitter.com/Arthur_0x/status/1506167899437686784

駭客發送了一封帶有這樣附件的釣魚電子郵件:

穩定幣的巨大風險(受保護).docx

老實說,這是一份有吸引力的文件。但一旦打開,使用者的電腦就會植入木馬(一般透過Office宏或0day/1day漏洞),木馬通常包含以下功能:

  • 收集各種憑證,例如瀏覽器相關的或SSH相關的等。透過這種方式,駭客可以將其存取權限擴展到目標使用者的其他服務。因此,感染後,一般建議使用者不僅要清理目標設備,還要清理相關的帳戶權限。
  • 鍵盤記錄器,特別針對那些臨時出現的敏感資訊(例如密碼)。
  • 收集相關截圖、敏感文件等。
  • 如果是勒索軟體,目標系統中的所有檔案都會被高度加密,並等待受害者支付贖金,通常是比特幣。但在這種情況下,它不是具有更明顯和嘈雜的行為和直接意圖的勒索軟體。

此外,針對加密產業的木馬會經過專門定制,從知名錢包或交易所收集敏感訊息,以竊取用戶資金。根據專業人士分析,上述木馬會針對Metamask進行針對性攻擊:

https://securelist.com/the-bluenoroff-cryptocurrency-hunt-is-still-on/105488/

該木馬會用帶有後門的假冒的 MetaMask 替換用戶的 MetaMask。後門 MetaMask 基本上意味著您儲存在其中的任何資金都不再屬於您。即使您使用的是硬體錢包,這個假 MetaMask 也會透過操縱目標地址或金額資訊來竊取您的資金。

這種方法是專為具有已知錢包位址的知名目標而設計的。我注意到,許多這樣的人太傲慢,以至於無法防止自己被駭客攻擊。駭客入侵後,許多人會學到教訓,進行全面審查,取得重大改進,並與值得信賴的安全專業人士或機構建立長期合作和友誼。然而,這個世界上總有例外。有些人或專案不斷遭到駭客攻擊。如果每次都是因為沒有人遇到的事情,我會非常尊重他們,稱他們為先驅者。隨著時間的推移,他們很有可能會成功。不幸的是,許多事件都是由非常愚蠢和重複的錯誤造成的,而這些錯誤是很容易避免的。我建議遠離這些項目。

相較之下,那些大規模的網路釣魚攻擊根本就不全面。攻擊者會準備一堆看起來相似的域名,並透過在 Twitter 或其他社交平台上購買帳戶、追蹤者和轉發來傳播有效負載。如果管理得當,很多人都會掉進陷阱。這種釣魚攻擊其實並沒有什麼特別之處,通常攻擊者只是粗暴地讓用戶授權代幣(包括NFT),然後將其轉走。

還有其他類型的進階攻擊,例如使用 XSS、CSRF、反向代理等技術來平滑攻擊過程。我不會在這裡詳細說明所有這些情況,除了一個非常特殊的情況(Cloudflare 中間人攻擊),這是反向代理中的場景之一。確實存在利用這種極其隱蔽的方法造成經濟損失的攻擊。

這裡的問題不是 Cloudflare 本身邪惡或被駭客攻擊。相反,受到威脅的是專案團隊的 Cloudflare 帳戶。一般流程是這樣的:如果你使用Cloudflare,你會注意到儀表板中有一個「Worker」模組,其官方描述是:

建立無伺服器應用程式並在世界各地立即部署它們,以實現卓越的效能、可靠性和規模。詳情請參閱 https://developers.cloudflare.com/workers/

我很早之前做了一個測試頁面:

https://xssor.io/s/x.html

當您造訪該頁面時,會彈出一個窗口,顯示:

xssor.io,被 Cloudflare 劫持。

事實上,這個彈出窗口,甚至x.html的全部內容,都不屬於文件本身。所有這些都是由 Cloudflare 提供的。其機制如下圖所示:

區塊鏈黑暗森林自我守護手冊

螢幕截圖中程式碼片段的指示非常簡單:如果我是駭客並且我控制了您的 Cloudflare 帳戶,我可以使用 Workers 將任意惡意腳本注入到任何網頁。而且使用者很難意識到目標網頁已被劫持和篡改,因為不會出現任何錯誤警報(例如HTTPS證書錯誤)。如果不花費大量時間檢查伺服器和人員的安全性,即使專案團隊也無法輕易識別問題。當他們意識到是 Cloudflare Workers 時,損失可能已經很嚴重了。

Cloudflare其實是一個很好的工具。許多網站或網路應用程式都會使用它作為他們的網路應用程式防火牆、反DDoS解決方案、全球CDN、反向代理程式等。因為有免費版本,所以他們擁有很大的客戶群。另外,還有 Akaimai 等服務。

使用者必須注意此類帳戶的安全。隨著網路的興起,帳號安全問題隨之出現。這是世界上一個非常普遍的話題,幾乎每個人都在談論它,但仍然有很多人因此而遭到駭客攻擊。一些根本原因可能是他們沒有為重要服務使用唯一的強密碼(像 1Password 這樣的密碼管理器無論如何都不那麼流行),有些可能是他們懶得打開 2 因素身份驗證 (2FA),或者可能是他們甚至不知道這件事。更不用說對於某些特定服務,密碼應該至少每年重設一次。

好了,本節就到此結束。你只需要明白,這確實是一個黑暗森林,你應該了解盡可能多的攻擊方法。在紙上看夠了之後,如果您至少陷入過一次或兩次陷阱,您可以將自己視為業餘安全專業人員(無論如何這對您自己都有好處)。

傳統隱私保護

恭喜,您已經完成這一部分了。傳統的隱私保護是個老話題了:這是我2014年寫的文章。

在隱私外洩的時代,你必須學習一些保護自己的技巧。
https://evilcos.me/yinsi.html

重讀這篇文章,雖然這是2014年的入門文章,但是裡面的大部分建議並沒有過時。重讀這篇文章後,我在這裡介紹一些新內容:事實上,隱私保護與安全息息相關。傳統隱私是安全的基石。此部分包括您的私鑰,屬於隱私的一部分。如果基石不牢靠,基石的隱私就沒有意義,那麼上層建築就會像空中樓閣一樣脆弱。

強烈推薦以下兩個資源:

監視自衛
更安全線上通訊的提示、工具和操作方法
https://ssd.eff.org/

監視自衛術是 SSD 的縮寫。由著名的電子前沿基金會(EFF)發起,專門發布了相關指南,告訴你如何在監控互聯網世界中避免老大哥監視你,其中包括幾個有用的工具(如Tor、WhatsApp、Signal、 PGP 等)

隱私指南:使用加密和隱私工具對抗監視
https://www.privacytools.io/

上面的網站全面列出了許多工具。它也推薦了一些加密貨幣交易所、錢包等。但是,需要注意的是,我並沒有使用網站上列出的許多工具,因為我有自己的方式。所以,你也應該開拓自己的路,不斷比較、不斷進步。

以下是我建議您應該使用的一些工具的亮點。

作業系統

Windows 10 版本(及更高版本)和 macOS 都是安全性選項。如果你有能力,你可以選擇Linux,例如Ubuntu,甚至是非常注重安全和隱私的Linux,例如Tails或Whonix。

就作業系統而言,最直接的安全原則是:密切注意系統更新,並在有更新時盡快套用。其次是掌握作業系統的能力。人們可能會問,為了掌握 Windows 或 MacOS 這樣的作業系統,你到底需要學習什麼?不就是隨便點擊一下嗎?嗯,這其實還遠遠不夠。對於新手用戶來說,一款好的防毒軟體是必須的,例如卡巴斯基、BitDefender,而且它們都可以在MacOS上使用。

然後,不要忘記我之前提到的下載安全性。如果您不魯莽地下載和安裝程序,您將消除大部分風險。

接下來,想想如果您的電腦遺失或被盜,您將做什麼。擁有啟動密碼顯然還不夠。如果未開啟磁碟加密,壞人就可以取出硬碟並檢索其中的資料。因此我的建議是重要計算機應該打開磁碟加密。

https://docs.microsoft.com/en-us/windows/security/encryption-data-protection
https://support.apple.com/en-us/HT204837

我們還有VeraCrypt(原TrueCrypt)等強大且傳奇的工具,如果您有興趣,請隨意嘗試:

https://veracrypt.fr/

您可以更進一步啟用 BIOS 或韌體密碼。我自己做過,但這完全取決於你自己的選擇。請記住:如果您這樣做,請非常清楚地記住密碼,否則沒有人可以幫助您。我很幸運,我曾經掉進過兔子洞,這讓我損失了一台筆記型電腦、一些加密貨幣和一週的時間。另一方面,這也是一次非常好的學習經驗。

智慧型手機

目前iPhone和Android是僅有的兩個主流手機類別。我曾經是黑莓手機的忠實粉絲,但它的輝煌卻隨著時間的流逝而消失。過去,Android手機的安全狀況讓我非常擔心。一方面還處於早期階段,另一方面版本非常碎片化,每個品牌都會有自己的fork Android版本。但現在情況已經有了很大的改善。

在手機上我們還需要注意安全更新和下載安全。此外,也應注意以下幾點:

  • 不要越獄/root你的手機,除非你正在做相關的安全研究,否則沒有必要。如果你是為了盜版軟體,這真的取決於你對這項技能的掌握程度。
  • 不要從非官方應用程式商店下載應用程式。
  • 除非您知道自己在做什麼,否則不要這樣做。更不用說官方應用程式商店中甚至還有很多假冒應用程式。
  • 使用官方雲端同步功能的前提是,你必須確保你的帳戶安全,否則一旦雲端帳戶被盜,手機也會被盜。

就我個人而言,我更依賴iPhone。而且您至少需要兩個 iCloud 帳戶:一個中國帳戶和一個海外帳戶。您將需要它們來安裝具有不同區域限制的應用程式。 (這聽起來很奇怪,但歡迎來到現實)

網路

網路安全問題曾經是一個令人頭痛的問題,但近年來已經有了顯著的改進,特別是自從大規模採用 HTTPS Everywhere 策略以來。

如果發生網路劫持(中間人攻擊)攻擊,將會有相應的系統錯誤警報。但總有例外,因此當您有選擇時,請使用更安全的選項。例如,不要連接到不熟悉的 Wi-Fi 網絡,除非較流行且安全的 4G/5G 網路不可用或不穩定。

瀏覽器

最受歡迎的瀏覽器是 Chrome 和 Firefox,在加密領域有些瀏覽器也會使用 Brave。這些知名瀏覽器都有強大的團隊,並且會有及時的安全性更新。瀏覽器安全的主題非常廣泛。以下是一些需要您注意的提示:

  • 盡快更新,不要心存僥倖。
  • 如果沒有必要,請勿使用擴充功能。如果您這樣做,請根據用戶的評論、用戶數量、維護公司等做出決定,並注意其請求的權限。確保您從瀏覽器的官方應用程式商店獲取該擴充功能。
  • 多個瀏覽器可以並行使用,強烈建議您在一個瀏覽器中執行重要操作,而使用另一個瀏覽器進行更常規、不太重要的操作。
  • 這裡有一些著名的注重隱私的擴展(例如 uBlock Origin、HTTPS Everywhere、ClearURLs 等),請隨意嘗試。

特別是在 Firefox 中,我還將使用傳奇的古老擴充 NoScript,它在抵禦惡意 JavaScript 有效負載方面擁有良好的記錄。現在的瀏覽器變得越來越安全,因為它們增加了對同源策略、CSP、Cookie 安全性原則、HTTP 安全標頭、擴充安全性原則等的支援。因此,使用NoScript 等工具的需求變得越來越小,比較小,有興趣的話可以看看。

密碼管理器

如果您還沒有使用過密碼管理器,要么您不知道使用密碼管理器的便利性,要么您有自己強大的記憶宮殿。大腦記憶力的風險之前也提到過,一是時間會削弱或擾亂你的記憶力;二是時間會削弱或擾亂你的記憶力。另一個是你可能會發生意外。無論哪種情況,我仍然建議您使用密碼管理器來配合您的大腦記憶,使用眾所周知的密碼管理器,例如 1Password、Bitwarden 等。

這部分我不需要太多介紹,網路上相關教學非常多,甚至不需要教學就可以輕鬆上手。

這裡我需要提醒大家的是:

  • 永遠不要忘記您的主密碼,並確保您的帳戶資訊安全,否則一切都會遺失。
  • 確保您的電子郵件安全。如果您的電子郵件遭到洩露,它可能不會直接洩露密碼管理器中的敏感訊息,但壞人有能力破壞它。
  • 我已經驗證了我提到的工具(例如1Password)的安全性,並且一直在密切關注相關安全事件、用戶評論、新聞等。但我不能保證這些工具絕對安全,不發生黑天鵝事件將來會發生在他們身上。

例如,我確實欣賞的一件事是 1Password 安全頁面的介紹和描述。

https://1password.com/security/

這個頁面有安全設計理念、相關隱私和安全證書、安全設計白皮書、安全審計報告等,這種程度的透明度和開放性也方便了業界必要的驗證。所有專案團隊都應該從中學習。

Bitwarden 更進一步,因為它是完全開源的,包括伺服器端,因此任何人都可以驗證、審核和貢獻。現在你明白了嗎? 1Password 和 Bitwarden 的意圖非常明確:

我非常有安全感並且很關心隱私。不只我自己這麼說,第三者權威機構也這麼說。請隨意審核我,為了方便您的審核,我花了很多精力盡可能地保持開放。如果我做的與我所說的不符,那麼就很容易挑戰我。這就是所謂的安全信心。

雙重身份驗證

說到你在網路上的身份安全,第一層依靠密碼,第二層依靠雙重認證,第三層依靠目標專案本身的風控能力。我不能說二因素身份驗證是必須具備的。例如,如果你使用的是去中心化錢包,一層密碼就夠煩人的了(現在基本上都支持面部識別或指紋等生物識別,以提高用戶體驗),沒有人願意使用第二個因素。但在中心化平台中,你必須使用2FA。任何人都可以存取集中式平台,如果您的憑證被盜,您的帳戶就會被洩露,您的資金將會遺失。相反,你的去中心化錢包的密碼只是本地身份驗證,即使駭客獲得了密碼,他們仍然需要存取你的錢包所在的設備。

現在您看到差異了嗎?一些著名的雙重認證(2FA)工具包括:Google Authenticator、Microsoft Authenticator 等。當然,如果您使用密碼管理器(例如 1Password),它還附帶了 2FA 模組,這非常方便。始終記得進行備份,因為丟失 2FA 可能會很麻煩。

另外,雙因素認證也可以是一個更廣泛的概念。例如,當使用帳戶識別碼和密碼登入目標平台時,我們的帳戶識別碼通常是電子郵件或手機號碼。這時,郵箱或手機號碼就可以當作2FA來接收驗證碼。但這種方法的安全等級不太好。例如,如果郵箱被洩露或SIM卡被劫持,或者用於發送電子郵件和簡訊的第三方服務被駭客入侵,那麼平台發送的驗證碼也會被洩露。

科學上網

出於政策原因,這個我們就不談太多了,只選一個眾所周知的解決方案。如果你能建立自己的解決方案,事情就會更可控。畢竟,我們的出發點是科學、安全地上網。

如果您沒有使用自建解決方案,則不能完全排除中間人攻擊的可能性。如前所述,網路安全狀況已不像以前那麼糟糕,尤其是在大規模採用 HTTPS Everywhere 策略之後。然而,有些平靜可能只是表面,表面之下已經暗流湧動,不易被察覺。說實話,我對此確實沒有什麼靈丹妙藥。建立自己的解決方案並不容易,但絕對值得。如果不能,請確保使用多個來源進行檢查,並選擇歷史悠久、信譽良好的來源。

電子郵件

電子郵件是我們基於網路的身份的基石。我們使用電子郵件來註冊許多服務。我們使用的幾乎所有電子郵件服務都是免費的。它就像空氣一樣,你不認為它會消失。如果有一天你的電子郵件服務消失了,那麼所有依賴它的其他服務將處於相當尷尬的境地。如果發生戰爭、天災等,這種極端情況確實不是不可能。當然,如果發生這些極端情況,電子郵件對你來說就不如生存重要了。

當涉及電子郵件服務提供者時,您應該選擇科技巨頭,例如Gmail、Outlook或QQ信箱。恰好我之前的安全研究也涉及這個領域。這些郵箱的安全狀況夠好。但您仍然必須小心電子郵件網路釣魚攻擊。您不需要處理每封電子郵件,尤其是嵌入的連結和附件,其中可能隱藏著木馬。

如果您的電子郵件服務提供者遇到高度複雜的攻擊,那麼您只能靠自己了。

除了這些科技巨頭的電子郵件服務外,如果您非常關心隱私,可以看看這兩個著名的隱私友善電子郵件服務:ProtonMail 和 Tutanota。我的建議是將這些私人郵箱與日常使用分開,只將它們用於需要特別關注隱私的服務。您還需要定期使用免費電子郵件服務,以防止您的帳戶因長時間不活動而被暫停。

SIM卡

SIM卡和手機號碼在許多情況下也是非常重要的基本身份,就像電子郵件一樣。近年來,我國各大業者在手機號碼的安全保護方面做得非常好。例如,取消和重新發行SIM卡有嚴格的安全協議和驗證流程,並且全部在現場進行。關於SIM卡攻擊,我舉個例子:

2019.5,某人的Coinbase帳戶遭遇SIM Port Attack(SIM卡轉帳攻擊),不幸損失超過10萬美元的加密貨幣。攻擊過程大致如下:

攻擊者透過社交工程等方式獲取目標用戶的隱私訊息,並欺騙手機業者為其發放新的SIM卡,然後透過同一手機號碼輕鬆接管目標用戶的Coinbase帳戶。 SIM卡已經轉移了,很麻煩。如果您的 SIM 卡被攻擊者轉移,那就非常麻煩了,因為現在許多線上服務都使用我們的手機號碼作為直接身份驗證因素或 2FA。這是一種非常中心化的認證機制,手機號碼成為弱點。

詳細分析請參考:

https://medium.com/coinmonks/the-most-expensive-lesson-of-my-life-details-of-sim-port-hack-35de11517124

對此的防禦建議實際上很簡單:啟用眾所周知的 2FA 解決方案。

SIM卡還有一個風險:那就是如果手機遺失或被盜,壞人能把SIM卡拿出來使用,那就尷尬了。我是這樣做的:啟用SIM卡密碼(PIN碼),這樣每次我打開手機或在新裝置上使用SIM卡時,我都需要輸入正確的密碼。請向 Google 詢問詳細的操作方法。這裡我提醒一下:這個密碼千萬不要忘記,不然會很麻煩。

GPG

這部分的許多內容在前面的章節中已經提到過,在這裡我想補充更多的基本概念:有時你會遇到類似的名稱,例如 PGP、OpenPGP 和 GPG。簡單區分如下:

  • PGP 是 Pretty Good Privacy 的縮寫,是一款已有 30 年歷史的商業加密軟體,現隸屬於賽門鐵克旗下。
  • OpenPGP 是源自 PGP 的加密標準。
  • GPG,全名為GnuPG,是一款基於OpenPGP標準的開源加密軟體。

它們的核心是相似的,並且使用 GPG 你可以與其他的兼容。在這裡我再次強烈建議:在安全加密方面,不要試圖重新發明輪子; GPG如果正確使用,可以顯著提高安全等級!

隔離

隔離安全原則背後的核心價值是零信任心態。你要明白,無論我們多麼強大,我們遲早都會被駭客攻擊,無論是外部駭客、內部駭客或我們自己。當被駭時,停損應該是第一步。停損能力被許多人忽視,這也是他們一次又一次被駭的原因。根本原因是沒有安全設計,尤其是隔離等簡單的方法

良好的隔離實務可以確保在發生安全事件時,您只會失去與受感染目標直接相關的資產,而不會影響其他資產。

例如:

  • 如果您的密碼安全措施良好,當您的一個帳戶遭到駭客攻擊時,相同的密碼不會危及其他帳戶。
  • 如果您的加密貨幣沒有儲存在一組助記詞種子下,那麼即使您陷入陷阱,您也不會失去一切。
  • 如果您的計算機被感染,幸好這只是一台用於休閒活動的計算機,裡面並沒有什麼重要的東西,所以您不必驚慌,因為重新安裝計算機可以解決大部分問題。如果您擅長使用虛擬機,那就更好了,因為您可以只恢復快照。好的虛擬機器工具有:VMware、Parallels。
  • 總結一下,你至少可以擁有兩個帳戶、兩個工具、兩個設備等,熟悉之後完全創建一個獨立的虛擬身份也不是不可能。

我之前提到過一個比較極端的觀點:隱私不是我們要保護的,隱私應該受到控制。

產生這種觀點的原因是:在當前的網路環境下,隱私實際上已經被嚴重洩漏。幸運的是,近年來,與隱私相關的法規被越來越廣泛地採用,人們也越來越關注。一切確實都在朝著正確的方向發展。但在此之前,無論如何,當你掌握了我列出的知識點後,你就能夠輕鬆掌控自己的隱私了。在網路上,如果你習慣了,你可能會擁有幾個幾乎相互獨立的虛擬身分。

人性的安全

人類始終處於最高且永恆的風險之中。 《三體》中有一句話:“軟弱和無知不是生存的障礙,傲慢才是。”

  • 不要傲慢:如果你認為自己已經很強大,那你就對自己沒問題。不要小看整個世界。特別是,不要太驕傲,認為自己可以挑戰全球駭客。學無止境,障礙還很多。
  • 不要貪婪:貪婪在很多時候確實是前進的動力,但想想,為什麼這麼好的機會只留給你呢?
  • 不要衝動:衝動是魔鬼,它會讓你陷入陷阱。魯莽的行動就是賭博。

人性中有說不完的事情,必須小心。請特別注意以下幾點,看看不法分子如何運用人性的弱點,並利用各種便利的平台。

電報

我之前說過 Telegram 是最大的暗網。不得不說,人們喜歡 Telegram 是因為它的安全性、穩定性和開放的設計特性。但 Telegram 的開放文化也吸引了壞人:大量使用者、高度可自訂的功能、足夠容易建構各種 Bot 服務。結合加密貨幣,實際的交易體驗遠遠超越了Tor的暗網市場。而且裡面的魚也太多了。

通常,社交媒體帳戶的唯一識別碼只是用戶名、用戶 ID 之類的東西,但這些可以被不良行為者完全複製。有些社群平台有帳戶驗證機制,例如添加藍色V圖示什麼的。公共社交媒體帳戶可以透過一些指標來驗證,例如追蹤者數量、發布的內容、與粉絲的互動等。非公共社交媒體帳戶的難度更大一些。很高興看到 Telegram 發布了「我們在哪些組」的功能。

凡是有漏洞可鑽、收益可觀的地方,一定已經有一堆壞人了,這就是人性。

因此,社群媒體平台充滿了網路釣魚陷阱。例如:在群組聊天中,突然出現一個看似官方客服的人,發起私聊(any2any私聊是Telegram的功能,不需要好友請求),然後就出了經典的戰術垃圾郵件,魚會接連咬鉤。

或者攻擊者可能會更進一步,將您添加到另一個群組中。所有參與者買給你的都是假的,但對你來說卻顯得那麼真實。我們將這種技術稱為地下社會的群體克隆。

這些只是操縱人性的基本方法,先進的技術會與漏洞結合在一起,因此更難以預防。

Discord

Discord是近兩年興起的新進熱門社群平台/IM軟體。核心功能是社群伺服器(不是傳統伺服器的概念),正如官方的說法:

Discord 是一款免費的語音、視訊和文字聊天應用程序,數千萬 13 歲以上的人使用它與社區和朋友聊天和閒逛。

人們每天都使用 Discord 談論很多事情,從藝術計畫和家庭旅行到家庭作業和心理健康支援。它是任何規模社區的家園,但最廣泛使用的是經常交談的小而活躍的群體。

它看起來很棒,但需要相當強大的安全設計標準。 Discord 有特定的安全規則和政策,如下所示:

https://discord.com/safety

不幸的是,大多數人不會費心去仔細閱讀它。更重要的是,Discord 並不總是能夠清楚地說明某些核心安全問題,因為他們將不得不戴上攻擊者的帽子,而這並不總是可行的。

例如:

Discord 上的 NFT 竊案如此之多,主要的攻擊方式有哪些?在我們弄清楚這一點之前,Discord 安全建議是沒有用的。

許多專案Discordhacks背後的關鍵原因實際上是Discord Token,它是HTTP請求頭中授權欄位的內容。它已經在 Discord 中存在了很長時間。對於駭客來說,如果他們能找到辦法獲得這個Discord Token,他們幾乎就可以控制目標Discord伺服器的所有權限。也就是說,如果目標是管理員、具有管理權限的帳戶或 Discord 機器人,駭客就可以為所欲為。例如發布一個NFT釣魚網站,讓人以為是官方發布的,魚就會上鉤。

有人可能會問,如果我向我的 Discord 帳戶添加雙重身份驗證 (2FA) 會怎麼樣?絕對是個好習慣!但 Discord Token 與您的帳號 2FA 狀態無關。一旦您的帳戶洩露,您應立即更改您的 Discord 密碼,以使原始 Discord 令牌失效。

對於駭客如何獲得Discord Token的問題,我們已經弄清楚了至少三種主要技術,我們將在以後嘗試詳細解釋。對於一般使用者來說,可以做的事情有很多,但核心點是:不急、不貪心、多方驗證。

「官方」網路釣魚

壞演員善於利用角色扮演,尤其是官方角色。例如我們之前提到過假客服的方法。除此之外,2022年4月,知名硬體錢包Trezor的許多用戶收到了來自trezor.us的釣魚郵件,該郵件並非Trezor官方網域trezor.io。網域後綴略有不同。此外,以下網域也透過網路釣魚電子郵件傳播。

https://suite.trẹzor.com

區塊鏈黑暗森林自我守護手冊

這個網域有一個“亮點”,仔細觀察其中的字母ẹ,你會發現它不是字母e。令人困惑?它實際上是Punycode,標準描述如下:

應用程式國際化網域的 Unicode 引導字串編碼 (IDNA) 是一種國際化網域編碼,表示 Unicode 和 ASCII 代碼中的有限字元集。

如果有人解碼trẹzor,它看起來像這樣:xn-trzor-o51b,這才是真正的網域!

多年來,駭客一直在使用 Punycode 進行網路釣魚,早在 2018 年,一些幣安用戶就受到了同樣的伎倆的危害。

這類釣魚網站已經能讓許多人淪陷,更不用說那些更進階的攻擊,例如官方信箱被控制,或是SPF配置問題導致的郵件偽造攻擊。結果,這封郵件的來源看起來和官方的一模一樣。

如果是內部流氓,使用者就無能為力。專案團隊應該投入大量精力來防止內部威脅。內部人員是最大的特洛伊木馬,但他們經常被忽視。

Web3 隱私問題

隨著Web3的日益普及,越來越多有趣或無聊的項目出現:像各種Web3基礎設施、社交平台等。其中一些項目做了大量數據分析,識別出目標的各種行為畫像,而不僅僅是在區塊鏈上方面,而且也在著名的 Web2 平台上。肖像一旦出來,目標基本上就是透明人。而Web3社群平台的出現也可能加劇這樣的隱私問題。

想一想,當你玩弄這些Web3相關的東西,例如簽名綁定、鏈上互動等等,你是不是洩漏了更多的隱私?許多人可能不同意,但隨著許多部分整合在一起,將會有一個更準確和更全面的畫面:您喜歡收集哪些NFT、您加入了哪些社區、您在哪些白名單上、您與誰有聯絡、哪些Web2 帳戶您有義務、您活躍的時間段等等。你看,區塊鏈有時會讓隱私變得更糟。如果您關心隱私,則必須小心所有新出現的事物,並保持隔離身分的好習慣。

此時,如果私鑰不小心被盜,損失的不僅是金錢那麼簡單,而是所有精心維護的Web3權益。我們常說私鑰就是身份,現在你遇到了真正的身份問題。

永遠不要考驗人性。

區塊鏈惡作劇

區塊鏈技術創造了一個全新的產業。無論你稱之為BlockFi、DeFi、加密貨幣、虛擬貨幣、數位貨幣、Web3等等,一切的核心仍然是區塊鏈。大多數炒作都集中在金融活動上,例如加密資產,包括不可替代的代幣(或 NFT,數位收藏品)。

區塊鏈產業充滿活力且令人著迷,但作惡的方式實在太多。區塊鏈的特殊性導致了一些相當獨特的罪惡,包括但不限於加密貨幣盜竊、加密貨幣劫持、勒索軟體、暗網交易、C2攻擊、洗錢、龐氏騙局、賭博等。我早在2019年就做了一張心智圖以供參考。

https://github.com/slowmist/Knowledge-Base/blob/master/mindmaps/evil_blockchain.png

與此同時,慢霧團隊一直在維護和更新慢霧駭客——一個不斷增長的區塊鏈相關駭客活動資料庫。

https://hacked.slowmist.io/

本手冊介紹了許多安全措施,如果您能夠將它們應用到您自己的安全中,那麼恭喜您。我不會過度闡述區塊鏈的惡作劇。如果你有興趣,你可以自學,這絕對是一件好事,特別是因為新的騙局和詐欺行為正在不斷演變。你學得越多,你就能更好地保護自己,讓這個產業變得更好。

當你被駭客攻擊時該怎麼辦

最終被駭客攻擊只是時間問題。那該怎麼辦呢?我就直接切入主題吧。以下步驟不一定依序排列;有時你必須來來回回,但整體思路是這樣的。

先止損

停損就是限制你的損失。它至少可以分為兩個階段。

  • 立即行動階段。立即行動!如果您看到駭客正在轉移您的資產,請不要再想了。趕緊把剩餘的資產轉移到安全的地方吧。如果您有搶先交易的經驗,那就抓住並跑吧。根據資產類型,如果可以凍結區塊鏈上的資產,請盡快執行;如果你能做鏈上分析,發現你的資產被轉移到中心化交易所了,你可以聯絡他們的風控部門。
  • 行動後階段。一旦局勢穩定,您的重點應該是確保不會發生二次或三次攻擊。

保護現場

當你發現事情不對勁時,保持冷靜並深呼吸。一定要記得保護現場。以下是一些建議:

  • 如果事故發生在連接互聯網的電腦、伺服器或其他裝置上,請立即中斷網絡,並保持設備通電。有人可能會說,如果是破壞性病毒,本地系統檔案就會被病毒破壞。他們是對的,但是只有當你的反應速度比病毒更快時,關閉才會有幫助...
  • 除非您有能力自行處理此問題,否則等待安全專業人員介入分析始終是更好的選擇。

這非常重要,因為我們已經遇到過很多次,當我們介入分析時,場景已經很混亂了。甚至在某些情況下,關鍵證據(例如日誌、病毒檔案)似乎已被清除。如果沒有保存完好的犯罪現場,可能會對後續的分析和追蹤造成極大的干擾。

根本原因分析

分析原因的目的是了解對手,輸出駭客畫像。此時,事件報告就非常重要,也稱為事後報告。事故報告和驗屍報告指的是同一件事。

我們遇到過很多人在硬幣被盜後向我們尋求幫助,其中許多人很難清楚地講述發生了什麼。他們更難製作一份清晰的事件報告。但我認為這是可以練習的,並且參考範例會很有幫助。以下可能是個很好的起點:

  • 摘要1:誰參與了,這件事是什麼時候發生的,發生了什麼,總共損失了多少?
  • 總結2:與損失相關的錢包地址、駭客的錢包地址、幣種、幣量。只需一張表的幫助就可以更清楚。
  • 流程描述:這部分是最難的。你需要描述事件的各個方面和所有細節,這有助於分析與駭客相關的各種痕跡,並最終從中得到駭客畫像(包括動機)

當涉及到特定情況時,模板會複雜得多。有時人類的記憶也可能不可靠,甚至故意隱藏關鍵訊息,導致時間的浪費或時間的延遲。所以在實踐中會有很大的消耗,我們需要用我們的經驗來指導好工作。最後,我們與丟失代幣的個人或團隊一起製作事件報告,並繼續更新該事件報告。

溯源

根據羅卡定律,哪裡有入侵,哪裡就有蹤跡。如果我們夠努力地調查,我們總是會找到一些線索。調查的過程其實就是取證分析和溯源。我們會根據取證分析得到的黑客畫像進行溯源,並且不斷豐富,這是一個動態的、迭代的過程。

溯源主要包括兩個部分:

  • 鏈上智能。我們分析錢包地址的資產活動,例如進入中心化交易所、混幣器等,對其進行監控並獲取新轉帳的警報。
  • 鏈下情報:這部分涵蓋了駭客的IP、設備資訊、電子郵件地址以及來自這些關聯點的關聯的更多訊息,包括行為訊息。

基於這些資訊有大量的溯源工作,甚至需要執法部門的參與。

案件結案

當然,我們都希望有一個圓滿的結局,以下是我們參與的公開披露的一些取得良好成果的事件的例子:

  • Lendf.Me,價值$25百萬
  • SIL Finance,價值$1215萬
  • 保利網絡,價值$6.1億

我們經歷過許多其他未發表的案例,但都取得了良好或良好的結果。然而大多數的結局都是不好的,這是相當不幸的。我們在這些過程中獲得了許多寶貴的經驗,希望未來能提升好結局的比例。

這部分內容上面已經簡單提到了。與這個領域相關的知識非常多,而我對其中的一些還不是很熟悉。因此,我不打算在這裡給出詳細的解釋。根據場景的不同,我們需要掌握的能力有:

  • 智能合約安全分析與取證
  • 鏈上資金轉移的分析與取證
  • 網路安全分析與取證
  • Linux 伺服器安全分析與取證
  • Windows 安全性分析與取證
  • macOS 安全分析與取證
  • 行動安全分析與取證
  • 惡意程式碼分析與取證
  • 網路設備或平台的安全分析與取證
  • 內部安全分析與取證

它幾乎涵蓋了安全的各個方面,本手冊也是如此。但是,這些安全點僅作為介紹指南在此簡要提及。

誤解

從一開始,本手冊就告訴您要保持懷疑!這包括這裡提到的所有內容。這是一個極其充滿活力和前景的行業,同時也充滿了各種陷阱和混亂。下面我們就來看看一些迷思,如果想當然地認為這些迷思是真理,很容易讓你掉入陷阱,成為混亂本身的一部分。

代碼即法律

代碼就是法律。然而,當一個項目(尤其是與智能合約相關的項目)遭到黑客攻擊或遭到破壞時,沒有一個受害者會希望“代碼就是法律”,事實證明他們仍然需要依賴現實世界中的法律。

不是你的鑰匙,不是你的硬幣

如果你不擁有你的鑰匙,你就不擁有你的硬幣。事實上,許多用戶未能妥善管理自己的私鑰。由於各種安全不當行為,他們甚至失去了加密資產。有時您會發現將您的加密資產放在大型且信譽良好的平台上實際上更安全。

我們信任區塊鏈

我們信任它,因為它是區塊鏈。事實上,區塊鏈本身確實有能力解決許多基本的信任問題,因為它具有防篡改、抗審查等特點;如果我的資產和相關活動都在鏈上,我可以默認相信沒有人能夠在未經授權的情況下拿走我的資產或篡改我的活動。然而現實往往是殘酷的,首先並不是每個區塊鏈都能做到這些基本點,其次人性總是成為最薄弱的環節。如今的許多黑客技術超出了我們大多數人的想像。雖然我們總是說攻擊和防禦是成本和影響之間的平衡,但當你沒有大量資產時,沒有駭客會浪費時間瞄準你。但當像你這樣的目標有多個時,駭客發動攻擊就會非常有利可圖。

我的安全建議很簡單:預設不信任(即預設質疑一切),並進行持續驗證。驗證是這裡的關鍵安全操作,持續驗證基本上意味著安全永遠不會處於靜態狀態,現在安全性並不意味著明天安全。正確驗證的能力是我們所有人面臨的最大挑戰,但這很有趣,因為您將在過程中掌握很多知識。當你夠強大的時候,沒有人可以輕易傷害你。

密碼安全就是安全

密碼學非常強大且重要。沒有密碼學家的辛勤工作,沒有可靠的密碼演算法和工程實現,就不會有現代通訊技術、互聯網或區塊鏈技術。然而,有些人認為密碼安全是絕對安全的。於是一連串奇怪的問題就出現了:

區塊鏈不是非常安全,以至於需要數萬億年才能破解私鑰嗎? FBI為何能解密暗網比特幣?周杰倫的NFT到底為何會被偷?

我可以忍受這些新手問題……我不能忍受的是,許多所謂的安全專業人士使用密碼安全概念來愚弄公眾,他們提到諸如軍用級加密、世界上最好的加密、宇宙級加密等術語。級加密、絕對的系統安全、不可破解等

駭客?他們才不在乎…

被駭客攻擊很丟臉嗎?

確實,被駭客攻擊會帶來複雜的感覺,有時還會有一種羞恥感。但你需要明白,被駭客攻擊幾乎是 100% 的保證,所以沒有什麼好羞恥的。

一旦被黑了,只要你自己負責也沒關係。但是,如果您要對許多其他人負責,那麼在處理事件時就必須保持透明和公開。

儘管人們可能會質疑甚至指責你自己進行駭客攻擊,但透明和開放的更新過程總是會帶來好運和理解。

可以這樣想:如果您的專案不知名,就沒有人會攻擊您。恥辱不是被駭客入侵,而是被駭客攻擊。恥辱是你的傲慢。

從機率的角度來看,被駭客攻擊是一種常見現象,通常情況下,大多數安全問題都只是小問題,這可以幫助您的專案成長。但嚴重的大問題還是要盡量避免。

立即更新

本手冊多次建議注意更新。如果有可用的安全性更新,請立即套用。現在仔細想想,這是靈丹妙藥嗎?

事實上,在大多數情況下,「立即更新」才是正確的做法。然而,歷史上曾有過這樣的情況:更新解決了一個問題,但卻引入了另一個問題。 iPhone 和 Google Authenticator 就是一個例子:

新的iOS 15更新存在一個風險,即iPhone升級後Google Authenticator中的資訊可能會被擦除或翻倍。在這種情況下,如果您發現重複的條目重複了,千萬不要刪除它們,因為這可能會導致重新開啟後Google身份驗證器中的所有資訊遺失。

對於尚未升級到iOS 15系統且正在使用Google身份驗證器的用戶,強烈建議在升級前進行備份。

後來,Google更新了Authenticator應用程序,永久解決了這個問題。

此外,我不建議頻繁更新錢包,尤其是對於重資產的錢包,除非有重大安全補丁,或非常重要的功能導致不可避免的更新。在這種情況下,您必須自行進行風險評估並做出決定。

結論

回想一下,這本手冊是從這張圖開始的 🙂

區塊鏈黑暗森林自我守護手冊

大家注意到了嗎,我把圖中的人用紅色標出了,我這樣做是為了再次提醒大家,人是萬物之本(宇宙學中稱為「人擇原理」)。無論是人性安全,或是掌握安全技能的能力,都取決於你。是的,當你夠強大的時候,沒有人可以輕易傷害你。

我根據圖開始展開,講解了創建錢包、備份錢包、使用錢包這三個過程中的許多安全要點。然後我介紹了傳統的隱私保護。我說過,這些傳統的方法是我們在區塊鏈生態系統中保持安全的基石和建構模組。人性安全部分不能過度修飾。多了解各種各樣的作惡方式是有好處的,尤其是如果你踩過幾個坑,紙上的安全意識最終可能會成為你的安全體驗。沒有絕對的安全,所以我解釋了當你被駭客攻擊時該怎麼做。我不希望不幸的事件發生在您身上,但萬一發生了,我希望這本手冊能對您有所幫助。最後說一下一些誤解。我的意圖很簡單,希望你能建立起自己的批判性思維,因為世界既美麗又可怕。

好久沒有寫這麼多字了。我想上一次是10年前我寫這本書的時候了“Web駭客科技揭秘」。真是苦樂參半。在網路安全和網路安全領域工作多年後,我帶領一個團隊創建了 ZoomEye,一個網路空間搜尋引擎。在網路安全領域,我涉足過很多領域,但我只能說我擅長其中的幾個領域。

現在在區塊鏈安全領域,我和慢霧被認為是先驅者。這些年來我們遇到的案例太多了,你幾乎可以認為我們每天都處於恍惚狀態。遺憾的是,很多感悟沒有被記錄和分享。於是,在幾位朋友的敦促下,這本手冊誕生了。

當你讀完本手冊後,一定要練習、熟練、舉一反三。以後有自己的發現或經驗的時候,希望你貢獻一下。如果您認為存在敏感訊息,您可以將其屏蔽或匿名化。

最後,得益於全球安全和隱私相關立法和執法的成熟;感謝所有先驅密碼學家、工程師、道德駭客以及所有參與創造更美好世界的人們的努力,其中包括中本聰。

附錄

安全規則和原則

本手冊中提到的安全規則和原則摘要如下。上面的文字已經包含了相當多的規則,這裡不再具體細化。

兩大安全規則:

  • 零信任。簡單來說,保持懷疑,並且始終保持如此。
  • 持續驗證。為了相信某件事,你必須驗證你懷疑的東西,並讓驗證成為一種習慣。

安全原則:

  • 對於所有來自互聯網的知識,請至少參考兩個來源,相互印證,並始終保持懷疑態度。
  • 分離。不要把所有的雞蛋放在一個籃子裡。
  • 對於擁有重要資產的錢包,不要進行不必要的更新。
  • 你所看到的就是你所簽署的。您需要了解您正在簽署的內容,以及發送簽名交易後的預期結果。不要做事後讓自己後悔的事。
  • 注意系統安全性更新。一旦可用就立即應用它們。
  • 不要魯莽地下載和安裝程式實際上可以預防大多數風險。

貢獻者

感謝貢獻者,此列表將不斷更新,如果您對本手冊有任何想法,請與我聯繫。

因為,推特(@evilcos)、即刻(@餘弦.jpg)

貢獻者

我的妻子SlowMist,Twitter (@SlowMist_Team),例如Pds、Johan、Kong、Kirk、Thinking、Blue、Lisa、Keywolf...Jike app 一些匿名朋友...更多:https://darkhandbook.io/contributors .html

如果您的貢獻被接受並納入本手冊,您將被添加到貢獻者清單中。

例如:提供具體的安全防禦建議或案例;參與翻譯工作;修正較大的錯誤等

官方網站

SlowMist https://www.slowmist.com CoinMarketCap https://coinmarketcap.com/ Sparrow 錢包 https://sparrowwallet.com/ MetaMask https://metamask.io/ imToken https://token.im/ Trust 錢包 https ://trustwallet.com/ Gnosis Safe https://gnosis-safe.io/ ZenGo https://zengo.com/ Fireblocks https://www.fireblocks.com/ Safeheron https://www.safeheron.com/ Keystone https://keyst.one/ Trezor https://trezor.io/ Rabby https://rabby.io/ EdgeWallet https://edge.app/ MyEtherWallet https://www.myetherwallet.com/ Phantom https: //phantom.app/ 龍捲風現金https://tornado.cash/ 幣安https://www.binance.com/ Coinbase https://coinbase.com 複合https://compound.finance/ SushiSwap https:// www .sushi.com/ OpenSea https://opensea.io/ Revoke.cash https://revoke.cash/ APPROVED.zone https://approved.zone/ 即刻https://okjike.com/ 卡巴斯基https :// www.kaspersky.com.cn/ Bitdefender https://www.bitdefender.com/ Cloudflare https://www.cloudflare.com/ Akamai https://www.akamai.com/ 監控自衛https:// ssd .eff.org/ 隱私指南https://www.privacytools.io/ OpenPGP https://www.openpgp.org/ GPG https://gnupg.org/ GPG 套件https://gpgtools.org/ Gpg4win https : //www.gpg4win.org/ 1Password https://1password.com/ Bitwarden https://bitwarden.com/ Google 驗證器https://support.google.com/accounts/answer/1066447 Microsoft 驗證器https://www .microsoft.com/en-us/security/mobile-authenticator-app ProtonMail https://protonmail.com/ Tutanota https://tutanota.com/ VMware Workstation https://www.vmware.com /products/workstation- pro.html Parallels https://www.parallels.com/
© 版權聲明

相關文章