JL-002 Jenkins Build Log
공격 행위 요약
SB-01에서 공격자는 Jenkins를 CI/CD 정보 저장소처럼 사용하여 Job 이름, workspace 경로, 배포 대상, 실행 명령, credential 사용 단서를 확인한다. Jenkins build log는 공격자가 어떤 Job을 기준으로 App 서버 접근 단서를 얻었는지 설명하는 핵심 아티팩트다.
로그 발생 위치
| 구분 | 위치 | 설명 |
| Build log | /var/lib/docker/volumes/jenkins_jenkins_home/_data/jobs/*/builds/*/log | 배포 Job 실행 명령, workspace, 실패/성공 상태 |
| Build metadata | /var/lib/docker/volumes/jenkins_jenkins_home/_data/jobs/*/builds/*/build.xml | 빌드 번호, 결과, 시간 등 보조 정보. 현재는 수집 대상에서 제외 |
| Job config | /var/lib/docker/volumes/jenkins_jenkins_home/_data/jobs/*/config.xml | credential 단서가 포함될 수 있어 현재는 직접 수집하지 않고 조사 대상 경로로만 관리 |
수집 방식
| 구분 | 방식 |
| Jenkins build log | Filebeat filestream sb01-jenkins-build-log로 수집 |
| ELK 필드 | sb01_server: jenkins, sb01_log_type: jenkins_build, service.type: jenkins |
| 수집 범위 | jobs/*/builds/*/log 기준. 민감 credential 원문은 게시하지 않음 |
실제 관측 로그 예시
Started by user ciadmin
Running as SYSTEM
Building in workspace /var/jenkins_home/workspace/deploy-to-staging
+ pwd
/var/jenkins_home/workspace/deploy-to-staging
+ whoami
jenkins
Finished: FAILURE
주요 필드
| 필드 | 의미 | 예시 |
@timestamp | Filebeat 수집 시각 또는 로그 이벤트 시각 | 2026-05-21T05:31:03.781Z |
sb01_log_type | SB-01 자체 로그 분류 | jenkins_build |
message | build log 원문 한 줄 | /var/jenkins_home/workspace/deploy-to-staging |
log.file.path | 빌드 로그 파일 경로 | .../jobs/deploy-to-staging/builds/1/log |
host.name | Jenkins 서버 호스트명 | ip-172-31-13-239 |
커버하는 Techniques Used
탐지 포인트
deploy-to-staging 같은 배포 Job이 비정상 시간대에 실행됐는지 확인한다.
- build log에서 workspace, credential 사용, SSH/배포 명령 흔적을 확인한다.
- build log 시간과
LL-001의 Accepted publickey for deploy 시간이 이어지는지 확인한다.
- credential 원문이나 private key 값은 수집/게시하지 않고, 사용 흔적과 경로 단서만 증거화한다.
ELK Query 예시
sb01_server:jenkins AND sb01_log_type:jenkins_build
sb01_server:jenkins AND sb01_log_type:jenkins_build AND message:"deploy-to-staging"
sb01_server:jenkins AND sb01_log_type:jenkins_build AND message:"workspace"