Kasplex KRC-20 인덱서의 허점을 이용한 공격으로 두 개의 토큰 풀 고갈

3시간 전
6분 읽기
3 조회수

Kaspa KRC-20 브리지 지갑 해킹 사건

이번 주말, 공격자는 Kaspa KRC-20 브리지 지갑에서 1억 8640만 ZEAL544억 NACHO를 개인 키 없이 인출한 후, 이 토큰들을 레이어 2(L2) 네트워크를 통해 재활용하고 유동성 풀에 판매했습니다. 이상한 점은 Kaspa 자체가 해킹되지 않았다는 것입니다.

“다섯 개의 유효한 거래가 오프체인 인덱서를 속여 실제로 서명된 거래가 없었음에도 불구하고 전송을 인식하게 만들었습니다.”

이로 인해 브리지된 토큰은 지원을 받지 못하게 되었으며 일부 풀은 KAS 측 가치의 최대 99.6%가 제거되었습니다. 개인 키는 암호화폐 소유와 단순히 그 위치를 아는 것 사이의 경계로 여겨집니다. 9월 20일, 누군가 KRC-20 토큰에 대해 그 가정을 우회하는 방법을 발견했으며, Kaspa의 기본 체인을 전혀 손상시키지 않았습니다.

공격자는 브리지 보관 주소에서 186,425,259 ZEAL54,397,983,246 NACHO를 이동시켰지만, 그 개인 키를 제어하지 않았습니다. 그 토큰들은 이후 일반 브리지 예치금으로 동일한 보관 주소로 다시 전송되었고, Igra Labs의 EVM 레이어와 Kasplex L2에서 발행되어 Zealous Swap 유동성 풀에 쏟아졌습니다.

공격의 메커니즘

먼지가 가라앉았을 때, 공격자의 L2 ZEAL 및 NACHO 잔액은 비어 있었고, 영향을 받은 풀은 KAS 측 가치의 94%에서 99.6%를 잃었습니다. 여기서 주목할 점은 Kaspa의 레이어 1(L1)이 정확히 해야 할 일을 했다는 것입니다. KRC-20 토큰 소유권은 Kaspa 합의에 의해 직접적으로 강제되지 않습니다.

토큰 지침은 Kaspa 거래 내에 포함되어 있으며, 오프체인 Kasplex 인덱서가 이러한 지침을 읽고 누가 무엇을 소유하고 있는지를 결정합니다. 일반적으로 KRC-20 전송에는 공개 키, 토큰 지침 및 유효한 서명이 포함됩니다. 공격자는 그 익숙한 구조를 유지했지만 빈 서명을 제공하고 OP_ENDIF 뒤에 OP_NOT를 추가했습니다.

“빈 서명은 OP_CHECKSIG가 false를 반환하게 하여 거래를 즉시 종료하지 않도록 합니다.”

추가된 OP_NOT는 그 결과를 true로 뒤집어 Kaspa에 유효한 거래를 남겼습니다. 합의 레이어에서 아무것도 잘못된 것이 없었습니다. 인덱서는 다른 이야기였습니다. 인덱서는 KRC-20 봉투를 인식했지만 스크립트가 정식 형식과 정확히 일치할 필요는 없었습니다. 결과적으로 위조된 전송을 합법적인 것으로 인정했습니다.

사건의 여파

Kasplex의 API조차도 첫 번째 위조된 ZEAL 거래에 대해 opAccept: 1을 반환했습니다. 가장 불쾌한 점은 공격자가 숨겨진 자격 증명을 발견할 필요가 없었다는 것입니다. 표준 Kaspa 주소는 위조된 KRC-20 작업을 구성하는 데 필요한 공개 키를 노출합니다. 이는 토큰을 다른 주소로 이동하는 것이 근본적인 문제를 해결하지 못한다는 것을 의미합니다.

인덱서가 패치되고 그 이력이 재색인될 때까지, 이와 같은 결함은 이론적으로 다른 KRC-20 잔액에 대해 사용될 수 있습니다. 다섯 개의 거래가 ZEAL과 NACHO 전송을 위조했습니다. 반면에 아홉 개의 작은 단위 인출은 실제로 보관에 의해 서명되었으며, 출구 경로가 작동하는지 테스트하는 탐색으로 보입니다.

일요일 아침, Igra는 보관 지갑의 전체 ZEAL 및 NACHO 보유량이 탈취되었으며, 레이어 2 네트워크에는 전체 L1 지원 없이 97,651,212 ZEAL42,570,879,908 NACHO가 남아 있다고 발표했습니다. 또 다른 45억 NACHO는 공격자가 L1에 보유하고 있었습니다.

Igra는 Kaspa L1 및 Hyperlane 전송에 대한 iKAS 출구를 일시 중지했으며, 사용자들에게 KRC-20 토큰을 브리지하거나 L2 분산형 거래소(DEX)에서 ZEAL 또는 NACHO를 구매하거나 영향을 받은 풀에 유동성을 추가하지 말 것을 경고했습니다.

미래의 대응 방안

브리지되지 않은 KRC-20 토큰이 아닌 네이티브 KAS, Kaspa 합의 및 Igra 자산은 영향을 받지 않는 것으로 설명되었습니다. 소프트웨어를 수정하는 것만으로는 혼란을 정리할 수 없습니다. Zealous Swap은 운영자들이 인덱서를 패치하고 그 이력을 재색인하여 빈 서명, 잘못된 태그 및 OP_ENDIF를 넘어 계속되는 스크립트를 거부해야 한다고 말합니다.

한편, Nacho the Kat은 커뮤니티가 네트워크 자체에 의해 시행되는 스크립트에 토큰 규칙을 넣기 위해 설계된 표준인 KCC-20으로 나아갈 계획이라고 밝혔습니다. 이 문제는 지난 몇 주 동안 발생한 여러 가지 악용, 버그, 해킹 및 데이터 유출에 이어 발생했습니다.

토요일, Lightning Network의 보관 및 비보관 인프라 제공업체인 Blink Wallet은 “수십 개”의 보관 계정이 고갈되었다고 밝혔습니다. 사이버 보안 회사 DCENT는 이번 주 DCENT 앱 지갑이 유출되었다고 보고했습니다. 이 시점은 사이버 공격이 증가하고 있으며, 일부는 AI가 이러한 악용자들의 물결을 돕고 있다고 의심하고 있습니다.