코스모스 코드 보안 감사 업데이트

코스모스 네트워크와 애플리케이션 보안에 대한 모든 정보

Cøsmos Korea 🇰🇷
Cøsmos Korea 🇰🇷
7 min readMar 21, 2019

--

코스모스 메인넷 런칭을 준비하는 과정 중 하나로써, 인터체인 재단(ICF, Interchain Foundation)텐더민트 팀은 안전하고 회복력 있는 블록체인 코드를 개발하기 위해 전념하고 있습니다. 저희는 이 목적을 달성하기 위해 수 많은 실력파 코드 감사 전문가들에 의뢰하여 소프트웨어의 다양한 측면을 검토받았습니다. 독립적인 보안 감사는 건전한 애플리케이션 보안 프로그램의 핵심이며, 제삼자의 의견을 받음으로 저희의 보안 수준을 객관적으로 평가받을 수 있었습니다. 세밀한 코드 감사 계획을 짜기 시작한 것부터 버그 바운티 프로그램을 진행하기까지, 어떻게 코스모스 네트워크 장기적인 보안을 준비했는지 설명해드립니다.

완료된 코드 감사

감사 1. 2017년, 텐더민트는 Jepsen 팀과 함께 최초 코드 검토를 진행했습니다. 텐더민트 검토는 자세한 코드 검수 작업이 포함되지 않았지만, 다수의 엄격한 테스팅 과정을 통해 비잔틴 행동이 있고 다수의 네트워크 분열이 있는 상황을 묘사할 수 있었습니다. 이 과정 중에서, Jepsen의 테스팅 도구는 텐더민트가 보장하는 분산화 생존성(liveness)과 안전성(safety) 규칙을 어길 수 없었습니다. 단, 특정 노드의 데이터 손상, WAL 복원 과정에서의 치명적 오류, WAL 데이터 분실 등의 문제를 확인할 수 있었습니다. Jepsen의 테스트 과정과 테스트 결과에 대한 자세한 정보는 여기에서 확인하실 수 있습니다.

감사 2. 2018년 3월, 텐더민트는 공격적 암호학(offensive cryptography)과 블록체인 기술 분야에서 세계적으로 유명한 연구자의 주도하에 실행된 13일간의 코드 감사를 진행했습니다. 이 감사 과정은 텐더민트의 암호학 계층, 라이브러리, ABCI(Application Blockchain Interface), go-wire(현재는 go-amino), go-crypto, tmlibs, IAVL 그리고 IAVL 트리 등의 분야를 집중적으로 검토했습니다.

해당 감사 과정에서 총 14개의 보안 이슈(낮은 위험성 13개, 중간 위험성 1개)들을 확인할 수 있었으며, 현재 모든 문제에 대한 조치를 완료했습니다. 해당 감사에 대한 자료를 요약하여 커뮤니티에 배포할 준비를 하고 있으며, 추후 공개될 때 별도의 공지가 있겠습니다.

감사 3. 2018년 5월, 저희는 두 명의 엔지니어와 한 명의 프로젝트 매니저로 이루어진 애플리케이션 보안 기관의 코드 감사를 20일간 진행했습니다. 해당 기관은 서버 보안, 유저 인터페이스, 코드 내의 네트워크 상호호환성 등의 문제에 초점을 맞췄습니다. 감사는 텐더민트, 코스모스 SDK, 코스모스 지갑, ABCI, go-wire-master, IAVL, tmlibs 등의 분야를 확인했습니다.

진행된 보안 감사는 총 15개의 문제를 확인했으며, 이 중 3개의 높은 위험성, 4개의 중간 위험성, 8개의 낮은 위험성 이슈들을 확인했습니다. 모든 이슈는 조치되었습니다. 이 감사에 대한 요약 자료 또한 준비 중에 있으며, 공개될 시기에 공지하도록 하겠습니다.

감사 4. 2019년 1월, 텐더민트 팀은 두 명의 엔지니어와 한 명의 프로젝트 매니저로 이루어진 Least Authority 팀과 함께 2.5주간 코드 감사를 진행했습니다. Least Authority 팀은 암호학 프로토콜과 오픈소스 소프트웨어 분야에서 상당한 경력을 보유하고 있는 팀입니다. 해당 코드 감사는 코스모스 SDK의 암호경제학 인센티브 설계(cryptoeconomic incentive structure)에 초점을 맞췄으며 코스모스 SDK 소스 코드의 두 번째 코드 감사였습니다.

코드 감사에서 특별한 문제는 확인되지 않았지만, 텐더민트 코드에 작은 변경이 있었습니다. 해당 코드 감사에 대한 자세한 정보는 Least Authority의 full report 또는 executive summary를 참고하세요.

현재 진행 중인 코드 감사

2019년 2월, 텐더민트 팀은 Trail of Bits 팀과 함께 메인넷을 준비한 코드 동결(code freeze)와 코드 감사를 진행했습니다. 이 코드 감사는 지금까지 진행해온 감사 중 가장 포괄적이고 장기적으로 진행된 코드 감사였습니다. 감사 진행자는 지금까지 있었던 모든 소스 코드의 가장 완성된 버전을 기반으로 검토를 진행했습니다.

코드 감사가 마무리되고 관련 보안 이슈들에 대한 조치가 마무리된 후 코드 감사 결과를 공개할 예정입니다.

앞으로의 코드 감사

2019년 코드 검토 계획에는 3월에 시작될 주요 보안 기관이 주도하는 또 하나의 코드 검토가 있을 예정입니다. 이 코드 감사는 코스모스 SDK를 집중적으로 검토할 것이며, KMS와 코스모스 지갑을 현재 있는 알파 단계에서 본격적인 실사용 가능(production ready) 버전으로 전환하는 과정의 핵심입니다. 이 코드 감사에 대한 결과와 요약은 추후에 공개할 예정입니다.

보안을 위한 투자는 지속된다

텐더민트와 코스모스 SDK를 위한 보안 감사에 대한 지속적인 지원을 더불어, 인터체인 재단은 2018년 4월부터 시작된 텐더민트 버그 바운티 프로그램을 지원해왔습니다. 버그 바운티 프로그램은 체계적이고 정기적인 애플리케이션 감사보다는 효율적이지 않을 수 있지만, 초기 감사 결과와 버그 바운티 프로그램 결과를 보면 다수의 실력자가 코드를 지켜보고 있음을 확인할 수 있었습니다.

지금까지 버그 바운티 프로그램은 수 많은 버그를 찾았으며 무려 $38,400 상당의 보상을 보안 이슈를 신고한 해커, 연구자, 커뮤니티 멤버들에게 지급했습니다. 추가로, 텐더민트의 버그 바운티 프로그램은 보안 연구원 보호 조약(safe harbor)을 적용한 최초의 프로그램 중 하나였습니다. 저희는 앞으로도 외부 연구원을 존중하는 형태로 보안 개선을 진행할 것이며, 저희 코드의 보안과 안전성을 높이는데 기여하는 자들의 법적 보호를 위해 노력할 것입니다.

블록체인 업계에서 양질의 감사 진행자와 보안 기관을 찾는 것은 상당히 어려운 것이 현실입니다. 저희는 완전히 새로운 인프라와 기술을 바닥부터 개발하는 중이며, 이런 기술을 안전하게 유지하는 것은 단순히 코드의 버그를 찾는 것 이상의 노력이 필요합니다. 저희는 공격적 암호학, 블록체인 기술, 암호경제학 인센티브 연구 분야에서 세계 최고 수준의 감사자들과 함께 협력할 수 있었다는 것에 감사합니다.

지금까지의 감사 사이클에서 중대한 보안 이슈는 발견되지 않았으며, 만약 중대한 보안 허점을 찾았다고 생각하시면 tendermint.com/security를 확인하여 보안 버그를 신고하거나 security@tendermint.com를 통해 연락주시기 바랍니다.

메인넷 런칭이 다가오는 시점에서 CertusOne의 Hendrik Hofstadt, yutian, xinqian, blackpainter, haoyangliu, bharvest-hyung, guido, yunjh1994, chengwenxi, Max Veytsman, Emmaneul Odeke of Orijitech, Amit Elazari Bar On and #LegalBugBounty 등 저희 보안 프로그램에 기여해주신 모든 분들에게 감사의 발씀을 드립니다. 감사합니다!

Cøsmos Korea 🇰🇷

참고: 이 글은 정보 제공을 위하여 번역된 글입니다. 내용/해석에 차이가 있을 수 있으며, 이 경우 영문 원문이 상위 권한을 가집니다.

원문: ‘Audits, Audits, Everywhere’ by Jessy Irwin / Cosmos Blog

원문날짜: 2019/3/5

--

--