熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Java編程 >> Java核心技術 >> 正文

慎防惡意的Java Applet

2013-11-23 18:41:52  來源: Java核心技術 

  在傳統的應用開發中開發人員常常為了將為一種機器平台開發的程序移植到其它的平台上而感到頭痛Java的出現大大減輕了開發人員的這種負擔它的一次編成到處運行(Write OnceRun Anywhere)的功能使開發人員能夠開發出跨系統跨平台運行的應用程序現在各種Java應用中都大量使用了Java applet它是一種特殊的Java小程序這些applet能夠給人們帶來更為活潑更具吸引力的Web頁面各種具有Java功能的浏覽器如Netscape NavigatorMicrosoft Internet Explorer(MSIE)等會自動下載並執行內嵌在Web頁面中的 Java applet
  
    然而Applet在給人們帶來好處的同時也帶來了潛在的安全隱患它使applet的設計者有機會入侵他人的機器實事求是的講這個世界上沒有一個電腦系統是百分之百安全的 但由於現在Internet和Java在全球應用得越來越普及因此人們在浏覽Web頁面的同時也會同時下載大量的Java applet就使得Web用戶的機器面臨的安全威脅比以往任何時候都要大
  
    上述問題到目前為止還沒有一種完全的解決方法好在現在Java 的設計者已注意到了這一點並盡其所能加以限制 例如在 JDK 版中就采用逐漸流行的數字簽名技術以減少applet可能造成的危險 盡管如此目前Web用戶的機器還是很容易受到applet的攻擊而且現在用戶能夠采取的對策並不多在Java applet 四處充斥的今天人們使用具有 Java功能的浏覽程序之時對於浏覽的網頁的地點就不能不多加留意
  
    Web頁面中的執行文件到底會帶來什麼樣的潛在危險呢?大致上可分為四類∶更改系統侵犯隱私權非法入侵攫取資源與使用者敵對
  
  惡意之∶更改系統
  
    像 Java 這樣功能強大的程序語言不管是在電腦的硬盤上還是在文件系統中都具有修改數據的能力 Java 中包含有許多預先定義好的類(class)其中的方法(method) 可以刪除或修改文件更改使用中的磁盤內容殺掉執行程序或其執行線程 (thread) 這些功能很有可能會被applet的設計者濫用更改系統可能是所有潛在危險中最嚴重的一種Java 的設計者對於限制此類危險已花費了很大的心思相反的ActiveX 則對其引發的可能結果尚未加以限制
  
    所謂的更改系統包括入侵系統在不安全的使用 Java時可能會被applet發現攻擊的路徑 由於黑客 (hacker) 們總是想方設法利用各種手段入侵他人的電腦系統 ( 取得進入系統與使用權限 )而我們用戶能做的不過是小心使用Java而已因此保證Java運行環境的安全最主要的還是Java設計者的責任Java設計得必須保證在用戶下載applet時沒有其他進入系統的安全漏洞產生
  
    由於Java 可在多種操作平台上運行因此惡意的applet只要在其中一種操作系統(例如Solaris) 上攻擊成功 在攻擊其它作業系統 ( 例如 Windows NT) 時也能得逞因此Java在帶來應用程序跨平台執行的同時也帶來了惡意applet的這種跨平台攻擊的可能性
  
    利用 Java 來入侵電腦系統並非不可能的事情曾發現許多目前已知的 Java安全漏洞的美國普林斯頓大學安全Internet編程小組(Safe Internet Programming Team)就在實驗室中展示了這種攻擊型的 applet雖然目前針對已發現的一些安全漏洞已經提供了一些補丁(patch)程序 但其它更為復雜的攻擊仍可能潛藏著而未被人們發現
  
    在如今各種重要的電腦系統中這種更改系統型的 applet 攻擊對數據造成的破壞是非常嚴重的如它可能會破壞一些表面上看來很安全的數據庫中的財務記錄導致公司財務損失而破產或者是竄改醫院中病人的病情數據導致醫療不當甚至因此導致病人死亡所以在目前未能打到解決方案的情況下對Java applet的使用要非常小心不要讓重要的數據系統暴露在這種新型的攻擊危險中
  
  Internet這種全球最開放的系統幾乎可以稱得上是電腦黑客們的樂園這從Internet上層出不窮的入侵事件便不難看出因此如何使 Java 不致於成為為他們的破壞工具不管是對開發員來講還是對用戶來講都是一個重要的課題
  
  惡意之∶侵犯隱私權
  
    第二種類型的攻擊就是暴露他人電腦主機的秘密數據例如在 Unix 系統中如能訪問/etc/passwd( 記錄系統中所有使用者的姓名與密碼 )這個文件就有可能入侵整個系統
  
    另外電腦系統也可能會造成一些敏感性資料的洩露例如必術不正的公司可以利用商業間諜偷取對手公司的業務計劃個人用戶對於其私人的電子郵件或財務記錄是否可以公開也要慎重考慮任何可藉由電子郵件傳送或經由網絡傳遞的秘密資料都有可能受到入侵
  
    利用 Java 的功能會產生雙重偽造的可能性典型的電子郵件偽造(mailforging )的情況會更加嚴重Applet 先使用系統送出假信息以欺騙真的郵件   最後目前許多系統中盛行的聲音功能也可能會導致竊聽如果攻擊者能掌握系統的麥克風就有可能進行竊聽的行為 更隱秘的竊聽是訪問監視進程表(process table )和相關的文件網頁式的竊聽還可能包括追蹤某一特定使用者所經過的網路連結
  
    Java 對於某些形式的網絡攻擊可以成功的進行防衛例如文件系統的輸入輸出操作就受到嚴格的控制不過這又與 applet 常需要一條通道以便傳回數據的要求相違背因為applet 總是必須與原來的服務器一直相連電子郵件的偽造防衛起來則比較困難由於缺乏對客戶端連接接口的限制功能電子郵件的偽造不太可能杜絕
  
  惡意之∶拒絕系統服務
  
    拒絕系統服務式的攻擊會讓系統資源無法正常使用通常的做法是利用一個執行程序吸取超過正常系統所分配的資源甚至是霸占整個系統這類攻擊還可分為幾個小的類型例如填滿文件系統或用光所有可用的文件資源調用所有系統的內存產生數以千計的窗口以便有效的阻止屏幕輸出或找開新的窗口產生許多高優先權的執行線程以耗光 CPU的執行周期 雖然這一類危險的破壞作用也很大但它們似乎並未引起Java 的設計者的重視
  
    人們對防止這種攻擊的重要性還有些爭議在大部分情況下拒絕系統服務式的攻擊比較接近與使用者敵對的攻擊因為從此類攻擊中使系統恢復正常一般比較容易只需要重新啟動系統即可不過即使如此在一些重要的系統中也可能會造成嚴重的後果人們當然誰也不希望在與重要的系統連結時重新啟動系統吧例如在處理股票交易的機器上蓄意拒絕系統服務其造成的損失將難以想像的
  
    拒絕系統服務式的攻擊是 Java 常見的安全問題之一 現在Internet上有一個專門介紹此類問題的站點這就是Mark La Due的Hostile Applet主頁(~maladue/) 中不興趣的讀者不妨一看在這裡面介紹了許多實際的例子要制造這種類型的攻擊實際上並不難不過由於目前 Java 的安全模型並沒有提供很好的解決辦法因此對它的防范卻比較困難
From:http://tw.wingwit.com/Article/program/Java/hx/201311/25598.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.