https://raydium.medium.com/detailed-post-mortem-and-next-steps-d6d6dd461c3e
2022년 12월 16일,10:12 UTC , 악의적인 행위자가레이듐 유동성 풀 V4 '에스기관 계정 에 대한 액세스 권한을 얻음으로써풀 소유자 (관리자) 계정.
OtterSec이 게시했습니다.초기 개요 공격의.
이 업데이트는 또한초기 사후 부검 Raydium의 공식 계정이 Twitter에 게시했습니다.
이 상세한 사후 분석은 악용이 수행된 방법, 문제가 완화된 방법 및 다음 단계에 대한 심층적인 설명을 제공합니다.
배경:
위에서 언급한 풀 소유자 계정은 처음에 전용 내부 서버가 있는 가상 머신에 배포되었습니다. 추가 검토 후 현재 풀 소유자 계정의 프라이빗 키가 원래 배포된 가상 머신 외부에서 로컬로 전달, 공유, 전송 또는 저장되었다는 증거가 없습니다.
계정 손상의 본질과 근본 원인을 파악하기 위해 내부 보안 검토가 진행 중입니다. 초기 의심은 공격자가 계정이 배포된 가상 머신 또는 내부 서버에 대한 원격 액세스 권한을 얻었을 수 있다는 것입니다. 정확한 침입 벡터는 아직 확인되지 않았지만 트로이 목마 공격이 가능성이 있습니다.
초기 검토 결과 Raydium 악용자 계정이 Solana에서 다른 사악한 활동에 연루된 것으로 나타났습니다. 이에 대한 한 가지 징후는트위터 ~에서cloudzy.sol 11월 7일에 궁극적으로 198 SOL에 달하는 지갑 악용을 자세히 설명합니다.도착했다 에서같은 계정 원래 자금을 지원한기본 Raydium 익스플로잇 지갑 에서 언급한 바와 같이초기 사후 부검 트위터.
익스플로잇 세부 정보
공격자는 Raydium에서 8개의 지속적인 제품 유동성 풀을 손상시켰고, 총 약 440만 달러의 자금을 훔쳤습니다. 집중된 유동성 풀과 RAY 스테이킹 프로그램은 익스플로잇의 영향을 받지 않았습니다. Raydium의 다른 풀이나 자금은 익스플로잇의 영향을 받지 않았습니다.
아래 이미지는 영향을 받는 풀에서 악용하는 동안 공격자가 전송한 자산을 나타냅니다. 'Base' 토큰은 토큰 쌍의 왼쪽에 있는 토큰을 나타내고, 'Quote'는 쌍의 오른쪽에 있는 토큰을 나타냅니다(보통 스테이블 코인 또는 SOL).
거래 내역 및 손실된 자금의 전체 목록은 여기에서 확인할 수 있습니다.https://github.com/raydium-io/dec_16_exploit
익스플로잇은 두 부분에서 발생했습니다.
- RAY 바이백에 대한 프로토콜 수수료를 징수하기 위한drawPNL 명령은 need_take_pc 및 need_take_coin에 의해 결정된 사전 정의된 자산 양을 기반으로 합니다. 이는 풀에서 얻은 총 수수료의 12% 또는 풀에서 얻은 25bps의 3bps에 해당해야 합니다. 스왑 거래. 공격자는 이 기능을 사용하여 풀 금고에서 자금(수수료로 지정)을 인출했습니다. 인출PNL이 시작된 후 need_take_pc 및 need_take_coin 계산은 자동으로 0으로 재설정됩니다.
- 공격자는 AmmParams::SyncNeedTake와 함께 SetParams 명령을 사용하여 거래량이 발생할 필요 없이 need_take_pc 및 need_take_coin의 잔액을 부풀려 공격자가 예상 수수료를 변경 및 증가시킨 다음 자금(수수료로 지정됨)을 인출할 수 있도록 했습니다. withdrawalPNL을 통해 반복적으로 풀 볼트.
악용의 초기 완화
2022년 12월 16일 14:16 UTC에 Raydium은 모든 프로그램의 기존 종속성에 대한 제어 가능한 교체라고도 하는 핫 패치 또는 스텁을 배포했습니다. 즉, 해킹된 계정의 권한(HggGrUeg4ReGvpPMLJMFKV69NTXL1r4wQ9Pk9Ljutwyv )이 취소되고 하드웨어 지갑에 있는 새 계정으로 업데이트되었습니다.
이 패치는 풀을 추가로 악용할 수 있는 공격자의 권한과 능력을 취소했습니다.
추가 보안 조치 수행
12월 17일, 10:27 UTC : Raydium AMM V4 프로그램이 Squads multisig를 통해 업그레이드되어 손상된 경우 자금에 잠재적으로 영향을 미칠 수 있는 불필요한 관리 매개변수를 제거했습니다.
다음 매개변수가 제거되었습니다.
- AmmParams::최소 크기
- AmmParams::SyncLp
- AmmParams::SetLpSupply
- AmmParams::SyncK
- AmmParams::SyncNeedTake
또한 다음에 대한 모든 관리 매개변수가 제거되었습니다.
- Raydium 안정적인 풀
- 레이듐 가속기
- 레이듐 DropZone
withdrawPNL 기능을 포함한 나머지 모든 관리 매개 변수는 분대에 업데이트되었습니다.멀티시그 현재 12월 17일 약 15:00 UTC에 프로그램 업그레이드에 사용됩니다.
다음 단계
Raydium은 두 가지 측면에서 동시에 다음 단계에 접근하고 있습니다.
- 사용자 LP 잔고에 대한 익스플로잇이 풀에 미치는 영향을 정확하게 결정
Raydium은 해킹이 발생하기 전에 모든 LP 잔액 및 해당 포지션 크기에 대한 스냅샷을 가져오고 데이터를 대조하고 있으며 악용으로 인해 발생한 원래 잔액의 불일치를 추정하고 있습니다. 앞으로 적합한 솔루션을 결정하려면 잔액에 대한 정확한 계정이 결정되도록 해야 합니다. 영향을 받는 풀의 모든 계정 및 LP 잔액에 대한 정확한 정보를 얻으려면 다소 시간이 걸릴 수 있습니다. 이 시간 동안 기다려 주시면 감사하겠습니다.
2. 공격자 지갑 추적 및 자금 반환 옵션 탐색
Raydium은 공격자 및 관련 계정과 관련하여 지원 및 잠재적 리드를 제공한 여러 Solana 팀, 제3자 감사자 및 중앙 집중식 거래소와 접촉했습니다. 현재 결정적인 것은 없지만 익스플로잇에 관련된 지갑(위의 '배경'에서 언급한 대로)과 이전 NFT 러그 프로젝트 및 사용자 지갑의 악의적인 유출을 연결하는 증거가 나타났습니다. Raydium은 계속해서 관련 팀 및 보안 전문가와 소통하여 자금 회수 방법을 모색할 것입니다.
Raydium은 자금을 반환하는 대가로 10%의 현상금을 제공하고 있습니다. Raydium은 악용된 RAY 잔액을 추가 현상금으로 제공합니다.
앞으로 나아가 다
개별 사용자 LP 잔액 및 자금에 대한 전반적인 영향을 평가하기 위해 아직 해야 할 일이 있습니다. Raydium은 모든 당사자가 문제의 자금에 대해 우려하고 있음을 이해하지만 앞으로 나아갈 방법에 대한 모든 옵션을 평가하기 전에 데이터와 정보를 수집하는 데 여전히 시간이 필요합니다. 추가 세부 정보가 제공되는 대로 알려드리겠습니다.