계정명 위장: admin 1개로 정상 사용자를 사칭하는 원리 | T1036.010
MITRE T1036.010 계정명 위장 공격의 동작 원리와 MOVEit, CUBA 랜섬웨어 실제 사례 분석. admin_backup으로 정상 계정을 사칭하는 4단계 공격 기법과 탐지 방법을 상세 해설하여 보안 전략 수립에 도움을 제공합니다.
MITRE ATT&CK 프레임워크의 Enterprise 매트릭스에는 216개의 기법과 475개의 하위 기법이 분류되어 있으며, 그 중 T1036.010은 공격자가 정당한 계정명과 유사한 이름을 만들어 탐지를 우회하는 기법이다. 2024년 8월 5일 공식 등록된 이 기법은 MOVEit Transfer 사건과 CUBA 랜섬웨어 캠페인에서 실제로 관찰되었다.
시스템 관리자가 수백 개의 계정을 관리하는 환경에서 "admin_backup", "help_desk", "root_service" 같은 이름이 나타나면 어떨까요? 정상적인 관리 계정으로 보이겠지만, 실제로는 공격자가 만든 가짜 계정일 수 있다.
T1036.010이 등장하기 전까지 보안 솔루션들은 주로 비정상적인 계정명을 탐지하는 데 집중했다. "hacker123", "backdoor_user" 같은 명백히 의심스러운 이름은 쉽게 걸러낼 수 있었다.
하지만 공격자들이 "administrator", "service_account", "backup_user" 같은 정당해 보이는 이름을 사용하기 시작하면서 기존 탐지 방식의 한계가 드러났다. 특히 대규모 엔터프라이즈 환경에서는 수백 개의 서비스 계정이 존재하기 때문에 하나둘 추가된 계정을 눈치채기 어려웠다.
1. 인간 심리학의 약점 악용
2. 자동화된 탐지 시스템의 한계
3. 장기적 지속성
Adversaries may masquerade account names to make them appear legitimate. Adversaries may create new accounts with names that match or are similar to legitimate account names, typically during account creation but accounts may also be renamed later. — MITRE ATT&CK T1036.010
T1036.010은 공격자가 정당한 계정명과 일치하거나 유사한 이름으로 새 계정을 만들어 무해해 보이게 만드는 기법이다. 일반적으로 계정 생성 시 발생하지만, 나중에 계정명을 변경하는 경우도 포함한다.
T1036.010은 이런 '신뢰할 수 있는 이름'을 악용해 정당한 계정으로 위장하는 공격 기법을 체계화한 것이다.
| 용어 | 설명 |
|---|---|
| Account Masquerading | 정의: 계정명 자체를 위장 / 대상: 계정 이름 / 탐지 난이도: 높음 |
| Process Masquerading | 정의: 프로세스명을 위장 / 대상: 실행 파일명 / 탐지 난이도: 중간 |
| Impersonation | 정의: 특정 개인/조직 사칭 / 대상: 신원 정보 / 탐지 난이도: 낮음 |
| Account Discovery | 정의: 기존 계정 정보 수집 / 대상: 계정 목록 / 탐지 난이도: 매우 낮음 |
T1036.010의 실행 과정은 정찰 → 모방 → 생성 → 활용 4단계로 구성된다.
공격자는 먼저 시스템의 기존 계정 구조를 파악한다. 이는 T1087 Account Discovery 기법과 연계된다.
# Linux 환경에서 계정 정보 수집
cat /etc/passwd | grep -E "(admin|root|service|backup)"
# 결과 예시:
# admin:x:1001:1001:System Administrator:/home/admin:/bin/bash
# backup_service:x:1002:1002:Backup Service Account:/var/backup:/bin/false
# db_admin:x:1003:1003:Database Administrator:/home/dbadmin:/bin/bash
# Windows 환경에서 계정 정보 수집
Get-LocalUser | Where-Object {$_.Name -like "*admin*" -or $_.Name -like "*service*"}
# Active Directory 환경
Get-ADUser -Filter 'Name -like "*admin*" -or Name -like "*service*"' | Select Name, SamAccountName
수집된 정보를 바탕으로 공격자는 혼동을 유발하는 계정명을 설계한다.
일반적인 명명 패턴:
| 원본 계정 | 위장 계정 | 위장 기법 |
|---|---|---|
| admin | admin_backup | 접미사 추가 |
| service_account | serviceaccount | 언더스코어 제거 |
| db_admin | dbadmin | 축약형 |
| root | r00t | 문자 치환 |
| help_desk | help-desk | 구분자 변경 |
# Linux에서 위장 계정 생성
sudo useradd -m -s /bin/bash admin_backup
sudo usermod -aG sudo admin_backup # sudo 권한 부여
echo "admin_backup:ComplexPass123!" | sudo chpasswd
# 서비스 계정으로 위장
sudo useradd -r -s /bin/false backup_service
sudo usermod -aG backup backup_service
# Windows에서 위장 계정 생성
New-LocalUser -Name "admin_backup" -Password (ConvertTo-SecureString "ComplexPass123!" -AsPlainText -Force) -Description "Backup Administrator Account"
# 관리자 그룹에 추가
Add-LocalGroupMember -Group "Administrators" -Member "admin_backup"
# 서비스 계정 권한 부여
Grant-UserRight -Account "admin_backup" -Right "SeServiceLogonRight"
클라우드 네이티브 환경에서는 ServiceAccount를 통한 위장이 일반적이다.
# 정상적인 백업 서비스로 위장하는 ServiceAccount
apiVersion: v1
kind: ServiceAccount
metadata:
name: backup-service
namespace: kube-system
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: backup-service-admin
subjects:
- kind: ServiceAccount
name: backup-service
namespace: kube-system
roleRef:
kind: ClusterRole
name: cluster-admin # 전체 클러스터 권한
apiGroup: rbac.authorization.k8s.io
이렇게 생성된 ServiceAccount는 정당한 백업 도구처럼 보이지만 실제로는 공격자가 클러스터 전체를 제어할 수 있는 권한을 가집니다.
공격자는 종종 계정 삭제 후 재생성 패턴을 사용한다. 이는 T1531 Account Access Removal과 연계된다.
이 방법의 정교함은 로그상으로는 기존 관리자의 정상 활동으로 보인다는 점이다. UID가 변경되지만 대부분의 로그 시스템은 계정명만 기록하기 때문이다.
# 공격자의 실제 명령 시퀀스
# 1. 기존 관리자 계정 확인
id admin
groups admin
# 2. 유사한 이름으로 새 계정 생성
sudo useradd -m -G sudo,adm admin-backup
# 3. SSH 키 기반 인증 설정 (비밀번호 없는 접근)
sudo -u admin-backup ssh-keygen -t rsa -b 4096 -f /home/admin-backup/.ssh/id_rsa -N ""
sudo -u admin-backup cp /home/admin-backup/.ssh/id_rsa.pub /home/admin-backup/.ssh/authorized_keys
# 4. 로그 회전 설정 조작 (흔적 제거)
echo "admin-backup ALL=(ALL) NOPASSWD: /usr/sbin/logrotate" | sudo tee -a /etc/sudoers
AWS IAM에서의 계정 위장:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::123456789012:user/backup-service"
},
"Action": "sts:AssumeRole",
"Resource": "arn:aws:iam::123456789012:role/AdminRole"
}
]
}
이 정책은 "backup-service"라는 사용자가 관리자 역할을 맡을 수 있게 한다. 백업 서비스처럼 보이지만 실제로는 전체 AWS 계정을 제어할 수 있는 권한을 가집니다.
타이밍 공격
배치 생성
권한 분산
T1036.010이 효과적인 이유는 인간의 인지적 편향과 자동화된 시스템의 한계를 동시에 악용하기 때문이다.
낮은 탐지 확률
높은 지속성
권한 상승 용이성
MOVEit Transfer 침해 사건 (2023년 6월)
This technique was observed in the MOVEit Transfer critical vulnerability rapid response report by John Hammond on June 1, 2023. — MITRE ATT&CK T1036.010 Detection
MOVEit 공격에서 위협 행위자들은 "service_backup" 과 같은 이름으로 계정을 생성했다. 이는 파일 전송 서비스의 백업 기능과 관련된 정당한 계정으로 보였기 때문에 장기간 탐지되지 않았다.
CUBA 랜섬웨어 캠페인 (2022년 9월)
This technique was identified in the CUBA ransomware campaign analysis by Daniel Stepanic and others on September 7, 2022. — MITRE ATT&CK T1036.010 Procedure Examples
CUBA 그룹은 "admin_maintenance", "system_update" 같은 이름으로 계정을 생성하여 시스템 유지보수 작업으로 위장했다.
계정 생성 패턴 모니터링:
# Windows Event Log 모니터링 (Event ID 4720)
Get-WinEvent -FilterHashtable @{LogName='Security'; ID=4720} |
Where-Object {$_.Message -match "(admin|root|service|backup|help)"} |
Select-Object TimeCreated, @{Name='Account';Expression={($_.Message -split '\n' | Select-String 'Account Name:').ToString().Split(':')[1].Trim()}}
명명 규칙 위반 탐지:
import re
import difflib
# 조직의 정당한 계정명 패턴
legitimate_patterns = [
r'^admin_[a-z]+$',
r'^service_[a-z]+_prod$',
r'^backup_[0-9]{4}$'
]
# 새로 생성된 계정명 검증
def validate_account_name(account_name, existing_accounts):
# 기존 계정과 너무 유사한지 확인
for existing in existing_accounts:
similarity = difflib.SequenceMatcher(None, account_name, existing).ratio()
if 0.6 < similarity < 1.0: # 기존 계정과 유사하지만 완전히 같지 않음
return False, f"Too similar to existing account: {existing}"
# 조직 명명 규칙 준수 확인
for pattern in legitimate_patterns:
if re.match(pattern, account_name):
return True, "Valid pattern"
return False, "Does not match organizational naming conventions"
계정 생성 승인 프로세스
명명 규칙 표준화
# 조직 계정 명명 규칙 예시
naming_convention:
admin_accounts: "admin_{department}_{number}"
service_accounts: "svc_{application}_{environment}"
backup_accounts: "backup_{system}_{year}"
prohibited_patterns:
- "*admin*" (표준 외)
- "*root*" (Linux 시스템 계정 외)
- 기존 계정명과 유사한 패턴
자동화된 탐지 규칙
제로 트러스트 접근
T1036.010 계정명 위장 공격은 인간의 신뢰와 시스템의 자동화 약점을 정교하게 악용하는 기법이다. "admin_backup"이나 "service_account" 같은 무해해 보이는 이름 뒤에 숨어 장기간 탐지를 피할 수 있기 때문에 특히 위험한다.
이 공격 기법과 관련된 다른 MITRE ATT&CK 기법들을 함께 이해하면 더 포괄적인 방어 전략을 수립할 수 있다:
다음에 알아볼 것: T1036의 다른 하위 기법들인 파일명 위장(T1036.005), 프로세스 위장(T1036.003) 등과 함께 종합적인 위장 공격 대응 전략을 수립하는 방법을 살펴볼 예정이다.
AI 활용 안내 이 글은 AI(Claude)의 도움을 받아 작성되었습니다. 인용된 통계와 사례는 참고 자료에 명시된 출처에 근거하며, 설명을 위한 일부 표현은 각색되었습니다.
면책 조항 본 글은 보안 인식 제고를 위한 교육 목적으로 작성되었습니다. 언급된 공격 기법을 실제로 시도하는 행위는 「정보통신망법」, 「형법」 등에 따라 처벌받을 수 있으며, 본 블로그는 이에 대한 법적 책임을 지지 않습니다.