메인 콘텐츠로 건너뛰기

스마트 계약 보안 점검 사항

스마트 컨트랙트
보안
Solidity
중급
Trailofbits
2020년 9월 7일
6 1분의 읽기 소요시간

스마트 계약 개발 체크리스트

스마트 계약을 작성할 때 따르기를 권장하는 개괄적인 절차입니다.

알려진 보안 문제 확인:

  • Slither (opens in a new tab)로 계약을 검토하세요. 일반적인 취약점에 대한 40개 이상의 탐지기가 내장되어 있습니다. 새 코드를 체크인할 때마다 실행하여 깔끔한 보고서를 받도록 하세요(또는 트리아지 모드를 사용하여 특정 문제를 무시하세요).
  • Crytic (opens in a new tab)으로 계약을 검토하세요. Slither가 확인하지 않는 50가지 문제를 확인합니다. 또한 Crytic은 GitHub의 풀 리퀘스트에서 보안 문제를 쉽게 표시하여 팀이 서로의 작업을 파악하는 데 도움을 줄 수 있습니다.

계약의 특별한 기능 고려:

코드의 중요한 보안 기능을 시각적으로 검사:

중요한 보안 속성을 문서화하고 자동화된 테스트 생성기를 사용하여 평가하세요.

  • 코드의 보안 속성을 문서화하는 방법을 알아보세요. 처음에는 어렵지만, 좋은 결과를 얻기 위한 가장 중요한 단일 활동입니다. 또한 이 튜토리얼의 고급 기술을 사용하기 위한 필수 조건이기도 합니다.
  • Echidna (opens in a new tab)Manticore (opens in a new tab)와 함께 사용하기 위해 Solidity에서 보안 속성을 정의하세요. 상태 머신, 접근 제어, 산술 연산, 외부 상호 작용 및 표준 준수에 집중하세요.
  • Slither의 Python API로 보안 속성을 정의하세요. 상속, 변수 종속성, 접근 제어 및 기타 구조적 문제에 집중하세요.
  • Crytic (opens in a new tab)으로 커밋할 때마다 속성 테스트를 실행하세요. Crytic은 보안 속성 테스트를 사용하고 평가할 수 있으므로 팀의 모든 사람이 GitHub에서 테스트를 통과했는지 쉽게 확인할 수 있습니다. 실패한 테스트는 커밋을 차단할 수 있습니다.

마지막으로 자동화된 도구가 쉽게 찾을 수 없는 문제에 유의하세요.

  • 개인정보 보호 부족: 트랜잭션이 풀에서 대기하는 동안 다른 모든 사람이 트랜잭션을 볼 수 있습니다.
  • 선행 매매 트랜잭션
  • 암호화 작업
  • 외부 디파이(DeFi) 구성 요소와의 위험한 상호 작용

도움 요청하기

이더리움 오피스 아워 (opens in a new tab)는 매주 화요일 오후에 진행됩니다. 이 1시간짜리 1:1 세션은 보안에 대해 궁금한 점을 질문하고, 저희 도구를 사용하여 문제를 해결하며, 현재 접근 방식에 대해 전문가의 피드백을 받을 수 있는 기회입니다. 이 가이드를 끝까지 진행할 수 있도록 도와드리겠습니다.

Slack에 참여하세요: Empire Hacking (opens in a new tab). 궁금한 점이 있으시면 언제든지 #crytic 및 #ethereum 채널을 이용하세요.

페이지 마지막 업데이트됨: 2025년 2월 7일

이 튜토리얼이 도움이 되셨나요?