# Політика безпеки ## Огляд Безпека проєкту Claude How To є важливою для нас. Цей документ описує наші практики безпеки та пояснює, як відповідально повідомляти про вразливості. ## Підтримувані версії Ми надаємо оновлення безпеки для наступних версій: | Версія | Статус | Підтримка до | |--------|--------|--------------| | Остання (main) | ✅ Активна | Поточна + 6 місяців | | Релізи 1.x | ✅ Активна | До наступної мажорної версії | **Примітка**: Як освітній проєкт-довідник, ми зосереджуємося на підтримці актуальних найкращих практик та безпеки документації, а не на традиційній підтримці версій. Оновлення застосовуються безпосередньо до гілки main. ## Практики безпеки ### Безпека коду 1. **Управління залежностями** - Усі Python-залежності зафіксовані в `requirements.txt` - Регулярні оновлення через dependabot та ручний перегляд - Сканування безпеки за допомогою Bandit при кожному коміті - Pre-commit хуки для перевірок безпеки 2. **Якість коду** - Лінтинг за допомогою Ruff виявляє поширені проблеми - Перевірка типів за допомогою mypy запобігає вразливостям, пов'язаним з типами - Pre-commit хуки забезпечують дотримання стандартів - Усі зміни переглядаються перед злиттям 3. **Контроль доступу** - Захист гілки `main` - Обов'язковий рев'ю перед мерджем - Статусні перевірки повинні пройти перед мерджем - Обмежений доступ на запис до репозиторію ### Безпека документації 1. **Ніяких секретів у прикладах** - Усі API-ключі в прикладах є заповнювачами - Облікові дані ніколи не захардкоджені - Файли `.env.example` показують необхідні змінні - Чіткі попередження щодо управління секретами 2. **Найкращі практики безпеки** - Приклади демонструють безпечні патерни - Попередження безпеки виділені в документації - Посилання на офіційні гайди безпеки - Обробка облікових даних обговорюється у відповідних розділах 3. **Перегляд контенту** - Вся документація перевіряється на проблеми безпеки - Міркування безпеки в настановах для контриб'юторів - Валідація зовнішніх посилань та посилань ### Безпека залежностей 1. **Сканування** - Bandit сканує весь Python-код на вразливості - Перевірка вразливостей залежностей через GitHub security alerts - Регулярні ручні аудити безпеки 2. **Оновлення** - Патчі безпеки застосовуються оперативно - Мажорні версії оцінюються ретельно - Changelog включає оновлення, пов'язані з безпекою 3. **Прозорість** - Оновлення безпеки задокументовані в комітах - Розкриття вразливостей обробляється відповідально - Публічні рекомендації безпеки за потреби ## Повідомлення про вразливість ### Проблеми безпеки, які нас цікавлять Ми цінуємо повідомлення про: - **Вразливості коду** в скриптах або прикладах - **Вразливості залежностей** у Python-пакетах - **Проблеми криптографії** в будь-яких прикладах коду - **Недоліки автентифікації/авторизації** в документації - **Ризики витоку даних** у прикладах конфігурації - **Вразливості ін'єкцій** (SQL, команди тощо) - **Проблеми SSRF/XXE/обхід шляхів** ### Проблеми безпеки поза межами Це виходить за рамки цього проєкту: - Вразливості в самому Claude Code (повідомляйте Anthropic) - Проблеми із зовнішніми сервісами або бібліотеками (повідомляйте upstream) - Соціальна інженерія або навчання користувачів (не стосується цього довідника) - Теоретичні вразливості без підтвердження концепції - Вразливості в залежностях, повідомлені через офіційні канали ## Як повідомити ### Приватне повідомлення (рекомендовано) **Для чутливих проблем безпеки використовуйте приватне повідомлення про вразливості GitHub:** 1. Перейдіть: https://github.com/luongnv89/claude-howto/security/advisories 2. Натисніть "Report a vulnerability" 3. Заповніть деталі вразливості 4. Вкажіть: - Чіткий опис вразливості - Уражений компонент (файл, розділ, приклад) - Потенційний вплив - Кроки для відтворення (якщо можливо) - Запропоноване виправлення (якщо є) **Що відбувається далі:** - Ми підтвердимо отримання протягом 48 годин - Ми дослідимо та оцінимо серйозність - Ми працюватимемо з вами над розробкою виправлення - Ми узгодимо графік розкриття - Ми вкажемо вас у рекомендації безпеки (якщо ви не бажаєте анонімності) ### Публічне повідомлення Для нечутливих проблем або тих, що вже є публічними: 1. **Створіть GitHub Issue** з міткою `security` 2. Вкажіть: - Назва: `[SECURITY]` з коротким описом - Детальний опис - Уражений файл або розділ - Потенційний вплив - Запропоноване виправлення ## Процес реагування на вразливості ### Оцінка (24 години) 1. Ми підтверджуємо отримання повідомлення 2. Ми оцінюємо серйозність за [CVSS v3.1](https://www.first.org/cvss/v3.1/specification-document) 3. Ми визначаємо, чи входить це в область застосування 4. Ми зв'язуємося з вами з початковою оцінкою ### Розробка (1-7 днів) 1. Ми розробляємо виправлення 2. Ми переглядаємо та тестуємо виправлення 3. Ми створюємо рекомендацію безпеки 4. Ми готуємо нотатки до випуску ### Розкриття (залежно від серйозності) **Критична (CVSS 9.0-10.0)** - Виправлення випускається негайно - Публічна рекомендація видається - 24-годинне попереднє повідомлення репортерам **Висока (CVSS 7.0-8.9)** - Виправлення випускається протягом 48-72 годин - 5-денне попереднє повідомлення репортерам - Публічна рекомендація при випуску **Середня (CVSS 4.0-6.9)** - Виправлення випускається в наступному регулярному оновленні - Публічна рекомендація при випуску **Низька (CVSS 0.1-3.9)** - Виправлення включається в наступне регулярне оновлення - Рекомендація при випуску ### Публікація Ми публікуємо рекомендації безпеки, що включають: - Опис вразливості - Уражені компоненти - Оцінку серйозності (CVSS-бал) - Версію виправлення - Обхідні рішення (якщо є) - Подяку репортеру (з дозволу) ## Найкращі практики для репортерів ### Перед повідомленням - **Перевірте проблему**: Чи можете ви відтворити її стабільно? - **Шукайте існуючі issues**: Чи вже повідомлено про це? - **Перевірте документацію**: Чи є настанови щодо безпечного використання? - **Тестуйте виправлення**: Чи працює ваше запропоноване виправлення? ### При повідомленні - **Будьте конкретними**: Вказуйте точні шляхи файлів та номери рядків - **Додавайте контекст**: Чому це проблема безпеки? - **Покажіть вплив**: Що міг би зробити зловмисник? - **Надайте кроки**: Як ми можемо відтворити? - **Запропонуйте виправлення**: Як би ви це виправили? ### Після повідомлення - **Будьте терплячими**: Ми маємо обмежені ресурси - **Будьте на зв'язку**: Відповідайте на подальші запитання швидко - **Зберігайте конфіденційність**: Не розголошуйте публічно до виправлення - **Дотримуйтесь координації**: Слідуйте нашому графіку розкриття ## Заголовки безпеки та конфігурація ### Безпека репозиторію - **Захист гілок**: Основна гілка потребує 2 схвалень для змін - **Статусні перевірки**: Усі CI/CD перевірки повинні пройти - **CODEOWNERS**: Призначені рецензенти для ключових файлів - **Підписані коміти**: Рекомендовано для контриб'юторів ### Безпека розробки ```bash # Install pre-commit hooks pre-commit install # Run security scans locally bandit -c pyproject.toml -r scripts/ mypy scripts/ --ignore-missing-imports ruff check scripts/ ``` ### Безпека залежностей ```bash # Check for known vulnerabilities pip install safety safety check # Or use pip-audit pip install pip-audit pip-audit ``` ## Настанови безпеки для контриб'юторів ### При написанні прикладів 1. **Ніколи не захардкоджуйте секрети** ```python # ❌ Bad api_key = "sk-1234567890" # ✅ Good api_key = os.getenv("API_KEY") ``` 2. **Попереджайте про наслідки безпеки** ```markdown ⚠️ **Security Note**: Never commit `.env` files to git. Add to `.gitignore` immediately. ``` 3. **Використовуйте безпечні значення за замовчуванням** - Увімкнення автентифікації за замовчуванням - Використання HTTPS де можливо - Валідація та санітизація введення - Використання параметризованих запитів 4. **Документуйте міркування безпеки** - Пояснюйте, чому безпека важлива - Показуйте безпечні vs. небезпечні патерни - Посилайтесь на авторитетні джерела - Розміщуйте попередження на видному місці ### При перегляді внесків 1. **Перевіряйте на відкриті секрети** - Сканування на поширені патерни (api_key=, password=) - Перегляд конфігураційних файлів - Перевірка змінних оточення 2. **Перевіряйте безпечні практики кодування** - Відсутність захардкоджених облікових даних - Правильна валідація введення - Безпечна автентифікація/авторизація - Безпечна робота з файлами 3. **Тестуйте наслідки безпеки** - Чи можна це зловживати? - Який найгірший сценарій? - Чи є граничні випадки? ## Ресурси безпеки ### Офіційні стандарти - [OWASP Top 10](https://owasp.org/www-project-top-ten/) - [CWE Top 25](https://cwe.mitre.org/top25/) - [CVSS Calculator](https://www.first.org/cvss/calculator/3.1) ### Безпека Python - [Python Security Advisories](https://www.python.org/dev/security/) - [PyPI Security](https://pypi.org/help/#security) - [Bandit Documentation](https://bandit.readthedocs.io/) ### Управління залежностями - [OWASP Dependency Check](https://owasp.org/www-project-dependency-check/) - [GitHub Security Alerts](https://docs.github.com/en/code-security/dependabot/dependabot-alerts/about-dependabot-alerts) ### Загальна безпека - [Anthropic Security](https://www.anthropic.com/) - [GitHub Security Best Practices](https://docs.github.com/en/code-security) ## Архів рекомендацій безпеки Минулі рекомендації безпеки доступні на вкладці [GitHub Security Advisories](https://github.com/luongnv89/claude-howto/security/advisories). ## Контакти Для запитань, пов'язаних з безпекою, або для обговорення практик безпеки: 1. **Приватне повідомлення про безпеку**: Використовуйте приватне повідомлення про вразливості GitHub 2. **Загальні питання безпеки**: Відкрийте обговорення з тегом `[SECURITY]` 3. **Відгуки про політику безпеки**: Створіть issue з міткою `security` ## Подяки Ми цінуємо дослідників безпеки та учасників спільноти, які допомагають підтримувати безпеку цього проєкту. Контриб'юторів, які відповідально повідомляють про вразливості, буде відзначено в наших рекомендаціях безпеки (якщо вони не бажають анонімності). ## Оновлення політики Ця політика безпеки переглядається та оновлюється: - При виявленні нових вразливостей - При розвитку найкращих практик безпеки - При зміні обсягу проєкту - Щорічно як мінімум **Останнє оновлення**: Квітень 2026 **Наступний перегляд**: Квітень 2027 --- Дякуємо за допомогу в забезпеченні безпеки Claude How To! 🔒