피드로 돌아가기
Dev.toSecurity
원문 읽기
신뢰 기반 파일 업로드의 맹점, SSH 키 탈취 공격 분석
Week 12: Malware Analysis Lab: Can You Identify This Malware?
AI 요약
Context
사용자 업로드 파일의 내용을 무조건적으로 신뢰하는 서버 구조. 검증되지 않은 파일이 시스템 내부에서 디코딩 및 실행되는 취약점 존재. 공격자가 CVE 취약점 없이 파일 업로드만으로 서버 권한을 장악한 사례.
Technical Solution
- Base64 인코딩된 데이터를 디코딩하여 XZ 압축 포맷의 페이로드 식별
- JSON 형태의 메타데이터에서 AES-256-CBC 암호화 키와 IV를 추출하여 내부 스크립트 복호화
- 복호화된 BASH 스크립트가 모든 사용자의 .ssh 디렉토리 내 프라이빗 키를 수집하는 로직 분석
- 수집된 키를 tar로 압축하여 외부 공격자 서버로 전송하는 curl 기반의 exfiltration 경로 확인
- 실행 권한 비트 설정을 원천 차단하여 업로드 파일의 임의 실행 방지 전략 수립
- Hypervisor 또는 Docker 기반의 격리된 샌드박스 환경에서만 스크립트를 실행하는 구조 설계
- 외부 통신 시 화이트리스트 기반의 도메인 필터링을 적용하여 데이터 유출 경로 차단
Impact
- 파일 업로드 후 실행까지 11일의 잠복기 발생
- 실행 후 90초 이내에 호스트 내 모든 사용자 SSH 프라이빗 키 유출 완료
Key Takeaway
사용자 제공 입력값은 단순 데이터가 아닌 실행 가능한 코드로 간주하는 제로 트러스트(Zero Trust) 설계 원칙 준수 필요. 최소 권한 원칙을 적용하여 프로세스의 파일 시스템 접근 범위를 엄격히 제한하는 격리 전략이 필수적임.
실천 포인트
사용자 업로드 파일 처리 시 실행 권한을 완전히 제거하고, 반드시 격리된 컨테이너 환경에서 최소 권한 계정으로 처리할 것.