Global Sources
電子工程專輯
 
電子工程專輯 > 介面技術
 
 
介面技術  

防範網路攻擊的互聯即時系統設計方法

上網時間: 2003年04月12日     打印版  Bookmark and Share  字型大小:  

關鍵字:real-time system  即時系統  OSE Systems  Inc  OSE Systems公司 

即時系統與網際網路的接取豐富了其應用功能,但同時帶來了遭受網路攻擊的危險性。即時系統的設計中必須考慮對這些攻擊的防範,增加消息驗證機制和存取控制機制。本文詳細介紹了這些攻擊的常見形式和設計中的防範機制。

網路互聯的導入無疑為嵌入式即時系統的發展提供了很多機會。這種互聯透過簡單地為外部瀏覽器提供網際網路頁,可以為小系統提供豐富的用戶介面。這些單個系統可以是一個大型系統整體的一部份,並共享那些單個設備所不可能擁有的資源和資訊。由於能遠端控制系統,並可遠端改變參數和升級,因此可以不到現場的條件下對軟體升級或增加新功能。

對於即時系統,網路互聯帶來新功能的同時,也帶來了網路安全問題,網路連接將可能影響那些缺乏保護或不能自主保護的即時系統的安全性。互聯繫統需要內建的保護機制,以抵禦來自網路的各種攻擊。因此,即時系統必須在不降低性能的前提下,增加這些保護功能。

常見的網路攻擊形式

服務拒絕(DoS)是網路系統常遭受的一種最低級的攻擊。這種攻擊的形式多種多樣,但是基本上都是透過阻塞通訊訊息通道來實現攻擊。在一些系統中,使網路連接過載也可導致緩衝溢出,因而引發系統崩潰。在即時系統中,另外一種可能的情況是通訊任務獨佔CPU處理時間,降低系統處理其它系統任務的即時性能。

Smurf攻擊是一種典型的DoS攻擊,該名稱源自於最初實現這種攻擊的一個程式。在Smurf攻擊中,攻擊者向網路發送廣播ICMP(互連網控制消息協議)應答請求,而將返回地址指向目標系統。這些請求使網路目標主機產生響應,使目標系統通訊訊息通道上充斥大量無效消息,如圖1所示。

為了使系統免遭Smurf攻擊和其它的攻擊,即時系統可利用能過濾大量應答消息的路由器或防火牆實現網路互聯。如果不具備這樣的保護,那麼嵌入式系統的TCP/IP堆疊應當具有這種保護功能,以過濾這些廣播響應。請看下面的函數:

int smurf_filter(const char *iph)


{


/* Protect from Smurf attacks */


if (IPGET_PROTOCOL(iph) == IPPROTO_ICMP) &&


IPGET_DSTADDR(iph) == INADDR_BROADCAST)


{


return -1; /* Drop all broadcast pings */


}


return 0;


}

上面的函數將丟棄所有由廣播應答請求所產生的傳輸流,因而抵禦Smurf攻擊。增加這些功能將略微增加TCP/IP堆疊的執行時間,但一般不會對系統的即時性能產生太大的影響。

此外,實現聯網的即時系統還很容易遭受網路中誤傳資訊的攻擊。網路上的所有傳輸流均是‘可見’的,因此攻擊者可以監視消息並獲得IP地址和數據格式資訊。獲得這些資訊後,攻擊者就可以向嵌入式系統發送具有錯誤源地址和無效資訊的‘欺騙’消息。這些消息可以是有效消息的重覆,也可以是具有有效幀格式但數據被破壞的消息。

這些消息對嵌入式系統的影響極大。當系統期望獲得新的控制參數時,錯誤的消息將設定不期望甚至不安全的參數值。如果系統正等待新程式,那麼錯誤消息影響系統作業的可能將大幅增加。

增加消息驗證機制圖1: DoS攻擊用大量來自所有主機的偽響應資訊堵塞目標系統。

為了防範無效消息,互聯繫統需要一套對接收消息進行驗證的機制。驗證消息的最可靠方法是對消息及其源地址進行加密處理,只有真正發送該消息的一方才能成功地加密,因此正確解密的源地址才顯示是有效的消息。

當然,攻擊者仍然有可能發送能成功解密的無效消息。攻擊者可以簡單地截取並刪除消息中的數據包,或拷貝並重傳有效的消息數據包,目標系統可以解密消息並找到有效的源地址。然而,如果消息是程式,那麼丟失或添加的數據包將使程式中出現混亂的代碼,由此產生不可預知的後果。攻擊者還可能截取數據包,改變其中的一些位,然後再傳送至目的端。這時地址或許可以正確地解密,而代碼則被破壞掉。

為了防範這些攻擊,加密消息應對數據包編號並包含‘散列(hashing)’函數。對數據包進行編號有助於接收端了解是否存在丟包或重發包,散列函數將會根據每個數據串內容產生特定的數值。如果解密消息包含有效的散列值,則顯示該消息是完整的。

然而,加密處理大幅增加了系統負擔。加密用到的算法需要進行大量運算,採用多達168位元的3-DES(數據加密標準)代碼。而且,這些算法執行的速度必須足夠快,以與訊息通道數據速率匹配,這無疑對即時系統的CPU資源提出了很高的要求。執行於200MHz的標準RISC處理器只能管理1至2Mbps的加密通訊,這樣留給系統即時處理的資源將極為有限。

解決問題的方法有以下兩種。第一種方法是在系統中添加安全協同處理器,如圖2所示。協同處理器可處理大量運算,並將加密後的數據傳送至CPU,這種方法要求CPU具有處理不加密通訊的能力,但需要添加額外的硬體。第二種方法則使用具有內建加密功能的CPU,這些處理器包含加密擴展指令集,大幅提高了加密的速度,這樣就能將更多CPU資源用於系統即時處理功能。

採用存取控制機制

然而,在互聯的即時系統中僅採用加密還是不夠的。加密可以保證消息的完整性並對消息的來源進行檢驗,但並不能保護系統免遭來自有效源端的惡意程式,而且導入惡意程式的途徑也多種多樣。在那些希望處理第三方主控端的系統(如遊戲系統)中,源端系統本身可能就是發送惡意程式的偽裝攻擊者。同樣,外部的攻擊者也可破壞源端系統的安全性。如果攻擊者對目標系統充分了解,那麼就能插入惡意程式,並加密下載至目標系統。

造成大多數電腦系統遭受破壞的安全問題都是來自內部,因為攻擊者能存取目標系統所使用的CPU語言和即時作業系統(RTOS)中的資訊。內部攻擊者可輕鬆地製作惡意程式,並下載至互聯的即時系統。為使互聯設備免遭這些惡意程式的攻擊,RTOS需要整合內部安全處理功能。

惡意程式破壞即時系統的手段很多。其中一種途徑是簡單地隱蔽中斷,然後退出,導致系統無法識別那些無效並且需要重新聲明的中斷,使利用中斷驅動的即時功能將被終止。另一種途徑是查詢進程消息句柄(該句柄是用來指示資訊的目標進程的識別號),然後採用該句柄發送虛假資訊至其它的進程,並導致這些進程行為錯誤。還有一種方式則是將感應數據(如密碼或金融數據)讀出系統記憶體,然後改變數據或將資訊發送至第三方。圖2:透過增加額外的硬體可以防範網路攻擊。

保護嵌入式系統的主要方法是改變RTOS,並對關鍵的系統功能提供基於優先級的存取控制機制。該機制為系統中的進程分配優先級,並根據該優先級決定調用處理程式是否具有存取特定系統資源的權利,如圖3所示。透過謹慎地選取優先級,系統設計人員可以建構抵禦惡意程式攻擊的內部屏障。

例如,存取控制允許利用基於PROM部份編程的進程,而不透過下載程式實現中斷屏蔽。類似地,RTOS可利用存取控制驗證進程的有效性,並發送消息至另一進程,這限制了有效進程對之間的通訊。為了防止感應資訊遭受破壞,RTOS可利用存取控制,為進程存取加密儲存的數據提供方便。簡單的記憶體讀取將無法獲取任何資訊。

在RTOS中插入存取控制可能會降低RTOS的即時性能,存取控制將增加每個系統調用在檢驗調用程式存取權限時的開銷。單個系統調用產生的開銷微不足道,但系統開銷的累積影響將不可忽略。

到目前為止,還沒有已實現存取控制功能的商用RTOS,但初步的試驗顯示,可以透過精細的軟體工程設計減少存取控制產生的負面影響。例如,在存取檢驗中,採用表格而非列表形式將保證存取控制的有界性和確定性。開發人員在這樣的條件下,可以很容易地調節存取控制的影響。

存取控制及DoS保護協議堆疊改變的影響可以透過增加系統的時脈頻率加以解決。加密則較為困難,但採用協同處理器或專用的指令集將能解決這個問題。當然,實現安全性能需要增加系統成本,必須根據實際應用中增加安全性能的必要性和成本預算來作決策。

作者:


Richard Jones


現場應用工程師


OSE Systems公司


Email: loucks@gravitas-japan.com




投票數:   加入我的最愛
我來評論 - 防範網路攻擊的互聯即時系統設計方法
評論:  
*  您還能輸入[0]個字
*驗證碼:
 
論壇熱門主題 熱門下載
 •   將邁入40歲的你...存款多少了  •  深入電容觸控技術就從這個問題開始
 •  我有一個數位電源的專利...  •  磷酸鋰鐵電池一問
 •   關於設備商公司的工程師(廠商)薪資前景  •  計算諧振轉換器的同步整流MOSFET功耗損失
 •   Touch sensor & MEMS controller  •  針對智慧電表PLC通訊應用的線路驅動器
 •   下週 深圳 llC 2012 關於PCB免費工具的研討會  •  邏輯閘的應用


EE人生人氣排行
 
返回頁首