본문으로 건너뛰기
로그인 둘러보기
개발·코딩·데이터베이스 · 보안·개인정보 · 윈도우즈 유틸

Fluxzy

0

Fluxzy는 Fluxzy SAS에서 개발한 오픈소스 MITM(Man-In-The-Middle) HTTP 디버깅 프록시입니다.

HTTP 디버깅MITM 프록시네트워크 분석

소개

Fluxzy는 Fluxzy SAS에서 개발한 오픈소스 MITM(Man-In-The-Middle) HTTP 디버깅 프록시입니다. HTTP/1.1, HTTP/2, WebSocket 및 gRPC 트래픽을 인터셉트하고, 기록하며, 수정할 수 있는 기능을 제공합니다. CLI 도구, .NET 라이브러리, Docker 컨테이너 등 다양한 방식으로 사용할 수 있는 크로스플랫폼 도구입니다.

상세정보

트래픽 인터셉트 및 기록

  • HTTP/1.1, HTTP/2, WebSocket, gRPC 트래픽을 인터셉트하고 검사할 수 있습니다.
  • 인증된 트래픽(TLS)도 캡처할 수 있습니다.
  • 캡처된 트래픽을 PCAP 형식으로 내보내거나, Fluxzy 아카이브 또는 HAR 형식으로 저장할 수 있습니다.

트래픽 수정 및 제어

  • 요청 및 응답 헤더를 추가, 삭제, 수정할 수 있습니다.
  • 요청과 응답 본문을 변환하거나 모킹할 수 있습니다.
  • 연결을 리다이렉트하거나 중단하고, DNS 스푸핑을 수행할 수 있습니다.
  • 요청 및 응답 본문에 HTML 코드 스니펫을 주입할 수 있습니다.

구성 및 통합

  • YAML 형식의 규칙 파일을 사용하여 프록시 동작을 설정하고 구성할 수 있습니다.
  • CLI, .NET 애플리케이션, Docker 컨테이너等多种 Ways로 사용할 수 있습니다.
  • JA4 지문 및 사용자 정의 HTTP/2 설정을 모방할 수 있습니다.
  • 사용자 정의 인증서를 관리하고 호스트별로 특정 TLS 인증서를 지정할 수 있습니다.

지원 프록시 프로토콜

  • HTTP CONNECT: HTTPS 트래픽을 위한 표의 프로토콜입니다.
  • SOCKS5: 인증 및 사용자 이름/비밀번호 인증을 지원합니다 (RFC 1928).
  • 리버스 프록시: 백엔드 서비스 프록시를 위한 보안(TLS) 및 일반 HTTP 모드를 지원합니다.
  • 시스템 프록시: OS 프록시 설정을 통해 시스템 전체 인터셉트를 수행합니다.

CLI 설치 방법

Windows (winget):

winget install Fluxzy.Fluxzy

macOS (Homebrew):

brew tap haga-rak/fluxzy
brew install fluxzy

npm (Windows, macOS, Linux):

npm install -g @fluxzy/cli

설치 없이 직접 실행하려면:

npx @fluxzy/cli start --llo

기본 사용법

기본적으로 Fluxzy는 127.0.0.1:44344에서 바인딩됩니다. 규칙 파일을 사용하여 프록시 동작을 설정할 수 있습니다.

규칙 파일 예시:

rules:
  - filter:
      typeKind: requestHeaderFilter
      headerName: authorization
      operation: regex
      pattern: "Bearer (?<BEARER_TOKEN>.*)"
    action:
      typeKind: FileAppendAction
      filename: token-file.txt
      text: "${authority.host} --> ${user.BEARER_TOKEN}rn"
      runScope: RequestHeaderReceivedFromClient
  - filter:
      typeKind: anyFilter
    action:
      typeKind: AddResponseHeaderAction
      headerName: fluxzy
      headerValue: Passed through fluxzy

위 규칙 파일은 authorization 헤더에서 Bearer 토큰을 추출하여 파일에 저장하고, 모든 교환에 응답 헤더를 추가합니다.

규칙 파일을 사용하여 Fluxzy를 시작하려면:

fluxzy start -r rule.yaml --install-cert -sp -o output.fxzy -c

--install-cert, -sp, -o, -c, -r는 선택 사항입니다.

활용 예시

Fluxzy는 보안 테스트, 네트워크 디버깅, 트래픽 분석 등에 활용할 수 있습니다. 예를 들어, authorization 헤더에서 Bearer 토큰을 추출하여 로깅하거나, 특정 응답을 모킹하여 테스트 환경을 설정할 수 있습니다.

지원 환경

  • Windows: x64, ARM64
  • macOS: x64, ARM64
  • Linux: x64, ARM64

Docker 이미지도 Docker Hub에서 제공됩니다.

제한 사항 및 확인사항

  • 응답 본문이 초기 버퍼를 초과할 경우 전체를 메모리에 저장하여 검사하므로, 대용량 트래픽에서는 메모리 사용량이 증가할 수 있습니다.
  • 보안 테스트 목적으로만 사용해야 하며, 무단 트래픽 interception은 법적 제재를 받을 수 있습니다.

FAQ

Q: Fluxzy는 무료인가요?

A: Fluxzy는 MIT 라이선스 하에 배포되는 오픈소스 도구입니다.

Q: 어떤 프로토콜을 지원하나요?

A: HTTP/1.1, HTTP/2, WebSocket, gRPC 트래픽을 지원하며, SOCKS5 및 HTTP CONNECT 프록시 모드도 제공됩니다.

화면으로 보는 주요 기능

프록시 통계 및 요청 로그 화면

프록시 통계 및 요청 로그 화면

터미널 창 상단에는 'Proxy Statistics' 섹션이 표시되며, 'Exchanges: 276', 'Success: 264', 'Errors: 12', 'Connections: 58', 'Download: 725,1KB', 'Upload: 411,7KB', 'Output: None', 'Buffer: 276/2000', 'LIVE' 등의 통계 정보가 포함되어 있다. 하단에는 ID, TIME, METHOD, HOST, PATH, STATUS, SIZE, MS 열로 구성된 요청 로그 테이블이 있으며, 각 행은 HTTP 요청의 세부 정보를 보여준다. 테이블 상단에는 'pause', 'resume', 'd: discard', 'PgUp/PgDn: scroll', 'Home/End: jump', 'Ctrl+C: exit'와 같은 명령어 안내가 표시되어 있다.

시스템 요구사항

Fluxzy를 소스 코드에서 빌드하고 테스트하려면 .NET 10.0 SDK가 필요합니다. Windows 환경에서는 Git Bash가 요구됩니다. PCAP 파일 수집이나 인증서 설치 테스트에는 루트 권한이 필요한 libpcap 또는 동등한 패킷 캡처 라이브러리가 필요합니다.