首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 程式設計入門

警惡意 Java Applet 安全威脅深度解析:從系統破壞到隱私洩露

     編輯:Java 程式設計入門

前言:雙面刃的「一次編寫,到處執行」

Java 的跨平台特性讓開發者免於移植之苦,也讓惡意程式碼獲得了前所未有的傳播管道。瀏覽器自動下載並執行網頁內嵌的 Applet,雖然 Java 設計了沙箱機制 (SecurityManager)、後來又引入數位簽名 (JDK 1.1+),但安全漏洞層出不窮。本文系統梳理惡意 Applet 的四大攻擊面向,並提供防禦建議。

四大攻擊類型

1. 系統破壞 — 最嚴重的威脅

  • 檔案系統操作:刪除/修改檔案、格式化磁碟、殺掉進程/執行緒。
  • 入侵跳板:利用 JVM 漏洞逃逸沙箱,取得作業系統級存取權。
  • 跨平台攻擊:同一惡意 Applet 可同時攻擊 Windows、Linux、Solaris 等所有裝有 JVM 的平台。
  • 真實案例:普林斯頓大學 SIPT 實驗室曾公開示範實驗室環境下的逃逸攻擊;歷年 CVE (如 CVE-2012-0507, CVE-2013-0422) 導致大規模駭客攻擊活動。

後果:財務資料竄改導致公司倒閉、醫療資料篡改危及生命、關鍵基礎設施癱瘓。

2. 隱私竊取 — 無聲的間諜

  • 掃描本機敏感檔案:/etc/passwd (Unix)、登錄檔、瀏覽器儲存密碼、SSH 金鑰、錢包檔案。
  • 側錄鍵盤、截圖、攝影鏡頭存取 (若權限提升成功)。
  • 將竊取資料透過 HTTP/ DNS/ ICMP 等隱蔽通道外洩。

3. 資源盜用 — 讓你的電腦為駭客打工

  • 挖掘加密貨幣 (早期 Java Applet 即用於此)。
  • 發動 DDoS 攻擊 (殭屍網路節點)。
  • 發送垃圾郵件、暴力破解密碼。
  • 佔用 CPU/記憶體/頻寬導致系統緩慢、過熱、縮短硬體壽命。

4. 對抗使用者 — 流氓行為

  • 彈窗廣告、修改瀏覽器首頁、安裝工具列。
  • 鎖定螢幕勒索贖金 (早期勒索軟體雛形)。
  • 偽裝成合法軟體誘導安裝更多惡意程式。

Java 官方防禦演進史

版本/時期關鍵防禦機制局限
JDK 1.0沙箱 : 禁止本地檔案/網路/系統呼叫過於嚴格,功能受限;漏洞頻出
JDK 1.1簽名 Applet + SecurityManager 精細權限用戶易盲目信任簽名;私鑰外洩風險
JDK 1.2 (Java 2)代碼來源/簽名者/主體 三維權限策略配置複雜;原生庫 (JNI) 仍可繞過
Java 7/8Click-to-Play、簽名強制驗證、部署規則集瀏覽器廠商逐步移除 NPAPI 支援
Java 9+模組化 (Jigsaw) 強化封裝;移除 Applet API (Java 11)徹底終結瀏覽器 Applet 時代

使用者與企業防禦清單

  1. 停用/移除瀏覽器 Java 外掛 — 最有效的單一手段。
  2. 僅在必要時啟用:企業內部舊系統需求,配合部署規則集 僅允許特定簽名/位置的 Applet 執行。
  3. 保持 JRE 更新:自動更新或統一軟體分發管道。
  4. 網路層隔離:防火牆/代理封鎖非必要外部 Java 下載;內網分段限制橫向移動。
  5. 端點防護 (EDR):偵測異常進程行為 (如 java.exe 產生 cmd.exe、連接可疑 IP)。
  6. 安全意識訓練:不輕信「需要執行 Java 才能觀看」的網頁誘餌。

結語

Java Applet 的安全歷史,是「功能與安全博弈」的經典縮影。雖然瀏覽器端 Applet 已成絕響,但沙箱逃逸、序列化漏洞、供應鏈攻擊等核心問題在伺服器端 Java、容器逃逸、依賴庫投毒等新場景中持續上演。理解這段歷史,能讓我們在現代雲原生、微服務架構中建立更纵深的防禦體系。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved