Spacebar Campaigns

LL-001 Linux SSH Auth Log

Log ID:
LL-001
Source:
Linux App/Jenkins/DB host
Representative Path:
/var/log/auth.log
Collection:
Filebeat system module 또는 custom log input
Primary Use:
SSH 인증 성공/실패, 세션 시작/종료 확인

Why This Log Matters

SB-01에서 공격자는 Jenkins에서 확보한 배포 credential을 이용해 App 서버로 SSH 접속한다. auth.log는 이 이동이 실제로 발생했는지 확인하는 1차 증거다. 특히 접속 계정, 출발지 IP, 인증 방식, 성공/실패 여부를 통해 정상 배포 접근과 비정상 접근을 구분할 수 있다.

Log Structure

Linux SSH 인증 로그는 일반적으로 시간, 호스트명, 프로세스, 인증 결과, 계정, 출발지 IP, 포트, 인증 방식 정보를 포함한다. ELK로 수집하면 message 원문과 함께 user.name, source.ip, event.outcome, process.name 같은 필드로 정규화할 수 있다.

<timestamp> <host> <process>[<pid>]: <auth_result> <auth_method> for <user> from <source_ip> port <source_port> ssh2

예를 들어 SSH public key 인증에 성공하면 아래처럼 Accepted publickey, 접속 계정, 출발지 IP, 포트가 한 줄에 같이 남는다.

Raw Log Example

May 08 13:25:41 sb01-app sshd[2841]: Accepted publickey for deploy from 10.10.40.21 port 51244 ssh2: RSA SHA256:...
May 08 13:25:41 sb01-app sshd[2841]: pam_unix(sshd:session): session opened for user deploy(uid=1001) by (uid=0)
May 08 13:27:02 sb01-app sshd[2841]: pam_unix(sshd:session): session closed for user deploy

Representative Events

Event TypeExample SignalMeaning
Login successAccepted publickey for deploySSH public key 인증 성공
Login failureFailed password for invalid user비밀번호 인증 실패 또는 계정 추측
Session openedpam_unix(sshd:session): session openedSSH 세션 시작
Session closedpam_unix(sshd:session): session closedSSH 세션 종료

Important Fields

FieldMeaning
@timestamp인증 이벤트 발생 시간
user.name접속 계정
source.ip접속 출발지 IP
event.outcome성공 또는 실패
process.name보통 sshd
message원본 인증 로그

Collection Method

MethodUse Case
Filebeat system moduleLinux 인증 로그를 ECS 필드로 정규화해서 수집할 때 사용
Filebeat custom log inputproject.name, sb01_server, sb01_log_type 같은 SB-01 전용 필드를 붙일 때 사용

Mapped Techniques

TechniqueMapping Reason
T1021.004 Remote Services: SSHSSH를 통한 원격 접속 자체를 확인
T1078 Valid Accounts정상 계정/키를 이용한 인증 성공 확인
T1110 Brute Force반복 인증 실패, invalid user 패턴 확인

KQL Draft

sb01_server: "app" and sb01_log_type: "linux_auth" and message: "Accepted publickey for deploy"

Investigation Pivot

  1. Accepted publickey for deploy 이벤트로 SSH 성공 여부를 확인한다.
  2. source.ip가 Jenkins 서버인지, 외부 또는 예상 밖 내부 서버인지 확인한다.
  3. 같은 시간대 Jenkins build/system log에서 배포 job 또는 CLI 사용 흔적을 확인한다.
  4. SSH 직후 LL-002 auditd에서 /opt/spacebar-booking 접근이 이어졌는지 확인한다.
  5. 필요하면 DBL-001 PostgreSQL 로그로 DB 접속과 조회 행위를 연결한다.

Limitations

auth.log만으로는 SSH 접속 이후 실행한 명령이나 접근한 파일을 알 수 없다. 따라서 App 경로 접근은 LL-002 auditd, DB 조회는 DBL-001, 네트워크 전송은 AWSL-001과 함께 봐야 한다.