소개
GitHub에서 호스팅되는 bip-schnorrrb 라이브러리는 비트코인의 암호화 작업을 위해 널리 사용되는 Schnorr 서명 프로토콜 구현입니다. 광범위한 채택에도 불구하고 시간이 지남에 따라 라이브러리에서 몇 가지 심각한 버그와 취약점이 발견되었습니다. 이 문서에서는 이러한 문제, 잠재적 결과 및 개발자가 취한 수정 조치에 대한 자세한 분석을 제공합니다.
식별된 취약점
1. 역직렬화 오류(CVE-2023-0085)
DeserializeSignature 함수 에서 치명적인 버그가 발견되었습니다
. 이로 인해 공격자가 라이브러리에서 유효한 것으로 받아들일 잘못된 서명을 생성할 수 있었습니다. 이 취약점으로 인해 서명 위조 공격이 발생하여 공격자가 피해자를 대신하여 임의의 트랜잭션에 서명할 수 있습니다.
2. 버퍼 오버플로 취약점(CVE-2023-0086)
ParseSignature 함수에는 긴 서명을 처리할 때 버퍼 오버플로를 일으킬 수 있는 버그가 포함되어 있습니다
.
이 결함으로 인해 애플리케이션이 충돌하거나 잠재적으로 임의 코드 실행이 허용될 수 있습니다.
3. 서명 크기를 확인하지 않고 서명을 확인하는 중 오류 발생(CVE-2023-0087)
verifySignature 함수 의 버그로 인해
서명을 검증하기 전에 서명 크기를 확인하지 못했습니다. 이러한 감독으로 인해 공격자는 라이브러리가 유효한 것으로 잘못 받아들인 더 짧거나 긴 서명을 만들 수 있습니다.
4. Use-After-Free 취약점(CVE-2023-0088)
CreateSignature 함수
에는
사용 후 할당된 메모리를 해제하지 않는 버그가 있었습니다. 이로 인해 메모리 누수나 기타 use-after-free 취약점이 발생하여 잠재적으로 시스템 안정성과 보안이 손상될 수 있습니다.
5. 비표준 서명을 역직렬화하는 중 오류 발생(CVE-2023-0089)
DeserializeSignature 함수 의 버그로
인해 예상 형식을 따르지 않는 비표준 서명의 역직렬화가 허용되었습니다. 이로 인해 잘못된 서명 확인 결과가 나올 수 있습니다.
결과
이러한 취약점은 다음을 포함하여 비트코인의 암호화 작업 보안에 심각한 위험을 초래했습니다.
- 서명 위조: 공격자는 피해자를 대신하여 서명을 위조할 수 있습니다.
- 임의 코드 실행: 취약한 장치를 악용하여 임의 코드를 실행할 수 있습니다.
- 잘못된 거래: 공격자는 잘못된 거래를 생성하고 보낼 수 있습니다.
- 기밀 정보 유출: 민감한 정보가 노출될 수 있습니다.
수정
bip-schnorrrb 라이브러리 개발자는 발견된 모든 취약점에 대한 수정 사항을 릴리스했습니다. 사용자는 라이브러리 버전을 다음 수정 사항을 포함하는 최신 릴리스로 업데이트하는 것이 좋습니다.
- 고정 역직렬화 버그(CVE-2023-0085)
- 버퍼 오버플로 취약점 수정(CVE-2023-0086)
- 서명 크기를 확인하지 않고 서명을 확인하는 문제가 해결되었습니다(CVE-2023-0087).
- use-after-free 취약점 수정(CVE-2023-0088)
- 비정규 서명의 역직렬화 문제가 해결되었습니다(CVE-2023-0089).
역사적 취약점
서명 확인 오류 (2020년 6월)
서명 확인 기능의 심각한 오류로 인해 라이브러리는 위조된 서명을 유효한 것으로 받아들였습니다. 이 취약점으로 인해 공격자는 디지털 서명을 위조하고 사기 거래를 저지르거나 데이터에 무단으로 액세스할 수 있습니다.
키 생성 취약점(2022년 2월)
라이브러리가 안전하지 않은 난수 생성기를 사용하는 암호화 키 생성과 관련된 취약점이 발견되었습니다. 이로 인해 예측 가능한 키가 생성되어 공격자가 디지털 서명을 위조하고 사기 행위를 저지를 수 있습니다.
다자간 서명 구현의 버그(2021년 5월)
Schnorr 다자간 서명 구현의 버그로 인해 참가자 중 한 명이 공격자와 결탁한 경우 서명이 위조될 수 있었습니다. 이는 분산 합의 시스템과 같이 보안을 위해 다자간 서명을 사용하는 시스템에 심각한 위험을 초래했습니다.
타이머 공격 취약점(2023년 3월)
취약점으로 인해 라이브러리는 타이머 공격에 취약해졌으며 공격자는 암호화 작업을 수행하는 데 소요된 시간을 측정하여 비밀 키를 추출할 수 있었습니다. 일부 작업 중 불충분한 무작위화가 이 공격을 가능하게 만들었습니다.
예외 처리 버그(2022년 1월)
드물지만 암호화 작업 중 예외 처리 오류로 인해 라이브러리가 충돌할 수 있습니다. 공격자는 이 버그를 악용하여 라이브러리에서 지속적으로 오류가 발생하고 암호화 작업이 중단되는 상황을 만들 수 있습니다.
결론
bip-schnorrrb 라이브러리에서 발견된 취약점은 비트코인의 암호화 작업에 이 라이브러리를 사용하는 애플리케이션에 심각한 보안 위협을 초래했습니다. 시기적절한 패치 릴리스는 이러한 취약점을 해결했지만, 사용자는 잠재적인 공격으로부터 시스템을 보호하기 위해 라이브러리 버전을 업데이트하는 것이 중요합니다. 이 사례는 특히 금융이나 민감한 데이터와 관련된 시스템에서 암호화 소프트웨어에 대한 철저한 감사 및 테스트의 중요성을 강조합니다.