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 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-ключи:
- Создайте файл
~/.pysec_inspect/ai_config.jsonсо следующим содержимым:
{
"openai": {
"api_key": "YOUR_OPENAI_API_KEY"
},
"anthropic": {
"api_key": "YOUR_ANTHROPIC_API_KEY"
}
}
- Либо укажите API-ключ при запуске:
pysec_inspect --api-key YOUR_API_KEY --ai-model gpt-4o-mini /path/to/project
- Либо установите переменные окружения:
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 для получения подробной информации.
Автор
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
71a4dec17e3e78b5d0ff823052c973aceaf043fed63f882bd4b28cb6c69ca4f2
|
|
| MD5 |
fb61f664f9b4f44cd95036584303b307
|
|
| BLAKE2b-256 |
41cb07144a74c60b6fcf456e8a69a6e69146adfd8f79eb5dcde5ae199fdf772c
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4a0bffa3b9161fac2209a606f0ac67df49de14ffec97ce0ea960e8c25f1aa7ef
|
|
| MD5 |
35e487b5344e39945133c93a20b146b9
|
|
| BLAKE2b-256 |
e9c286197d3d4ed8551cfda917725b248f5456b5b0426f6c50094c9bd337ce0e
|