SCP를 이용한 내부 파일 전송
scp 명령어를 이용하여 내부 서버 간 파일 전송 시 탐지합니다.
쿼리
| 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 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"))
| eval src_host = nvl(src_host, hostname), dst_host = nvl(dst_host, hostname)
참조 객체
- 내부망 대역:
bb994ca4-1471-4b91-89f2-99a61bd529b5
메시지
- SCP를 이용한 내부 파일 전송: $src_host ➜ $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
위협 분석
- 공격자가 내부 침투 후 측면 이동(Lateral Movement, T1021.004)을 위해 다른 시스템으로 파일을 전송하는 시도일 수 있습니다.
- 악성 도구, 백도어, 스크립트 등을 내부 시스템 간에 배포하여 공격 범위를 확장할 수 있습니다.
- 내부 시스템에서 수집한 민감 정보를 공격자가 장악한 다른 내부 시스템으로 수집(Staging)하는 행위일 수 있습니다.
오탐 유형
- 시스템 관리자의 정상적인 내부 파일 배포 및 관리 작업에서 탐지될 수 있습니다. 이 경우에는 예외 조건을 추가하여 오탐을 방지합니다.
- 예시: 서버 간 설정 파일 동기화, 내부 배포 서버를 통한 패키지 배포, 정기 백업 작업
대응 방안
- 출발지(
src_host)와 목적지(dst_host) 시스템 간의 파일 전송 정당성을 확인합니다. - 전송된 파일(
src_path)의 종류 및 민감도를 검토합니다. - 실행 사용자 및 해당 사용자의 두 시스템에 대한 접근 권한 적절성을 확인합니다.
- 비인가 전송 확인 시 출발지/목적지 시스템 모두에서 침해 여부를 조사하고, 측면 이동 경로를 추적합니다.
MITRE ATT&CK
- 전술
- Lateral Movement
- 기법
- 이름: Lateral Tool Transfer
- ID: T1570
- 참조 URL: https://attack.mitre.org/techniques/T1570/