物聯網網路安全
網路安全術語
- 本節簡要介紹了網路安全領域中常見的攻擊、威脅和防禦機制術語。
- 攻擊和威脅術語
- 放大攻擊:攻擊者使用合法服務(如NTP、Steam或DNS)向受害者發送大量放大的頻寬,NTP可放大556倍,DNS可放大179倍。
- ARP欺騙:透過發送偽造的ARP訊息,將攻擊者的MAC位址連結到合法系統的IP位址。
- 偵察:一種用於清點網路系統的技術,攻擊者可透過HTTP請求和檢查回傳資訊獲取潛在目標的訊息。
- 殭屍網路(Botnet):被惡意軟體感染和挾持的網路連接設備,透過集中控制協同工作,主要用於大規模DDoS攻擊,也可用於垃圾郵件和間諜軟體。
- 暴力破解攻擊:反覆試驗以嘗試訪問系統或繞過加密的方法。
- 緩衝區溢位:利用軟體缺陷,使資料超出分配的記憶體塊,覆蓋相鄰記憶體位址,攻擊者可在此放置惡意程式碼並強制執行。
- C和C++等編譯語言因缺乏內部保護機制而易受此類攻擊。
- 命令和控制(C2)伺服器:向殭屍網路發送命令的伺服器。
- 差分功耗分析(DPA):透過四個步驟發現設備中加密密鑰資訊的方法,包括:
- 檢查動態功耗
- 強制加密純文本
- 攻擊子密鑰並計算Pearson相關係數
- 組合最佳子密鑰以獲得完整密鑰
- 字典攻擊:透過系統性地輸入包含使用者名和密碼的字典文件,以進入網路系統。
- 分散式阻斷服務(DDoS):從多個(分散式)來源攻擊線上服務,使其中斷或不可用。
- 模糊攻擊(Fuzzing):向設備發送錯誤或非標準數據,並觀察設備反應,以發現其弱點。
- 中間人(MITM)攻擊:將設備放置在相互信任的雙方通訊流之間,偵聽、過濾並重新發送資訊,可作為中繼器或旁路偵聽。
- 空操作雪橇(NOP Sled):注入一系列NOP彙編指令序列,用於將CPU指令指針「滑動」到惡意程式碼所需區域,常作為緩衝區溢位攻擊的一部分。
- 重放攻擊:也被稱為回放攻擊,攻擊者惡意地重複或重放截取、儲存和傳輸的資料。
- 遠端程式碼執行(RCE):允許攻擊者遠端執行任意程式碼,常以HTTP緩衝區溢位攻擊或注入惡意軟體程式碼的形式出現。
- 返回導向程式設計(ROP):利用難以利用的安全漏洞,跳轉到合法且未更改的指令序列(小工具)來組成惡意攻擊,以繞過非執行記憶體和唯讀記憶體的保護。
- 返回庫函數libc攻擊(Return-to-libc Attack):ROP攻擊的一種特殊形式,攻擊者透過注入程式碼跳轉到程序記憶體空間中的libc或其他常用庫,嘗試直接呼叫系統例程,繞過保護機制。
- Rootkit:通常用於檢測其他軟體有效載荷的惡意軟體,攻擊核心服務、系統管理程式和使用者模式程式。
- 邊信道攻擊(Side-channel Attack):透過觀察實體系統的次級影響
- 如相關功耗分析、聲學分析、記憶體刪除後讀取資料殘留物來獲取受害者系統資訊。
- 社交工程:透過心理操縱和個人欺騙來獲取私人資訊的攻擊形式。
- 欺騙(Spoofing):欺騙方或設備模仿網路上的另一個設備或使用者。
- SQL注入:一種專注於破壞資料庫內容的攻擊形式,利用SQL語句實現。
- SYN洪泛攻擊:當主機發送TCP時,偽代理偽造SYN資料包,導致主機與許多不存在的位址建立半開放連接,耗盡資源。
- 跨站腳本(XSS):Web應用程式中的漏洞,攻擊者可以注入客戶端腳本,2007年之前最普遍的資訊攻擊形式。
- 零日漏洞(Zero-day):設計者或製造商不知道的商業或生產軟體的安全缺陷或漏洞。
- 防範術語
- 位址空間布局隨機化(ASLR):透過將可執行文件隨機載入到記憶體位置中來保護記憶體和防止緩衝區溢位攻擊,使惡意軟體難以預測載入位置。
- 黑洞(Blackholing):檢測到DDoS攻擊後,從受影響的DNS伺服器或IP位址建立路由,強制偽資料進入黑洞或不存在的終端,以便進一步分析和過濾正常資料。
- 非執行記憶體:將一個區域標記為可執行或不可執行,防止攻擊者透過緩衝區溢位運行惡意注入的程式碼,此類嘗試將導致系統錯誤或異常。
- 深度包檢測(Deep Packet Inspection):一種檢查資料流中每個包以隔離入侵、病毒、垃圾郵件和其他過濾標準的方法。
- 防火牆(Firewall):一種網路安全構造,允許或拒絕網路訪問不受信任區域和受信任區域之間的数据包流,可透過路由器上的ACL(存取控制列表)控制流量,執行狀態過濾機制,並提供基於目標端口和流量狀態的規則。
- 不執行位(No-execute Bit):保護可寫入但不可執行的記憶體區域,防止空操作雪橇(NOP sleds),Intel使用NX bit,ARM使用XN bit。
- 蜜罐(Honeypot):包含檢測、轉移或逆向工程惡意攻擊的安全工具,以合法網站或可訪問節點的形式存在於網路中,但實際上處於隔離和監控狀態。
- 堆棧保護(Stack Canaries):一種將堆棧的資料部分與返回位址部分分離的技術,有助於防止ROP攻擊,尤其適用於受約束的物聯網系統。
- 入侵檢測系統(IDS):透過對帶外傳輸資料包流進行分析來檢測網路中威脅的網路結構,不與源和目標內聯以避免影響實時響應。
- 入侵預防系統(IPS):透過真正的線上分析和對威脅的統計或特徵檢測來阻止來自網路的威脅。
- 漏洞代理(Sinkholing):一種防禦工具,可以模擬被感染的殭屍網路設備,並將其連接到惡意主機上,讓使用者了解並收集發送到受控殭屍網路的惡意軟體命令。
- 埠掃描(Port Scanning):在本地網路上找到一個開放和可訪問埠的方法。
- 公開金鑰(Public Key):與私鑰一起生成,用於訪問外部實體,可用於解密資料。
- 公開金鑰基礎設施(PKI):提供驗證器層次結構的定義,以保證公鑰的來源,憑證由CA(憑證頒發機構)簽發。
- 私鑰(Private Key):與公鑰一起生成,不對外發布,安全儲存,用於加密雜湊。
- 信任根(RoT):在冷啟動設備上從不可變、可信記憶體(如ROM)開始執行,是多階段保護啟動的第一階段。
- 安全啟動(Secure Boot):設備的一系列啟動步驟從RoT開始,透過作業系統和應用程式載入,每個元件簽名都被驗證為可信的。
- 堆棧溢位保護:防止堆棧空間溢位並防止從堆棧執行程式碼。
- 可信任執行環境(TEE):處理器中的一個安全區域,確保該區域內的程式碼和資料受到保護,通常是主處理器核心上的執行環境。
物聯網網路攻擊分析
- 本節詳細介紹了三種基於物聯網的著名攻擊形式,以幫助架構師理解其行為特徵並採取預防措施。
- Mirai (13.2.1)
- Mirai是2016年8月感染Linux物聯網設備的惡意軟體,以殭屍網路形式發起大規模DDoS攻擊,目標包括Krebs on Security、Dyn、Lonestar Cell等知名實體。 攻擊流程:
- 掃描(Scanning):使用TCP SYN包快速非同步掃描IPV4位址,專門尋找SSH/Telnet TCP埠23和2323。
- Mirai包含一個硬編碼的位址黑名單,避免攻擊美國郵政、惠普、通用電氣和美國國防部等IP位址。
- 字典攻擊(Dictionary Attack):嘗試使用62對字典攻擊,隨機發送10個使用者名和密碼對建立有效的Telnet會話。
- 若成功,將主機記錄到中央C2伺服器。
- 載入程式(Loader):載入程式從伺服器發送到潛在受害者,負責識別作業系統並安裝惡意軟體,搜尋並終止競爭進程,然後刪除二進制載入文件並混淆進程名以隱藏其存在。
- 惡意軟體非持久儲存,重啟時會被清除。
- 受感染設備:
- IP攝影機
- 數位錄影機
- 家用路由器
- VOIP電話
- 印表機和機上盒等32位ARM
- 32位MIPS和32位x86的物聯網設備
- 影響:共感染60萬台物聯網設備
- DDoS攻擊以SYN洪泛、GRE IP網路洪泛、STOMP洪泛和DNS洪泛形式出現,五個月內發出15,194條攻擊指令,攻擊了5042個網站。對Krebs on Security發起的DDoS攻擊產生623 G的流量,是有史以來最嚴重的一次。
- 掃描(Scanning):使用TCP SYN包快速非同步掃描IPV4位址,專門尋找SSH/Telnet TCP埠23和2323。
- Mirai是2016年8月感染Linux物聯網設備的惡意軟體,以殭屍網路形式發起大規模DDoS攻擊,目標包括Krebs on Security、Dyn、Lonestar Cell等知名實體。 攻擊流程:
- 震網病毒
- 震網病毒是第一個已知對實體設施造成永久性破壞的網路武器。
- 它是一種蠕蟲病毒,用於破壞基於SCADA的西門子PLC,並修改控制鈾濃縮離心機的電機轉速,對伊朗核計畫造成重大破壞。
- 感染過程:
- 感染(Infection):蠕蟲病毒利用以前病毒攻擊發現的有漏洞Windows機器主機,透過插入U盤傳播,使用了4個零日漏洞,並安裝了盜取但簽名正確的設備驅動程式,以隱藏病毒。
- Windows搜索(Windows Search):一旦木馬安裝成功,蠕蟲開始在Windows系統中搜尋西門子SCADA控制器文件(WinCC/PCS 7 SCADA,又稱Step-7)。
- 若發現,則嘗試透過錯誤URL訪問C2伺服器下載最新有效載荷,並進一步搜尋s7otbdx.dll文件(Windows機器與PLC之間通信的關鍵庫文件)。
- 震網病毒將自身插入WinCC系統和s7otbdx.dll之間,充當中間人攻擊者,並記錄離心機的正常運轉。
- 有效載荷(Payload):當決定協調攻擊時,震網病毒向SCADA系統重播預先錄製的數據,使其未發現異常。
- 它透過兩種不同的協同攻擊操縱PLC來破壞伊朗的設施,導致離心機轉子隨著時間推移漸漸損壞,每27天以15或50分鐘的增量運行,最終使分離出的濃縮鈾無法使用,並導致離心機轉子管破裂及被破壞。
- 影響:據信,對伊朗納坦茲主要濃縮設施的襲擊中,有1000多台鈾濃縮離心機癱瘓並受到損壞。
- 震網病毒是第一個已知對實體設施造成永久性破壞的網路武器。
- 連鎖反應
- 連鎖反應是一項聚焦攻擊PAN網狀網且無需任何網際網路連接的科研主題,展示了IoT感測器和控制系統的脆弱性。
- 攻擊載體是消費者家中常見的飛利浦色相燈泡,可升級為對智慧城市的攻擊。
- 攻擊流程:
- 破解OTA韌體的加密和簽名。
- 使用破解的加密密鑰和簽名向一個燈泡寫入惡意的韌體升級程式並部署。
- 被入侵的燈泡根據竊取的主密鑰加入網路,並透過Atmel AtMega部件中的零日缺陷利用臨近安全性。
- 成功加入Zigbee網狀網後,此燈泡將迅速向周圍燈泡發送有效載荷並感染它們,這種擴散將符合滲透理論並干擾整個城市的照明系統。
- 技術細節:飛利浦色相燈使用Zigbee協議建立網狀網,遵循ZLL(Zigbee Light Link)程式。
- ZLL訊息未使用加密或簽名,僅在燈泡加入網狀網交換安全碼時進行加密,且主密鑰公開。
- Zigbee也提供OTA(Over-The-Air)再編程,但韌體經過加密和簽名。
- 研究人員使用CPA(相關功耗分析)和DPA(差分功耗分析)破解韌體加密。
- CPA可以按字節破解密鑰,DPA和CPA結合使用來破解AES-CBC和AES-CTR,並透過檢查Atmel引導載入程式碼發現零日漏洞,繞過Zigbee接近保護。
- 影響:被入侵的燈泡可感染幾百米內的其他燈泡,並移除其韌體更新能力,使其永遠無法修復。
- 研究人員甚至將自動化攻擊系統放置在無人機上,劫持校園內的飛利浦燈泡。
實體及硬體安全
- 物聯網設備常部署在偏遠和孤立區域,易受實體攻擊,因此硬體本身需要具備現代保護機制。
- 信任根(RoT)
- RoT是硬體安全的第一層,確保第一個可執行操作碼從不可變源開始,並在後續啟動系統中(BIOS到作業系統再到應用程式)發揮作用,是抵禦病毒的基本防禦。
- 每個階段驗證下一階段,形成信任鏈。
- RoT啟動方法:
- 從ROM或不可寫記憶體啟動
- 一次性可編程記憶體(熔絲位)
- 受保護記憶體區域啟動。
- 支援RoT的處理器功能:
- ARM TrustZone:提供安全的矽IP塊和硬體RoT,將硬體分為安全和非安全「領域」,運行專為安全設計的輕量級操作系統,透過硬體環境切換消除對安全監控軟體的依賴。用於管理系統密鑰、信用卡交易和數位權限管理,支援A和M CPU。
- Intel Boot Guard:基於硬體的驗證啟動機制,透過加密方式驗證初始啟動塊或使用測量過程驗證。
- 要求製造商生成2048位密鑰,並透過程式設計「炸毀」熔絲位印製公鑰。
- 密鑰管理和可信平台模組(TPM)
- 公鑰和私鑰對系統安全至關重要,需要妥善管理。TPM(Trusted Platform Module)是熱門的硬體標準,規範由可信計算小組編寫,是ISO及IEC標準,目前版本為TPM 2.0。
- TPM是一個獨立的硬體元件,在製造時即刻錄RSA密鑰。
- 它通常用於保存、保護和管理其他服務的密鑰,用於:
- 磁碟加密
- RoT啟動
- 驗證硬體(及軟體)真實性
- 密碼管理
- TPM可建立軟體和硬體的雜湊列表以驗證是否被篡改,並提供:
- SHA-1/SHA-256雜湊
- AES加密
- 非對稱加密
- 亂數生成
- 處理器和記憶體空間
- 處理器和作業系統設備中應用的兩種主要技術是非執行記憶體和位址空間布局隨機化,旨在應對或防止緩衝區溢位及堆棧溢位惡意軟體入侵。
- 非執行記憶體(Non-Executable Memory, NX):作業系統用於將記憶體區域標記為不可執行,以確保只有驗證和合法程式碼所在的區域可執行。
- 若嘗試透過堆棧溢位植入惡意軟體,堆棧將被標記為不可執行,強制執行指令指針將導致機器異常。
- Intel使用XD(Execute Disable),ARM使用XN(eXecute Never)。
- 位址空間布局隨機化(Address Space Layout Randomization, ASLR):
- 儘管OS處理虛擬記憶體空間多於硬體功能,ASLR對抗緩衝區溢位和返回庫函數Libc攻擊,這些攻擊基於攻擊者對記憶體布局的了解。
- 若每次啟動記憶體空間都是隨機的,則呼叫這些庫會非常困難。
- Linux採用PAX和Exec保衛補丁提供ASLR功能,微軟也為堆、堆棧和進程組提供保護。
- 儲存安全
- 物聯網設備在邊緣節點或路由器/閘道器上通常存在持久儲存,智能霧節點也需要某種形式的持久儲存。
- 保護設備上的資料安全對防止惡意軟體植入及物聯網設備被盜至關重要。
- FIPS 140-2(聯邦資訊處理標準)是詳細描述IT設備加密和安全要求的政府法規,有四個合規級別:
- 等級1:純軟體加密,安全性有限。
- 等級2:基於角色的身份驗證,應具備檢測物理篡改的能力。
- 等級3:包括防物理抗篡改能力,若設備被篡改將刪除關鍵安全參數,包括:
- 密碼保護和密鑰管理
- 基於身份的認證
- 等級4:設計用於在無物理保護環境中工作的產品的告警防篡改保護機制。
- 此外,處理介質退役或處置時的安全性也需考慮,NIST發布800-88文件規定如何安全擦除和刪除介質內容。
- 實體安全
- 防篡改和實體安全對物聯網設備尤為重要,因為許多物聯網設備是遠端部署且無本地設備保障。
- 邊信道攻擊(Side-channel Attack):需要涉及功耗分析,其他形式有:
- 定時攻擊
- 快取攻擊
- 電磁輻射
- 掃描鏈攻擊
- 通常在受控環境中觀察和測量被盜單元(DUT)。 預防方法:
- 修改加密函數,使使用密鑰的次數降至最低,使用基於實際密鑰雜湊的短命會話密鑰。
- 對於定時攻擊,隨機插入不干擾原始演算法的函數,使用不同隨機操作碼生成大型工作函數以應對攻擊。
- 移除依賴於密鑰的條件分支。
- 對於功耗攻擊,減少每次洩露的機會,限制每個密鑰的操作次數。
- 將雜訊引入電力線,使用可變調速操作或偏移時鐘,改變獨立操作的順序,減少S-Box計算的相關因素。
- 其他硬體考慮:禁止訪問調試埠和通道,可透過熔斷熔絲位防止調試訪問。
- ASIC通常使用BGA焊接到PCA,使用「高性能膠粘劑」和「耐熱膠」包圍封裝,若被篡改則會帶來不可逆的損失破壞。
- 邊信道攻擊(Side-channel Attack):需要涉及功耗分析,其他形式有:
- 防篡改和實體安全對物聯網設備尤為重要,因為許多物聯網設備是遠端部署且無本地設備保障。
Shell安全性
- 本節涉及SSH(Secure Shell)連接領域,它是一種加密網路協議,用於提供對現代作業系統的登錄、命令列控制、遠端接入和root訪問等服務,使用SHA-2和SHA25等方法在不安全的網路中構建安全通道,通常使用埠22。
- 漏洞與建議:
- 優先使用公鑰交換進行身份驗證,優於基於密碼的安全性。
- 避免暴力破解攻擊:不要有空密碼,應使用偽亂數密碼生成器生成複雜的使用者名和密碼。
- SSH會話不應處於閒置狀態,可透過修改ClientAliveInterval終止無活動的會話。
- 使用除埠22之外的其他埠,避免使用容易猜測的整數作為埠號。
- 使用雙因素身份驗證方法。
密碼使用
- 加密和保密是物聯網部署的絕對要求,用於確保通訊安全、保護韌體和身份驗證。加密一般有三種形式:
- 對稱加密
- 加密和解密的密鑰相同。
- 常見演算法有:
- RC5
- DES
- 3DES
- AES
- AES是加密標準,取代了DES演算法,是FIPS規範和ISO/IEC 18033-3標準的一部分,使用128、192或256位的固定塊。
- 密鑰長度越長,保護效果越好,所需的CPU週期也越多。
- 塊加密操作模式:現代密碼需要一個初始化向量(IV)確保相同明文產生不同密文。
- 電子密碼本(ECB):AES加密的基本形式,資料分成塊,每個塊分別加密,相同分組會產生相同密碼,相對脆弱。
- 密碼塊鏈接(CBC):純文本訊息在加密前與之前的密文進行異或操作。
- 密碼反饋(CFB):類似CBC,但形成密碼流,前一個密碼的輸出輸入到下一個密碼,無法並行處理。
- 輸出反饋(OFB):類似CFB,是一種流密碼,但允許在加密前應用糾錯碼。
- 計數器模式(CTR):透過使用計數器將分組密碼轉換為流密碼,遞增計數器為每個分組密碼並行提供資訊,允許快速執行。
- 認證加密(Authenticated Encryption):如AES-CCM(Counter with CBC-MAC),結合了認證(MAC)和保密。
- CCM是重要的加密模式,用於對資料進行簽名和加密,廣泛應用於:
- Zigbee
- 低功耗藍牙
- TLS 1.2
- IPSEC
- 802.11 Wi-Fi WPA2
- 網狀網密鑰數量:在完全連接的網狀網中,N個節點需要N(N-1)/2個密鑰或O(N^2)。
- CCM是重要的加密模式,用於對資料進行簽名和加密,廣泛應用於:
- 非對稱加密
- 也稱公鑰加密,密鑰成對生成(加密和解密),典型的用法是生成一對密鑰,一個為私有,一個為公共。
- 網狀網密鑰數量:N個節點只需要2N個密鑰或O(N)。
- RSA:1978年開發,基於使用者查找並發布兩個大質數和一個輔助值(公鑰)的乘積。
- 公鑰加密,私鑰解密。
- Diffie-Hellman密鑰交換:允許雙方在沒有任何共享密鑰先驗知識的情況下交換密鑰,基於質數和質數生成器的明文交換。
- 優點是為每個私鑰生成真正的亂數。
- 主要問題是缺乏身份驗證,可能導致MITM攻擊。
- 橢圓曲線Diffie-Hellman(ECDH):基於有限域上橢圓曲線的代數理論,NIST支持,美國國家安全局允許384位密鑰處理絕密材料。
- 優點是密鑰長度可以保持較短,且仍然具有與傳統方法相同的加密強度(如ECC 256位密鑰相當於RSA 3072位密鑰),對於受限物聯網設備至關重要。
- 也稱公鑰加密,密鑰成對生成(加密和解密),典型的用法是生成一對密鑰,一個為私有,一個為公共。
- 雜湊加密法(身份驗證和簽名)
- 雜湊函數被認為是「單向的」或不可能反轉的,通常用於生成數位簽名。
- 雜湊函數關鍵屬性:
- 相同輸入總是生成相同雜湊
- 計算速度快
- 不可逆轉
- 輸入微小變化導致顯著輸出變化
- 兩個不同訊息永遠不會有相同雜湊值
- 常見雜湊演算法:
- SHA1(安全雜湊演算法)
- SHA2
- SHA3
- MD5不再被認為是安全的
- Merkle-Damgard結構:大多數雜湊函數都建立在此結構之上,輸入分割成大小相同的塊,與前一次壓縮的輸出一起順序輸入壓縮函數處理,使用初始化向量(IV)來種子化過程。
- 公鑰基礎設施(PKI)
- 非對稱密碼術是網際網路商務和通訊的支柱,PKI提供可信的公鑰,由受信任第三方管理創建和分發數位憑證。
- PKI組成:憑證頒發機構(CA)(如Symantec, Comodo, Let’s Encrypt, GoDaddy)負責頒發憑證。
- 註冊機構(RA)驗證發送方、管理特定角色和策略,並可吊銷憑證,驗證機構(VA)與RA通訊以傳送吊銷列表,並驗證密鑰是否被吊銷。
- X.509是定義公鑰憑證格式的標準。
- 網路堆棧——傳輸層安全性(TLS)
- TLS(Transport Layer Security,前身為SSL)在許多物聯網協議中都有涉及,匯集了所有密碼協議和技術。
- TLS 1.2是目前規範,包括SHA-256雜湊生成器。 TLS加密過程:
- 客戶端開啟一個到支援TLS伺服器的連接(HTTPS使用埠443)。
- 客戶端提供可使用的支援的密碼列表。
- 伺服器選擇密碼和雜湊函數並通知客戶端。
- 伺服器向客戶端發送數位憑證,包括CA和伺服器公鑰。
- 客戶確認密文有效性。
- 會話密鑰生成:透過伺服器公鑰加密亂數,或使用Diffie-Hellman密鑰交換生成。
- 開始使用加密通道進行通訊。
- DTLS(Datagram Transport Layer Security)是基於TLS的資料報層通訊協議,用於CoAP等輕量級協議以保證安全性。
軟體定義邊界(SDP)
- SDP是軟體定義網路(SDN)的附加組件,基於DISA的「黑雲」概念,提供一種在不存在信任模型情況下的網路和通訊安全途徑。
- SDP架構:SDP可以減輕DDoS、MITM、零日攻擊和伺服器掃描等攻擊。
- 它為每個附加設備提供重疊覆蓋和微分段,在使用者、客戶端和物聯網設備周圍創建僅限邀請(基於身份)的安全邊界。
- 覆蓋網路和微分段:SDP用於創建覆蓋網路,允許多個覆蓋網路建立在相同基礎設施上。
- SDN適用於實時應用程式、遠端監控和複雜事件處理。
- 這種能力允許微分段,即不同資源與不同資料消費者之間建立直接關係,每個終端可在現有網路基礎設施上構建獨立、隔離的網路段,理論上每個感測器可以相互隔離。
- 邀請系統:SDP透過開發邀請系統進一步擴展安全性,強制一對設備先驗證再連接。
- 只有被授權的使用者或客戶端才能添加到網路中,授權可透過控制面發出電子郵件或註冊設備發出的邀請進行擴展。
物聯網中的區塊鏈和加密貨幣
- 區塊鏈的存在主要是為了解決信任模型,它是一個公開、數位化、去中心化的賬本或加密貨幣交易記錄。
- 它的強大之處在於沒有單一實體控制交易狀態,並透過確保每個使用區塊鏈的人都保留一份分類帳副本來強制系統冗餘。
- 物聯網用例:
- 機器間貨幣兌換
- 供應鏈物流追蹤
- 住宅太陽能發電服務
- 比特幣(基於區塊鏈)
- 比特幣是一種去中心化的加密貨幣,不依賴商品或政府支持,不具實體形式,供應量不由央行決定。
- 它由公鑰加密、大型分散式點對點網路和定義其結構的協議構建。
- 交易流程:
- 聲明(Declaration):發起者(如愛麗絲)聲明交易意圖,並用私鑰進行數位簽名。
- 交易標識(Transaction ID):為解決偽造問題,比特幣創建帶序列號的唯一標識,使用雜湊函數而非集中管理的序列號。
- 雙重支付攻擊(Double Spend Attack):接收方(如鮑勃和查理)將潛在支付廣播到網路,請求對等網路協助合法化。
- 此服務非免費。
- 工作量證明(Proof of Work, PoW):為了解決雙重支付問題,比特幣引入PoW,強制驗證交易計算成本高昂,且幫助驗證者需得到報酬。
- PoW涉及找到一個隨機數,用於處理已批准交易的一部分雜湊,目標是提供小於256位的雜湊前導值。
- 平均需要10分鐘來解決這個問題。
- 這意味著一個交易平均需要10分鐘來驗證。
- 獎勵(Incentive):鼓勵個人建立點對點網路來驗證他人的消費,獎勵形式包括比特幣挖礦(驗證區塊交易)和交易費(支付給「礦工」)。
- 鏈式交易(Chaining Transactions):交易發生的順序對貨幣完整性至關重要。
- 所有添加到網路中的新塊都包含指向鏈中驗證的最後一個塊的指針。
- 比特幣在綁定到最長分叉指令之前,任何交易都是無效的,且在最長分叉指令中,至少要有五個區塊跟隨它。
- 這解決了非同步問題和雙重支付企圖。 DoS攻擊防禦:PoW系統可作為阻止DoS攻擊的經濟措施。
- IOTA和有向無環圖信任模型
- IOTA是一種專為物聯網開發的加密貨幣,物聯網設備本身就是信任網路的骨幹,其架構基於有向無環圖(DAG),稱為纏結(tangle),用於儲存交易的分布式分類帳。
- IOTA特點:
- 無中央貨幣控制:避免權力集中。
- 無昂貴硬體設備:挖礦不需要強大處理器。
- 微交易和納米交易:非常適合物聯網級別的小額交易,因為它不收費。
- 經驗證的安全性:甚至能抵禦量子計算的暴力攻擊。
- 數據傳輸:數據可像貨幣一樣透過IOTA傳輸,完全經過身份驗證和防篡改。
- 與交易的有效載荷無關:可用於防篡改投票系統。
- 設備租賃收入來源:任何帶小型片上系統或微控制器的設備都可加入IOTA成為租賃收入來源。
- Tangle運作:新交易到達時,必須批准(或拒絕)前兩個交易,形成直接連接邊。
- 任何執行交易者都需要以纏結的名義產生一個「工作」產品。
- 這項工作涉及找到一個隨機數,用於處理已批准交易的一部分雜湊。
- 透過IOTA,網路變得更分散和更安全。
政府法規及干預
- 由於物聯網系統攻擊日益增加,政府機構和監管機構已介入,對供應商必須滿足的安全級別提出建議和強制要求。
- 美國國會法案——2017年物聯網網路安全改進法案。
- 該法案(S.1691)於2017年8月1日在美國參議院提出,旨在正式制定並規範向美國聯邦機構出售的網際網路連接設備必須滿足的最低安全標準。 要求:
- 解決方案的硬體、軟體和韌體嚴禁存在NIST美國國家漏洞資料庫中所述的漏洞。
- 軟體和韌體必須能夠接受經過身份驗證的更新和補丁,承包商需及時修補漏洞,並說明何時結束對物聯網設備的支持以及如何管理。
- 只能使用有效的通訊、加密和互連的協議和技術。
- 禁止為遠端管理設備安裝硬編碼的憑證。
- 必須提供為任何連接網際網路的設備軟體或韌體提供方法來更新或修補任何部分的漏洞的方法。
- 物聯網設備提供需為符合標準的第三方技術出示書面認證憑證。
- OMB主任可為移除和更換被認為不安全的現有物聯網設備設置最後期限。
- CISA(網路安全與基礎設施安全局)將在法案成為法律後60天內發布聯邦政府物聯網設備網路安全指導書。
- 豁免與風險降低技術:法案承認物聯網設備在處理能力和記憶體方面受到限制,對不合規設備,NIST和主管可協調批准以下技術以降低風險:
- 軟體定義網路分割和微分段
- 隔離運行作業系統級控制的容器和微服務
- 多因素身份驗證
- 智慧網路邊緣解決方案(如閘道器)用於隔離和修復風險
- 該法案(S.1691)於2017年8月1日在美國參議院提出,旨在正式制定並規範向美國聯邦機構出售的網際網路連接設備必須滿足的最低安全標準。 要求:
- 其他政府機構
- NIST(國家標準與技術研究院):為聯網設備安全編寫了多份文件和指南,維護國家和國際公認的安全標準,相關文件包括:
- SP 800-121 Revision 2(藍牙安全)
- FIPS標準
- DHS(國土安全部):向所有聯邦機構提供關於資訊技術領域國家安全的可操作綁定指令,如18-01指令強制實現「網路衛生」,並參與關於網路安全標準的規範性指導。
- US-CERT(美國電腦緊急應變小組):自2000年以來,獲授權在全國範圍內發現、隔離、通知和阻止網路安全威脅,提供數位取證、培訓、實時監控、報告及已知零日漏洞和主動安全防護。
- 歐洲:歐盟網路安全局(ENISA)發布各種標準和出版物指導資訊安全實踐。
- 澳大利亞:澳大利亞物聯網聯盟為資訊安全制定了一套指導方針和實踐。
- NIST(國家標準與技術研究院):為聯網設備安全編寫了多份文件和指南,維護國家和國際公認的安全標準,相關文件包括:
物聯網安全最佳實踐
- 物聯網安全性需要從設計之初就深思熟慮,而非事後彌補。
- 安全性需要整體看待,從硬體到雲端。
- 全面的安全
- 僅關注物聯網某一部分會產生薄弱環節,需要建立從感測器到雲端的整體安全,確保控制及資料鏈中的每個組件都有安全參數和啟用程序的檢查表。
- 包括物理設備的防篡改
- 無線電訊號的防干擾和DoS攻擊
- 惡意程式碼注入的RoT硬體和ASLR
- 加密數據
- 認證配對和關聯
- 網路透過VPN和防火牆等。
- 僅關注物聯網某一部分會產生薄弱環節,需要建立從感測器到雲端的整體安全,確保控制及資料鏈中的每個組件都有安全參數和啟用程序的檢查表。
- 安全檢查清單
- 使用最新的作業系統和所有相關補丁庫。
- 使用行業標準約定,不要重新定義或定制改造經過驗證的協議和安全流程。
- 使用包含安全特性(如可信任執行環境、可信平台模組、非執行空間)的硬體。
- 對韌體和軟體映像進行簽名、加密和保護,特別是公司網站上免費提供的映像。
- 隨機設置預設密碼。
- 使用RoT和安全啟動確保客戶設備上運行的軟體是「黃金」映像。
- 消除ROM映像中的硬編碼密碼。
- 確保所有IP埠在預設情況下保持關閉。
- 透過現代作業系統在記憶體中使用位址空間布局隨機化、堆棧警戒和保護帶。
- 使用自動更新機制,為製造商提供修復和修補領域缺陷和漏洞的方法,這需要模組化的軟體架構。
- 制定報廢計畫,包括從設備中安全地擦除和銷毀所有持久記憶體(閃存)的方法。
- 使用漏洞獎勵計畫,獎勵發現和報告漏洞的客戶和使用者。
- 訂閱並參與US-CERT主動威脅管理,及時了解活動漏洞和網路威脅。
- 只使用透過TLS或DTLS啟用的安全性身份驗證加密從感測器到雲端的數據。
- 在資料包上使用防調試保險絲,在生產過程中熔斷保險絲以確保調試通道安全。