Launch HN: JumpWire (YC W22) – 데이터베이스 내 고객 데이터를 쉽게 암호화하세요
요약
JumpWire는 데이터베이스 내의 민감한 고객 데이터(PII)를 자동으로 암호화하는 보안 도구입니다. 애플리케이션 코드 수정 없이 투명한 프록시 방식으로 작동하며, 사용자가 정의한 정책에 따라 특정 필드를 암호화, 복호화, 또는 감사할 수 있습니다.
핵심 포인트
- 애플리케이션 코드나 클라이언트 변경 없이 데이터베이스 프로토콜을 구현한 프록시 방식으로 작동합니다.
- 사용자가 정의한 정책에 따라 이메일, 이름 등 특정 PII 필드만 선택적으로 암호화할 수 있습니다.
- 기존의 복잡한 커스텀 암호화 로직이나 데이터 분할 방식(Data Vault)의 유지보수 비용을 절감합니다.
- Docker 컨테이너 클러스터를 통한 셀프 호스팅 방식을 지원하여 보안성을 높였습니다.
안녕하세요 HN! 저희는 JumpWire(https://jumpwire.ai)의 공동 창업자인 William과 Ryan입니다. JumpWire는 데이터베이스에 저장된 민감한 데이터의 컬럼(column)을 암호화하는 보안 도구로, 어떤 백엔드 애플리케이션과도 자동으로 연동되어 작동합니다.
저희는 스타트업을 운영해 왔고(Ryan은 N26의 엔지니어링 디렉터였습니다), 빅테크 기업에서도 근무했습니다(William은 Spotify의 SRE였습니다). 모든 회사에서 데이터가 통제 불능 상태로 퍼져나가는 동일한 패턴을 목격했습니다. 이는 마치 추잡한 비밀처럼 느껴졌습니다. 수백 명의 직원이 내부 시스템을 통해 고객의 개인정보(PII)에 접근 권한을 부여받고 있었습니다. 데이터를 보호할 책임이 있는 엔지니어들은 조직 전체에서 사용되는 점점 늘어나는 SaaS 또는 내부 도구 목록과 경쟁하게 되며, 결국 부실한 접근 관리(access management) 워크플로우를 사용하는 쪽으로 회귀하게 됩니다. 접근 권한을 제어함으로써 데이터를 보호하려는 시도 자체가 위험한 제안입니다. 접근 권한 탈취로 인한 데이터 유출은 너무나 빈번하게 발생하는 사건이 되었습니다. 최근의 예로 9월에 발생한 Uber 계약업체 침해 사고를 들 수 있습니다.
접근 제어(access control) 방식의 한계를 넘어서는 기업들은 보통 두 가지 중 하나를 선택합니다. 개발자가 데이터를 암호화/복호화하기 위해 모든 애플리케이션에 커스텀 로직을 작성하거나, 일부 필드는 데이터 볼트(data vault)에 두고 나머지는 메인 데이터베이스에 두는 방식으로 데이터를 분할합니다. 두 옵션 모두 구현 작업과 지속적인 유지보수 측면에서 비용이 많이 듭니다. 저희는 PII를 보조 데이터베이스로 세척(scrubbing)하기 위한 ETL 파이프라인을 유지보수하는 데에만 전념하는 팀 전체를 보기도 했습니다!
JumpWire는 데이터베이스와 API에서 민감한 정보를 포함하는 필드를 식별함으로써 데이터 암호화를 자동화합니다. 개발자가 애플리케이션을 수정하거나 접근 제어 규칙을 관리할 필요 없이 이 작업을 수행합니다. 사용자는 데이터가 어떻게 처리되어야 하는지를 결정하는 정책을 정의합니다. 예를 들어 '사용자(user)' 레코드의 경우, 이메일 주소, 이름, 생년월일은 'PII'로 라벨링되어 암호화되는 반면, 가입 날짜와 좋아하는 치즈 종류는 암호화되지 않도록 설정할 수 있습니다.
JumpWire는 애플리케이션과 데이터베이스 사이의 투명한 프록시 (Proxy)입니다. 애플리케이션은 데이터베이스에 직접 연결할 때와 동일한 라이브러리를 사용하여 연결하며, JumpWire는 쿼리 (Query)를 전달하기 전에 이를 가로채고 검사합니다. 사용자가 정의한 정책 (Policy)에 따라, 요청과 응답이 프록시를 통해 흐르는 동안 개별 필드를 암호화/복호화하거나, 널 처리 (Null out) 또는 감사 (Audit)할 수 있습니다. 이러한 정책은 세밀하게 설계되어 테이블별 스키마 (Schema)에 매핑됩니다. 예를 들어, 정책이 모든 PII를 암호화하도록 설정되어 있고, 사용자 테이블의 스키마에 이메일 주소가 PII로 표시되어 있다면 해당 규칙이 적용됩니다. 또한, 필요한 경우 애플리케이션의 일부가 정책을 우회할 수 있도록 서로 다른 액세스 제어 (Access control)를 적용할 수 있습니다.
저희의 프록시가 기반이 되는 데이터베이스 프로토콜 (Protocol)을 구현하기 때문에, JumpWire와 함께 작동하기 위해 애플리케이션 코드나 클라이언트를 변경할 필요가 없습니다.
이 제품은 셀프 호스팅 (Self-hosted) 방식으로 구축되었습니다. 핵심 구성 요소인 프록시 엔진 (Proxy engine)은 사용자의 네트워크에서 Docker 컨테이너 클러스터로 실행됩니다. 웹 인터페이스 (Web interface)는 기본적으로 저희가 운영하지만, 셀프 호스팅도 가능합니다. 저희 엔진은 데이터베이스 자격 증명(Credentials) 및 암호화 키와 같은 민감한 설정 데이터를 저장하기 위해 사용자의 AWS KMS 또는 HashiCorp Vault 설치 환경을 사용합니다. 이를 통해 기밀 데이터가 인터넷을 통해 전송되지 않도록 보장하며, 사용자가 데이터 인프라와 키에 대한 완전한 제어권을 유지할 수 있습니다. 또한, 시작을 쉽게 하거나 스테이징 (Staging) 환경에서 테스트해 볼 수 있도록 호스팅된 Vault 옵션도 제공합니다.
저희의 데이터베이스 프록시는 PostgreSQL 및 MySQL/MariaDB를 지원하며, DynamoDB는 베타 (Beta) 버전입니다. 또한, 데이터베이스에 직접 연결하는 대신 OpenAPI 명세 (Specs)를 사용하는 초기 알파 (Alpha) 단계의 API 프록시도 준비 중입니다.
사실 저희는 이전에 참여했던 스타트업들(네오뱅크 및 결제 API 기업)에서도 이와 유사한(하지만 미완성된) 버전들을 구축한 적이 있었지만, 그것은 항상 백엔드 애플리케이션 코드 (Backend application code)의 일부였습니다. 저희는 이것을 애플리케이션에서 완전히 추상화하여, 대신 설정 (Configuration)을 통해 통합할 수 있다는 점을 깨달았습니다. 이렇게 하면 데이터 정책 (Data policies)이 변경될 때마다 애플리케이션 코드를 업데이트할 필요가 없으므로 유지보수가 더 쉬워질 것입니다. 하지만 다른 회사들에서는 이것이 핵심 제품 (Core products)과 너무 동떨어져 있었기 때문에 이를 구축하는 것이 결코 실행 가능하지 않았습니다. 그래서 저희는 이를 실행하기 위해 JumpWire를 시작하기로 결정했습니다.
소규모 환경에서 사용할 수 있는 무료 버전 (Free-as-in-beer version)의 제품을 제공하고 있습니다. 그 이후에는 구성된 데이터베이스 또는 API의 수에 따라 월간 구독료를 부과합니다.
저희는 아직 초기 단계이며, 저희가 만들고 있는 것에 대한 여러분의 생각뿐만 아니라 데이터 보안 (Data security)에 대한 일반적인 의견도 듣고 싶습니다. 감사합니다!
AI 자동 생성 콘텐츠
본 콘텐츠는 HN Show HN (AI)의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기