구축을 위한 보안 모범 사례 Sui

앱의 보안을 개선하고 위험을 줄이는 방법에 대한 개발자를 위한 조언

구축을 위한 보안 모범 사례 Sui

Sui 에서 모든 애플리케이션을 구축하는 데 있어 필수적인 부분은 위협 행위자의 익스플로잇과 공격을 방지하는 것입니다. 보안에 중점을 두는 것은 사용자의 자산 손실 위험과 개발자와 비즈니스의 평판 손상을 줄이는 데 매우 중요합니다.

Sui 보안 및 암호화 커뮤니티의 회원들은 애플리케이션 개발자가 개발 과정에서 염두에 두고 피해야 할 몇 가지 모범 사례를 정리했습니다. Sui 에만 적용되는 교훈도 있지만, 다른 많은 교훈은 모든 블록체인 애플리케이션에 동일하게 적용됩니다.

데브넷, 테스트넷, 메인넷에서 서로 다른 주소를 사용하세요.

데브넷과 테스트넷에 저장된 자산은 금전적 가치가 없으며, 이러한 네트워크는 수시로 초기화될 수 있습니다. 그러나 메인넷의 자산은 실제 금전적 가치가 있으며 부적절한 행위자가 의도치 않게 액세스하면 금전적 악용이 발생할 수 있습니다. 데브넷/테스트넷과 메인넷 사이에 별도의 자격 증명을 사용하여 메인넷 액세스가 합법적이고 필수적인 비즈니스 이유가 있는 사람으로 제한되도록 하는 것이 좋습니다. 네트워크 간에 주소를 재사용하면 불필요하게 광범위한 액세스가 이루어지고 운영상의 오류가 발생할 가능성이 높아질 수 있습니다.

하드코딩된 키와 니모닉은 공개 GitHub 리포지토리에 저장해서는 안 됩니다.

계정 키와 니모닉은 온체인 자산에 대한 액세스를 제어하는 중요한 지갑 자격증명입니다. 이러한 자격 증명을 나머지 애플리케이션 코드와 함께 GitHub 리포지토리에 저장하고 싶을 수도 있지만, 리포지토리가 공개되면 주요 자료에 대한 공개 액세스가 허용됩니다. 또한 GitHub는 리비전이 제어되는 리포지토리입니다. 키나 니모닉이 추가되면 해당 정보가 제거되더라도 다른 사람이 리포지토리의 기록을 검색하여 자격 증명에 계속 액세스할 수 있습니다. 이는 키 자료가 코드로 생성되지 않고 하드코딩된 경우 특히 위험합니다.

온체인 및 오프체인 UI 코드 모두에서 조건을 어설트합니다.

일반적으로, CLI 도구나 봇을 통해 UI 외부에서 직접 공개 온체인 스마트 콘트랙트 기능에 접근할 수 있습니다. 최소 또는 최대 이체 금액과 같이 애플리케이션에 중요한 조건이 있는 경우, 프론트엔드 코드와 스마트 컨트랙트 코드 모두에서 이러한 조건에 대한 확인을 주장하는 것이 중요합니다. 그렇지 않으면 필수 확인이 우회되어 익스플로잇이 발생할 수 있기 때문입니다.

객체 ID는 무작위성 또는 엔트로피의 적절한 소스가 아닙니다.

Sui 객체 ID는 객체 생성 시 유효성 검사자 쿼럼에 의해 할당됩니다. 일단 생성된 객체 ID는 객체의 수명 기간 동안 유지되는 전역적으로 고유한 식별자 역할을 합니다. 이러한 지속성으로 인해 객체 ID는 무작위성과 엔트로피의 원인이 될 수 있습니다. 적절한 기능을 위해 의사 무작위성 또는 무작위성(추첨, 시뮬레이션, 암호화)에 의존하는 애플리케이션에서 객체 ID에 잘못 의존하면 간단한 익스플로잇으로 이어질 수 있습니다. 실제로 드라이런 RPC를 반복적으로 호출하는 동안 동일한 바이트가 지속적으로 나타나는 필드가 있다면, 이러한 필드는 부적합한 무작위성 소스가 될 수 있습니다. Clock() 역시 조작의 대상이 될 수 있으므로 무작위성을 발생시키는 좋은 소스가 아닙니다.

애플리케이션의 VRF(검증 가능한 무작위성 함수) 또는 서명에 대한 액세스를 제한해야 합니다.

VRF는 다양한 확률로 당첨자를 선택하는 복권 함수 또는 다양한 확률로 추측되는 암호화 서명을 생성하는 서명 함수와 같이 무작위 결과를 보장하기 위해 자주 배포됩니다. 그러나 VRF가 애플리케이션 내에서 잠겨 있지 않고 다른 사람이 직접 액세스할 수 있는 경우 위협 행위자가 명목상 애플리케이션 코드 경로 외부에서 VRF를 호출하는 것이 가능해집니다. 복권의 경우, 위협 행위자는 금전적 이득을 위해 복권 결과를 예측하기 위해 미리 VRF를 호출할 수 있습니다. 암호화 서명의 경우, 임의의 입력에 서명할 수 있는 기능을 확보하는 것은 서명 키 자체가 손상되는 것과 동등한 보안상의 위험이 있습니다.

지금 조치 취하기

이 짧은 팁 목록을 구현하면 온체인 애플리케이션을 더욱 강력하고 안전하게 만들 수 있으며, 무엇보다도 최종 사용자가 더욱 신뢰할 수 있게 될 것입니다. 추가 질문이 있거나 Sui 애플리케이션을 가장 안전하게 보호하는 방법에 대한 도움이 필요하신 경우, 엔지니어링 영업 시간에 등록하여 심층적인 기술 상담을 받아보세요.