Twelve Minutes, $286 Million Gone: The Case for Push Alerts
By @CoinMarketMan - 11-Aug-2026
12분, 2억 8,600만 달러 증발: 푸시 알림이 필요한 이유
2026년 4월 1일, 공격자들은 약 12분 만에 Drift Protocol에서 2억 8,600만 달러를 빼냈다. 탈취 자체는 빠르게 진행됐다. 준비 과정은 그렇지 않았다. 익스플로잇이 실행되기 9일 전, 내구성 논스 계정이 온체인에 생성됐다. 멀티시그 마이그레이션은 그로부터 5일 후에 실행됐다. 공격자의 지갑 자체는 탈취 8일 전에 생성됐고, Drift 볼트로부터 테스트 이체까지 받았다.
이 모든 이벤트는 온체인에서 명확하게 보였다. 그러나 단 하나도 알림을 트리거하지 않았다.
이 글은 빠져 있던 인프라에 관한 이야기다. 누군가 수동으로 대시보드를 확인할 때까지 기다리는 대신, 이상한 온체인 활동이 포착되는 즉시 푸시 기반 모니터링이 발동되어야 한다는 것이다. Drift 익스플로잇은 사례 연구다. 이 교훈은 퍼프 DEX 인프라를 통해 사용자 자금을 다루는 모든 빌더에게 적용된다.
준비 과정은 탈취보다 훨씬 요란했다
Drift의 사후 분석과 Elliptic의 분석은 수 주에 걸친 의도적인 준비 단계를 드러냈다. 북한 국가 연계 해커들(UNC4736으로 "중-높음 수준의 확신"으로 귀속되었으며, 2024년 10월 Radiant Capital 해킹을 주도한 그룹과 동일)은 소셜 엔지니어링을 통해 Drift 기여자들과 수개월간 신뢰를 쌓았다. 그러나 최종 온체인 준비는 명확한 흔적을 남겼다.
3월 23일, Solana에 내구성 논스 계정 4개가 생성됐다. 내구성 논스는 트랜잭션을 지금 서명하고 만료 기한 없이 나중에 실행할 수 있게 해준다. 3월 27일에는 Security Council 멀티시그 마이그레이션이 실행됐고, 타임락 없이 서명자가 교체됐다. 4월 1일, 4슬롯 간격으로 두 개의 트랜잭션이 발동됐고, 어드민 권한을 장악한 뒤 CVT라는 위조 토큰을 담보로 화이트리스트에 올리고 볼트를 비웠다.
소셜 엔지니어링은 눈에 보이지 않았다. 온체인 준비 과정은 달랐다. 어드민 키 변경, 논스 계정 생성, 담보 화이트리스팅을 모니터링하는 푸시 알림 시스템이 있었다면 탈취가 시작되기 며칠 전에 이미 트리거됐을 것이다.
폴링은 보안의 착각을 만든다
DeFi 프로토콜과 통합하는 대부분의 빌더들은 폴링에 의존한다. 일정한 주기로 API 엔드포인트를 조회하고 이전 값과 비교하는 스크립트다. 뭔가 이상해 보이면 경고 로그를 남긴다. 누군가 그 로그를 읽을 수도 있고, 못 읽을 수도 있다.
폴링은 보안 모니터링에서 구조적인 문제 세 가지를 갖는다.
- 지연이 리스크를 증폭시킨다. 15분 폴링 주기를 가정하면, 이상 징후 발생 후 0분에서 15분 사이 어느 시점에 감지할 수 있고, 평균 지연은 주기의 절반 정도다. Drift 탈취는 약 12분 만에 끝났다. 이 폴링 주기라면 첫 번째 확인이 실행되기 전에 이미 자금이 사라질 수 있다.
- 폴링은 풀(pull) 방식이고, 풀은 누군가 지켜보고 있어야 한다. 모니터링 스크립트가 새벽 2시에 크래시하면, 아침까지 아무도 확인하지 않는다. 푸시 알림은 Slack, Discord, Telegram, 또는 호출기로 전달되며, 누군가 능동적으로 확인하고 있는지 여부와 무관하게 작동한다.
- 폴링은 노이즈를 만든다. 반복적으로 확인하고 차이를 비교하면 일반적인 시장 변동성에서도 오탐이 발생한다. 웹훅 기반 알림은 특정 임계값이 초과될 때만 발동하므로, 모든 알림이 읽을 가치가 있다.
폴링과 푸시의 차이는 매달 화재 감지기 배터리를 점검하는 것과, 연기가 났을 때 직접 소리치는 화재 감지기의 차이다. 둘 다 모니터링이지만, 잠자는 동안 작동하는 건 하나뿐이다.
빌더를 위한 푸시 알림 아키텍처
퍼프 DEX 빌더를 위한 기능적인 알림 시스템에는 세 가지 레이어가 필요하다. 각 레이어는 서로 다른 리스크 범주를 잡아내며, 하나라도 빠지면 빈틈이 생긴다.
레이어 1: 프로토콜 거버넌스 모니터링
Drift가 전혀 갖추지 못했던 레이어다. 연동 중인 프로토콜의 거버넌스 구조 변경을 감시한다.
- 어드민 키 교체 또는 멀티시그 서명자 변경
- 타임락 수정
- 새로운 담보 유형 화이트리스팅
- 오라클 제공자 재배정
Drift에서는 3월 27일 멀티시그 마이그레이션과 4월 1일 CVT 담보 화이트리스팅이 모두 거버넌스 알림을 트리거했을 것이다. Solana Foundation의 해킹 후 STRIDE 프로그램은 이제 총 예치 자산이 1,000만 달러를 초과하는 프로토콜에 24시간 위협 모니터링을 제공하는데, 이는 올바른 방향이다. 하지만 빌더들이 Solana Foundation에 자신의 연동을 맡겨서는 안 된다. 그 책임은 제품을 만드는 팀에 있다.
레이어 2: 온체인 행동 모니터링
이 레이어는 트레이더와 지갑의 행동 방식을 감시한다. 익스플로잇이 공식 확인되기 전에 종종 변화가 먼저 나타난다. Smart Money가 프로토콜에서 빠져나가기 시작하면, 그 패턴은 뉴스가 Twitter에 퍼지기 전에 코호트 레벨 데이터에서 이미 보인다.
HyperTracker는 Hyperliquid의 모든 지갑을 16개의 행동 코호트로 분류한다. 규모에 따른 8개(Shrimp부터 Leviathan까지)와 전체 PnL에 따른 8개(Giga-Rekt부터 Money Printer까지)다. 전염 이벤트 발생 시, Whale, Tidal Whale, Money Printer 같은 경험 많은 코호트들은 소규모 개인 중심 코호트보다 빠르게 리스크를 줄이는 경향이 있다. 코호트 그룹 간의 이러한 괴리는 프로토콜 스트레스의 선행 지표다.
저희 데이터는 5분마다 갱신된다. Money Printer 또는 Smart Money 코호트의 노출이 임계값 이상으로 감소할 때 발동하도록 설정된 웹훅은, 원시 가격 피드로는 재현할 수 없는 행동 기반 조기 경보 레이어를 빌더에게 제공한다.
레이어 3: 푸시 전달 인프라
감지만 되고 전달되지 않으면 그냥 로그다. 세 번째 레이어는 알림을 사람(또는 자동화 시스템)에게 충분히 빠르게 전달하는 배관이다.
- 웹훅은 임계값이 초과되는 즉시 지정된 엔드포인트에 HTTP POST 요청을 보낸다. 빌더는 이를 Slack, Discord, PagerDuty, 또는 자동 포지션 청산 스크립트로 직접 라우팅할 수 있다.
- WebSocket 구독은 지속적인 연결을 유지하며 분 단위가 아닌 초 단위 지연으로 거의 실시간으로 업데이트를 푸시한다.
HyperTracker의 Flow 티어($799/월)에는 웹훅 전달이 포함되어 있으며, Stream 티어($1,999/월)에는 WebSocket 접근이 추가된다. 해당 티어의 빌더들은 코호트 변화 알림을 인프라에 직접 연결할 수 있어, 누군가 대시보드를 열기 전에 시스템이 먼저 반응한다.
Drift를 잡아냈을 알림 규칙들
아래는 Drift 타임라인에 소급 적용한 구체적인 모니터링 규칙 세트다. 각 규칙은 탈취 이전에 발생한 특정 온체인 이벤트에 대응한다.
| 규칙 | 트리거 이벤트 | Drift 타임라인 | 선행 시간 | | --- | --- | --- | --- | | 어드민 키 변경 | 멀티시그 서명자 교체 또는 마이그레이션 | 3월 27일 마이그레이션 | 5일 | | 논스 계정 생성 | 알려진 프로토콜 주소로부터 새로운 내구성 논스 초기화 | 3월 23일 논스 설정 | 9일 | | 새로운 담보 화이트리스팅 | 이전에 알려지지 않은 토큰이 허용 담보로 추가됨 | 4월 1일, CVT 화이트리스팅 | 수 분(동일 트랜잭션 체인) | | 볼트 인출 급등 | 역사적 일평균 대비 비정상적인 배수(예: 5배 이상)를 초과하는 유출 | 4월 1일, 2억 8,600만 달러 탈취 | 탈취 진행 중 | | 코호트 리스크 감소 괴리 | 소규모 코호트가 유지하는 동안 대형 경험 코호트가 노출 축소 | 익스플로잇 후 전염 | 수 시간(이차 효과) |
첫 두 가지 규칙은 탈취 며칠 전에 발동됐을 것이다. 세 번째는 공격 체인 도중 발동됐을 것이다. 합산하면, 빌더에게 연동을 일시 중지하거나, 사용자에게 경고하거나, 프로토콜이 비워지기 전에 자금을 인출할 수 있는 여러 기회를 제공한다.
코호트 알림을 스택에 연결하는 방법
Hyperliquid 빌더라면, HyperTracker의 코호트 메트릭 엔드포인트가 모든 자산에 대해 16개 코호트의 포지셔닝 데이터를 반환한다. 푸시 알림 구현 패턴은 다음과 같다.
- 기준선: 일반 갱신 주기에 코호트 메트릭 엔드포인트를 쿼리한다. Money Printer와 Smart Money 코호트의 순 롱/숏 포지셔닝을 기준선으로 저장한다.
- 임계값: 알림이 필요한 변화를 기준선 대비 퍼센트 변화로 정의한다. 적절한 임계값은 해당 자산의 일반적인 변동성에 따라 다르다. 드물게 트리거되는 값부터 시작해서 조여나간다.
- 전달: 임계값이 초과되면 알림 엔드포인트에 웹훅을 발동시킨다. Flow와 Stream 티어에서는 HyperTracker의 웹훅 인프라가 전달을 처리한다. 하위 티어에서는 5분마다 확인하고 알림을 직접 발송하는 경량 서비스로 폴링 로직을 감싸면 된다.
# Pseudocode: cohort shift alert
baseline = get_cohort_metrics("BTC", cohort="smart-money")
current = get_cohort_metrics("BTC", cohort="smart-money")
if abs(current.net_long - baseline.net_long) > threshold:
fire_webhook({
"alert": "smart-money-shift",
"asset": "BTC",
"direction": "de-risking" if current.net_long < baseline.net_long else "accumulating",
"magnitude": abs(current.net_long - baseline.net_long)
})
의사 코드가 단순한 이유는 어려운 부분, 즉 모든 지갑을 행동 코호트로 분류하고 세그먼트 레벨 포지셔닝을 계산하는 작업이 API에서 처리되기 때문이다. 원시 Hyperliquid 데이터에서 이를 직접 구현하려는 빌더는 전체 분류 파이프라인을 구축해야 하는데, 단 하나의 알림이 발동되기 전에 인프라 비용만 보통 월 1만 달러 이상이 든다.
코호트 인텔리전스 위에 알림 인프라를 구축하라
HyperTracker의 16개 행동 코호트는 Hyperliquid의 모든 지갑을 규모와 전체 PnL로 분류한다. 웹훅과 WebSocket 전달은 Flow와 Stream 티어에서 사용 가능하다. 무료 티어로 데이터를 탐색한 뒤, 푸시 알림을 스택에 연결해보자.
업계는 푸시 방식으로 이동하고 있다
Drift 해킹은 이미 진행 중이던 전환을 가속화했다. Solana Foundation은 자격을 갖춘 프로토콜에 24시간 위협 모니터링을 제공하는 STRIDE를 출시했다. Solana Incident Response Network(SIRN)는 이제 Asymmetric Research, OtterSec, Neodyme를 포함한 보안 회사들 간의 신속한 대응을 조율한다.
그러나 기관 수준의 대응 네트워크는 프로토콜을 보호한다. 그 프로토콜과 연동하는 빌더를 보호하지는 않는다. 퍼프 DEX를 통해 사용자 거래를 라우팅하고 있다면, 모니터링 책임은 자신의 스마트 컨트랙트를 넘어 의존성 체인의 모든 프로토콜 거버넌스 구조까지 확장된다. 이는 어드민 변경, 담보 수정, 행동 신호에 대한 푸시 알림을 의미하며, 누군가 감시 중인지와 무관하게 수 초 내에 팀의 엔드포인트로 전달되어야 한다.
Drift 공격자들은 소셜 엔지니어링에 수개월을, 온체인 준비에 며칠을 썼다. 탈취 자체에는 12분이 필요했다. 푸시 알림 시스템이 소셜 엔지니어링을 막을 수는 없었을 것이다. 그러나 12분간의 침묵을 12분간의 경보 사이렌으로 바꿀 수 있었을 것이다. 프로토콜 무결성에 의존하는 빌더에게, 이것이 사용자 자금을 잃는 것과 볼트가 비워지기 전에 안전하게 인출하는 것의 차이다.
소리치는 시스템을 구축하라.