Awesome REA
Русский
Вернуться ко всем делам

Open-source REA Lab: закрепление артефакта npm и анализ его входного фрагмента

Цель: Официальные реагенты npm 6.4.0 package.json и scripts/rea.mjs

Автор/атрибуция: martinlofranodeoliveira

Дата проверки источника:

Статус проверки: Источники рассмотрены; авторские тесты самостоятельно не перепроводятся.

Вопрос

Как можно идентифицировать артефакт выпуска, прежде чем ответить на вопрос об ограниченном входном файле?

Что сделал REA

An independent Python auditor checks archive structure and hashes first. REA статически анализирует два неизмененных файла, извлеченных из проверенного пакета. Entry-branch semantics also use manual syntax checks; аудиторские и ручные выводы не являются выходом REA.

Результаты, сообщенные автором

The author publishes pinned digests, audit JSON, sanitized Evidence summaries and reproduction scripts. В срезе сообщается о проанализированном файле JavaScript 1, узлах AST 469, результатах 14 и нулевых ошибках анализа, при этом отмечается, что полный анализ пакета был прерван во время семантического расширения.

Ограничения и непроверенные претензии

The 14 findings are not a vulnerability count. Срез сохраняет семантические неизвестные 110 и не имеет реализации dist, поэтому он не может обеспечить полную безопасность пакета или корректность во время выполнения. A sanitized summary is not replayable canonical Evidence; full-package coverage is partial. Этот каталог не перезапускался.

Чему научиться

Bound the question and input while retaining interruptions and unknowns. Структурные проверки, идентичность байтов и безопасность во время выполнения — это разные выводы.

Доказательства использования REA в источнике

Can REA statically parse the actual shipped dispatcher?

Форматирование выдержки упрощено. Прочтите первоисточник для полного контекста.

Первоисточники

Независимое редакционное резюме. Кредит принадлежит первоначальным авторам. Целевое программное обеспечение, установщики и полный вывод декомпилятора здесь не перераспределяются.

Посмотреть этот случай на GitHub · Предложить исправление