SCP를 이용한 파일 유출
scp 명령어를 이용하여 외부 SSH 서버로 파일 업로드 시 탐지합니다.
쿼리
scp 명령어를 이용한 내부에서 외부로의 파일 전송을 탐지합니다. 정규표현식으로 출발지/목적지의 사용자, 호스트, 경로 정보를 추출하고, matchnet을 이용하여 내부에서 외부로의 아웃바운드 파일 전송만 필터링합니다.
| search contains(cmd_line, "scp")
| search match(cmd_line, "\\bscp\\s")
| rex field=cmd_line "scp(?:\s+-[^\s]+(?:\s+[^\s]+)?)*\s+(?:(?<src_user>[^@\s]+)@)?(?:(?<src_host>[^:\s]+):)?(?<src_path>[^\s]+)\s+(?:(?<dst_user>[^@\s]+)@)?(?:(?<dst_host>[^:\s]+):)?(?<dst_path>.+)"
| eval src_ip = ip(src_host), dst_ip = ip(dst_host)
| search isnull(src_host) or matchnet("bb994ca4-1471-4b91-89f2-99a61bd529b5", src_ip) or (isnull(src_ip) and match(src_host, "^[a-zA-Z0-9\\-]+$|^[a-zA-Z0-9\\-\\.]+\\.local"))
| search not(isnull(dst_host) or matchnet("bb994ca4-1471-4b91-89f2-99a61bd529b5", dst_ip) or (isnull(dst_ip) and match(dst_host, "^[a-zA-Z0-9\\-]+$|^[a-zA-Z0-9\\-\\.]+\\.local")))
참조 객체
- 내부망 대역:
bb994ca4-1471-4b91-89f2-99a61bd529b5
메시지
- SCP를 이용한 파일 유출: $host_ip ($hostname) ➜ $dst_host, 파일 $src_path
출력 필드 순서
- _log_time, client_ip, host_ip, hostname, src_user, src_ip, src_host, src_path, dst_user, dst_ip, dst_host, dst_path, log_type, cmd_line, cmd_line_raw, working_dir
위협 분석
- 공격자가 scp를 이용하여 내부 민감 데이터를 외부 서버로 유출하는 시도일 수 있습니다.
- SSH 기반 암호화 전송으로 DLP 등 기존 보안 솔루션의 콘텐츠 검사를 우회할 수 있습니다.
- 침투 후 수집한 자격증명, 설정 파일, 소스코드 등을 외부 공격 인프라로 반출하는 행위일 수 있습니다.
오탐 유형
- 업무상 정상적인 외부 서버로의 파일 전송에서 탐지될 수 있습니다. 이 경우에는 예외 조건을 추가하여 오탐을 방지합니다.
- 예시: 개발팀의 외부 배포 서버 업로드, 클라우드 인프라로의 파일 전송, 협력업체와의 데이터 교환
대응 방안
- 전송 대상 파일(
src_path)의 민감도 및 기밀 등급을 확인합니다. - 목적지 호스트(
dst_host) 및 사용자(dst_user)의 정당성을 검토합니다. - 목적지 IP/도메인의 평판 조회 및 악성 여부를 확인합니다.
- 비인가 파일 전송 확인 시 출발지 시스템을 격리하고, 전송된 데이터의 범위 및 영향도를 조사합니다.
MITRE ATT&CK
- 전술
- Exfiltration
- 기법
- 이름: Exfiltration Over Alternative Protocol
- ID: T1048
- 참조 URL: https://attack.mitre.org/techniques/T1048/