100개의 공격 사건을 되돌아보며, 암호화 공격 유형, 도구, 방어 방법 및 미래 예측을 심층 분석하다
원문 제목:《DAOrayaki |100개의 공격 사건을 분석하여 암호 공격 유형, 도구, 방어 방법 및 미래 예측》( The State of Crypto Security)
저자:Kofi Kufuor
편집:DAOctor
암호 보안 계시록
해커는 올해 암호 애플리케이션에서 20억 달러 이상을 훔쳤습니다. DAOrayaki 분산 편집 위원회가 이 글을 작성할 때 또 두 건의 해킹 사건이 발생했습니다: Rabby wallet, Solana 생태계 분산 금융 플랫폼 Mango. 암호 생태계가 발전하고 더 많은 악의적인 행위자를 끌어들이면서 문제는 더욱 악화될 것입니다. 어떤 것은 반드시 변화해야 합니다. 이제 한 걸음 물러서서 과거의 실수를 반성하고 이 산업에서 보안을 다루는 방식을 변화시킬 때입니다.
이 글에서 우리는:
- 암호화폐 해커를 분류하는 프레임워크를 제안합니다.
- 지금까지 가장 수익성이 높은 해커가 사용하는 방법을 개요합니다.
- 현재 해커를 방지하기 위해 사용되는 도구의 장점과 단점을 검토합니다.
- 암호화폐 보안의 미래에 대해 논의합니다.
1. 암호화폐 해킹 공격 분류 프레임워크
암호 애플리케이션 생태계는 상호 운용 가능한 프로토콜로 구성되어 있으며, 스마트 계약에 의해 지원되고, 기본 인프라는 블록체인과 인터넷에 의존합니다.
스택의 각 레이어는 고유한 취약점을 가지고 있습니다. 우리는 이용된 스택 레이어와 사용된 방법에 따라 암호 해커를 분류할 수 있습니다.

인프라
인프라 레이어에 대한 공격은 암호 애플리케이션을 지원하는 기본 시스템의 약점을 이용합니다: 합의에 도달하는 블록체인, 프론트 엔드에 사용되는 인터넷 서비스 및 개인 키 관리 도구에 의존합니다.
스마트 계약 언어
이 레이어의 해커는 Solidity와 같은 스마트 계약 언어의 약점을 이용합니다. 스마트 계약 언어에는 재진입성 및 잘못된 위임 호출 구현의 위험과 같은 잘 알려진 취약점이 존재하며, 이러한 취약점은 모범 사례를 따름으로써 완화할 수 있습니다.
흥미로운 사실: 6000만 달러 규모의 The DAO 해킹 공격에 사용된 취약점은 실제로 Least Authority가 이더리움의 보안 감사에서 발견했습니다. 흥미롭게도, 출시 전에 수정되었다면 상황이 얼마나 달라졌을까요?
프로토콜 논리
이러한 공격은 단일 애플리케이션의 비즈니스 논리에서 발생하는 오류를 이용합니다. 해커가 오류를 발견하면 이를 이용해 애플리케이션 개발자가 의도하지 않은 행동을 유발할 수 있습니다.
예를 들어, 새로운 분산 거래소가 사용자에게서 얼마나 많은 것을 얻는지를 결정하는 수학 방정식에 오류가 있다면, 해커는 그 오류를 이용해 거래소에서 본래 가능했던 것보다 더 많은 돈을 얻을 수 있습니다.
프로토콜 논리 수준의 공격은 기존의 거버넌스 시스템을 이용해 애플리케이션의 매개변수를 제어할 수도 있습니다.
생태계
가장 영향력 있는 암호 해커 중 다수는 여러 애플리케이션 간의 상호작용을 이용했습니다. 가장 일반적인 변형은 해커가 다른 프로토콜에서 빌린 자금을 이용해 하나의 프로토콜에서 논리 오류를 이용하여 공격 규모를 확대하는 것입니다.
일반적으로 생태계 공격에 사용되는 자금은 신속한 대출을 통해 빌려집니다. 플래시 론을 실행할 때, 자금이 동일한 거래에서 반환되기만 하면 Aave 및 dYdX와 같은 프로토콜의 유동성 풀에서 가능한 한 많은 자금을 담보 없이 빌릴 수 있습니다.
2. 데이터 분석
2020년부터 우리는 100개의 가장 큰 암호 해킹 데이터 세트를 수집했으며, 도난당한 자금은 총 50억 달러에 달합니다.
생태계 공격이 가장 자주 발생합니다. 샘플 그룹의 41%를 차지합니다. 프로토콜 논리의 취약점으로 인한 손실이 가장 큽니다.

데이터 세트에서 가장 큰 세 번의 공격인 Ronin bridge 공격(6.24억 달러), Poly Network 해킹(6.11억 달러) 및 Binance bridge 해킹(5.7억 달러)은 결과에 큰 영향을 미쳤습니다.

세 가지 공격을 제외하면 인프라 해킹 공격이 손실 자금에 가장 큰 영향을 미치는 범주입니다.

3. 해커가 공격을 수행하는 방법
인프라 공격
샘플 그룹의 61%의 인프라 취약점 이용에서 개인 키가 알려지지 않은 방식으로 손상되었습니다. 해커는 피싱 이메일 및 가짜 채용 광고와 같은 사회적 공격을 통해 이러한 개인 키에 대한 접근 권한을 얻었을 수 있습니다.

스마트 계약 언어 공격
재진입 공격은 스마트 계약 언어 수준에서 가장 인기 있는 공격 유형입니다.
재진입 공격에서, 취약한 스마트 계약의 함수 호출이 악의적인 연락처의 함수를 호출합니다. 또는 취약한 계약이 악의적인 계약에 토큰을 보낼 때 악의적인 계약의 기능이 트리거될 수 있습니다. 그런 다음, 계약이 잔액을 업데이트하기 전에 악의적인 함수가 재귀 루프에서 취약한 함수를 다시 호출합니다.
예를 들어, Siren Protocol 해킹에서 담보 토큰을 인출하는 기능은 재진입이 용이하고 반복적으로 호출될 수 있습니다(악의적인 계약이 토큰을 받을 때마다), 모든 담보가 소진될 때까지.

프로토콜 논리 공격
프로토콜 레이어의 대부분의 취약점은 특정 애플리케이션에 고유합니다. 각 애플리케이션은 고유한 논리를 가지고 있기 때문입니다(순수한 포크가 아닌 한).
접근 제어 오류는 샘플 그룹에서 가장 자주 발생하는 문제입니다. 예를 들어, Poly Network 해킹에서 "EthCrossChainManager" 계약은 누구나 호출하여 크로스 체인 거래를 실행할 수 있는 기능을 가지고 있습니다.
이 계약은 "EthCrossChainData" 계약을 소유하고 있으므로, "EthCrossChainData"를 크로스 체인 거래의 목표로 설정하면 onlyOwner() 검토를 우회할 수 있습니다.
남은 것은 어떤 공개 키가 프로토콜의 "관리자"로 정의되는지를 변경하기 위한 올바른 메시지를 만드는 것입니다. 이를 통해 제어권을 빼앗고 자금을 소진할 수 있습니다. 일반 사용자는 "EthCrossChainData" 계약의 기능에 접근할 수 없습니다.
주의: 많은 경우 여러 프로토콜이 동일한 기술로 해킹당하는데, 이는 팀이 취약점이 있는 코드베이스를 포크했기 때문입니다.
예를 들어, CREAM, Hundred Finance 및 Voltage Finance와 같은 많은 Compound 포크가 재진입 공격의 피해자가 되었는데, 이는 Compound의 코드가 상호작용을 허용하기 전에 상호작용의 효과를 확인하지 않았기 때문입니다. 이는 Compound에게는 잘 작동했지만, 포크 팀은 그러한 노력을 기울이지 않았습니다.

생태계 공격
98%의 생태계 공격은 플래시 론을 사용했습니다.
플래시 론 공격은 일반적으로 다음 공식을 따릅니다: 대규모 스왑을 위해 대출을 사용하여 AMM에서 토큰 가격을 끌어올리고, AMM은 이를 가격 피드로 사용합니다. 그런 다음 동일한 거래에서 부풀려진 토큰을 담보로 사용하여 실제 가치보다 훨씬 높은 대출을 받습니다.

4. 해킹 공격이 발생하는 시점
데이터 세트가 충분히 크지 않아 시간 분포에서 의미 있는 경향을 도출할 수는 없습니다. 그러나 우리는 다양한 유형의 공격이 서로 다른 시간에 더 자주 발생한다는 것을 볼 수 있습니다.
2021년 5월은 생태계 공격의 역사적 최고치였습니다. 2021년 7월에는 프로토콜 논리 공격이 가장 많았습니다. 2021년 12월에는 인프라 공격이 가장 많이 발생했습니다. 이러한 집단이 우연인지, 성공적인 사례가 동일한 행위자나 다른 사람에게 특정 범주에 집중하도록 자극했는지는 판단하기 어렵습니다.
스마트 계약 언어 수준의 취약점 이용은 가장 드뭅니다. 이 데이터 세트는 2020년에 시작되었으며, 이 범주에서 대부분의 취약점은 이미 널리 알려져 있었고 아마도 일찍 발견되었을 것입니다.

시간이 지남에 따라 도난당한 자금의 분포에는 네 개의 주요 피크가 있습니다. 2021년 8월에는 Poly Network 해킹으로 인해 피크가 발생했습니다. 2021년 12월에는 8ight Finance, Ascendex 및 Vulcan Forged와 같은 대규모 인프라 해킹 공격으로 인해 개인 키가 손상되어 또 다른 피크가 발생했습니다. 그런 다음 Ronin 해킹으로 인해 2022년 3월에 역사적 최고치를 기록했습니다. 마지막 피크는 BNB bridge 공격으로 인해 발생했습니다.

5. 해커가 공격하는 장소
도난당한 자금을 호스팅한 계약 또는 지갑의 체인에 따라 데이터 세트를 분할합니다. 이더리움에서 해킹 사건 수가 가장 많으며, 샘플 그룹의 45%를 차지합니다. 바이낸스 스마트 체인(BSC)이 20%로 두 번째입니다.
이런 현상의 원인은 여러 가지가 있습니다:
- 이더리움과 BSC의 잠금 총 가치(애플리케이션에 예치된 자금)가 가장 높아, 이러한 체인에서 해커에게 보상의 규모가 더 큽니다.
- 대부분의 암호 개발자는 이더리움과 BSC에서 선택된 스마트 계약 언어인 Solidity를 알고 있으며, 이 언어를 지원하는 더 복잡한 도구가 있습니다.

이더리움에서 도난당한 자금의 양이 가장 많고(20억 달러), BSC가 두 번째(8.78억 달러)입니다. 이더리움, BSC 및 Polygon에서 도난당한 자금의 해킹 사건은 세 번째로 많습니다(6.89억 달러). 이는 주로 Poly Network 공격 사건 때문입니다.

크로스 체인 브리지나 멀티 체인 애플리케이션과 관련된 해커(예: 멀티 체인 스왑 또는 멀티 체인 대출)는 데이터 세트에 큰 영향을 미칩니다. 사건의 10%에 불과하지만, 이러한 해커는 25.2억 달러의 도난당한 자금을 차지합니다.

6. 해킹을 방지하는 방법
위협 스택의 각 레이어에 대해 잠재적인 공격 벡터를 조기에 식별하고 공격이 발생하지 않도록 하기 위해 몇 가지 도구를 사용할 수 있습니다.
인프라
대부분의 대규모 인프라 해킹 공격은 해커가 개인 키와 같은 민감한 정보를 얻는 것과 관련이 있습니다. 좋은 운영 보안(OPSEC) 관행을 따르고 정기적인 위협 모델링을 수행하면 이러한 일이 발생할 가능성을 줄일 수 있습니다. 좋은 OPSEC 프로세스를 가진 개발자 팀은:
- 민감한 데이터(개인 키, 직원 정보, API 키 등)를 식별합니다.
- 가능한 위협(사회적 공격, 기술적 취약점, 내부 위협 등)을 식별합니다.
- 기존 보안 방어의 취약점과 약점을 식별합니다.
- 각 취약점의 위협 수준을 결정합니다.
- 위협을 완화하기 위한 계획을 수립하고 실행합니다.
- 스마트 계약 언어 및 프로토콜 논리
퍼징 테스트
Echidna와 같은 퍼징 테스트 도구는 스마트 계약이 대량의 무작위 생성 거래에 어떻게 반응하는지 테스트할 수 있습니다. 이는 특정 입력이 예상치 못한 결과를 초래하는 엣지 케이스를 감지하는 좋은 방법입니다.
정적 분석
Slither 및 Mythril과 같은 정적 분석 도구는 스마트 계약 내의 취약점을 자동으로 감지합니다. 이러한 도구는 일반적인 취약점을 신속하게 찾아내는 데 유용하지만, 미리 정의된 문제 집합만 잡을 수 있습니다. 스마트 계약에 도구 사양에 없는 문제가 있다면, 그것은 발견되지 않을 것입니다.
형식 검증
Certora와 같은 형식 검증 도구는 스마트 계약을 개발자가 작성한 사양과 비교합니다. 이 사양은 코드가 무엇을 해야 하는지 및 필요한 속성을 자세히 설명합니다. 예를 들어, 대출 애플리케이션을 개발하는 개발자는 각 대출이 충분한 담보로 지원되어야 한다고 명시할 것입니다.
스마트 계약의 어떤 가능한 행동이 사양에 부합하지 않으면, 형식 검증자는 그 위반을 식별합니다.
형식 검증의 약점은 테스트가 사양만큼 좋다는 것입니다. 제공된 사양이 특정 행동을 고려하지 않거나 너무 느슨하다면, 검증 과정은 모든 오류를 포착할 수 없습니다.
감사 및 동료 검토
감사 또는 동료 검토에서 신뢰할 수 있는 개발자 그룹이 프로젝트의 코드를 테스트하고 검토합니다. 감사자는 발견한 취약점과 이를 수정하는 방법에 대한 권장 사항을 자세히 설명하는 보고서를 작성합니다.
제3자 전문가에게 계약을 검토하게 하는 것은 원래 팀이 놓친 취약점을 식별하는 좋은 방법입니다. 그러나 감사자도 인간이기 때문에 모든 것을 발견할 수는 없습니다. 또한, 감사자가 문제를 발견했을 때 이를 알려줄 것인지, 아니면 스스로 이용할 것인지에 대한 신뢰가 필요합니다.
생태계 공격
안타깝게도 생태계 공격은 가장 일반적이고 파괴적인 변형임에도 불구하고 이러한 유형의 공격을 방지하는 데 적합한 도구가 많지 않습니다.
자동화된 보안 도구는 한 번에 하나의 연락처에서 오류를 발견하는 데 집중합니다. 감사는 일반적으로 생태계 내 여러 프로토콜 간의 상호작용을 어떻게 이용할 수 있는지 해결하지 못합니다.
Forta 및 Tenderly Alerts와 같은 모니터링 도구는 조합 공격이 발생할 때 경고를 발송하여 팀이 조치를 취할 수 있도록 합니다. 그러나 플래시 론 공격 동안 자금은 일반적으로 단일 거래에서 도난당하므로, 어떤 경고도 큰 손실을 방지하기에는 너무 늦게 발생합니다.
위협 탐지 모델은 메모리 풀에서 악의적인 거래를 찾는 데 사용될 수 있으며, 거래는 노드가 처리하기 전에 위치하지만 해커는 flashbots와 같은 서비스를 사용하여 거래를 직접 채굴자에게 보냄으로써 이러한 검사를 우회할 수 있습니다.
7. 암호 보안의 미래 예측
1) 나는 최고의 팀이 보안을 사건 기반의 관행(테스트 -> 동료 검토 -> 감사)으로 보는 것에서 지속적인 실천 프로세스로 전환할 것이라고 믿습니다. 그들은:
- 주요 코드베이스의 각 추가 사항에 대해 정적 분석 및 퍼징 테스트를 실행합니다.
- 주요 업그레이드마다 형식 검증을 실행합니다.
- 모니터링 및 경고 시스템을 설정하여 응답 작업(전체 애플리케이션 또는 영향을 받는 특정 모듈 일시 중지)을 수행합니다.
- 일부 팀원이 보안 자동화 및 공격 대응 계획을 수립하고 유지하는 데 전념하도록 합니다.
- 보안은 채우고 방치할 체크리스트가 아닙니다. 보안 작업은 감사 후에 끝나지 않아야 합니다. 많은 경우, 예를 들어 Nomad bridge 해킹에서, 취약점 이용은 감사 후 업그레이드에서 도입된 오류를 기반으로 합니다.
2) 암호 보안 커뮤니티가 해킹 공격에 대응하는 프로세스는 더욱 체계적이고 간소화될 것입니다. 해킹 공격이 발생할 때마다 기여자들은 도움을 제공하고자 암호 보안 그룹 채팅에 몰려들지만, 조직이 부족하면 중요한 세부 사항이 혼란 속에서 잃어버릴 수 있습니다. 나는 미래에 이러한 일부 그룹 채팅이 더 구조화된 조직으로 전환될 것이라고 봅니다:
- 온체인 모니터링 및 소셜 미디어 모니터링 도구를 사용하여 능동 공격을 신속하게 감지합니다.
- 보안 정보 및 사건 관리 도구를 사용하여 작업을 조정합니다.
- 화이트 해커 작업, 데이터 분석, 근본 원인 이론 및 기타 작업을 소통하기 위한 다양한 채널이 있는 독립적인 워크플로우.















