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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
jvmxray — 자바 애플리케이션의 보호된 리소스 접근을 로그 메시지로 외부화합니다. | Kitploit
도구/GitHubGitHub/spoofzu/jvmxray
Dynamic Analysis (Sandboxing)Vulnerability AnalysisCode AnalysisIncident Response
GitHubspoofzu/jvmxray

jvmxray

자바 애플리케이션의 보호된 리소스 접근을 로그 메시지로 외부화합니다.

저장소 보기
46552개월 전Kitploit 검토 완료

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

JVMXRay: Java 애플리케이션 보안 모니터링

Black Hat Arsenal USA 2020 Java License Development Status

JVMXRay 로고

Duke 역사

문서 | 업스트림 변경사항 | 프로젝트 블로그

JVMXRay는 바이트코드 주입을 통해 Java 애플리케이션을 실시간으로 모니터링하여 코드 변경 없이 취약점과 의심스러운 활동을 탐지합니다. 19개의 모듈식 센서가 파일 액세스, 네트워크 연결, SQL 쿼리, 암호화 작업, 인증, 프로세스 실행 등을 추적하여 자동 교차 센서 상관 분석으로 구조화된 기계 판독 가능 보안 이벤트를 생성합니다.


빠른 시작

root@kitploit:~
git clone https://github.com/spoofzu/jvmxray.git
cd jvmxray
mvn clean install

Maven의 테스트 단계에서 Turtle이라는 작은 프로그램이 새로 빌드된 JVMXRay 에이전트 아래에서 실행됩니다. Turtle은 파일 I/O, 암호화, 프로세스 실행, 직렬화, 리플렉션 및 기타 센서를 트리거하는 활동을 수행하므로, 성공적인 빌드만으로도 ./target/test-jvmxray/에서 실제 보안 이벤트 로그를 탐색할 수 있습니다. 빠른 실험을 위해 ./target/test-jvmxray/common/data/jvmxray-test.db에 SQLite 데이터베이스도 생성됩니다. 자세한 내용은 문서를 참조하세요.

자체 애플리케이션에 Java 에이전트로 배포:

root@kitploit:~
java -javaagent:target/jvmxray-0.0.1-agent.jar -jar yourapp.jar

이점

  • 코드 변경 불필요 — 디버거처럼 시작 시 모든 Java 애플리케이션에 연결됩니다. 소스 수정, 재컴파일, 라이브러리 종속성 추가가 필요 없습니다.
  • AI에 적합한 구조화된 이벤트 — 센서는 비정형 로그 라인이 아닌 기계 판독 가능한 보안 이벤트를 생성합니다. AI 도구를 사용하여 애플리케이션 로그처럼 애플리케이션 동작을 분석하세요.
  • 로깅 인프라에 적합 — 이벤트는 Logback 로그 메시지입니다. Splunk, ELK, DataDog, Kafka 또는 Logback 생태계가 지원하는 모든 대상으로 라우팅하세요.
  • 공격 체인 재구성 — trace_id와 scope_chain으로 상관된 이벤트를 통해 SOC 팀이 단일 쿼리로 HTTP 요청부터 SQL 인젝션, 데이터 유출까지 인시던트를 추적할 수 있습니다.
  • 조정 가능한 오버헤드 — 표준 Logback 로그 레벨 속성으로 어떤 센서가 어떤 상세 수준으로 작동할지 제어합니다. 재빌드 없이 환경별로 센서를 켜거나 끌 수 있습니다.

명심하세요, JVMXRay는 Java 애플리케이션이 무엇을 하는지에 대한 진실의 원천(source of truth)이지 분석 엔진이 아닙니다. 분석은 중앙 집중식 로깅 솔루션 및/또는 AI 도구 프로젝트에서 제공됩니다.


센서

이벤트 상관 분석

모든 센서 이벤트에는 공격 체인 재구성을 위한 상관 필드가 포함됩니다.

HTTP>Serialization>Reflection>Process와 같은 범위 체인은 한눈에 역직렬화 공격 시그니처입니다. TRACE_ID 열은 데이터베이스에 인덱싱되어 빠른 상관 쿼리를 지원합니다.

아키텍처

root@kitploit:~
java -javaagent:jvmxray-agent.jar -jar app.jar
         |
    AgentBootstrap (isolated classloader)
         |
    ByteBuddy installs sensor interceptors
         |
    Sensors fire on method entry/exit
         |
    LogProxy merges MCC correlation context
         |
    +----------+----------+----------+
    | SQLite   | File     | Socket   |
    | Appender | Appender | Appender |
    +----------+----------+----------+
  • Java 17, ByteBuddy 1.14.17 (바이트코드 주입)
  • Logback + SLF4J (엔터프라이즈 로깅, Splunk, ELK, DataDog 호환)
  • 다중 데이터베이스: SQLite (개발), MySQL, Cassandra (프로덕션)
  • MCC (Mapped Correlation Context): TTL 정리를 통한 스레드 로컬 범위 추적

문서

  • 에이전트 참조 — 센서 구성, 이벤트 필드, 데이터베이스 스키마
  • 공통 구성 요소 — 데이터베이스 설정 및 유틸리티
  • 변경 로그 — 상세 릴리스 변경 사항
  • 뉴스 아카이브 — 프로젝트 역사

감사의 말

이 프로젝트는 다음에서 가져온 아이디어, 아키텍처 및 일부 코드를 사용하여 개발되었습니다.

  • Anthropic의 Claude Code CLI, Anthropic
  • 일부 아이디어를 기반으로 한 바이트코드 아키텍처, Terse Systems
  • QOS.ch Sarl Switzerland의 Logback 로깅 프레임워크, QOS.ch
  • Apache Software Foundation, Apache Software Foundation

기여자

Milton Smith — 프로젝트 창시자, 리더

고지: JVMXRay는 Oracle Corporation의 승인, 보증 또는 제휴를 받지 않았습니다.

도구 다운로드
센서모니터링 대상
파일 I/O파일 읽기, 쓰기, 삭제, 권한, 심볼릭 링크(경로 확인 포함) 및 집계 I/O 통계
네트워크소켓 연결/수락/바인드/닫기, TLS 감지, 사설 IP 분류, 타이밍
SQL매개변수화 감지, 작업 유형, 지속 시간, 연결 메타데이터를 포함한 쿼리 캡처
HTTP보안 헤더 분석, 사용자/세션 상관 관계를 포함한 요청/응답
프로세스ProcessBuilder.start() 및 Runtime.exec(), 명령 인수, 지속 시간, 종료 상태
암호화약한 알고리즘 감지 및 키 강도 검증을 포함한 Cipher/KeyStore/MessageDigest/SSL
인증세션 작업, JAAS 로그인, Spring Security 인증, 보안 주체 쿼리(성공/실패 추적 포함)
API 호출HttpClient.send() (URI, 메서드, 호스트, TLS, 응답 상태, 타이밍 포함)
스크립트 엔진엔진 식별, 콘텐츠 해싱, 의심스러운 패턴 감지, 위험 수준을 포함한 ScriptEngine.eval()
직렬화가젯 체인 감지를 포함한 Java 네이티브, Jackson, Gson, XStream 역직렬화
리플렉션위협 분류를 포함한 Class.forName, Method.invoke, Field 액세스, setAccessible
구성보안 주석이 포함된 시스템 속성, 환경 변수, Properties 파일, Preferences
라이브러리SHA-256, Maven 좌표, 패키지 인벤토리를 포함한 정적/동적 JAR 로딩
모니터JVM 상태: 메모리, 스레드, GC, CPU, 열린 파일, 데드락 감지 (60초 간격)
처리되지 않은 예외충돌 진단: 전체 스택, 메모리 상태, 스레드 덤프, 원인 체인, 인시던트 ID
앱 초기화일회성 시작 캡처: JVM 버전, OS, 컨테이너 감지, 환경 변수 (편집됨)
데이터 전송InputStream.read() 바이트 카운팅 (현재 비활성화 — 너무 광범위함)
스레드스레드 수명 주기 모니터링 (현재 비활성화 — 재귀 로깅 수정 필요)
메모리메모리 할당 추적 (현재 비활성화 — 재귀 로깅 수정 필요)
필드예시목적
trace_ida1b2c3d4e5f6동일한 실행 컨텍스트의 모든 이벤트 연결
scope_chainHTTP>SQL>FileIO중첩 센서 경로 — "보안 스택트레이스"
parent_scopeSQL트리 재구성을 위한 직계 부모
scope_depth3중첩 수준 — 깊이 6 이상은 조사 필요