ConnectWise 앱 자격증명 침해, MS 365 테넌트 173곳 뚫렸다…MFA 무용

노트북과 서버 장비 옆에 놓인 173 표시 서류 더미와 열린 자물쇠 — AI로 생성한 자료 이미지

관리형 서비스 제공업체(MSP)용 클라우드 백업 서비스 ConnectWise Cloud Backup(옛 SkyKick)의 애플리케이션 자격증명이 침해돼 고객사의 마이크로소프트 365 환경에 무단 접근이 이어졌다. 보안업체 Huntress는 이 자격증명으로 파트너·고객 테넌트(조직별 클라우드 계정 단위) 173곳에서 무단 로그인을 확인했다고 밝혔다. ConnectWise는 10월 17일(현지시각) 관련 앱 ID 7개를 비활성화하고 클라우드 백업 서비스를 중단했다.

사용자 비밀번호를 하나하나 훔친 공격이 아니라 앱 자체의 신원을 빌린 방식이라는 점이 핵심이다. 앱이 이미 고객사로부터 넓은 권한을 승인받은 상태여서 공격자는 그 권한을 그대로 물려받았다.

앱의 신원을 훔치면 고객 비밀번호는 필요 없다

ConnectWise Cloud Backup은 MSP가 고객의 마이크로소프트 365나 구글 워크스페이스 데이터를 지키도록 돕는 클라우드 기반 백업·복구 서비스다. 이 일을 하려면 설치된 모든 테넌트에서 메일함, OneDrive, SharePoint, Teams, 디렉터리 데이터에 넓게 접근할 수 있어야 한다. Huntress는 앱이 설치된 모든 조직이 영향권이고, 해당 자격증명은 앱이 승인된 모든 테넌트에서 통한다고 설명했다.

공격자는 훔친 앱 자격증명으로 앱 행세를 하며 마이크로소프트 엔트라 ID(Entra ID)에 접근 토큰을 요청한다. 토큰의 권한 범위는 앱이 이미 가진 권한을 따른다. 블리핑컴퓨터(BleepingComputer)가 인용한 Todyl 연구진 분석에 따르면 로그인 요청은 자동화 스크립트가 수행했고 사용자 로그인이 아니었기 때문에 다단계 인증(MFA) 같은 보호 장치가 소용없었다.

Todyl의 니컬러스 코켄(Nicholas Koken) 탐지엔지니어링 책임자는 이 접근이 메일·첨부파일의 읽기와 쓰기(Exchange Web Services를 통한 전체 메일함 접근), OneDrive·SharePoint 파일, Teams 채팅, 데이터 복원 권한까지 포함한다고 설명했다. 이어 사용자 세션을 취소해도 접근은 끝나지 않는다고 경고했다. 테넌트에서 앱을 비활성화하면 새 토큰 발급은 멈추지만 이미 발급된 토큰은 최대 90분간 유효하다.

대형 모니터 앞에서 노트북 자판에 코드를 입력하는 모습 — AI 자료 이미지

스크립트가 GUID 순서대로 훑었다

Huntress의 보안 연구원 조너선 시먼(Jonathan Semon)은 “앱의 자격증명이 적대 세력 손에 있다”고 말했다. 그는 공격자가 10월 15일 협정세계시 기준 오전 6시 13분부터 8시 34분 사이, 한국시간으로는 오후 3시 13분부터 5시 34분 사이에 IP 주소 144.172.64[.]128에서 고객 테넌트용 마이크로소프트 그래프 토큰을 얻었다고 밝혔다. 공격자는 테넌트를 GUID(고유 식별자) 정렬 순서대로 몇 초 간격으로 훑었고, 시먼은 이를 대상 목록을 쥔 스크립트의 흔적으로 봤다.

같은 IP는 앞서 10월 13일과 14일에도 로펌 테넌트 4곳에 비밀번호 대입(패스워드 스프레이) 공격을 시도했다. Huntress는 자사 텔레메트리에서 성공한 사용자 로그인은 발견하지 못했다고 밝혔다. 블리핑컴퓨터에 따르면 이 IP의 10월 13~14일 스크립트 로그인 시도에는 curl/7.88.1이라는 사용자 에이전트가 쓰였다.

피해 규모 수치는 시점에 따라 다르다. 블리핑컴퓨터는 Huntress가 처음에 자사 환경에서 최소 162개 테넌트 침해를 확인했다고 전했다. The Hacker News가 인용한 최신 분석에서는 확인된 무단 로그인이 173개 테넌트로 집계됐다. 마이크로소프트도 10월 15일 해당 IP에서 나온 무단 인증 시도를 확인했다고 밝혔다.

글로벌 관리자 역할 부여와 시크릿 추가까지

단순 로그인에 그치지 않은 사례도 있다. Huntress는 적어도 한 파트너 테넌트에서 ConnectWise Cloud Management의 Teams용 앱(애플리케이션 ID 24205314-2b89-4e07-a2a4-579e898a5640)이 스스로를 글로벌 관리자 역할에 추가한 것을 확인했다. 이어 파이썬 스크립트가 테넌트 안의 다른 앱 2개를 수정했다. 하나는 MSP 관리 애플리케이션이고 다른 하나는 Huntress 자체 앱인 Huntress Security Platform으로, 두 앱에 새 클라이언트 시크릿(앱 인증용 비밀값)이 추가됐다.

시먼은 MSP 관리 앱에 자격증명을 넣으면 접근 범위가 한 테넌트를 넘어설 수 있다고 지적했다. 이런 앱은 MSP 고객사 테넌트에도 승인돼 있는 경우가 많기 때문이다. 보안 도구 앱에 자격증명이 붙으면 소지자는 그 도구가 허용된 모든 일을 할 수 있다. 블리핑컴퓨터에 따르면 이 작업은 약 5분이 걸렸다.

블리핑컴퓨터는 Huntress가 모니터링하는 테넌트 약 50곳에서 Cloud Management 앱(Exchange Online, Microsoft Teams, Microsoft Graph)의 서비스 주체가 스스로 디렉터리 역할을 부여했고 대부분 Exchange 관리자 역할이었다고 전했다. 한 레딧 이용자는 수년간 쓰지 않은 SkyKick 앱이 10월 15일 스스로 Exchange 관리자 역할을 받았다는 마이크로소프트 PIM(권한 있는 ID 관리) 알림을 받았다고 썼다. 다만 Todyl이 분석한 9개 테넌트에서는 로그인 활동만 확인됐고 계정 생성이나 권한 추가, 비밀번호 변경, 지속성 확보 정황은 발견되지 않았다.

마이크로소프트 위협 인텔리전스는 사건을 진행 중인 공급망 공격으로 규정했다. 공격자가 Directory.ReadWrite.All을 포함한 기존 권한을 악용했을 가능성이 높다고 평가했다.

두 번째 표적 공격과 ConnectWise의 조치

Huntress는 10월 15일 같은 IP에서 이뤄진 ‘두 번째 표적 공격’도 포착했다. 정책, 국가안보, 무역, 핵심 광물 분야 테넌트 16곳만 노렸고 모두 실패했다. 첫 번째 훑기는 UTC 기준 오전 9시 25분부터 낮 12시 35분까지(한국시간 오후 6시 25분~9시 35분)였다. 두 번째는 UTC 오후 1시 54분부터 2시 20분까지(한국시간 오후 10시 54분~11시 20분)로, 수동 조작으로 보였고 Exchange Online, SharePoint Online, Teams, Azure Resource Manager, Entra, Office 365 관리 API를 겨냥했다.

Huntress의 시먼은 Exchange Online·Teams·SharePoint용 Cloud Management 앱도 공격 대상이었다고 ‘높은 확신’을 갖고 있다고 밝혔다. 그는 Teams 앱 악용을 한 테넌트에서 확인했으며, 이 앱들이 비활성화된 것으로 보이지 않아 추가 활동이 나올 수 있다고 덧붙였다. Huntress는 10월 15일 이후 새 악성 활동은 확인하지 못했지만 그 중단이 공개 때문이라는 증거는 없다고 했다.

ConnectWise는 10월 17일 UTC 오전 7시(한국시간 오후 4시)에 앱 ID 7개를 비활성화했다. 대상은 Cloud Backup과 Cloud Management 계열 6개(Cloud Management 본체, MS Teams, Exchange Online, MS Graph, Partner Center, SharePoint Online)다. Cloud Backup은 인증서를 폐기하는 방식으로 모든 사용자에 대해 중단했다. 예약 백업은 실행되지 않고 백업 아카이브 접근과 복원 기능도 쓸 수 없다. 다만 기존 아카이브는 암호화·격리·보존 상태이며 공격자가 침해하거나 접근했다는 증거는 없다고 밝혔다. SaaS Security와 Cloud Management도 임시로 오프라인으로 전환했다.

ConnectWise는 10월 14일 자체 모니터링으로 문제를 인지했다고 밝혔다. 제품 취약점이 침해에 기여했는지는 불분명하며 자격증명 노출 경로는 분석 중이다. 회사는 연결을 끊어도 테넌트 안에서 이미 이뤄진 변경은 되돌려지지 않는다고 강조했다. 별도 ID로 만들어진 무단 자격증명이나 권한은 추가 검토와 복구가 필요하다.

관리자는 엔트라 관리 센터의 모니터링→로그인 로그에서 ‘서비스 주체 로그인’ 탭을 열고 Cloud Backup 앱 ID로 필터링해야 한다. 기본 사용자 로그인 탭에는 필요한 정보가 나오지 않는다. 앱의 정상 접속은 Azure 사설 IPv6로 확인됐으므로 이 범위 밖의 IP, 특히 144.172.64[.]128을 점검하라는 안내다. Huntress는 ConnectWise가 모든 자격증명 재설정을 확인할 때까지 앱을 비활성화하고, 마이크로소프트 그래프 활동 로그를 켜고, 10월 13일 이후 추가된 자격증명을 감사하라고 권고했다. 오래된 테넌트에서는 Cloud Management 앱이 ‘SkyKick Cloud Manager’라는 이름으로 표시될 수 있다.

핫 뉴스

뉴스 view