Spacebar Campaigns

WF-CICD-001 CI/CD 서버 정찰 및 Credential 악용

CI/CD 서버가 내부 이동과 credential 수집의 발판으로 사용된 정황이 보였을 때 사용하는 행위 기반 IR Workflow다. Jenkins API Token, CLI 접근, Job 실행 이력, workspace, 배포 credential 접근을 중심으로 분석한다.

분석 대상 행위:
CI/CD 정보 정찰, API Token 사용, Jenkins CLI 접근, 배포 credential 악용
관련 캠페인:
SB-01
분석 결과물:
접근 계정, 조회한 Job/credential, 내부 이동 단서, 배포 키 악용 여부

1. 행위 정의

공격자가 침해된 개발자 계정이나 API Token을 이용해 CI/CD 서버에 접근하고, 배포 대상 서버와 credential 단서를 찾는 행위다. 단순 로그인보다 CLI 호출, Job/Workspace 조회, credential metadata 접근, 배포 키 사용 여부를 함께 봐야 한다.

2. 관련 Technique

TechniqueName확인 관점
T1592Gather Victim Host InformationJenkins 헤더, UI, 플러그인, 버전 정보 확인
T1552Unsecured Credentials스크립트/설정/credential metadata에서 secret 단서 확인
T1078Valid Accounts개발자 계정 또는 API Token 악용 여부 확인
T1213Data from Information RepositoriesJob, workspace, build log에서 내부 정보 수집 여부 확인
T1021.004Remote Services: SSH배포 키를 이용한 App 서버 이동 여부 확인

3. 먼저 확인할 로그

환경대표 로그핵심 필드
Jenkinsaccess log, audit log, controller loguser, source IP, request path, user agent, status
Jenkins Jobbuild log, job config, workspace accessjob name, build id, trigger user, command, artifact
Host / Linuxauth.log, auditd, shell history 후보user, source IP, command, file path
Secret Storecredential access auditcredential id, accessor, time, action
NetworkSSH, proxy, firewall logsource, destination, port, user, action

4. 빠른 KQL

Jenkins CLI/API 접근

url.path: ("*/jnlpJars/jenkins-cli.jar" or "*/cli*" or "*/api/json*") and source.ip: *

Job/Workspace 조회 후보

url.path: ("*/job/*" or "*/workspace*" or "*/config.xml*" or "*/credential*")

배포 키 기반 SSH 이동 후보

message: "Accepted publickey" and user.name: ("deploy" or "jenkins" or "app")

5. 분석자가 할 일

  1. Jenkins 접근 주체와 source IP를 고정한다.
  2. API Token 또는 CLI 사용 여부를 확인한다.
  3. 조회한 Job, workspace, credential metadata, build log를 정리한다.
  4. CI/CD 접근 직후 SSH, DB 접근, 파일 접근이 이어졌는지 Pivot한다.
  5. 해당 계정의 정상 개발/배포 작업 시간대와 비교한다.

6. 판단 기준

구분확인 기준
의심개발자 단말 외 source에서 API Token 또는 CLI 사용
의심credential, workspace, config, build log를 짧은 시간에 대량 조회
의심CI/CD 조회 직후 App 서버 SSH 접속 또는 DB credential 접근
정상 가능성승인된 배포, 장애 대응, 정기 Job 실행과 일치

7. LLM Prompt Template

너는 SIEM에 연결된 침해사고 분석 보조자다.
다음 조건으로 "CI/CD 서버 정찰 및 Credential 악용" 정황을 조사하라.

입력:
- 시간 범위:
- Jenkins/CI 서버:
- 의심 계정 또는 token:
- 의심 source IP:
- 관측된 단서:

요청:
1. Jenkins access/audit/controller/build 로그를 조회하라.
2. 접근 계정, API/CLI 사용 여부, 조회한 Job/Workspace/Credential 단서를 요약하라.
3. 정상 배포 가능성과 credential 악용 가능성을 구분하라.
4. App 서버 SSH, DB 접근, 파일 접근으로 이어진 Pivot을 확인하라.
5. 초동 대응 조치를 작성하라.

출력 형식:
- 관측된 사실
- 타임라인
- 접근 주체
- 조회 대상
- 의심 근거
- 추가 Pivot
- 대응 조치

8. 대응 요약