EOS Ghostbusters 보안 제일법 이해하기
Ghostbusters는 어떤 팀이냐고요?
Ghostbusters는 EOS 테스트넷으로 시작하여 eosio 소프트웨어를 가장 안전한 방법으로 운영하는 방법을 연구하고 연습하는 데 주력해 왔습니다. 인프라 보안에 대한 관심이 부족한 점에 우려하는 이들이 시작했습니다.
Ghostbusters 팀의 보안 제일법은 EOS Rio와 HKEOS가 만들었으며, 이후 Sw/eden, eosDAC, EOS Tribe, EOS 42, Sheos, 외 infrastrucutre 텔레그램 채널의 다른 많은 BP 후보들이 기여했습니다. 여기에서 활발한 네트워크 활동을 하는 BP 후보들을 보실 수 있습니다.
이 프로젝트는 커뮤니티가 주도하는 만큼 BP 후보들 간의 협업이 중요하다고 생각했습니다. 이는 교육적인 절차이며 더 많은 BP 후보들이 참여하기를 바라는 바입니다.
Ghostbusters는 메인넷 론칭이 아니라 리서치 환경 그룹으로 시작했습니다. 시작하자마자 보안에 대해 비슷한 우려를 하던 커뮤니티 및 다른 BP 후보들의 관심이 쏟아졌습니다. 그 후 사람들이 저희 방법을 메인넷 론칭법으로 추천하기 시작했습니다.
그래서 이게 대체 무슨 방법이냐고요?
저희 Github repo에서 더 많은 정보를 얻을 수 있습니다.
간단히 설명하면, 신뢰할 수 있는 커뮤니케이션을 위한 Keybase와 안전한 노드 연결을 위한 Wireguard를 혼합한 방법입니다. 키베이스로는 신원을 확인할 수 있기 때문에 BP 후보만 그룹에 가입하게 보장할 수 있습니다. 또 안전한 메시지 암호화 기능이 있습니다.
BP 노드 간에 메싱을 허용하는 동안 BP 노드에는 퍼블릿 인터넷 액서스가 허용되지 않아야 이상적입니다. 따라서 저희는 BP 노드 간에 오픈소스 WireGuard 커널 기반 VPN 소프트웨어를 이용해 포인트 투 포인트 터널을 통해 안전한 P2P 커뮤니케이션을 사용할 것을 제안하는 바입니다. Wireguard에는 현재까지 알려진 보안 취약점 공격이 없습니다.
저희는 인프라스트럭처 구축을 4계층을 이루게 만들었습니다. 여기에 인프라 보안 전문가 @jemxpat가 함께 도움을 주었습니다. 내용은 다음 다이어그램을 참고해주십시오:
- 1계층: 노드 생산 - Wireguard를 이용하여 소통
- 2계층: 블록을 연속 생산하는 풀 노드, Wireguard로 생산 노드와 다른 BP와 연결됨
- 3계층: API 단계로 프록시 서버(웹 방화벽)이 Patroneos(Block.One 공개)를 써서 요청 필터. 이는 유해/기형의 데이터 및 공격에 대한 보호벽을 한층 강화.
- 4계층: Load Balancer 들어오는 api 호출을 3계층의 웹 방화벽에 보냄.
론칭은 이 방법으로 하게 됩니까?
저희도 아직 모릅니다. BP 커뮤니티는 현재 이에 대해 합의를 도출하고 있으며, 곧 결과가 나올 겁니다. 솔직히 저희도 eos 커뮤니티에 가장 좋은 방법이 좋습니다. 막힘 없이 안정적인 론칭을 위해서는 보안을 중요시해야 합니다. 저희는 모두 하나의 메인넷을 약속했습니다.
저희는 계속해서 Ghostbusters 방법을 개선하겠습니다. 저희의 이런 방법 및 가이드라인이 일종의 "모범 사례"가 되어 BP 커뮤니티의 다수가 활용하였으면 합니다.
다만 여러분께서 알아주셨으면 하는 것은, 어떤 방식으로 부팅을 하든 론칭 순서에는 변함이 없습니다.
보안과 투명성
보안이 강하다고 투명성이 떨어지는 것이 아닙니다. 저희는 지속적으로 최대한 투명하게 운영하려 노력하고 있습니다. 저희 소스 코드는 Github에서 보실 수 있으며 인프라에 관한 저희의 제안 사항은 커뮤니티에서 계속해서 토론 중이며 또 개선되고 있습니다 :)