
원본 편집: ChinaDeFi
원본 편집: ChinaDeFi
1년 전부터 Solana 생태계는 총 4억 달러에 가까운 피해를 입힌 여러 해킹(Wormhole, CashioApp, CremaFinance, Nirvana 및 Slope Wallet 포함)을 목격하면서 초고속 성장을 보였습니다.
중요한 것은 이러한 해킹의 대부분(Slope Wallet 제외)은 스마트 계약 취약성, 즉 온체인 프로토콜의 코딩 결함 때문이었습니다.
Wormhole: 계정 확인 부족으로 3억 2천만 달러 도난
CashioApp: 계정 확인 부족으로 5,000만 달러 도난
CremaFinance: 계정 확인 부족으로 인해 1,000만 달러 도난(800만 달러 반환)
Nirvana: 플래시 론을 통한 가격 조작으로 350만 달러 도난;
슬로프 지갑: 시드 문구 유출로 400만 달러 도난.
첫 번째 레벨 제목
이 해커들의 공통점은 무엇입니까?
1. 거의 모든 해커(Slope Wallet 제외)는 하나 이상의 가짜 계정을 만들었습니다.
Wormhole: 해커가 키 확인을 건너뛰기 위해 두 개의 가짜 sysvar 계정을 만들었습니다.
CashioApp: 해커가 유효성 검사를 통과하기 위해 8개의 가짜 계정을 만들었습니다.
CremaFinance: 해커가 가짜 계정을 만들고 플래시 대출을 사용하여 수수료를 훔쳤습니다.
Nirvana: 해커들이 토큰 가격을 조작하기 위해 플래시 대출 계정을 만들었습니다.
슬로프 지갑: 해커가 유출된 니모닉을 통해 사용자 지갑의 프라이빗 키를 직접 획득했습니다.
2. 모든 해킹에는 여러 트랜잭션이 포함됩니다.
Wormhole: 전체 공격은 6개의 트랜잭션으로 완료되었습니다. 첫 번째 tx는 첫 번째 가짜 sysvar 계정을 생성하고 마지막 tx는 complete_wrapped를 호출합니다.
CashioApp: 모든 가짜 계정 생성부터 최종 공격 거래 전송까지 전체 공격 동안 10건 이상의 거래가 이루어졌습니다.
CremaFinance: 각 공격에는 최소 3개의 트랜잭션이 필요합니다. 가짜 계정을 만들고, 플래시 대출 프로그램을 배포하고, 수수료를 훔치기 위한 공격을 시작합니다. 또한 해커는 훔치기 위해 여러 토큰 풀에서 반복적으로 10개 이상의 플래시 대출 트랜잭션을 시작했습니다.
Nirvana: 이 공격은 최소 2건의 거래를 수행했으며, 잘 설계된 플래시 대출 수신 프로그램을 배포하고 Solend 플래시 대출을 호출했습니다.
슬로프 지갑: 전체 공격으로 9,000개 이상의 SOL 또는 SPL 토큰 전송 트랜잭션이 포함된 9,000개 이상의 지갑이 유출되었습니다.
3. 모든 공격은 최소 몇 분(몇 시간 또는 며칠) 동안 지속됩니다.
Wormhole: 첫 번째 가짜 sysvar 계정 생성 tx와 전송 완료 tx 사이의 시간 간격은 6시간입니다.
CashioApp: 해커의 첫 번째 가짜 계정은 거래가 발생하기 5일 전에 생성되었습니다.
CremaFinance: 이 가짜 계정은 첫 번째 공격이 발생하기 1시간 이상 전에 생성되었습니다.
Nirvana: 두 트랜잭션(플래시 수신기 배포 및 Solend 플래시 호출) 사이의 시간 범위는 4분입니다.
Slope Wallet: 광범위한 공격이 최소 8시간 동안 지속되었습니다.
4. 가장 큰 손실은 계정 미확인
이전 세 가지 해킹(Wormhole, CashioApp 및 CremaFinance)의 근본 원인은 적절한 계정 인증이 없었습니다.
우연의 일치인지 아닌지, 이러한 공격은 많은 금전적 피해를 입혔습니다.
5. 두 가지 해킹과 관련된 플래시 대출
CremaFinance와 Nirvana 해킹은 둘 다 직접 플래시 대출 거래를 포함했으며 둘 다 Solend를 통해 수행되었습니다.
CremaFinance에서 플래시 대출은 예금 유동성을 전달하는 데 사용됩니다.
향후 유사한 해킹을 방지하는 방법은 무엇입니까?
향후 유사한 해킹을 방지하는 방법은 무엇입니까?
보조 제목
1. 사전 배포: 스마트 계약의 모든 입력 계정 확인
Solana 스마트 계약을 작성할 때 모든 계정 및 외부 프로그램(예: 사용자 지갑 계정, PDA 계정 및 기타 스마트 계약)을 포함하여 모든 입력이 공격자에 의해 위조될 수 있음을 항상 염두에 두십시오.
Solana의 프로그래밍 모델은 코드와 데이터를 분리하므로 프로그램에서 사용되는 모든 계정은 데이터 입력으로 전달되어야 합니다.
거의 모든 경우에 다음을 확인해야 합니다.
계정 소유권
계정 서명자
계정 간의 관계(또는 논리적 제약)
프로토콜 논리에 따라 다음 사항도 확인해야 합니다.
내부 가격 오라클이 플래시 대출(대량 이체 포함)을 조작하는 경우 불일치를 방지하기 위해 제약 조건을 추가해야 합니다.
보조 제목
2. 배포 후: 실시간 위협 모니터링을 사전에 사용
이러한 모든 해킹에는 최소 몇 분 또는 몇 시간에 걸친 여러 트랜잭션이 포함되므로 의심스러운 트랜잭션을 사전에 사전에 감지하고 중간에 공격을 억제할 수 있습니다.
이것은 온체인 위협 모니터링 기술이 보안 공격을 효과적으로 방지하고 중지하는 데 도움이 되는 방어 솔루션 역할을 할 수 있는 솔라나의 고유한 속성입니다.
원칙적으로 위협 모니터링 솔루션은 다음과 같은 도움이 될 수 있습니다.
SOL 또는 SPL 토큰의 대량 전송을 모니터링합니다.
스마트 계약에 대한 플래시 대출 거래를 모니터링합니다.
종속 프로그램을 업그레이드하여 잠재적인 취약점을 모니터링합니다.
이상 상태 모니터링(예: 요금 정산),
단일 tx에서 입금-청구-출금과 같은 왕복 트랜잭션 이벤트를 모니터링합니다.
동일한 서명자의 중복 트랜잭션을 모니터링합니다.
프로토콜별 속성에 대한 모든 사용자 정의 모니터링.
원본 링크