<span id="7ztzv"></span>
<sub id="7ztzv"></sub>

<span id="7ztzv"></span><form id="7ztzv"></form>

<span id="7ztzv"></span>

        <address id="7ztzv"></address>

            Build Misconfiguration: External Maven Dependency Repository

            ABSTRACT

            這一 Maven 編譯腳本依賴于外部數據源,這會導致攻擊者能夠將惡意代碼插入最終產品中,或者控制編譯計算機。

            EXPLANATION

            Java 開發環境內存在的幾個工具能夠輔助 dependency 管理:Apache Ant 和 Apache Maven 兩種 build system 都包含專門用來幫助管理 dependency 的功能,Apache Ivy 被明確作為 dependency 管理器來部署。盡管這些工具在行為方式上存在差異,但它們都有一種通用的功能,即會自動下載在編譯過程中指定的外部 dependency。這樣一來,兩個不同的開發人員用同一種方式來編譯軟件就容易得多。開發人員只需在編譯文件中存儲 dependency 信息,這意味著每個開發人員和編譯工程師都通過同一種方式來獲得 dependency、編譯代碼以及進行部署,而不需要進行混亂的手動 dependency 管理。以下的例子演示了如何使用 Ivy、Ant 和 Maven 作為編譯過程的一部分來管理外部 dependency。

            采用 Maven 時,開發人員將具體指定 dependency 的名稱和版本,而不是列出從中檢索 dependency 的顯式 URL,Maven 依靠其底層配置來識別要從中檢索 dependency 的服務器。通用組件使得開發人員不必花時間探查 dependency 的具體位置。

            例 1:以下內容摘自 Maven pom.xml 文件,這些內容顯示了開發人員如何用名稱和版本來指定多個外部 dependency:


            <dependencies>
            <dependency>
            <groupId>commons-logging</groupId>
            <artifactId>commons-logging</artifactId>
            <version>1.1</version>
            </dependency>
            <dependency>
            <groupId>javax.jms</groupId>
            <artifactId>jms</artifactId>
            <version>1.1</version>
            </dependency>
            ...
            </dependencies>


            兩種截然不同的攻擊情形會影響這些系統:攻擊者可能會危害托管 dependency 的服務器,也可能危害 DNS 服務器,編譯計算機用它將對托管 dependency 的服務器主機名的請求重定向到被攻擊者控制的計算機。這兩種攻擊情形都會導致攻擊者能夠將惡意的 dependency 版本注入到一個未受到危害的計算機上所運行的編譯中。

            不管攻擊者用來投遞 Trojan dependency 的攻擊手段是什么,這些情形均存在一種共同的因素,即 build system 盲目地接受惡意二進制碼并且將其包含在編譯中。因為 build system 無法拒絕惡意的二進制碼和現有安全機制(如代碼審查),所以通常會關注內部開發地代碼而不是外部 dependency,這種攻擊深潛于內部,不易察覺,它會傳播到開發環境各處并有可能傳入產品中。

            雖然手動編譯過程中存在一定的 dependency 受到危害的風險,但是由于自動化 build system 存在從一個外部數據源檢索 dependency 的趨勢,每當 build system 運行在新環境下時,會大大增加攻擊者的攻擊機會。攻擊者只需在 dependency 服務器或 DNS 服務器多次提取 dependency 時造成一次危害,即會危害發生編譯的計算機。


            Copyright 2013 Fortify Software - All rights reserved.
            (Generated from version 2013.1.1.0008 of the Fortify Secure Coding Rulepacks)
            desc.config.java.build_misconfiguration_external_maven_dependency_repository

            <span id="7ztzv"></span>
            <sub id="7ztzv"></sub>

            <span id="7ztzv"></span><form id="7ztzv"></form>

            <span id="7ztzv"></span>

                  <address id="7ztzv"></address>

                      亚洲欧美在线