XRay не может обнаружить уязвимость в зависимости пакета NuGet

Я создал тестовый пакет NuGet, который определяет зависимость от jQuery 1.4.2. XRay правильно определяет проблемы безопасности в jQuery при загрузке на мой сервер Artifactory NuGet. Однако, когда я загружаю свой тестовый пакет NuGet, в котором jQuery 1.4.2 указывается в качестве зависимости, XRay не отмечает мой пакет как уязвимый.

1) Проверено, что пакет Nuget jQuery 1.4.2 на моем сервере Artifactory правильно определен как уязвимый.

2) В мой тестовый пакет добавлена ​​зависимость, в которой указан jQuery 1.4.2. (Я подозревал проблему чувствительности к регистру, поэтому я также попробовал использовать строчную зависимость как «jquery»).

3) Пробовал другие известные уязвимые пакеты помимо jQuery

<?xml version="1.0" encoding="utf-8"?>
<package xmlns="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd">
<metadata>
    <id>RogerCruz.VulnerabilitiesGalore</id>
    <title>VulnerabilitiesGalore</title>
    <version>1.0.4.0</version>
    <owners>Roger Cruz</owners>
    <authors>Roger Cruz</authors>
    <releaseNotes>A package that depends on known vulnerable packages.  Use this to test vulnerability scanners.</releaseNotes>
    <requireLicenseAcceptance>false</requireLicenseAcceptance>
    <description>Test package with known vulnerabilities</description>
    <copyright>Copyright Roger Cruz</copyright>
    <dependencies>
        <dependency id="jQuery" version="[1.4.2]"/>
    </dependencies>
</metadata>
<files>
</files>
</package>

Это команды, которые я использую для создания своего тестового пакета NuGet и отправки их в пробные экземпляры облака Artifactory + XRay.

nuget.exe pack VulnerabilitiesGalore.nuspec
nuget push .\RogerCruz.VulnerabilitiesGalore.1.0.4.nupkg -Source Trial

Artifactory сообщает, что у моего тестового пакета есть одна зависимость. При просмотре пакета вы можете увидеть следующее свойство.

nuget.dependency  jQuery:[1.4.2]: 

Во всех моих тестовых попытках XRay не определяет мой тестовый пакет (RogerCruz.VulnerabilitiesGalore) как уязвимый, несмотря на наличие указанной зависимости от уязвимого jQuery 1.4.2.

Я ожидаю, что он должен был обнаружить это из-за этого утверждения:

«Глубокое рекурсивное сканирование на всех уровнях пакета NuGet. Xray рекурсивно удаляет различные уровни ваших пакетов NuGet и их зависимости, гарантируя, что каждый программный артефакт, включенный в ваше программное обеспечение, был просканирован на наличие проблем и уязвимостей».

Источник: https://jfrog.com/integration/nuget-xray/


person Roger Cruz    schedule 16.06.2019    source источник
comment
Какую версию Xray вы пробовали? и предоставить более подробную информацию о часах и правилах, исходя из того, что я могу сказать, что происходит.   -  person Tatarao Vana    schedule 20.11.2019


Ответы (1)


Пакет RogerCruz.VulnerabilitiesGalore не включает в себя jQuery:1.4.2. Это связано с этим как прямая зависимость времени выполнения, как показано в файле дескриптора .nuspec.

Deep Recursive Scan означает физическую связь пакета внутри другого пакета. например: если пакет RogerCruz.VulnerabilitiesGalore будет включать в себя jQuery:1.4.2, то JFrog Xray обнаружит его как уязвимый и рекурсивно просканирует его, открывая пакет за пакетом, как очищение лука.

Правильный вариант использования в приведенном выше сценарии - это построить RogerCruz.VulnerabilitiesGalore самостоятельно или использовать его как зависимость другого проекта. Во время сборки прямая зависимость jQuery:1.4.2 от remote repository будет разрешена, и JFrog Xray сможет ее сканировать.

Чтобы обеспечить полное сканирование проектов NuGet и их транзитивных зависимостей, я бы рекомендовал создать ваш проект с помощью JFrog CLI

JFrog Xray будет знать, как анализировать созданную им информацию о сборке, сканировать проект и его зависимости (включая переходные).

person Chen Keinan    schedule 02.12.2019