
Project Aura: аудит безопасности и интроспекция кода

Текущая тенденция в разработке — использовать множество пакетов на этапе разработки, даже если они предоставляют лишь тривиальную функциональность и состоят из 11 строк кода. Когда мы сочетаем это с очень либеральными правилами публикации новых пакетов, мы наблюдаем рост вредоносных атак, нацеленных на разработчиков. Существует несколько различных подходов, используемых злоумышленниками:
Это лишь несколько примеров техник, с помощью которых разработчик может скомпрометировать себя. Это подкрепляется тем фактом, что не существует процесса мониторинга того, что загружается в репозитории, такие как PyPI или NPM, и предыдущие инциденты были обнаружены благодаря чистой случайности. Наша цель — улучшить эту ситуацию.
Мы создали фреймворк, предназначенный для сканирования исходного кода в больших масштабах (например, всего репозитория PyPI) с целью поиска аномалий, потенциально вредоносных намерений, а также уязвимостей. Этот фреймворк также может сканировать исходный код по запросу, например, когда разработчик устанавливает пакет или для любого набора файлов/каталогов. В настоящее время реализация нацелена на язык Python и PyPI, однако она спроектирована с возможностью включения других языков (например, JavaScript и NPM).
Набор вариантов использования включает, но не ограничивается:
Высокооптимизированный гибридный анализатор достигает этого. Анализ выполняется в полностью безопасной среде с помощью статического анализа кода без какого-либо выполнения кода. Основной движок Aura анализирует AST-дерево, полученное из исходного кода, выполняя поведенческий анализ и анализ потока выполнения кода. Движок также поддерживает переписывание AST-дерева с помощью набора правил, таких как распространение констант, свёртка или статическое вычисление; это набор техник, которые используют компиляторы для оптимизации кода. Именно поэтому этот подход к анализу называется «гибридным»: он расширяет статический анализ полностью безопасным частичным вычислением, что позволяет нам обходить более простые механизмы обфускации.
Ниже вы можете увидеть демонстрацию различных техник «обфускации» исходного кода, распознаваемых движком преобразования AST Aura:

Чтобы изучить и начать использовать фреймворк, прочитайте документацию по установке, настройке и использованию.
Основная часть Aura — это анализ исходного кода на предмет аномалий или потенциальных уязвимостей. Aura имеет несколько встроенных анализаторов, которые ищут аномалии, такие как использование eval в скрипте установки; другие анализаторы изучают структуру файловой системы (не исходный код) в поисках, например, утечки учётных данных, жёстко закодированных токенов API и т.д. Эти анализаторы генерируют то, что мы называем хитами, которые определяют найденные аномалии и могут также включать оценку, используемую для вычисления ауры безопасности сканируемых данных. Рекомендуется разумно оценивать представленные аномалии на основе функциональности входных данных. Например, для библиотеки requests совершенно нормально включать сетевые вызовы, в то время как для библиотеки обработки изображений не ожидается отправка данных по сети. Также поддерживается вывод данных в формат JSON, подходящий для массового сканирования репозиториев или интеграции с другими продуктами. Описание и использование других компонентов см. в документации.


##Документация
Этот проект лицензирован под лицензией GPLv3 — подробности см. в файле LICENSE.txt. Части этого фреймворка содержат (опциональные) интеграции с другими продуктами, такими как r2c platform, libraries.io и т.д., которые подчиняются своим лицензиям и условиям использования.