Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
HLF_TxTime_spoofing — Hyperledger Fabric 블록체인의 트랜잭션 시간 조작 문제(CVE-2024-45244)를 다루는 PoC | Kitploit
도구/GitHubGitHub/shanker-sec/hlf_txtime_spoofing
Vulnerability AnalysisExploitationCryptographyLearning & Education
GitHubshanker-sec/hlf_txtime_spoofing

HLF_TxTime_spoofing

Hyperledger Fabric 블록체인의 트랜잭션 시간 조작 문제(CVE-2024-45244)를 다루는 PoC

저장소 보기
2142년 전아직 검토되지 않음

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
웹사이트
공유

HLF_TxTime_spoofing

HLF_TxTime_spoofing - Hyperledger Fabric 블록체인에서 트랜잭션 시간 조작(GetTxTimestamp() 또는 GetHistoryForKey() 사용) 문제를 다루는 PoC입니다. v 2.5.5 및 v3.0.0-beta에서 테스트되었습니다.

프로젝트는 여러 부분으로 구성됩니다:

  1. time_insecure - 예치금에서 이자를 계산하기 위해 GetTxTimestamp()를 사용하는 취약한 체인코드 변형
  2. time_secure_ntp - 예치금 이자 계산 시 공격자의 시간 스푸핑을 방지하기 위해 NTP(Network Time Protocol) 서버에서 시간을 획득하는 체인코드.
  3. time_secure_nts - 예치금 이자 계산 시 공격자의 시간 스푸핑을 방지하기 위해 NTS(Network Time Security) 서버에서 시간을 획득하는 체인코드.
  4. time_secure_localtime - 예치금에서 이자를 계산할 때 공격자의 시간 스푸핑을 방지하기 위해 스마트 계약이 실행되는 OS의 시간을 사용하는 체인코드 모든 경우(즉, 각 체인코드)에서 예치금은 연 20%의 이자를 지급합니다.

비즈니스 로직의 동작을 이해하는 데 도움이 되는 추가 함수: CalcDividents() - 주어진 일수와 초기 예치 금액에 대해 누적된 배당금을 반환합니다 subtractTimestamp() - 현재 시간과 초기 예치 시점 간의 차이를 반환합니다

time_insecure 워크플로우

Stake_insecure()를 호출하여 초기 예치 금액으로 예치금을 추가합니다. CheckDividents_insecure()를 호출하여 예치 금액이 변경되지 않았는지 확인합니다. 클라이언트에서 로컬 시간을 변경한 후 CheckDividents_insecure()를 다시 호출합니다.

금융 공격: 시간을 1년 앞으로 옮기면 연 20%의 이자를 얻을 수 있었습니다.


성공적인 금융 공격

동일한 방식으로 GetHistoryForKey()에서도 트랜잭션 시간이 조작될 수 있음을 확인할 수 있습니다.

time_secure_ntp 워크플로우

이 체인코드 변형에서는 트랜잭션 시간을 NTP(Network Time Protocol) 서버에서 수신한 시간과 대조합니다(ntp 클라이언트 패키지 사용). 각 체인코드는 배포를 위해 자체 NTP 서버 주소를 가집니다(즉, 서로 다른 체인코드 패키지). 시간 편차가 발생하면 "wrong time" 오류가 표시됩니다. NTP 트래픽 데이터는 스푸핑될 수 있습니다(데이터가 평문으로 전송됨).


실패한 금융 공격

time_secure_nts 워크플로우

이 체인코드 변형에서는 트랜잭션 시간을 NTS(Network Time Security) 서버에서 수신한 시간과 대조합니다(nts 클라이언트 패키지 사용). 각 체인코드는 배포를 위해 자체 NTS 서버 주소를 가집니다(즉, 서로 다른 체인코드 패키지). 시간 편차가 발생하면 "wrong time" 오류가 표시됩니다.


실패한 금융 공격

time_secure_localtime 워크플로우

이 체인코드 변형에서는 트랜잭션 시간을 로컬타임(localtime, 즉 피어 노드의 시간)과 대조합니다. 시간 편차가 발생하면 "wrong time" 오류가 표시됩니다. 모든 피어 노드에서 정확한 시간이 필요하다는 점에 유의하세요.


실패한 금융 공격

시간 오라클

hlf-time-oracle은 Hyperledger Fabric 블록체인을 위한 체인코드로, 다른 체인코드에 정확한 시간을 제공합니다. hlf-time-oracle은 ntp 패키지와 nts 패키지를 기반으로 합니다. 따라서 블록체인 클라이언트에 의한 트랜잭션 시간 조작 가능성과 관련된 보안 문제를 해결합니다. 이 체인코드는 GetTimeNtp() 및 GetTimeNts() 함수를 제공합니다. 이 함수들을 호출하면 NTP(Network Time Protocol) 및 NTS(Network Time Security) 서버를 호출하게 됩니다. 이 서버들 중 하나에서 수신한 시간은 클라이언트 측에서 정의된 트랜잭션 시간의 정확성을 검증하는 데 사용할 수 있습니다. 블록체인 체인코드 개발자는 NTP 및 NTS 서버와 상호 작용하는 코드를 직접 작성하는 대신 hlf-time-oracle을 사용할 수 있습니다. hlf-time-oracle은 작동 중 블록체인에 어떠한 데이터도 저장하지 않습니다.

도구 다운로드