Claude-skill-registry audit-log-generator
Эксперт по аудит-логам. Используй для создания систем логирования, compliance требований, структуры логов и мониторинга.
install
source · Clone the upstream repo
git clone https://github.com/majiayu000/claude-skill-registry
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/majiayu000/claude-skill-registry "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/data/audit-log-generator" ~/.claude/skills/majiayu000-claude-skill-registry-audit-log-generator && rm -rf "$T"
manifest:
skills/data/audit-log-generator/SKILL.mdsource content
Audit Log Generator Expert
Эксперт в проектировании и реализации логов аудита для безопасности, соответствия требованиям и мониторинга.
Основные элементы лога
Каждая запись должна содержать:
- Timestamp: UTC с точностью до миллисекунд
- Event ID: Уникальный идентификатор
- Actor: Кто выполнил действие
- Action: Что было выполнено (CREATE, READ, UPDATE, DELETE)
- Resource: На что было воздействие
- Source: IP адрес, приложение
- Result: Успех/неудача
- Risk Level: Классификация критичности
JSON формат (рекомендуется)
{ "timestamp": "2024-01-15T14:30:45.123Z", "event_id": "evt_7f4a9b2c8e1d", "version": "1.0", "actor": { "user_id": "john.doe@company.com", "session_id": "sess_abc123", "role": "admin" }, "action": "DELETE", "resource": { "type": "database_record", "id": "customer_12345", "table": "customers", "classification": "PII" }, "context": { "source_ip": "192.168.1.100", "user_agent": "Mozilla/5.0...", "application": "customer_portal", "api_endpoint": "/api/v1/customers/12345" }, "result": { "status": "SUCCESS", "response_code": 200, "affected_records": 1 }, "metadata": { "risk_level": "HIGH", "compliance_tags": ["GDPR", "SOX"], "retention_years": 7, "checksum": "sha256:a1b2c3d4..." } }
CEF (Common Event Format)
CEF:0|CompanyName|CustomerPortal|2.1|1001|User Data Deletion|8| rt=Jan 15 2024 14:30:45 UTC src=192.168.1.100 suser=john.doe@company.com act=DELETE dst=customer_db cs1Label=Table cs1=customers cs2Label=RecordID cs2=12345
Классификация событий
События аутентификации
- Попытки входа (успех/неудача)
- Смена паролей
- Активации MFA
- Блокировки аккаунтов
- Повышения привилегий
События доступа к данным
{ "action": "READ", "data_classification": "SENSITIVE", "access_method": "API", "record_count": 150, "query_hash": "sha256:..." }
Административные события
- Изменения конфигурации
- Предоставление/отзыв доступа
- Изменения разрешений
- Операции резервного копирования
События безопасности
- Неудачные попытки авторизации
- Аномальные паттерны доступа
- Нарушения политик безопасности
Compliance Requirements
GDPR
{ "gdpr_context": { "lawful_basis": "legitimate_interest", "data_subject_id": "ds_789", "processing_purpose": "customer_service", "retention_justified": true, "cross_border_transfer": false } }
SOX
- Отслеживание доступа к финансовым данным
- Разделение обязанностей
- Документация изменений
- Мониторинг доступа руководства
HIPAA
{ "hipaa_context": { "phi_involved": true, "minimum_necessary": true, "covered_entity": "hospital_system", "patient_authorization": "auth_456" } }
Отслеживание изменений
{ "change_tracking": { "before_state": { "customer_tier": "silver", "credit_limit": 5000 }, "after_state": { "customer_tier": "gold", "credit_limit": 10000 }, "change_reason": "promotion_campaign", "approver": "manager.smith@company.com" } }
Batch Operations
{ "batch_context": { "batch_id": "batch_2024_01_15_001", "total_records": 10000, "successful_records": 9987, "failed_records": 13, "processing_duration_ms": 45678, "error_summary": ["validation_failed: 13"] } }
Контроли безопасности
Шифрование
- AES-256 для данных в покое
- TLS 1.3 для данных в передаче
- Отдельные ключи для разных типов логов
- Регулярная ротация ключей
Контроли доступа
{ "log_access_policy": { "read_access": ["audit_team", "compliance_officer"], "search_access": ["security_analyst"], "export_access": ["legal_team"], "retention_management": ["data_governance"] } }
Обнаружение вмешательства
- Дерево Меркла для целостности
- Цифровые подписи с PKI
- Регулярная проверка целостности
- Неизменяемые временные метки
Реализация на Python
import json import hashlib from datetime import datetime from typing import Dict, Any, Optional from enum import Enum class AuditAction(Enum): CREATE = "CREATE" READ = "READ" UPDATE = "UPDATE" DELETE = "DELETE" LOGIN = "LOGIN" LOGOUT = "LOGOUT" class RiskLevel(Enum): LOW = "LOW" MEDIUM = "MEDIUM" HIGH = "HIGH" CRITICAL = "CRITICAL" class AuditLogger: def __init__(self, service_name: str): self.service_name = service_name def log( self, action: AuditAction, actor_id: str, resource_type: str, resource_id: str, result: str = "SUCCESS", risk_level: RiskLevel = RiskLevel.LOW, context: Optional[Dict[str, Any]] = None, before_state: Optional[Dict] = None, after_state: Optional[Dict] = None ) -> Dict[str, Any]: event_id = self._generate_event_id() timestamp = datetime.utcnow().isoformat() + "Z" log_entry = { "timestamp": timestamp, "event_id": event_id, "service": self.service_name, "actor": {"user_id": actor_id}, "action": action.value, "resource": { "type": resource_type, "id": resource_id }, "result": {"status": result}, "metadata": { "risk_level": risk_level.value } } if context: log_entry["context"] = context if before_state or after_state: log_entry["change_tracking"] = { "before_state": before_state, "after_state": after_state } log_entry["metadata"]["checksum"] = self._calculate_checksum(log_entry) self._persist_log(log_entry) return log_entry def _generate_event_id(self) -> str: import uuid return f"evt_{uuid.uuid4().hex[:12]}" def _calculate_checksum(self, entry: Dict) -> str: content = json.dumps(entry, sort_keys=True) return f"sha256:{hashlib.sha256(content.encode()).hexdigest()[:16]}" def _persist_log(self, entry: Dict): # Отправка в систему логирования print(json.dumps(entry, indent=2))
Политики хранения
retention_policies = { "authentication": {"years": 3, "hot_storage_days": 90}, "data_access": {"years": 7, "hot_storage_days": 365}, "administrative": {"years": 10, "hot_storage_days": 180}, "security_incidents": {"years": 10, "hot_storage_days": 1095} }
Мониторинг и алерты
Real-time алерты
- Всплески неудачных аутентификаций
- Паттерны привилегированного доступа
- Индикаторы эксфильтрации данных
- Нарушения политик соответствия
Регулярная отчетность
- Ежедневные сводки доступа
- Еженедельные дашборды соответствия
- Ежемесячный анализ трендов
- Ежеквартальные отчеты готовности к аудиту
Лучшие практики
- Неизменяемость — логи только на добавление
- Криптографическая защита — подписи и checksums
- Отдельное хранение — изолировано от операционных систем
- Регулярная верификация — проверка целостности
- Документация — цепочка поставки данных