1. 개요
- UNC5537 해킹 그룹이 Snowflake 고객 데이터베이스에 접근 및 데이터 탈취
- Infostealer 멀웨어를 통해 획득한 자격 증명을 사용
- 침해된 데이터들은 다크웹에서 판매
2. 주요 내용 [1]
① 계정 탈취
- 공격자들은 Infostealer 악성코드를 활용해 계정 탈취
> 피싱, 불법 복제 소프트웨어 등으로 악성코드 유포
> 조사에 따르면 악용된 계정 중 79.7%가 이전에 노출된 적이 있음
> 탈취된 계정 증명은 23년 기준 공격자들의 주요 최초 침투 전략 중 4위에 랭크(전체 침투 사건의 10%)
> VIDAR, RISEPRO, REDLINE, RACOON STEALER, LUMMA 및 METASTEALER Infostealer 활용
※ 클라우드 설정 오류로 인한 크리덴셜 유출
> 최근 클라우드가 크게 유행하면서 발생
> 사용자가 민감한 데이터가 저장된 클라우드 DB를 설정 오류로 전체 공개로 설정
> 해당 DB의 URL만 알게된다면 DB에 접근 및 정보 열람이 가능
> 많은 사용자들의 여러 설정 오류와 같은 실수로 공격자에게 정보를 탈취 당함
② 정찰
- Snowflake 고객 인스턴스의 초기 접근은 웹 기반 UI(SnowFlake UI , SnowSight) 또는 윈도우 서버 2022에서 실행되는 CLI 도구(SnowSQL)를 이용
> 공격자들은 .NET 및 Java 버전의 FROSTBITE를 정찰 도구로 활용
> .NET 버전은 Snowflake .NET 드라이버와, JAVA 버전은 Snowflake JDBC 드라이버와 연동해 작동
> FROSTBITE는 사용자, 현재 역할, IP, 세션 ID 및 조직 이름 등의 정보를 수집
> 오픈 소스 DB 관리 유틸리티인 DBeaver Ultimate를 사용해 Snowflake 인스턴스 연결 및 쿼리 실행
③ 정보 탈취
명령 | 설명 |
SHOW TABLES | - 정찰 및 모든 DB와 연관된 Table 나열 |
SELECT * FROM | - 관심 있는 개별 Table 다운로드 Ex. SELECT * FROM <Target Database>.<Target Schema>.<Target Table> |
LIST/LS | - 임시 스테이지를 만들기 전 LIST 명령을 사용해 다른 스테이지 열거 시도 (기존 스테이지 파악 용도) - 생성된 임시 스테이지는 생성자의 세션이 종료되면 삭제 ※ 스테이지: 데이터 파일을 DB 테이블에 로드/언로드하기 위한 이름이 지정된 테이블 Ex. ls <internal or external stage name> |
CREATE (TEMP|TEMPORARY) STAGE | - CREATE STAGE 명령으로 데이터 저장을 위한 임시 스테이지 생성 Ex. CREATE TEMPORARY STAGE <Redacted Database>.<Redacted Schema>. <Redacted Attacker Stage Name>; |
COPY INTO | - 확보한 데이터를 이전에 생성한 임시 스테이지로 복사 - 해당 명령은 내ㆍ외부 스테이지, 내부 Snowflake 테이블로 정보를 복사하는데 사용 - 공격자는 유출 전 데이터의 전체 크기를 줄이기 위해 COMPRESSION 매개변수를 사용해 결과를 GZIP 파일로 압축 Ex. COPY INTO @<Attacker Stage and Path> FROM (select * FROM <Target Database>.<Target Schema>.<Target Table> ) FILE_FORMAT = ( TYPE='CSV' COMPRESSION=GZIP FIELD_DELIMITER=',' ESCAPE=NONE ESCAPE_UNENCLOSED_FIELD=NONE date_format='AUTO' time_format='AUTO' timestamp_format='AUTO' binary_format='UTF-8' field_optionally_enclosed_by='"' null_if='' EMPTY_FIELD_AS_NULL = FALSE ) overwrite=TRUE single=FALSE max_file_size=5368709120 header=TRUE; |
GET | - 임시 스테이지에서 데이터를 로컬로 지정된 디렉토리로 유출 Ex. GET @<target stage and filepath> file:///<Attacker Local Machine Path>; |
- 공격자는 Mullvad, PIA VPN을 활용해 침해한 Snowflake 인스턴스에 접근
> 탈취한 데이터는 ALEXHOST SRL(몰도바 호스팅 업체)의 VPS(Virtual Private Serve) 시스템에 저장
2.1 특징
- 공격자들은 3가지 특징을 보임
① 다중인증 기능이 활성화 되지 않은 채 Snowflake 계정 사용
② 계정 비밀번호를 오랜 기간 변경 없이 사용
③ 신뢰할 만한 지역에서만 로그인이 가능하도록 하는 옵션 비활성화
- 해당 사건은 클라우드 플랫폼 보안에 대한 책임을 사용자와 플랫폼 업체가 공유한다는 개념이 부실하여 생긴 사건
> 플랫폼 업체는 취약점 관리와 클라우드 내 테넌트들끼리 침범하지 못하도록 하는 등 관리 책임
> 사용자는 계정이나 DB를 안전하게 설정하는 등 안전하게 사용할 책임
2.2 대응방안
- 주기적인 비밀번호 변경
- 여러 서비스간 동일 비밀번호 사용 금지
- 다중인증 기능 활성화
- 접근 제한 기능 활용 등
3. 참고
[1] https://cloud.google.com/blog/topics/threat-intelligence/unc5537-snowflake-data-theft-extortion?hl=en
[2] https://www.dailysecu.com/news/articleView.html?idxno=156822
[3] https://www.boannews.com/media/view.asp?idx=130504&page=1&kind=1
[4] https://www.boannews.com/media/view.asp?idx=130536&page=1&kind=1
[5] https://www.boannews.com/media/view.asp?idx=130594&page=1&kind=1
[6] https://www.boannews.com/media/view.asp?idx=130527&page=1&kind=1
'클라우드 > 보안 사고' 카테고리의 다른 글
캐피탈 원 (Capital One) AWS 해킹 (0) | 2023.03.31 |
---|