BTC
ETH
HTX
SOL
BNB
시장 동향 보기
简中
繁中
English
日本語
한국어
ภาษาไทย
Tiếng Việt

이번에는 이더리움 DeFi 다크 포레스트에서 탈출하여 960만 달러를 완벽하게 절약했습니다.

Winkrypto
特邀专栏作者
이 기사는 약 5541자로, 전체를 읽는 데 약 8분이 소요됩니다
잘 알려진 화이트 햇 Sam Sun은 Tina Zhen, Xinghuo Mining Pool 등과 밤새도록 협력하여 취약성 공격으로부터 DeFi 스테이블코인 프로토콜 Lien을 도왔고 960만 달러의 자금을 보호했습니다.
AI 요약
펼치기
잘 알려진 화이트 햇 Sam Sun은 Tina Zhen, Xinghuo Mining Pool 등과 밤새도록 협력하여 취약성 공격으로부터 DeFi 스테이블코인 프로토콜 Lien을 도왔고 960만 달러의 자금을 보호했습니다.

편집자 주: 이 기사의 출처는체인뉴스 ChainNews(ID: chainnewscom), 허가를 받아 게시했습니다.

편집자 주: 이 기사의 출처는

체인뉴스 ChainNews(ID: chainnewscom)

체인뉴스 ChainNews(ID: chainnewscom)

, 허가를 받아 게시했습니다.

각본: Sam Sun, Alex Wade, Scott Bigelow, Tina Zhen, Shaoping

2020년 9월 15일, 운영팀은 취약한 스마트 계약에서 960만 달러를 구조하기 위해 밤새 함께 일했습니다. 그들의 이야기는 아래에 있습니다.

Sam Sun 일명 samczsun 읽어보기

일부 스마트 계약에서 일어난 이야기를 요약하고 검토하겠습니다.

물론 나는 흥미로운 것을 기대하지 않았습니다. 지난 몇 주 동안 나는 셀 수 없이 많은 이자 농사 클론들이 정확히 똑같은 피치를 던지는 것을 보았습니다. 토큰을 우리 손에 넣으면 당신은 다음 크립토 백만장자가 될 수 있습니다. 대부분의 복제 프로젝트는 약간의 조정이 포함된 잘 감사된 코드의 포크일 뿐이며 때로는 비참한 결과를 초래하기도 합니다.

그러나 모든 번잡함 속에서 전에 본 적이 없는 코드가 있습니다. 이 기사의 주제인 당시 960만 달러 이상의 가치가 있는 25,000개 이상의 Ether를 보유하고 있는 스마트 계약은 논리의 오류를 간절히 찾는 사람들에게 보람 있는 사냥이 될 것입니다.

ETH를 전송하는 코드를 빠르게 살펴보고 일치하는 두 가지를 찾았습니다. 그 중 하나는 ETH를 하드코딩된 토큰 주소로 전송했기 때문에 무시할 수 있습니다. 두 번째는 ETH를 발신자에게 전송하는 소각 기능입니다. 이 기능의 사용을 추적한 후, 누구나 무료로 토큰을 발행한 다음 이 스마트 계약의 모든 이더와 교환하여 소각할 수 있다는 것을 알게 되었습니다. 내 심장이 더 빨리 뛰었습니다. 갑자기 문제가 심각해졌습니다.

내 스마트 계약은 Lien Finance 프로토콜입니다. 불행히도 그들의 팀은 익명입니다! 인스턴트 메시징을 지원하는 유일한 플랫폼은 Telegram이며 해당 Telegram 채널의 관리자가 개발자인지 아니면 일부 초기 지지자인지 확실하지 않습니다. 실수로 잘못된 사람에게 이 취약점을 공개하고 싶지 않습니다.

그들의 사이트를 좀 더 둘러본 결과 코드 감사를 위해 ConsenSys Diligence 및 CertiK와 협력했다는 사실을 알게 되었습니다. 이것은 좋은 방법으로 보이며 ConsenSys Diligence와 CertiK는 감사 중에 개발자와 확실히 상호 작용했습니다. Telegram에서 ConsenSys Diligence 보안 엔지니어 John Mardlin(일명 maurelian)과 재빨리 대화를 나눴습니다.

채팅을 시작하고 답장을 기다리는 것은 너무 고문입니다. 불행히도 Maurelian은 응답하지 않고 몇 분이 지났습니다. 그는 잠든 것 같습니다. 간절한 마음에 ETHSecurity Telegram 채널에 ConsenSys에 잠들지 않은 사람이 있는지 가능한 한 빨리 연락해 달라는 메시지를 보냈습니다.

몇 분 후, 과거에 몇 번 함께 일한 적이 있는 ConsenSys Diligence의 또 다른 보안 엔지니어인 Alex Wade로부터 답장을 받았습니다.

알렉스 웨이드가 모든 것을 말한다

룸메이트가 문을 두드리는 소리를 들었을 때 베개에 머리를 파묻고 있었습니다. "Sam은 ETHSec Telegram 채널에서 ConsenSys Diligence를 아는 사람에게 질문했습니다."

Sam과 Alex는 오늘밤이 긴 밤일지도 모른다고 말했습니다.

  1. Sam이라는 말을 듣자마자 좋은 일이 아닐 거라는 걸 알았습니다. 몇 달 전에 설정한 Lien과 소통할 수 있는 채널과 이메일 주소를 찾았습니다. 그들의 팀은 익명의 팀이며 없는 것보다 있는 것이 좋습니다.

  2. 나는 아직 반쯤 잠들어 있었다. Sam은 채팅에서 세부 사항에 들어가고 싶지 않고 Zoom 대화를 요청합니다. 침대에서 일어난 이유를 후회하면서 상황의 심각성을 평가했습니다.

5분 후, 일을 시작하려면 커피가 필요하다는 것이 분명해졌습니다.Sam과 저는 함께 코드를 검토했습니다. Sam은 자신의 컴퓨터에서 문제를 확인하는 샘플 테스트를 준비했습니다. 우리의 대화는 가능한 옵션에 대한 논의로 옮겨갈 것 같습니다.우리는 돈을 절약하기 위해 직접합니다.

Lien 팀에 연락하여 신원 공개를 요청하고 사용자에게 자금을 인출하도록 촉구하십시오.

둘 다 매우 만족스러운 선택은 아닙니다. 이더리움의 DeFi Dark Forest(

Lianwen 중국어 버전) 기사, 우리 거래가 강탈당할 확률이 매우 높습니다. 두 번째 옵션은 공개 성명이 문제에 대한 관심을 불러일으키고 공격자에게 기회의 창을 제공하기 때문에 거의 위험합니다. 우리에게 필요한 것은 세 번째 옵션입니다.Ethereum DeFi Dark Forest 기사의 일부를 회상하면서 Sam은 Amberdata의 엔지니어링 부사장인 Scott Bigelow에게 연락했습니다. 주제에 대한 보안 연구원은 속임수의 목적을 더 잘 달성할 수 있는 일련의 프로토타입 구현 전략을 가지고 있습니다."

스콧 비글로우

나는 참여했다

이더리움 디파이 다크 포레스트

기사에 나온 자금 구조 작전에서 다크 포레스트 스나이퍼에게 패한 후, 나는 재대결을 매우 간절히 원했습니다. 나는 선두 주자를 모니터링하는 데 약간의 시간을 보냈고 평균적인 선두 주자를 능가할 수 있는 간단한 시스템을 고안했습니다. 최소한 개인적으로 테스트에 투입한 200달러입니다. 샘이 밤늦게 연락해 진심으로 "약 한 시간 정도 시간을 내도 될까요? 저는 그 그림을 구상했습니다. 어떻게 몇 가지 기술적인 조정을 하고, 몇 시간이 걸리고, 사용자가 수천 달러의 자산을 절약하고, 성취감을 느끼고, 숙면을 취할 수 있는지 말입니다.

Sam이 이 스마트 계약을 저와 공유했을 때 그 계획은 순식간에 무너졌습니다. 약 25,000 ETH, 가치는 960만 달러였습니다. 내가 이 재대결을 하고 싶지만 내 끊어진 코드 라인은 960만 달러의 자산을 위해 설계되지 않았습니다.

지난 몇 달 동안 저는 단 한 가지 목적으로 광부들과 연결하려고 노력했습니다. 바로 이런 종류의 화이트 햇 구조 거래를 하는 것입니다. 선두 주자들이 돈을 훔치지 않도록 광부가 광산에 거래를 작성하는 데 도움이 필요한 때가 있었다면 지금입니다. 다행스럽게도 Tina Zhen과 저는 지난 몇 달 동안 이 협력 관계를 추구하기 위해 힘을 합쳤습니다. 이 구조 작업의 성공 가능성은 그 당시에는 희박했지만 시도해 볼 가치가 있었습니다. Tina를 이 구조 작업에 참여시키고 마이닝 풀과 협력하여 개인 트랜잭션을 마이닝합니다.

Tina Zhen이 읽습니다.

캘리포니아 산불 코드명 '밥캣'으로 집에서 막 대피한 참이었다. 이름 모를 해변 음료수를 마시며 희미한 태평양이 보내는 파도 소리를 듣고 있었다. 샘의 텔레그램 DM이 나를 다시 어두운 현실: "자금이 위험에 처해 있으며 가로채기 수 있습니다." 나는 지난 몇 주 동안 "광부 추출 가치" MEV에 대한 연구 프로젝트에서 Sam 및 Scott과 함께 작업해 왔으며 그들이 요청을 보내기 전에 추측했습니다. 이더리움에서 화이트 햇 트랜잭션을 보호하기 위한 직접 채널 미확인 거래 집합)은 "선두주자"에 의해 약탈당하지 않도록 보호되는 "어두운 숲"입니다.

이것은 우리의 전략을 채굴자들에게 노출해야 하는 위험한 움직임이기 때문에 먼저 익명의 Lien 팀으로부터 승인을 받기로 결정했습니다. Alex가 ConsenSys 내부 채널을 통해 연락을 시도했을 때 우리도 CertiK와 연락을 시도했습니다.

미국에 있는 Certik의 심사원이 깨어나려면 4시간이 남았지만 시간이 얼마 남지 않았습니다. 저는 CertiK에 대해 잘 모릅니다. 단지 그들이 여러 아시아 프로젝트를 감사했다는 것만 알고 있기 때문에 CertiK 중국 팀에 연락을 시도했습니다. "DeFi the World"와 "Yellow Hats"의 두 WeChat 그룹에 음성 메시지를 남겼습니다. 개인 채팅에서 30분 이내에 4개의 메시지를 받았습니다. 내 WeChat 친구의 ID가 실제 CertiK CTO인 Zhaozhong Ni임을 확인했습니다. 저는 5명의 CertiK 팀원으로 구성된 WeChat 그룹에 들어갔고 당시에는 여전히 관련 프로젝트나 취약점을 공개할 수 없었습니다. 노출 위험과 잠재적 책임을 최소화하기 위해 우리는 단 한 명의 Certik 회원만 화이트 햇 사업에 참여하도록 초대할 수 있습니다. 공식 이메일의 최종 확인 후 CertiK의 엔지니어링 책임자인 Georgios Delkos가 대화에 참여했습니다.

Georgios의 도움으로 Alex는 Lien 팀에 빠르게 연락하여 신원을 확인할 수 있었습니다. 우리는 그들이 현재의 심각한 상황을 가능한 한 빨리 이해하도록 하고, 이 취약한 자금을 구하기 위해 마이닝 풀과 직접 협력하는 것에 동의했습니다. 고려한 후 Lien 팀은 자금을 구제하거나 조기 경고 성명서를 발행하는 것이 너무 위험하다는 데 동의하고 이 옵션을 진행하기로 동의했습니다.

이제 우리는 충분한 인프라를 갖추고 가능한 한 빨리 우리와 협력할 의향이 있는 마이닝 풀을 찾아야 합니다. 어떤 마이닝 풀을 찾아야 합니까? 시간 내에 이 작업을 실행하는 데 도움이 되는 빠른 기술적 결정을 내릴 수 있는 이 마이닝 풀의 연락 담당자는 누구입니까?

우리는 SparkPool을 생각했고 그들이 우리가 원하는 지원을 쉽게 제공할 수 있는 Taichi Network라는 공공 인프라를 구축하고 있다는 것을 알고 있습니다. 나는 이전에 mempool 보안 사건을 조사하는 데 도움을 준 Xinghuo Mining Pool의 공동 설립자 Shaoping Zhang과 비공개로 대화하기로 결정했습니다.

30분 후 Shaoping은 "내가 거래를 위해 화이트리스트를 열었다는 뜻인가요? 죄송합니다. 할 수 없습니다." 음, 중국어로 "white hat" whitehat과 "whitelist" 화이트리스트는 약간 그림처럼 보입니다.

"지금 1000만 달러가 걸린 상황입니다. Samczsun과 통화 중입니다." 구체적인 내용을 밝히지 않은 채 다시 상황을 전달하려 했습니다.

"너희 둘이 세상을 구하고 있어? 마이닝 풀의 도움이 필요해?" 나는 그 사고에 안도했고, 샤오핑은 기꺼이 도와주겠다고 농담을 했다. 공식 이메일로 확인된 후 Shaoping은 마라톤 Zoom 컨퍼런스 콜에 참가했으며 수많은 스파크 마이닝 풀 개발자로부터 기술 지원을 받았습니다.

샤오핑의 자기보고

점심을 먹고 낮잠을 자려던 참에 티나로부터 위챗 메시지를 받았습니다: "스파크 마이닝 풀이 화이트 햇 거래에 도움이 되었나요?" 이전에 화이트 햇 거래에 대해 아무도 우리에게 연락한 적이 없으며 "화이트 햇 거래"의 특정 상황에 익숙하지 않습니다. Tina가 좀 더 자세히 설명을 드린 후 프라이빗 트랜잭션 서비스가 필요하다는 것을 깨달았습니다. 트랜잭션의 경우 트랜잭션을 블록에 씁니다.

우리는 Taichi Network에서 개인 거래 기능을 구축해 왔으며 이 기능은 아직 개발 중이며 아직 테스트되지 않았습니다. 나는 우리 개발팀에게 화이트 햇 해커의 요청에 대해 이야기하고 시급함을 강조했습니다. 우리의 프라이빗 트랜잭션 기능은 몇 시간 안에 생산되어야 합니다. 저희 개발자들은 최선을 다해 빠르게 작업에 임할 것이라고 합니다. 우리는 2시간 만에 개인 거래 기능 개발을 완료하고 버그를 수정하는 데 또 다른 시간을 보냈습니다.

내부 테스트를 마친 후 우리는 hitehat.taichi.network 끝점을 Scott Bigelow에게 보내 화이트 햇 작업을 완료했습니다.

스콧 비글로우

Spark Mining Pool은 새로운 화이트 햇 API를 출시하기 위해 야근을 했고 Sam과 저는 4개의 연속 서명된 트랜잭션을 생성하는 스크립트 프로그래밍도 완료했습니다. 이러한 거래를 차례로 처리하면 그 자체로 25,000 ETH가 인출되지 않지만 ("오류" 생성됨) 30,000 SBT+LBT 토큰을 Lien 팀으로 전송하여 최종 거래에 제출하여 이 토큰을 다시 ETH로 변환할 수 있습니다.

무한 채굴 가능한 SBT+LBT 토큰을 ETH 대신 Lien 팀에 전송함으로써 우리는 일반화된 강압 공격을 혼동하기 위한 은폐로 더 많은 거래를 사용하고(재편성 발생 시) 지금까지 960만 달러의 수익을 내 주머니에 넣을 수 있습니다. 잠시도 아닙니다.

4개의 서명된 트랜잭션을 생성한 후 Sam과 저는 다양한 다자간 트랜잭션 시뮬레이션 도구를 사용하여 작업 체인을 확인하는 데 많은 시간을 보냈습니다. 총 데이터 양이 1.5KB 미만인 이 4개의 거래 프로그램은 미화 960만 달러의 자산을 절약하는 킬러이며 Spark Pool이 거래를 캡처하기 전에 아무도 이러한 거래를 알지 못하도록 합니다.

무의미한 트랜잭션으로 Sparkpool의 화이트햇 끝점을 테스트했는데 실행이 편향되지 않았습니다. 트랜잭션이 mempool에서 보이지 않고 갑자기 Sparkpool의 블록 중 하나에 나타났습니다! 수증기가 직접 얼음으로 변하는 것을 보는 것과 같고, 중간에 성가신 액화 과정이 완전히 보이지 않습니다!

트랜잭션 생성 스크립트를 수정하여 트랜잭션을 Spark Pool의 새 엔드포인트에 직접 제출했습니다. 이제 조치를 취할 때입니다. 잠시 망설였지만 분명 우리가 할 수 있는 최선의 노력이었다. 960만 달러를 잃을 수도 있지만 후회하지 않습니다. IntelliJ에서 "실행"을 눌렀습니다. 이유는 모르겠지만 노드가 상황의 심각성을 이해하고 시간을 보내는 것처럼 전체 프로세스에 시간이 걸릴 것으로 예상했습니다. 그러나 실제로는 그렇지 않습니다. 트랜잭션은 밀리초 단위로 전송됩니다.

Zoom 통화에 참여한 모든 사람이 미친 듯이 Etherscan을 새로 고치기 시작했습니다. Etherscan 팀이 이 3분 트래픽 급증을 보았는지 의심스럽습니다. Spark Pool만이 트랜잭션이 있고 Spark Pool의 해시레이트 중 일부만이 이 목적에 사용되기 때문에 우리가 할 수 있는 일은 식은땀을 흘리며 기다리는 것입니다. 다른 모든 광부가 채굴하는 모든 블록은 우리를 두렵게 합니다. 줌콜에서는 누군가가 블록을 파낸 광부의 이름을 읽으며 신경질적인 웃음을 동반한다. 트랜잭션이 블록에 기록되기 약 15블록 전에 우리는 몇 시간처럼 몇 년처럼 느껴졌지만 결국에는 완벽한 트랜잭션을 완료했습니다. 순차 마이닝, 롤백 없음.

우리 블록 위에 점점 더 많은 블록이 쌓이는 것을 안도하며 바라보았고, 블록 개편에 대한 우려는 금세 사라졌습니다. Lien 팀은 이제 전체 시스템을 위한 자금을 청산하기에 충분한 SBT + LBT 토큰을 보유하고 있으며 Sam은 구조의 마지막 단계를 조정하는 일을 담당하고 있습니다.

우리는 성공적으로 Lien 팀에 토큰을 전송했고 강압이나 시도 등의 징후를 발견하지 못했기 때문에 비공개 채팅을 통해 좋은 소식을 빠르게 공유했습니다. 그들은 토큰 수령을 확인하고 스마트 계약에 잠긴 대부분의 ETH를 꺼내기 위해 즉시 거래를 보냅니다. 몇 초 후 이 대기 중인 트랜잭션이 Etherscan에 나타났습니다.

https://etherscan.io/tx/0xe99ccb0b21854b65a2fa283638ab9ef01962b61c3310b596b4597bf22b911a43

진행률 표시줄 원을 보면서 작업을 반성할 기회를 가졌습니다. 스마트 컨트랙트를 살펴보는 것으로 시작된 것은 결국 전 세계의 전문가들이 협력할 수 있는 "라이언 일병 구하기" 작업으로 바뀌었습니다. Alex와 Georgios가 없었다면 Lien 개발자와 연락할 수 없었을 것입니다. Scott이 없었다면 우리의 구조 작업은 오래 전에 문제에 봉착했을 것입니다. Tina가 없으면 CertiK 또는 Spark Pool과 연락할 수 없습니다. Spark Pool이 없으면 우리는 Dan이 몇 주 전에 그의 기사에서 쓴 비극을 반복할 운명에 처해 있습니다.

그러나 화요일 늦은 밤, 겉보기에 불가능해 보이는 우리 팀은 같은 목적을 위해 함께 일했으며 정당한 소유자에게 960만 달러를 돌려받기 위해 지칠 줄 모르고 일했습니다. 지난 7시간 동안 우리의 노력은 보류 중인 거래와 이 순환 진행 표시줄에서 절정에 달했습니다.

이미지 설명여기를 클릭하세요드디어 어둠의 숲을 빠져나오는 데 성공했습니다.이 기사는 많은 사람들의 노력의 성공을 기록합니다. 도움을 주신 Alex Wade, Scott Bigelow, Tina Zhen, Georgios Delkos 및 SparkPool과 이 기사를 검토하고 피드백을 제공해 주신 Alex Obadia 및 Dan Robinson에게 특별히 감사드립니다.이 작업의 기술적 세부 사항에 관심이 있는 경우 다음을 참조하십시오.

DeFi
安全
投资
智能合约
Odaily 공식 커뮤니티에 가입하세요