Skip to main content

An automated tool for comprehensive security audit of Python applications with performance and code quality analysis functions

Project description

PySecInspect

PySecInspect - Python Security Inspector

PySecInspect - это инструмент для комплексного аудита безопасности, производительности и качества Python-приложений с функцией генерации рекомендаций с помощью нейросетей.

Особенности

  • Анализ безопасности кода:

    • Обнаружение небезопасных функций (eval, exec, os.system)
    • Выявление SQL-инъекций и уязвимостей
    • Обнаружение паролей в открытом виде
    • Выявление XSS-уязвимостей в веб-приложениях
    • Проверка на использование слабых алгоритмов хеширования
  • Анализ производительности:

    • Выявление неэффективных паттернов циклов
    • Обнаружение повторных вычислений в циклах
    • Анализ проблем с запросами к базам данных
    • Выявление неэффективных операций со списками и словарями
  • Анализ качества кода:

    • Проверка соответствия стилю PEP 8
    • Анализ наличия документации
    • Обнаружение неиспользуемых импортов
    • Оценка сложности кода
    • Проверка соглашений по именованию
  • ИИ-рекомендации:

    • Генерация конкретных рекомендаций по исправлению проблем с помощью нейросетей
    • Генерация рекомендаций только для критических уязвимостей безопасности и производительности
    • Интеллектуальное кэширование рекомендаций для экономии API-запросов
    • Поддержка моделей OpenAI (GPT-4) и Anthropic (Claude)
  • Различные форматы отчетов: текстовый, JSON, XML и HTML

  • Поддержка цветного форматирования вывода отчетов (по умолчанию)

Установка

# Базовая установка
pip install pysec-inspect

# Установка с поддержкой ИИ-рекомендаций
pip install pysec-inspect[ai]

Примечание: При установке через pip install pysec-inspect пакет устанавливается без зависимостей для генерации ИИ-рекомендаций (openai, anthropic). Для полной функциональности используйте pip install pysec-inspect[ai].

Важно: ИИ-рекомендации генерируются только для критических уязвимостей безопасности и производительности, чтобы оптимизировать время выполнения и уменьшить количество API-запросов.

Из исходного кода

git clone https://github.com/ursaloper/pysec_inspect.git
cd pysec_inspect
pip install -e .

# С поддержкой ИИ-рекомендаций
pip install -e ".[ai]"

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

Базовые команды

# Базовый анализ проекта
pysec_inspect /path/to/project

# Анализ конкретного файла
pysec_inspect /path/to/file.py

# Анализ только безопасности
pysec_inspect --security /path/to/project

# Анализ только производительности
pysec_inspect --performance /path/to/project

# Анализ только качества кода
pysec_inspect --quality /path/to/project

# Экспорт отчета в JSON
pysec_inspect --format json --output report.json /path/to/project

# Отключение цветного вывода
pysec_inspect --no-color /path/to/project

Настройка AI-рекомендаций

Для использования функции генерации рекомендаций нейросетями необходимо установить API-ключи:

  1. Создайте файл ~/.pysec_inspect/ai_config.json со следующим содержимым:
{
    "openai": {
        "api_key": "YOUR_OPENAI_API_KEY"
    },
    "anthropic": {
        "api_key": "YOUR_ANTHROPIC_API_KEY"
    }
}
  1. Либо укажите API-ключ при запуске:
pysec_inspect --api-key YOUR_API_KEY --ai-model gpt-4o-mini /path/to/project
  1. Либо установите переменные окружения:
export OPENAI_API_KEY=YOUR_OPENAI_API_KEY
pysec_inspect --enable-ai /path/to/project

Дополнительные параметры

# Уровень детализации
pysec_inspect --verbose /path/to/project

# Игнорирование определенных правил
pysec_inspect --ignore SEC001,PERF002 /path/to/project

# Настройка уровня критичности
pysec_inspect --severity critical /path/to/project

# Использование конфигурационного файла
pysec_inspect --config .pysec_inspect.yml /path/to/project

# Выбор модели LLM для рекомендаций
pysec_inspect --ai-model gpt-4o-mini /path/to/project

# Отключение AI-рекомендаций
pysec_inspect --disable-ai /path/to/project

# Отключение цветного вывода
pysec_inspect --no-color /path/to/project

Настройка

PySecInspect можно настроить с помощью файла конфигурации. По умолчанию он ищет .pysec_inspect.yml в текущей директории или вы можете указать путь:

pysec_inspect /path/to/project --config my_config.yml

Лицензия

Этот проект распространяется под лицензией MIT. См. файл LICENSE для получения подробной информации.

Автор

@ursaloper

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pysec_inspect-1.0.1.tar.gz (10.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pysec_inspect-1.0.1-py3-none-any.whl (8.5 kB view details)

Uploaded Python 3

File details

Details for the file pysec_inspect-1.0.1.tar.gz.

File metadata

  • Download URL: pysec_inspect-1.0.1.tar.gz
  • Upload date:
  • Size: 10.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.2

File hashes

Hashes for pysec_inspect-1.0.1.tar.gz
Algorithm Hash digest
SHA256 71a4dec17e3e78b5d0ff823052c973aceaf043fed63f882bd4b28cb6c69ca4f2
MD5 fb61f664f9b4f44cd95036584303b307
BLAKE2b-256 41cb07144a74c60b6fcf456e8a69a6e69146adfd8f79eb5dcde5ae199fdf772c

See more details on using hashes here.

File details

Details for the file pysec_inspect-1.0.1-py3-none-any.whl.

File metadata

  • Download URL: pysec_inspect-1.0.1-py3-none-any.whl
  • Upload date:
  • Size: 8.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.2

File hashes

Hashes for pysec_inspect-1.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 4a0bffa3b9161fac2209a606f0ac67df49de14ffec97ce0ea960e8c25f1aa7ef
MD5 35e487b5344e39945133c93a20b146b9
BLAKE2b-256 e9c286197d3d4ed8551cfda917725b248f5456b5b0426f6c50094c9bd337ce0e

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page