<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: Dynamic Dependency Version Usage

            ABSTRACT

            用一個動態版本檢索編譯 dependency 會使 build system 易受惡意二進制碼的侵害,或者造成系統發生意外行為。

            EXPLANATION

            利用 Apache Ivy 自動化的 dependency 管理系統,用戶能夠為 dependency 指定一種稱為動態修訂的版本狀態,而不是列出特定版本。如果攻擊者能夠危害 dependency 存儲庫,或哄騙 build system 從攻擊者所控制的一個存儲庫下載 dependency,那么,build system 可能唯一做的就是不經任何提示地下載一個動態修訂說明符,并運行受到危害的 dependency。除了安全上的風險以外,動態修訂還會為 code quality 引入了一種額外的風險因素:動態修訂使軟件的安全性和穩定性受控于第三方,即,在開發和發布軟件所使用的 dependency 的那一方。

            在編譯過程中,Ivy 將連接到存儲庫,并嘗試檢索與所列狀態匹配的 dependency。

            Ivy 接受下面的動態修訂說明符:

            - latest.integration:選擇 dependency 模塊的最新修訂。
            - latest.[any status]:選擇至少處于指定狀態的 dependency 模塊的最新修訂。例如,latest.milestone 會選擇最新版本,要么是一個重要的修訂版本,要么是一個發布版。而 latest.release 只會選擇最新發布版。
            - 任何以 + 結束的修訂:選擇 dependency 模塊的最新子修訂。例如,如果 dependency 存在于修訂版 1.0.3、1.0.7 和 1.1.2 中,則以 1.0.+ 指定的修訂將選擇修訂版 1.0.7。
            - 版本范圍:表示范圍的數學符號,例如 < 和 >,可以用來匹配一個版本范圍。

            例 1:下面的配置項將指示 Ivy 檢索 clover 組件的最新發布版本:


            <dependencies>
            <dependency org="clover" name="clover"
            rev="latest.release" conf="build->*"/>
            ...


            如果存儲庫受到危害,攻擊者就很容易上傳一個符合動態標準的版本,從而造成 Ivy 下載一個惡意的 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_dynamic_dependency_version

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

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

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

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

                      亚洲欧美在线