SkillSpector е скенер с отворен код от NVIDIA, който анализира уменията на даден агент и дава оценка дали той трябва да бъде инсталиран. Програмата може да бъде насочена към директория, zip архив, единичен файл SKILL.md или Git URL адрес, след което връща списък с констатации, оценка на риска и препоръки.

Папката, която скенерът чете, се стартира с всички налични права. Умението представлява Markdown файл с инструкции за агента, понякога придружен от Python скрипт, който има достъп до обвивката (shell), променливите на средата и SSH директорията. Рискът е съсредоточен главно в този скрипт. Проучването зад инструмента показва, че уменията, съдържащи такъв скрипт, са 2,12 пъти по-склонни да съдържат уязвимости. Агентите ги зареждат въз основа на доверие.

Първият етап на анализ е статичен и отнема секунди. Обхождането на абстрактното синтактично дърво (AST) маркира функции като exec, eval, subprocess и динамични импортирания. Проследяването на потока от данни (taint tracking) следи как променливите на средата и съдържанието на файловете достигат до мрежови източници за източване на данни. YARA правила откриват известен зловреден код, уеб шелове и софтуер за копаене на криптовалута.

Анализатори с регулярни изрази обработват останалата част от общо 64-те шаблона за откриване, покриващи инжектиране на подкана (prompt injection), достъп до идентификационни данни, отравяне на паметта, зависимости с подвеждащи имена (typosquatting) и устойчивост чрез задачи по график (cron-job).

Някои шаблони съществуват само защото умението представлява подкана (prompt). Един от тях маркира тригер, който припокрива вградена команда, караща агента да се обърне към умението, дори когато потребителят е въвел обикновен текст. Друг маркира хомоглифи и символи за промяна на посоката на текста от дясно наляво в метаданните на инструмента. Трети идентифицира символи с нулево разстояние и HTML коментари, носещи директиви, които проверяващият анализатор лесно би пропуснал при преглед.

Проверката на зависимостите изисква мрежова връзка. SkillSpector изпраща списъка с пакети на умението в обща заявка към OSV.dev, получава информация за известни CVE уязвимости и кешира отговора за един час. При работа в изолирана среда без достъп до интернет се използва вграден локален списък.

Вторият етап на анализ е незадължителен, по-бавен и е изключен по подразбиране, докато не бъде конфигуриран: той изисква съвместима с OpenAI крайна точка и ключ, зададени чрез променливата SKILLSPECTOR_PROVIDER, като по подразбиране се използва build.nvidia.com на NVIDIA. При правилна настройка голям езиков модел (LLM) чете маркирания код в съответния контекст, премахва фалшивите положителни сигнали и генерира обяснение, по което може да се предприемат действия. Авторите на проекта посочват около 87% точност за този метод. Подканата съдържа инструкции срещу заобикаляне на защитите (anti-jailbreak), тъй като анализираният обект сам по себе си е набор от инструкции към модел.

Всяка констатация добавя точки към оценката. Критичните констатации носят най-голяма тежест, а тези с нисък риск – най-малка. Всичко над 50 точки по скалата се класифицира с препоръка да не се инсталира.

Наличието на изпълнимо съдържание умножава крайния резултат по 1,3. Две констатации с висока степен на сериозност в умение, което включва Python скрипт, са достатъчни сами по себе си да преминат границата за забрана на инсталирането.

Терминалният изход предоставя на потребителя общата оценка, списъка с файлове и всяка констатация с номер на ред и степен на увереност. Същият скенер генерира JSON формат за автоматизация, Markdown за дискусии при преглед и SARIF за интеграция в среди за непрекъсната интеграция (CI), което позволява констатациите да се визуализират на същото място, където са останалите резултати за сигурност от пайплайна.

Флагът --no-llm изключва втория етап на анализ. Сканирането завършва по-бързо, но остават повече фалшиви положителни сигнали за ръчно филтриране. Мрежовият достъп все пак остава необходим, тъй като проверката в OSV.dev се извършва по време на статичния етап. Работата изцяло в офлайн режим е отделна опция и води до липса на актуални данни за CVE уязвимости.

SkillSpector е наличен безплатно в GitHub.