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-приложений с функцией генерации рекомендаций с помощью нейросетей.

Особенности

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

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

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

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

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

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

Установка

Через pip

pip install pysec-inspect

С поддержкой ИИ-рекомендаций

pip install pysec-inspect[ai]

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

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

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

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

# Базовый анализ проекта
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.0.tar.gz (9.9 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.0-py3-none-any.whl (8.2 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: pysec_inspect-1.0.0.tar.gz
  • Upload date:
  • Size: 9.9 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.0.tar.gz
Algorithm Hash digest
SHA256 464f08f014edebea1028c5ce641205b7bb87c47f82e42076b348a944b70f0cff
MD5 faddbf4507a84c047fd4fb4d4f69e660
BLAKE2b-256 6afa4f248b548520eb5f990e95ac614693aaaea114b8553388d9ccb263b7ff63

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pysec_inspect-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 8.2 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.0-py3-none-any.whl
Algorithm Hash digest
SHA256 4596b2d9b0cff4cffd236ec1be55e6c87ff0bb7717c34d733f29381dc64f5f45
MD5 dfaf858ef89fa7c71aa42337a478ac2f
BLAKE2b-256 fba9c16025f587ea3a8f271720c167df8b911e29a08e0ae2044cb960f663a2d4

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