1. 개요
이 페이지는 Brainpercent, LLC(미국 델라웨어)가 운영하는 Brainpercent에서 귀하의 데이터를 보호하는 보안 조치를 설명합니다. 오늘날 실제로 갖춰진 것만 기술합니다. 보유하지 않은 인증을 주장하지 않습니다. 개인 데이터 처리 방식은 개인정보 처리방침과 데이터 처리 부속서(DPA)를 참조하세요.
2. 암호화
귀하의 데이터는 모든 단계에서 암호화됩니다:
- 저장 시: 데이터베이스와 파일 스토리지에 AES-256 암호화(Supabase Postgres 및 Storage, EU 프랑크푸르트 리전에 호스팅).
- 연결된 계정 토큰: 연결된 소셜 계정의 OAuth 토큰은 비밀값마다 고유한 초기화 벡터와 인증 태그를 사용하는 AES-256-GCM으로 애플리케이션 수준에서 추가 암호화됩니다.
- 전송 시: 브라우저, 당사 서버, 서비스 제공업체 간 모든 연결에 TLS 1.2 이상을 사용합니다.
3. 접근 제어
귀하의 데이터에 대한 접근은 여러 계층에서 제한됩니다:
- 행 수준 보안: Postgres 행 수준 보안(RLS)이 데이터베이스 수준에서 모든 쿼리를 귀하 자신의 사용자로 한정하므로, 한 사용자가 다른 사용자의 행을 읽을 수 없습니다.
- 역할 분리: 데이터베이스 클라이언트는 역할별로 분리됩니다. 브라우저에서 실행되는 클라이언트는 관리자 자격 증명을 절대 보유하지 않으며, 권한 있는 작업은 서버 측에서만 실행됩니다.
- 암호화된 시크릿: API 키와 환경 시크릿은 Vercel과 Supabase에 암호화되어 저장되며 소스 관리에 커밋되지 않습니다.
4. 애플리케이션 보안
애플리케이션과 그 통합은 강화되어 있습니다:
- 보안 헤더: 응답에 HSTS 및 추가 보안 헤더를 설정하여 HTTPS를 강제하고 일반적인 웹 공격 표면을 줄입니다.
- 웹훅 서명 검증: 수신 웹훅(Stripe, Inngest)은 처리 전에 암호화 서명을 검증합니다.
- 속도 제한: 인증 엔드포인트의 분산 속도 제한이 크리덴셜 스터핑과 무차별 대입 시도를 늦춥니다.
5. 결제 보안
결제 카드 데이터는 PCI-DSS 인증을 받은 결제 처리업체인 Stripe가 전적으로 처리합니다. 카드 번호는 당사 서버에 절대 닿지 않으며 당사는 이를 저장하지 않습니다. Stripe가 제공하는 비민감 참조 정보(고객 ID, 구독 ID 등)만 저장합니다.
6. 모니터링 및 사고 대응
당사는 문제를 감시하며, 중요한 경우 알릴 것을 약속합니다:
- 오류 모니터링: 애플리케이션 오류는 Sentry를 통해 수집 및 모니터링됩니다.
- 침해 통지: 데이터 침해가 귀하의 개인 데이터에 영향을 미치는 경우, 법률이 요구하는 곳에서는(GDPR 제33조 등) 72시간 이내에 영향받은 사용자와 관련 당국에 통지합니다.
7. 현재의 한계
당사는 보안 연극보다 정직을 선호합니다. 아직 갖추지 못한 것은 다음과 같습니다:
- 1인 운영 회사: Brainpercent는 현재 한 사람이 구축하고 운영합니다. 24시간 보안팀도, 여러 사람 간의 직무 분리도 없습니다. 프로덕션 접근은 그 한 사람으로 제한되며, 이는 내부 공격 표면도 최소로 유지합니다.
- SOC 2 / ISO 27001: 아직 없습니다. SOC 2, ISO 27001 또는 보유하지 않은 다른 어떤 인증도 주장하지 않으며, 제3자 침투 테스트도 완료하지 않았습니다.
8. 책임 있는 공개
보안 취약점을 발견했다고 생각되면 다음 주소로 이메일을 보내세요: edward@brainpercent.com 제목은 "Security"로 해주세요.
재현 단계를 포함해 주세요. 다른 사용자의 데이터에 접근하거나, 서비스를 저하시키거나, 당사가 수정할 합리적인 기회를 갖기 전에 문제를 공개하지 마세요. 모든 신고를 읽으며 72시간 이내 응답을 목표로 합니다.