이 기사는 a16zcrypto이 기사는

, 원저자: Andy Beal, Nassim Eddequouaq, Riyaz Faizullabhoy & Christian Seifert, Odaily 번역가 Katie Ku 편집.
종종 해커는 소프트웨어 개발 프로세스의 전체 체인(설계에서 배포, 유지 관리에 이르기까지)에서 결함을 찾아 악용하여 블록체인 프로젝트의 보안 장벽을 허물 것입니다. 관련 경험을 미리 익힐 수 있다면 안전 사고가 훨씬 줄어들 것이라고 믿습니다.。
이 문서에서는 Web3 개발자와 보안 팀이 스마트 계약을 설계, 개발 및 유지 관리할 때 고려해야 하는 보안 요소에 대해 설명하고 위협 모델링에서 비상 대응 준비에 이르는 전체 주기를 다룹니다.
보안 소프트웨어 개발은 다음 5단계로 구성됩니다.
설계: 개발자는 중요한 벤치마크 및 고정 속성을 포함하여 시스템의 필수 기능 및 작동을 설명합니다.
개발: 개발자는 시스템 코드를 작성합니다.
테스트 및 검토: 개발자는 테스트 환경에서 모든 모듈을 수집하고 정확성, 규모 및 기타 요인에 대해 평가합니다.
배포: 개발자는 시스템을 생산에 투입합니다.
유지 관리: 개발자는 시스템이 의도한 대로 작동하는지 확인하기 위해 시스템을 평가하고 수정합니다.

아래 다이어그램은 위의 단계에서 고려해야 할 보안 요소를 매핑합니다.
위에서 설명한 소프트웨어 수명 주기 단계 및 해당 보안 고려 사항은 스마트 계약 보안을 촉진하기 위한 기반을 제공합니다. 이하에서는 세 가지 쟁점에 대해 보다 상세한 연구를 수행할 것이다.
보조 제목
1. 설계 단계에서 스마트 계약 보안 고려 사항 - 위협 모델링 및 보안 설계 고려
대상: 프로젝트 개발 수명 주기 초기부터 시스템에 대한 잠재적인 위협을 명확하게 식별하고 우선순위를 지정하는 것이 핵심입니다. 스마트 계약 개발자는 개발 중에 구현할 모든 보안 제어와 테스트, 감사 및 모니터링 중에 확인해야 하는 위협을 식별해야 합니다. 예상되는 정교함과 공격자의 경제적 수단을 포함한 모든 보안 가정은 설계 단계에서 명확하게 정의되고 표현되어야 합니다.
이유: 개발자가 스마트 계약 또는 프로토콜의 의도된 용도에만 집중하고 싶은 유혹이 있지만, 이 유일한 초점은 공격자가 악용할 수 있는 "사각 지대"를 남길 수 있습니다."공격자" 사고 방식으로 시스템을 설계하고 모든 개인, 기계 또는 서비스가 공격받을 수 있다고 가정합니다.
보조 제목
2. 개발 단계의 보안 고려 사항 - 관리 고려 사항 및 액세스 제어대상: 계약 업그레이드 및 특수 매개변수 설정과 같은 관리 작업을 수행하는 특수 기능에 대한 권한 있는 계정 및 스마트 계약 호출에 대한 기능을 제한하는 액세스 제어를 구현합니다.
"최소 권한 원칙"을 따르십시오. 각 참가자는 필요한 최소한의 액세스 권한만 가져야 합니다.
접근법: 커뮤니티를 대신하여 변경 사항을 투명하게 관리하기 위해 다중 서명 지갑 또는 DAO 계약을 구축합니다. 변경 사항은 철저한 검토 프로세스를 거쳐야 하며 거버넌스 공격이 발생할 경우 정확성을 확인하고 롤백할 수 있도록 타임락(규정을 취소할 수 있는 기능으로 규정 제정을 고의적으로 지연)해야 합니다. 권한 키가 안전하게 저장되고 자체 관리 지갑 또는 보관 서비스에 액세스할 수 있는지 확인하십시오.
보조 제목
3. 재사용 가능하고 전투 테스트를 거친 템플릿 및 통합 고려
대상: 가능한 경우 기존 스마트 계약 표준(예: OpenZeppelin 계약)을 활용하고 기존 프로토콜과의 프로토콜 통합에 필요할 수 있는 보안 가정을 평가합니다.
이유: 전투 테스트를 거친 기존 커뮤니티 감사 표준을 사용하고 보안 위험을 완화하기 위한 조치를 구현하는 것이 큰 도움이 될 수 있습니다. 프로토콜 통합의 위험을 평가하면 오라클 조작과 같은 외부 구성 요소에 대한 공격을 방지하기 위한 보안 검사를 개발하는 데 도움이 됩니다.위험 노출을 파악하고 공급망 공격을 모니터링하십시오. 공식 인터페이스를 사용하여 외부 프로토콜을 호출하고 잠재적인 통합 위험을 고려하십시오. 재사용된 계약에 대한 업데이트 및 보안 공개를 모니터링합니다.
보조 제목
4. 테스트 및 검토 단계 중 보안 고려 사항 - 테스트 및 문서화 고려
대상: 명확하고 포괄적인 코드 문서를 작성하고 빠르고 철저하며 실행하기 쉬운 테스트 스위트를 구축합니다. 가능한 경우 테스트 네트워크에 테스트 환경을 구축하거나 메인 네트워크를 시뮬레이션하여 보다 심층적인 실험을 수행합니다.이유:코드베이스의 예상 동작에 대한 가정을 작성하면 위협 모델의 위험이 해결되고 사용자 및 외부 감사자가 개발 팀의 의도를 이해하는 데 도움이 됩니다.
접근법: 퍼징, 속성 검사, 공식 검증과 같은 다양한 테스트 기술을 제공하는 Hardhat, Mythril, Slither, Truffle 등과 같은 알려진 테스트 프레임워크 및 보안 검사기를 구현합니다. NatSpec 주석을 사용하여 코드를 광범위하게 문서화하고 예상되는 부작용, 매개변수 및 반환 값을 지정합니다. 문서 생성 도구와 높은 수준의 설계 지침을 사용하여 실시간 문서를 생성합니다.
보조 제목
5. 내부 검토 및 보안 감사 고려
대상: 시간을 들여 내부 및 외부 코드 검사를 통해 취약점을 발견합니다.이유: 기능 개발에서 보안 문제에 초점을 맞추면 개발자는 잠재적으로 모호한 문제를 발견할 시간을 갖게 됩니다.
외부 감사는 개발 팀이 가지고 있지 않은 외부 관점과 전문 지식을 가져올 수 있으므로 여기에서 특히 유용합니다.
ConsenSys, Nassent, OpenZeppelin 및 Trail of Bits의 가이드를 확인하세요. 개발자에게 감사를 준비하는 모든 사람을 위해 타이밍을 포함한 고려 사항 체크리스트를 제공합니다. 또한 배포 트랜잭션을 확인하여 특히 소프트웨어를 업그레이드할 때 감사된 코드 버전을 사용하고 적절한 매개 변수가 있는지 확인하십시오.
보조 제목
6. 배포 및 유지 관리 단계의 보안 고려 사항 - White Hat 커뮤니티 참여 동기 부여
대상: 오픈 소스 코드베이스에 대한 보안 개선에 커뮤니티 참여를 장려하는 프로그램을 만듭니다. 이를 수행하는 한 가지 방법은 버그 바운티를 만드는 것입니다. 또 다른 접근 방식은 커뮤니티가 봇을 모니터링하고 감지하는 프로토콜을 개발하도록 권장하는 것입니다.
이유: 개발팀은 광범위한 지식과 경험을 활용할 수 있습니다(암호화 분야에서 오픈 소스의 역할이기도 함). 이러한 프로그램은 프로젝트에 대한 열정을 불러일으키고 본질적으로 커뮤니티와 화이트 햇 해커를 전도자로 전환하는 데 도움이 될 수 있습니다. 또한 해커가 방어자가 될 수 있는 방법을 제공하여 잠재적인 공격자를 보안 자산으로 전환하는 데 도움을 줄 수 있습니다.
참고: 이 기사의 일부 작성자는 고품질 보안 감시 로봇의 분산 생성을 위한 토큰화된 인센티브 구조를 제공하는 네트워크를 소유한 Forta Corporation에서 근무합니다. 개발 팀은 프로토콜 커뮤니티가 기존 접근 방식과 Web3 네이티브 접근 방식을 모두 활용하여 버그 바운티를 장려하고 향상된 보안, 윈-윈 상황을 통해 잠재적으로 참가자에게 혜택을 주도록 장려할 수 있습니다.
보조 제목
7. 실시간 모니터링 보안 고려사항
내용: 스마트 계약과 오라클 및 교차 체인 브리지와 같은 주요 운영 구성 요소를 모니터링하고 알려진 위협 모델을 기반으로 개발 팀과 커뮤니티에 의심스러운 활동을 보고하는 시스템을 구현합니다.
방법: 모니터링 플랫폼 또는 분산 노드를 사용하여 로봇을 실행하여 스마트 계약 이벤트를 실시간으로 모니터링합니다. 필요에 따라 개발 팀과 더 넓은 커뮤니티를 위한 데이터 대시보드 및 경고 알림을 연결합니다.
보조 제목
8. 사고 및 비상 대응 작업에 대한 안전 고려 사항
대상: 보안 문제가 발생하면 즉시 대응할 수 있는 도구와 프로세스를 사용합니다.
이유: 최고의 배포 전 보호 장치가 있더라도 스마트 계약 및 오라클 및 교차 체인 브리지와 같은 주요 구성 요소와 관련된 실시간 문제는 여전히 가능합니다. 전담 직원, 명확한 프로세스 및 적절한 자동화를 통해 사건을 신속하게 조사하고 가능한 한 빨리 해결할 수 있습니다.
접근 방식: 최악의 시나리오에 대비하고 사고 또는 긴급 상황에 대응하는 방법을 계획하며 대응 기능을 최대한 자동화합니다. 여기에는 분산된 보안 메일링 리스트, 코드 리포지토리의 지침 또는 스마트 계약 레지스트리를 통해 보안 문제에 대해 공개적으로 연락할 수 있는 조사 및 대응에 대한 책임 할당이 포함됩니다. 계약의 위협 모델을 기반으로 긴급 조치를 취하는 데 필요한 시나리오 리허설 및 예상 응답 시간을 포함할 수 있는 일련의 프로세스를 개발합니다.자동화를 긴급 사고 대응에 통합하는 것을 고려할 수 있습니다.보안 고려 사항은 나중에 생각하거나 추가하는 것이 아니라 성공적인 개발의 필수적인 부분이어야 합니다.
이 프레임워크는 개발 프로세스 전반에 걸쳐 보안을 용이하게 하는 Web3 프로토콜 및 애플리케이션을 구축하기 위한 몇 가지 빠른 지침을 공유하지만 스마트 계약 보안을 전체적으로 논의할 수 있는 짧은 개요는 없습니다. 사내 보안 전문 지식이 부족한 팀은 특정 상황에 적용할 수 있도록 안내하고 도움을 줄 수 있는 자격을 갖춘 Web3 보안 전문가에게 문의해야 합니다.


