연구원들이 나중에 이 사건을 재조사했을 때, 손상된 키를 생성하는 데 사용된 니모닉 문구의 처음 두 단어가 "Milk Sad"라는 것을 발견했고, 이로 인해 이 사건은 Milk Sad 사건으로 불리게 되었습니다.
이 모든 것은 의사 난수 생성기인 Mersenne Twister MT19937-32에서 비롯됩니다.
비트코인 개인 키는 256비트 난수로 구성되어야 합니다. 이론적으로 가능한 조합은 2^256개입니다. 완전히 동일한 시퀀스를 생성하려면 256번의 "동전 던지기"에서 앞면과 뒷면이 모두 완벽하게 일치해야 합니다. 이러한 현상이 발생할 확률이 0은 아니지만, 매우 가깝습니다. 지갑 보안은 운이 아니라 이 광대한 가능성의 세계에서 비롯됩니다.그러나 루비안 채굴 풀과 같은 도구에서 사용하는 메르센 트위스터 MT19937-32 난수 생성기는 진정한 의미의 "코인 던지기 기계"가 아니라, 제한적이고 규칙적인 범위 내에서 지속적으로 숫자를 선택하는 꼼짝 못 하는 장치입니다. 해커가 이 패턴을 파악하면, 무차별 대입 공격을 통해 가능한 모든 취약한 개인 키를 빠르게 계산하여 해당 비트코인 지갑의 잠금을 해제할 수 있습니다. 일부 지갑 및 채굴 풀 사용자들의 보안에 대한 오해로 인해, 2019년과 2020년 사이에 이 "약한 난수 알고리즘"을 사용하여 생성된 많은 비트코인 지갑이 엄청난 양의 부를 축적했고, 이 취약한 범위로 막대한 자금이 유입되었습니다. 밀크 새드 팀에 따르면, 2019년과 2020년 사이에 이러한 취약한 키 지갑이 보유한 비트코인의 누적 개수는 53,500개를 넘어섰습니다. 자금은 고래 수준의 중앙 집중식 이체 두 건에서 발생했는데, 2019년 4월, 네 개의 취약한 지갑에서 단기간 내에 약 24,999개의 비트코인이 유입되었습니다. 또한, 일일 채굴 수익에서도 발생했는데, 특정 주소에서는 1년 만에 "lubian.com"으로 표시된 14,000개 이상의 채굴 보상을 받았습니다. 현재 이러한 지갑은 22만 개가 있으며, 지갑 소유자들은 개인 키 생성 과정에 숨겨진 위험을 인지하지 못한 채 현재까지도 자산을 계속 투자하고 있는 것으로 보입니다. 2020년 말 발생한 대규모 이탈은 오랫동안 묻혀 있던 보안 위험을 드러냈습니다. 2020년 12월 28일, 이례적인 온체인 거래가 발생했습니다. 몇 시간 만에 루비안(Lubian)의 취약 키 범위에 속하는 다수의 지갑이 비워져 당시 약 37억 달러 상당의 약 136,951개의 비트코인이 단가 약 26,000달러로 동시에 이체되었습니다. 거래 수수료는 금액과 관계없이 75,000사토시로 고정되어 있었는데, 이는 운영자가 비트코인 네트워크를 얼마나 잘 이해하고 있는지를 보여줍니다. 이후 자금 일부는 루비안 채굴 풀로 다시 흘러들어가 추가 채굴 보상을 받았습니다. 이는 이체된 자산 전체가 해커의 손에 들어간 것은 아니라는 것을 보여줍니다. 그러나 피해자들은 이미 손실을 입었습니다. 더욱 기이한 것은 일부 온체인 거래에 "자산을 보호하고 싶은 화이트햇 해커분들께는 1228btc@gmail.com으로 연락해 주십시오"와 같은 메시지가 포함되어 있었다는 것입니다. 취약 개인 키 주소가 노출되었기 때문에 누구든 이 주소로 메시지를 포함한 거래를 보낼 수 있었고, 이 메시지는 반드시 실제 피해자가 보낸 것이 아니었습니다.
이 해커들의 장난인지, 아니면 피해자들의 도움 요청인지는 아직 밝혀지지 않았습니다. 중요한 것은, 이 대규모 자금 이체가 즉시 절도로 인식되지 않았다는 것입니다. 이후 분석에서 Milk Sad 연구원들은 당시 비트코인 가격이 급등하고 채굴 풀 수익이 정체되어 있었기 때문에, 절도가 해커의 소행인지, 아니면 루비안 경영진이 절정기에 지갑을 매각하고 재편한 것인지 확신할 수 없다고 인정했습니다. 연구원들은 "만약 절도가 2020년에 발생했다면, 메르센 트위스터 취약 키 공격보다 더 이른 시점이겠지만, 가능성을 배제할 수는 없습니다."라고 밝혔습니다. 바로 이러한 불확실성 때문에 2020년 말 자금 인출 사건은 업계의 경각심을 불러일으키지 못했고, 막대한 양의 비트코인은 수년간 온체인에 남아 미스터리로 남았습니다. 따라서 루비안뿐만 아니라 이전 버전의 트러스트 월렛도 영향을 받았을 가능성이 있습니다. 2022년 11월 17일, 보안 연구팀 Ledger Donjon은 Trust Wallet의 난수 취약점을 Binance에 처음 공개했습니다. 팀은 신속하게 대응하여 다음 날 GitHub에 수정 사항을 게시하고 영향을 받은 사용자에게 알렸습니다. 그러나 Trust Wallet은 2023년 4월 22일이 되어서야 취약점에 대한 세부 정보와 보상 조치를 공식적으로 공개했습니다. 이 기간 동안 해커들은 여러 공격에서 이 취약점을 악용했으며, 그중 하나는 2023년 1월 11일에 발생한 약 50개의 비트코인 도난 사건이었습니다. 한편, 이 취약점은 다른 프로젝트에서도 발생하고 있었습니다. Libbitcoin Explorer 3.x의 bx seed 명령은 MT19937 의사 난수 알고리즘과 32비트 시스템 시간을 시드로 사용하여 2^32개의 조합만 가능한 키 공간을 생성합니다.
해커들은 신속하게 탐색 공격을 시작했고, 2023년 5월부터 여러 건의 소규모 도난 사건이 온체인에서 발생했습니다. 공격은 7월 12일 bx로 생성된 수많은 지갑이 비워지면서 절정에 달했습니다. 7월 21일, MilkSad 연구원들은 사용자들의 손실 문제 해결을 지원하던 중 문제의 근본 원인을 발견했습니다. bx 시드에 포함된 취약한 난수 때문에 개인 키에 대한 무차별 대입 공격이 가능했던 것입니다. 연구원들은 즉시 Libbitcoin 팀에 이 사실을 알렸습니다.
그러나 해당 명령어가 공식적으로 테스트 도구로 간주되었기 때문에 초기 소통이 원활하지 않았습니다. 결국 연구팀은 해당 프로젝트를 우회하여 8월 8일 CVE 번호를 신청하여 취약점을 공개했습니다.2023년에 이러한 발견이 Milk Sad 팀이 과거 데이터를 역공학하게 된 계기가 되었습니다. 그들은 2019년과 2020년 사이에 상당한 양의 자금을 축적한 약한 키 범위가 루비안과 관련이 있고, 앞서 언급한 대규모 이체가 2020년 12월 28일에 발생했다는 사실을 알고 놀랐습니다. 당시 약 136,951개의 비트코인이 이 약한 지갑에 있었습니다. 그날의 막대한 유출액은 약 37억 달러에 달했으며, 마지막으로 알려진 움직임은 2024년 7월의 지갑 통합이었습니다. 다시 말해, 루비안 사건의 의심스러운 본질은 약한 무작위 취약점이 노출된 후에야 표면화되었습니다. 놓친 경고 창은 이미 사라졌고, 당시 비트코인의 위치도 사라졌습니다. 5년 후, 미국 법무부(DOJ)와 영국 당국이 프린스 그룹과 천 즈를 공동 기소하면서 사건이 마침내 명확해졌습니다.
저희에게 "당신의 지갑이 아니라, 당신의 돈이 아니다"라는 문구는 무작위성이라는 전제 하에서만 효과적일 수 있습니다.
BlockBeats 공식 커뮤니티에 참여하세요:
Telegram 구독 그룹:https://t.me/theblockbeats
Telegram 토론 그룹:https://t.me/BlockBeats_App
Twitter 공식 계정:https://twitter.com/BlockBeatsAsia