MythX는 정적 분석, 동적 분석 및 상징적 실행을 사용하여 프로젝트의 취약점을 검사하는 스마트 계약 보안 서비스입니다. 다음과 같은 세 가지 모드에서 실행됩니다.
- Quick 모드: 나쁜 코딩 패턴과 낮은 복잡도 버그를 찾는 데 효과적입니다 (무료 사용자에게 제공됨).
- Standard 모드: 더 오래 걸리지만 복잡한 보안 문제를 해결할 수 있습니다 (Dev 사용자에게 제공됨).
- Deep 모드: 더 오래 걸리지만 깊이있고 숨겨진 취약점을 찾을 수 있습니다 (Pro 사용자에게 제공됨).
MythX는 무료 및 유료 서비스를 모두 제공합니다. 작동 방식에 대해 자세히 알아보려면 Bernhard Mueller의 MythX Pro Security Analysis Explained를 읽어보는 것이 좋습니다.
인증
계약을 분석하기 전에 MythX 계정에 가입해야 합니다. 그런 다음 계정에 로그인하여 JWT 토큰을 얻어 API에 인증할 수 있습니다.
JWT 토큰을 전달하는 우선 순위는 MYTHX_API_KEY
환경 변수입니다. 다음 명령으로 설정할 수 있습니다.
$ export MYTHX_API_KEY=YourToken
만약 이게 불가능하다면, -api-key
커맨드 라인 옵션을 통해 전달할 수도 있습니다:
$ brownie analyze --api-key=<string>
취약점 검사
프로젝트를 빠르게 취약점 검사하기 위해서는:
$ brownie analyze
이것은 컴파일된 빌드 아티팩트를 MythX로 분석하는 것입니다. 스캔 상태에 대한 업데이트를 받게 될 것이며, 전체 프로세스는 약 3분 정도 소요됩니다.
표준 스캔을 수행하려면:
$ brownie analyze --mode=standard
깊은 스캔을 하려면 인증이 필요하며 완료까지 약 반 시간이 걸립니다.
만약 --async
플래그를 포함하면, Brownie는 작업을 제출하고 보류 중인 ID를 출력한 후 종료됩니다. 나중에 MythX 대시 보드에서 완료된 보고서를 볼 수 있습니다.
분석 결과보기
분석이 완료되면 취약점에 대한 데이터가 프로젝트 내 reports/
디렉토리에 저장됩니다. 보고서는 Brownie GUI를 사용하여 볼 수 있으며 또는 MythX 대시 보드에 로그인하여 볼 수 있습니다.
GUI에서 보고서를 보려면 먼저 GUI를 열어주세요:
brownie gui
또한 analyze
하위 명령어에 -gui
플래그를 전달하여 분석 결과를 받은 후 즉시 Brownie GUI를 열 수 있습니다.
brownie analyze --gui
오른쪽 상단에 있는 "보고서 선택" 드롭다운 목록을 클릭하고 "보안"을 선택하세요. 그런 다음 새로운 드롭다운에서 MythX
을 선택하세요.
만약 취약점이 발견되었다면, 심각도에 따라 강조 표시됩니다:
- 노랑 낮은 심각도 (최상의 실천 규칙 위반)
- 주황색 중간 심각도 (잠재적 취약점), 수정해야 함
- 빨간색 높은 심각도 (치명적, 즉각적인 공격 위협)
콘솔을 확장하려면 왼쪽 상단의 콘솔
버튼 (또는 C
키)을 클릭하세요. 취약점 위로 마우스를 올리면 SWC 레지스트리에서 더 자세한 설명을 볼 수 있습니다.

'블록체인 (Block Chain) > 이더리움' 카테고리의 다른 글
[브라우니 (Brownie)] 22. 네트워크 관리 (0) | 2023.06.18 |
---|---|
[브라우니 (Brownie)] 21. 배포 기본 사항 (2) | 2023.06.18 |
[브라우니 (Brownie)] 19. 커버리지 평가 (0) | 2023.06.18 |
[브라우니 (Brownie)] 18. 상태 기반 테스트 (1) | 2023.06.18 |
[브라우니 (Brownie)] 17. 속성 기반 테스트 (0) | 2023.06.18 |