해결책
보안 감사, API 디버깅, 통합 작업은 모두 같은 벽에 부딪힌다. 트래픽이 TLS로 암호화되어 있기 때문에, 애플리케이션이 실제로 무엇을 전송하는지 알아내려면 보통 중간자 프록시를 세우고, 인증서를 설치하고, 모든 클라이언트를 재구성하고, 이제는 변경해버린 경로에서 지연까지 감수해야 한다.
관측성 기업 Qpoint의 Qtap은 암호화가 실제로 일어나는 지점에서 문제를 공략한다. 이 eBPF 에이전트는 각 프로세스의 바이너리와 라이브러리에서 TLS 심볼을 스캔하고 사용자 공간 프로브로 SSL_read와 SSL_write를 후킹하여, 데이터를 원래의 암호화되지 않은 형태로 캡처하고 프록시가 결코 볼 수 없는 컨텍스트(프로세스, 컨테이너, 호스트, 사용자, 프로토콜)를 부착한다. 정적으로 링크된 프로그램은 바이너리를 직접 프로빙하여 처리하며, 관리자들은 출시 스레드에서 Go 바이너리가 버전별로 미리 계산된 구조체 오프셋과 ELF 스캐너로 커버된다고 설명했다.
그 대가는 계측 없는 검사다. 애플리케이션 변경도, 프록시도, 인증서 관리도 없으며, 최소한의 오버헤드로 대역 외(out-of-band) 동작한다는 주장이다. 이 프로젝트는 2025년 5월 Hacker News에 259점과 78개 댓글로 출시되었고, 카탈로그 작성 시점까지 Apache-2.0 저장소는 1.5k 스타와 289개 커밋을 보였으며, Qpoint는 동일한 에이전트 위에 자사의 이그레스 관측성 제품을 구축하고 있다.
이룬 성과
트래픽이 지나가는 곳이 아니라 암호화가 시작되는 곳에서 평문을 읽는다
성공한 이유
SSL_read와 SSL_write를 후킹하면 관찰자를 평문이 존재하는 정확한 지점에 배치하므로, 전송 중인 데이터를 복호화할 필요가 없다.
프록시도 인증서도 없다는 것은 레거시 시스템, 서드파티 바이너리, 단명 프로세스를 건드리지 않고 검사할 수 있음을 의미한다.
커널의 시점은 프로세스, 컨테이너, 호스트, 사용자 컨텍스트를 담고 있으며, 네트워크 수준 프록시는 이를 귀속시킬 수 없다.
트래픽이 재라우팅되지 않고 관찰되기 때문에, 애플리케이션 자체의 연결 경로와 지연은 변하지 않는다.
데모 모드와 함께 에이전트를 오픈소스화한 덕분에 커뮤니티가 접근법을 검증할 수 있었고, Go 바이너리 문제가 공개적으로 제기되고 답변된 것도 그 덕분이다.
암호화된 트래픽은 그것이 생성되는 경계에서 평문이다. 그곳에서 커널 수준 가시성으로 가로채면, 단 하나의 애플리케이션도 수정하지 않고 검사할 수 있다.
그 후
배치가 이 프로젝트를 카탈로그화할 무렵, qtap은 Apache 2.0 라이선스 하에 1.5k 스타와 289개 커밋을 보였으며, 저자들은 여전히 초기 개발 단계라고 부르고 있었다. 저장소에는 Chrome DevTools 스타일의 웹 인터페이스, OpenTelemetry 트레이스 및 메트릭 엔드포인트, 샘플 Grafana 대시보드, 원 커맨드 데모 및 설치 스크립트가 포함되어 있으며, 배후 기업 Qpoint는 동일한 에이전트 위에 이그레스 트래픽용 인벤토리 및 알림 제품을 구축하고 있다.
근거 확인하기
출처
- Show HN: Using eBPF to see through encryption without a proxy Hacker News · news.ycombinator.com ·
- qpoint-io/qtap – eBPF agent that captures pre-encrypted traffic GitHub · github.com