← 모든 인사이트 보기
ECOSYSTEMShielded Labs

공개된 zcashd는 Zebra 뒤에 두세요

공개망에 노출된 zcashd를 운영하는 거래소와 수탁사에 앞단에 Zebra를 두어 네트워크 기반 공격 노출을 줄이라고 권고합니다.

Shielded Labs는 거래소, 수탁 기관, 인프라 사업자 등 외부에서 접근 가능한 zcashd를 운영하는 모든 이에게 앞단에 Zebra를 두어 공격 표면을 줄이라고 권고했다. zcashd 사용 방식을 바꾸지 않고도 네트워크 기반 공격 노출을 크게 낮출 수 있는 간단하고 위험이 낮은 변경이라고 설명한다. 배경에는 최근의 취약점 발견이 있다. 3월에 한 화이트햇 연구자가 AI를 이용해 거의 6년간 발견되지 않던 zcashd의 치명적 취약점을 찾았고 이는 빠르게 패치됐다.

이후 같은 연구자가 zcashd와 Zebra에서 심각도가 낮은 취약점을 추가로 찾았고 ZODL, Zcash Foundation, Shielded Labs가 이를 분류했다. 글쓴이는 앞으로 AI의 도움으로 더 많은 버그가 발견되고 실제 악용될 가능성도 있다고 본다. 권고는 zcashd가 인터넷의 피어와 직접 통신하지 않고 자기 Zebra 노드하고만 연결하게 하는 것이다. Zebra가 모든 P2P 연결을 맡아 메시지 파싱, 블록 헤더 검증, 피어 관리를 메모리 안전한 Rust로 처리한다.

Zebra에 버그가 있어도 이 구성은 유효하다. Zebra가 충돌하거나 중계를 멈추면 zcashd는 로컬 요청을 처리하되 인터넷과 끊긴 fail-stop 상태가 된다. 체인 포크의 경우 최대 해시파워 체인이 zcashd와 비호환이면 zcashd가 블록을 모두 거부해 사실상 단절되고, Zebra와 비호환이면 zcashd가 소수 체인을 따라가 몇 시간에서 며칠 업데이트가 느려지는 fail-slow가 된다. 두 구현이 공유하는 저수준 암호 라이브러리의 버그가 노드를 멈추는 데 그친다면 역시 fail-stop이다.

설정은 동기화된 Zebra 노드를 준비하면 zcash.conf에 connect=127.0.0.1:8233 한 줄을 추가하는 것으로 끝난다. Zebra는 기본적으로 8233 포트(메인넷)에서 대기하므로 별도 설정이 필요 없고, connect를 쓰면 zcashd가 수신 포트를 열지 않아 같은 머신에서도 포트 충돌이 없다. 두 노드를 재시작한 뒤 getpeerinfo로 피어가 127.0.0.1 하나뿐인지 확인한다. zcashd 동작은 이전과 같으며 새 Zebra 노드의 상태를 모니터링하면 된다.

한국어 요약은 원문을 바탕으로 정리한 것으로, 정확한 내용은 원문을 확인하세요.