Jamie the programmer

OCSF(Open Cybersecurity Schema Framework): 사이버보안 데이터의 혁신, 표준화에서 구현까지 본문

IT 보안

OCSF(Open Cybersecurity Schema Framework): 사이버보안 데이터의 혁신, 표준화에서 구현까지

jamie91 2025. 3. 26. 09:59
Contents 접기
반응형

 

사이버보안 도구들은 각기 다른 언어로 데이터를 생성합니다. SIEM, 방화벽, 엔드포인트 보안 시스템이 서로 다른 형식의 로그를 출력하면 분석가는 40% 이상의 시간을 데이터 정규화에 할애해야 합니다. Open Cybersecurity Schema Framework(OCSF)는 이 문제를 해결하기 위해 등장한 오픈소스 표준입니다. 이 글에서는 OCSF의 개념, 장점, 실제 구현 방법(Go 언어 예시 포함), 스키마 JSON 구조까지 총체적으로 다룹니다.

 

1. OCSF란 무엇인가?

문제: 사이버보안의 ‘바벨 탑’

  • 도구 간 호환성 부재: 각 솔루션의 독자적 데이터 형식으로 통합 어려움.
  • 비효율적 운영: 분석가의 시간이 위협 분석 대신 데이터 파싱에 소모됨.
  • 느린 대응 속도: 수동 매핑으로 인한 지연.

해결책: OCSF의 탄생

  • 표준화된 스키마: 모든 도구가 동일한 데이터 형식 사용.
  • 커뮤니티 주도 개발: AWS, Splunk, CrowdStrike 등 주요 기업 협업.
  • 확장성: 신규 위협에 맞춰 스키마를 유연하게 확장 가능.

 

2. OCSF의 핵심 가치

  • 상호운용성: SIEM, SOAR, XDR 도구 간 원활한 통합.
  • 비용 절감: 커스텀 파서 개발 비용 70% 이상 감소.
  • 실시간 대응: 표준화된 데이터 포맷으로 자동화 워크플로우 가속화.
  • 협업 강화: 파트너사와의 위협 인텔리전스 공유 용이.

 

3. OCSF 스키마 JSON 구조 예시

OCSF의 JSON 스키마는 이벤트 유형(class_uid)을 기준으로 구조가 정의됩니다. 다음은 네트워크 활동 이벤트의 예시입니다.

{
  "class_uid": 4001,
  "class_name": "Network Activity",
  "activity_id": 1,
  "activity_name": "Traffic Detected",
  "metadata": {
    "version": "1.0.0",
    "product": {
      "name": "AWS Security Hub",
      "vendor": "AWS"
    }
  },
  "severity": "High",
  "time": "2023-10-05T12:34:56Z",
  "src_endpoint": {
    "ip": "192.168.1.100",
    "port": 5432
  },
  "dst_endpoint": {
    "ip": "10.0.0.5",
    "port": 80
  },
  "protocol": "TCP",
  "raw_data": "Original log from AWS CloudTrail"
}

주요 필드 설명

  • class_uid: 이벤트 유형을 식별하는 고유 ID (예: 4001 = 네트워크 활동).
  • activity_id: 구체적인 활동 유형 (예: 1 = 트래픽 탐지).
  • metadata: 이벤트 생성 도구 및 OCSF 버전 정보.
  • severity: 위험도 (Low/Medium/High/Critical).
  • src_endpoint/dst_endpoint: 출발지/목적지 IP 및 포트.
  • raw_data: 원본 로그 데이터 (디버깅용 보존).

 

4. Go 언어로 OCSF 구현하기

단계 1: 구조체 정의

OCSF 스키마에 맞는 Go 구조체를 생성합니다.

package main

import (
    "encoding/json"
    "time"
)

type NetworkActivityEvent struct {
    ClassUID     int         `json:"class_uid"`
    ActivityID   int         `json:"activity_id"`
    Metadata     Metadata    `json:"metadata"`
    Severity     string      `json:"severity"`
    Time         time.Time   `json:"time"`
    SrcEndpoint  Endpoint    `json:"src_endpoint"`
    DstEndpoint  Endpoint    `json:"dst_endpoint"`
    Protocol     string      `json:"protocol"`
    RawData      string      `json:"raw_data"`
}

type Metadata struct {
    Version      string      `json:"version"`
    Product      Product     `json:"product"`
}

type Product struct {
    Name         string      `json:"name"`
    Vendor       string      `json:"vendor"`
}

type Endpoint struct {
    IP           string      `json:"ip"`
    Port         int         `json:"port"`
}

단계 2: 이벤트 생성 및 직렬화

func main() {
    event := NetworkActivityEvent{
        ClassUID:   4001,
        ActivityID: 1,
        Severity:   "High",
        Time:       time.Now(),
        SrcEndpoint: Endpoint{IP: "192.168.1.100", Port: 5432},
        DstEndpoint: Endpoint{IP: "10.0.0.5", Port: 80},
        Protocol:   "TCP",
        RawData:    "Original log from AWS CloudTrail",
        Metadata: Metadata{
            Version: "1.0.0",
            Product: Product{Name: "AWS Security Hub", Vendor: "AWS"},
        },
    }

    jsonData, _ := json.MarshalIndent(event, "", "  ")
    fmt.Println(string(jsonData))
}

단계 3: 자동 코드 생성

복잡한 스키마는 quicktype이나 OCSF 공식 도구를 사용해 자동 생성합니다.

# quicktype 설치 후 실행
quicktype --lang go --package main --out ocsf_models.go ocsf_schema.json

 

 

 

5. 실제 적용 사례

  1. SIEM 통합: AWS, Azure 로그를 OCSF 포맷으로 변환해 Splunk에 자동 수집.
  2. 위협 인텔 공유: 파트너사와 표준화된 IOC(Indicator of Compromise) 교환.
  3. 자동화 대응: SOAR 플랫폼에서 OCSF 알erta를 트리거로 방화벽 정책 자동 업데이트.

 

6. 고려 사항 및 도전 과제

  • 업계 채택: 모든 벤더의 OCSF 지원 필요.
  • 성능 최적화: 대규모 데이터 처리 시 jsoniter 라이브러리 사용 권장.
  • 동적 스키마 관리: CI/CD 파이프라인에 스키마 업데이트 프로세스 통합.

 

7. 결론: OCSF가 여는 미래

OCSF는 단순한 기술 표준을 넘어 사이버보안 생태계의 협업 문화를 촉진합니다. Go 언어로의 구현 사례에서 보듯, 개발자 친화적인 구조로 빠르게 도입할 수 있습니다.

지금 시작하세요!

  1. OCSF GitHub에서 스키마 탐색.
  2. 커뮤니티에 기여해 표준 진화에 참여.
  3. Go 언어로 첫 OCSF 이벤트 생성기를 개발.

 

요약

  • OCSF는 사이버보안 데이터의 표준화를 통해 상호운용성 자동화를 실현합니다.
  • Go 언어로의 구현은 정적 타입과 고성능을 바탕으로 안정적인 시스템 구축을 지원합니다.
  • JSON 스키마 예시를 참고해 실제 데이터 변환 파이프라인을 설계하세요.

OCSF는 오늘날의 보안 운영을 혁신하고, 더 안전한 디지털 세계의 기반이 됩니다. 🌐🔒

 

 

 

 

 

 

 

728x90
반응형