본문 바로가기
정보보호 (Security)

Sigma 기반 Linux 환경 보안 위협 탐지 룰셋 작성 및 수행 가이드

by 날으는물고기 2025. 3. 20.

Sigma 기반 Linux 환경 보안 위협 탐지 룰셋 작성 및 수행 가이드

728x90

Sigma 개요 및 배경

Sigma는 SIEM 시스템 간에 범용적으로 활용 가능한 탐지 규칙 형식으로, YAML 형식으로 구성되어 있으며 다양한 탐지 조건을 명확히 정의할 수 있는 장점이 있습니다. Sigma 규칙을 sigmac을 활용하여 Elasticsearch, osquery, Wazuh 등 다양한 형태로 변환할 수 있습니다.

탐지 시나리오: SSH Key 파일 무단 접근 및 변경 탐지

리눅스 환경에서 공격자가 SSH 키 파일을 무단으로 접근하거나 변경하여 접근 권한을 획득하려는 시도를 탐지합니다.

Sigma YAML 규칙 작성 예시

title: Unauthorized SSH Key Access or Modification
id: 87654321-abcd-1234-abcd-87654321abcd
logsource:
  product: linux
  service: auditd
detection:
  selection:
    type: 'PATH'
    name:
      - '/home/*/.ssh/authorized_keys'
      - '/root/.ssh/authorized_keys'
      - '/etc/ssh/*'
  condition: selection
level: high
tags:
  - attack.privilege_escalation
  - attack.t1098

Sigma 규칙을 Elasticsearch Query로 변환

다음 명령을 통해 변환할 수 있습니다.

pip install sigmatools
sigmac -t es-dsl -c config/es-dsl.yml unauthorized_ssh_key_access.yml

Elasticsearch Query 변환 예시

{
  "query": {
    "bool": {
      "should": [
        { "wildcard": { "auditd.path": "/home/*/.ssh/authorized_keys" }},
        { "match_phrase": { "auditd.path": "/root/.ssh/authorized_keys" }},
        { "wildcard": { "auditd.path": "/etc/ssh/*" }}
      ]
    }
  }
}

Osquery 변환 및 적용

SELECT * FROM file_events
WHERE path LIKE '/home/%/.ssh/authorized_keys'
   OR path = '/root/.ssh/authorized_keys'
   OR path LIKE '/etc/ssh/%';

Wazuh 규칙 적용

<rule id="100600" level="12">
  <field name="file.path">/home/.ssh/authorized_keys</field>
  <field name="file.path">/root/.ssh/authorized_keys</field>
  <field name="file.path">/etc/ssh/</field>
  <description>Unauthorized SSH Key Access or Modification detected.</description>
</rule>

탐지 수행 단계

1. 환경 준비

pip install sigmatools
git clone https://github.com/SigmaHQ/sigma.git
cd sigma

2. Elasticsearch Query 변환 및 Kibana 적용

sigmac -t es-dsl -c config/es-dsl.yml unauthorized_ssh_key_access.yml

Kibana 탐지 룰로 Elasticsearch에 등록 후 테스트합니다.

3. Osquery 탐지 적용

osquery 팩으로 쿼리를 적용하고, 테스트 이벤트 발생 시 실시간 탐지 여부를 점검합니다.

4. Wazuh 규칙 등록 및 이벤트 발생 확인

Wazuh 규칙을 적용하고, SSH 키 파일 변경을 시도하여 이벤트 탐지를 확인합니다.

탐지 시나리오: Privilege Escalation을 위한 SUID 및 SGID 파일 변경 탐지

공격자가 SUID 및 SGID 권한이 설정된 파일을 생성하거나 변경하여 권한 상승 공격을 시도하는 행위를 탐지합니다.

Sigma YAML 규칙 작성 예시

title: Unauthorized SUID and SGID File Modifications
id: 12345678-abcd-1234-abcd-12345678abcd
logsource:
  product: linux
  service: auditd
detection:
  selection:
    type: 'PATH'
    permissions:
      - '4755'
      - '2755'
  condition: selection
level: critical
tags:
  - attack.privilege_escalation
  - attack.t1548.001

Sigma 규칙을 Elasticsearch Query로 변환

다음 명령을 통해 변환할 수 있습니다.

pip install sigmatools
sigmac -t es-dsl -c config/es-dsl.yml unauthorized_suid_sgid_modification.yml

Elasticsearch Query 변환 예시

{
  "query": {
    "bool": {
      "should": [
        { "match_phrase": { "file.permissions": "4755" }},
        { "match_phrase": { "file.permissions": "2755" }}
      ]
    }
  }
}

Osquery 변환 및 적용

SELECT * FROM file_events
WHERE mode IN ('4755', '2755');

Wazuh 규칙 적용

<rule id="100601" level="15">
  <field name="file.mode">4755</field>
  <field name="file.mode">2755</field>
  <description>Unauthorized SUID or SGID file modifications detected.</description>
</rule>

지속적 운영 관리

  • 정기적으로 Sigma 규칙 최신화를 수행합니다.
  • 탐지 이벤트를 주기적으로 분석하여 정확도 및 효율성을 평가합니다.
  • 자동화 도구(n8n)를 활용해 탐지 이벤트 발생 시 대응을 자동화합니다.

AI, MCP 및 LLM 활용 확장

  • AI 기반 탐지 모델과 Sigma를 결합하여 탐지 정확성을 강화합니다.
  • MCP(Model Context Protocol)를 통해 탐지 룰을 동적으로 최적화합니다.
  • LLM(Large Language Model)을 통해 규칙 생성 및 운영 자동화를 지원하여 보안 관리 효율성을 향상시킵니다.

AI, MCP 및 LLM 활용 확장: 실제 활용 예시

AI 기반 탐지 모델 활용 예시

머신러닝 모델을 활용하여 리눅스 시스템 내 평소와 다른 파일 권한 변경 패턴을 탐지할 수 있습니다. AI 모델은 과거 데이터를 학습하여 비정상적인 변경을 실시간으로 탐지하여 경고합니다.

from sklearn.ensemble import IsolationForest
import pandas as pd

# 과거 데이터 로드
data = pd.read_csv('auditd_file_events.csv')
model = IsolationForest(contamination=0.01)
model.fit(data[['timestamp', 'user_id', 'file_permission_changes']])

# 새로운 이벤트 탐지
new_event = [[1623456789, 1001, 5]]
prediction = model.predict(new_event)
if prediction == -1:
    print("Anomaly detected: Potential privilege escalation!")

MCP(Model Context Protocol) 활용 예시

MCP를 통해 실시간으로 시스템 및 사용자 행동을 모니터링하고, 동적으로 규칙을 갱신할 수 있습니다.

curl -X POST https://mcp.api/update_rule \
     -H "Content-Type: application/json" \
     -d '{"rule_id": "12345678-abcd-1234-abcd-12345678abcd", "new_context": {"permissions": ["6755"]}}'

LLM(Large Language Model) 기반 Sigma 규칙 자동 생성 예시

자연어를 사용해 자동으로 규칙을 생성하여 탐지 시스템의 구축 시간을 단축하고 효율성을 높일 수 있습니다.

import openai

openai.api_key = 'YOUR_API_KEY'

response = openai.ChatCompletion.create(
  model="gpt-4",
  messages=[{"role": "user", "content": "Create a Sigma rule to detect unusual file permission changes indicative of privilege escalation in Linux."}]
)

print(response.choices[0].message.content)

이러한 AI, MCP, LLM 기술을 통해 기존의 탐지 시스템을 보다 지능화하고 자동화하여, 보안 운영 효율성과 정확도를 극대화할 수 있습니다.

728x90

댓글