Spacebar Campaigns

HAP-001 PMS JBoss and Update Relay HTTP Log

Log ID:
HAP-001
Source:
hanguel-ops-pms
Representative Path:
JBoss/Docker stdout, PMS relay systemd journal, /opt/hanguel-pms/updates/* access
Collection:
Docker log input, journald input, or Hanguel collector HTTP relay event
Current Status:
PMS relay와 JBoss 접근은 환경에서 확인됨. 세부 HTTP access log 수집은 Page 3에서 캡처 필요
Primary Use:
JBoss 취약 표면 확인과 PMS 업데이트 파일 접근 흐름 재구성

공격 행위 요약

공격자는 bastion에서 hanguel-ops-pms:8080 JBoss AS 6 서비스를 식별하고, /invoker/JMXInvokerServlet 같은 취약 표면을 확인한다. 이후 Windows PMS Agent가 신뢰하는 /updates/manifest.json, /updates/patch.ps1 조회 흐름이 발생한다.

로그 발생 위치

구분위치설명
JBoss containerDocker JSON log 또는 container stdoutJBoss HTTP request, error, invoker 접근
PMS relayjournalctl -u hanguel-pms-relay.service8081 internal relay 파일 요청
Update path/opt/hanguel-pms/updates/manifest.json, /opt/hanguel-pms/updates/patch.ps1배포 파일 원본

주요 필드

필드의미예시
url.path요청 경로/invoker/JMXInvokerServlet
http.request.methodHTTP methodGET, POST
http.response.status_code응답 코드200, 500
source.ip요청 출발지10.60.30.10
message원본 access/journal/docker log lineGET /updates/patch.ps1 HTTP/1.1
event.action정규화된 보조 행위jboss_invoker_probe, pms_patch_downloaded

커버하는 Techniques Used

TechniqueMapping Reason
T1046 Network Service DiscoveryPMS/JBoss 포트와 HTTP surface가 내부 탐색 대상이다.
T1190 Exploit Public-Facing ApplicationJBoss 취약 표면 접근을 확인한다.
T1195.002 Compromise Software Supply Chainupdate relay가 신뢰 체인의 배포 지점이다.

탐지 포인트

  1. source.ip:10.60.30.10 win01이 patch를 주기적으로 조회하는 정상 baseline을 만든다.
  2. bastion 또는 비정상 source가 JBoss invoker, deploy path, update path를 짧은 시간에 탐색하는지 본다.

원본 로그 기준 탐색 포인트

관찰할 행위원본 필드/문자열분석 의미
JBoss 취약 표면 확인/invoker/JMXInvokerServlet, /invoker/readonlyJBoss AS 6 취약 표면 probe 여부 확인
PMS manifest 조회/updates/manifest.jsonPMS Agent 또는 공격자가 update metadata를 조회했는지 확인
PMS patch 다운로드/updates/patch.ps1win01 agent가 변경된 patch를 가져간 시간 확인
비정상 요청 주체source.ip, http.request.method, http.response.status_codebastion, win01, 외부 source를 구분
relay 서비스 로그journalctl -u hanguel-pms-relay.service 원문8081 relay 기반 파일 제공 여부 확인

Analyst Hunting KQL

HTTP 로그는 원본 요청 경로와 응답 코드로 먼저 탐색한다. event.action은 보조 피벗이며, JBoss/PMS 로그가 정규화되지 않은 경우에는 message 필드가 가장 넓게 동작한다.

host.name:"hanguel-ops-pms" and url.path:("/invoker/JMXInvokerServlet" or "/invoker/readonly" or "/updates/manifest.json" or "/updates/patch.ps1")
host.name:"hanguel-ops-pms" and message:(*"/invoker/JMXInvokerServlet"* or *"/updates/patch.ps1"* or *"/updates/manifest.json"*)
host.name:"hanguel-ops-pms" and source.ip:"10.60.30.10" and message:*"/updates/patch.ps1"*
host.name:"hanguel-ops-pms" and message:(*Apache-Coyote* or *JBossAS-6* or *JMXInvokerServlet*)

Normalized Pivot

host.name:"hanguel-ops-pms" and event.action:("jboss_invoker_probe" or "pms_patch_downloaded")