운영 중인 스마트 컨트랙트는 모두 상시 열려 있는 초대장과 같습니다. 돈을 보관하고 있고 결함이 있다면, 언젠가는 누군가 찾으러 옵니다. 버그 바운티는 결함을 찾은 사람에게 정당하게 보상받으며 제보할 길을 열어 줌으로써 인센티브를 바꿉니다. 공격보다 제보가 더 나은 선택이 되도록 하는 것입니다.
버그 바운티의 작동 방식
프로그램은 범위(어떤 컨트랙트, 웹사이트, 시스템이 포함되는지), 규칙, 보상표를 공개합니다. 이슈를 찾은 연구자는 재현할 수 있을 만큼 자세한 비공개 보고서를 제출합니다. 팀은 이슈를 확인하고 수정한 뒤, 심각도에 따라 보상을 지급합니다. 일반적인 규칙은 실제 사용자 자금을 대상으로 한 테스트를 금지하고, 수정될 때까지 이슈를 비공개로 유지하도록 요구하며, 이미 알려진 이슈와 탈취한 키를 전제로 한 공격은 제외합니다.
보상은 어떻게 정해지는가
보상은 대개 심각도 등급을 따릅니다. 자금 손실로 바로 이어질 수 있는 치명적 이슈가 보상표의 맨 위에 놓이며, 위험에 노출된 금액에 연동된 상한이 붙는 경우가 많습니다. 높음, 중간, 낮음 등급으로 내려갈수록 보상은 줄어듭니다. 그 이유는 경제적입니다. 공격자가 가져갈 수 있는 금액에 비해 보상이 작으면 일부 발견자는 유혹을 느낄 것이므로, 디파이의 진지한 프로그램은 큰 금액이 될 수 있는 보상을 내겁니다. 보상의 크기만큼 빠르고 공정한 지급도 중요합니다. 연구자들은 어떤 팀이 약속을 지키는지 기억하기 때문입니다.
간단한 예시
한 연구자가 어떤 볼트의 출금 함수가 드문 예외 상황에서 사용자에게 유리하게 반올림된다는 것을 발견합니다. 한 트랜잭션 안에서 여러 번 반복하면 이 오류로 볼트를 조금씩 비울 수 있습니다. 그는 재현 절차를 비공개로 정리해 제보합니다. 팀은 버그를 재현하고, 해당 함수를 일시 중지하고, 수정본을 배포한 뒤 높음 등급 보상을 지급합니다. 자금 손실은 없고, 수정본이 배포된 뒤 이슈가 공개됩니다.
버그 바운티와 감사의 차이
스마트 컨트랙트 감사는 고용된 팀이 정해진 범위를 정해진 시점에 검토하는 일정 잡힌 작업입니다. 버그 바운티는 끝이 열려 있습니다. 프로그램이 운영되는 동안 누구나 들여다볼 수 있고, 보상은 결과에 따라 지급됩니다. 감사는 출시 전에 가장 힘을 발휘하고, 바운티는 코드가 실제로 운영되며 걸린 것이 현실이 된 이후에도 계속 관심에 대가를 지불합니다. 런타임 모니터링은 트랜잭션이 일어나는 순간을 지켜보는 세 번째 층을 더합니다.
위험과 한계
바운티는 공격자보다 먼저 연구자가 버그를 찾고, 보상이 그들의 시간을 들일 만한 가치가 있을 때에만 작동합니다. 범위도 중요합니다. 목록에 없는 컨트랙트의 이슈는 보상 대상이 아닐 수 있고, 그러면 관심이 다른 곳으로 옮겨 갈 수 있습니다. 지급이 늦거나 타당한 발견을 놓고 다투는 프로그램은 연구자 커뮤니티의 신뢰를 잃습니다. 바운티는 그 자체로 아무것도 고치지 않습니다. 팀이 여전히 빠르게 대응해야 하고, 어떤 버그는 제보된 뒤에도 안전하게 고치기까지 시간이 걸립니다. 프로그램이 있다는 사실만으로는 그 질을 알 수 없습니다. 상한 보상액보다 범위, 규칙, 실제 지급 이력이 더 많은 것을 알려 줍니다.
Tori Finance (토리 파이낸스)는 이렇게 활용합니다
Tori Finance는 자체 내부 버그 바운티 프로그램을 운영하며, 코드의 취약점을 책임 있게 제보한 연구자에게 보상합니다. 이 프로그램은 스마트 컨트랙트 감사나 런타임 모니터링과는 별개로 운영되며, 코드가 운영되는 동안 계속 검토받도록 해 줍니다.
자주 묻는 질문
버그 바운티 프로그램은 무엇입니까?
시스템의 취약점을 비공개로 제보한 보안 연구자에게 보상을 지급해, 누군가 악용하기 전에 고칠 수 있도록 하는 프로그램입니다.
버그 바운티 보상은 어떻게 정해집니까?
대개 심각도에 따라 정해집니다. 자금 손실로 바로 이어질 수 있는 이슈가 보상표의 맨 위에 놓이고 위험에 노출된 금액에 연동되는 경우가 많으며, 경미한 이슈는 보상이 적습니다. 프로그램마다 자체 보상표와 규칙을 공개합니다.
감사와 버그 바운티는 무엇이 다릅니까?
감사는 고용된 팀이 정해진 시점에 진행하는 일정 잡힌 검토입니다. 버그 바운티는 코드가 운영되는 동안 계속 열려 있으며, 기준에 맞는 이슈를 찾은 사람이라면 누구에게나 보상합니다. 둘은 서로를 보완합니다.
출처
- ethereum.org: Ethereum bug bounty programethereum.org
- ethereum.org: Smart contract securityethereum.org
Tori Finance (토리 파이낸스) 팀이 작성한 글이며, 투자 권유가 아닙니다. 수익은 변동하며 원금 손실이 발생할 수 있습니다.