2021년 12월, 공격자는 탈중앙화 금융(DeFi) 플랫폼인 BadgerDAO 사용자들로부터 약 1억 2,100만 달러를 탈취했습니다. 이번 공격은 프로젝트 공식 웹사이트에 악성 코드를 삽입하는 방식으로 이루어졌습니다. 이 코드는 사용자가 토큰 전송 권한을 승인하도록 유도했습니다. 공격자는 사용자의 개인 키를 탈취할 필요가 없었습니다.
이 사건은 웹사이트 주소만 확인해서는 막을 수 없는 보안 위험을 보여 줍니다. 정상적인 웹사이트도 해킹당할 수 있으며, 해당 사이트가 지갑에 보내는 요청도 조작될 수 있습니다.
BadgerDAO 공격: 신뢰할 수 있는 웹사이트에서 발생한 악성 요청
Microsoft의 분석에 따르면, 공격자는 BadgerDAO 웹사이트를 지원하는 서비스를 관리하는 데 사용되는 인증 정보인 Cloudflare API 키에 접근했습니다. 이를 통해 웹사이트의 프런트엔드, 즉 방문자가 플랫폼과 상호작용하는 데 사용하는 화면과 인터페이스에 악성 코드를 삽입할 수 있었습니다.

변조된 인터페이스는 사용자에게 공격자가 관리하는 주소가 자신의 토큰을 사용할 수 있도록 승인하라는 요청을 표시했습니다. 사용자가 권한을 승인하면 공격자는 해당 권한을 이용해 사용자의 지갑에서 관련 자산을 다른 곳으로 전송할 수 있었습니다.

공격자는 Cloudflare를 이용해 BadgerDAO 웹사이트를 어떻게 변조했을까?
BadgerDAO 공격자는 Cloudflare 접근 키를 확보했습니다. 이 키는 웹사이트가 사용자에게 제공되는 방식을 변경할 수 있는 일종의 디지털 출입증과 같습니다. 공격자는 이 접근 권한을 이용해 실제 BadgerDAO 웹사이트에 악성 코드를 삽입했습니다.
사용자가 올바른 웹사이트 주소에 접속했더라도 공격자에게 토큰 사용 권한을 부여하는 지갑 승인 요청을 받을 수 있었습니다. 악성 코드는 간헐적으로만 작동했으며 특정 지갑을 대상으로 했기 때문에 발견하기가 더욱 어려웠습니다. 여기서 얻을 수 있는 교훈은 명확합니다. 익숙한 웹사이트와 잘 알려진 보안 서비스 제공업체를 이용하더라도 위험한 승인 요청이 표시될 수 있습니다.
Cloudflare와 BadgerDAO 사건이 지갑 보안에 주는 교훈
장기 보유 자산은 DeFi용 지갑과 분리하세요.
장기 보유 자산은 하드웨어 지갑으로 안전하게 보관하고, 해당 지갑으로 DeFi 승인 요청을 처리하지 않는 것이 좋습니다. 스왑, DeFi 서비스 이용, 토큰 수령에는 별도의 주소를 사용하고, 필요한 금액만 해당 지갑에 보관하세요.
익숙한 웹사이트에서 예상치 못한 요청이 나타나면 잠시 멈추세요.
평소 하던 작업 중에 이유를 알 수 없는 승인 요청이 나타난다면, 수년간 이용해 온 웹사이트라도 주의 깊게 확인해야 합니다. 계속 진행하기 전에 별도로 접속한 공식 채널을 통해 요청의 정당성을 확인하세요. URL이 올바르다고 해서 웹페이지가 여전히 안전하다는 보장은 없습니다.
하드웨어 지갑이 보호하는 범위를 이해하세요.
하드웨어 지갑은 개인 키를 보호합니다. 하지만 악성 토큰 승인에 서명하면 이후 공격자가 기기에서 추가 확인을 받지 않고도 승인된 토큰을 전송할 수 있습니다. 시드 문구를 비밀로 유지하는 것만으로는 이러한 유형의 자산 탈취를 막을 수 없습니다.
의심스러운 승인 요청에 동의했다면 어떻게 해야 하는지 알아 두세요.
의심스러운 웹사이트 이용을 중단하고, 신뢰할 수 있는 도구를 통해 승인 내역을 확인한 뒤 가능한 한 빨리 권한을 취소하세요. 이더리움의 경우 Etherscan의 토큰 승인 확인 도구를 이용할 수 있습니다. 단, 의심스러운 웹사이트를 거치지 말고 해당 도구에 직접 접속해야 합니다. 지갑 연결을 해제하는 것만으로는 이미 부여한 권한이 취소되지 않으며, 권한을 취소해도 이미 완료된 자산 전송을 되돌릴 수는 없습니다.
개인 자산 보관 설정에 대한 추가 안내가 필요하신가요?
BitcoinVN은 고객의 개인 자산 보관 환경을 점검하고 안내하는 맞춤형 일대일 컨설팅 서비스를 제공합니다. 고객의 상황을 충분히 이해한 뒤 일상적인 지갑 접근부터 백업 및 복구 방법까지 전체적인 보안 환경을 함께 검토합니다. 고객의 필요와 경험, 우선순위에 맞춰 적절한 권장 사항을 제공합니다.