Files
system-specs/components/phase3/audit.md

3.4 KiB

audit - 감사 및 로깅

개요

audit 컴포넌트는 불변 감사 로그와 규제 리포팅을 담당합니다.

책임

  • 중요 이벤트 불변 저장 및 해시 체인 관리
  • 변경 이력 추적 및 감사 추적 제공
  • 규제 리포트 생성 및 데이터 экспорт
  • 데이터 보존 정책 적용 및 무결성 검증

의존성

graph LR
    Audit[audit] --> DB[(Database)]
    Audit --> Storage[(Archive Storage)]

    Balance[balance] --> Audit
    Mgmt[mgmt] --> Audit
    Strategy[strategy] --> Audit
    Scheduler[scheduler] --> Audit

    style Audit fill:#795548,color:#fff

주요 기능

1. 감사 로그 기록

logEvent(event: AuditEvent): void
logOrderActivity(order: Order, action: OrderAction): void

2. 변경 이력 추적

trackConfigChange(entity: string, entityId: string, changes: any): void
getChangeHistory(entity: string, entityId: string): ChangeLog[]

3. 규제 리포팅

generateComplianceReport(type: ComplianceReportType, period: DateRange): ComplianceReport
exportAuditTrail(from: Date, to: Date, format: 'CSV' | 'JSON'): File

4. 데이터 보존 정책

archiveOldData(cutoffDate: Date): ArchiveResult
retainCriticalData(dataType: string, retentionYears: number): void

5. 무결성 검증

verifyAuditIntegrity(from: Date, to: Date): IntegrityReport

데이터 모델

interface AuditEvent {
  id: string
  timestamp: Date
  eventType: 'ORDER' | 'CONFIG_CHANGE' | 'EXECUTION' | 'LOGIN' | 'DATA_EXPORT'
  action: string
  userId?: string
  containerId?: string
  entity: string
  entityId: string
  before?: any
  after?: any
  metadata: {
    ipAddress?: string
    userAgent?: string
    reason?: string
  }
  hash: string
  previousHash?: string
}

interface ChangeLog {
  timestamp: Date
  changedBy: string
  field: string
  oldValue: any
  newValue: any
  reason?: string
}

interface ComplianceReport {
  type: 'TRADE_HISTORY' | 'POSITION_STATEMENT' | 'UNUSUAL_ACTIVITY'
  period: DateRange
  trades: {
    date: Date
    orderId: string
    symbol: string
    side: 'BUY' | 'SELL'
    quantity: number
    price: number
    value: number
  }[]
  positions: {
    symbol: string
    quantity: number
    averagePrice: number
    marketValue: number
    unrealizedPnL: number
  }[]
  unusualActivities: {
    date: Date
    type: string
    description: string
    resolution: string
  }[]
  generatedAt: Date
  certifiedBy?: string
}

interface IntegrityReport {
  period: DateRange
  totalEvents: number
  verification: {
    hashChainValid: boolean
    noGaps: boolean
    noModifications: boolean
  }
  issues: {
    eventId: string
    issue: string
    severity: 'LOW' | 'HIGH'
  }[]
  overall: 'PASS' | 'FAIL'
  verifiedAt: Date
}

API 명세

GET /api/audit/events

감사 이벤트 조회

POST /api/audit/reports

규제 리포트 생성

구현 고려사항

  • 해시 체인 단절 방지 및 재생성 불가 정책을 문서화합니다.
  • 민감 데이터 마스킹 규칙을 명확히 둡니다.

관련 문서

관련 컴포넌트