audit-log-generator
27
总安装量
3
周安装量
#13937
全站排名
安装命令
npx skills add https://github.com/dengineproblem/agents-monorepo --skill audit-log-generator
Agent 安装分布
github-copilot
3
amp
2
claude-code
2
kimi-cli
2
gemini-cli
2
Skill 文档
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
- ÐÑделÑное Ñ Ñанение â изолиÑовано Ð¾Ñ Ð¾Ð¿ÐµÑаÑионнÑÑ ÑиÑÑем
- РегÑлÑÑÐ½Ð°Ñ Ð²ÐµÑиÑикаÑÐ¸Ñ â пÑовеÑка ÑелоÑÑноÑÑи
- ÐокÑменÑаÑÐ¸Ñ â ÑепоÑка поÑÑавки даннÑÑ