LEGAL · SECURITY POLICY

보안 정책 (Security Policy)

v1.1.0·최종 업데이트 2026-05-16

Veacon 보안 정책

본 문서는 Veacon 의 보안 원칙과 현재 구현 상태를 공개적으로 요약합니다. 본 정책은 개인정보처리방침 제10조 (안전성 확보 조치) 및 DPA 부속서 2 (TOMs) 와 동기화되어 있습니다. 세부 감사 보고서나 외부 침투 테스트 결과가 필요한 Enterprise 고객은 hello@veacon.io 로 요청해주십시오.


1. 인프라 및 암호화

1-1. 통신 암호화 (in transit)

  • 모든 API 및 웹 통신은 TLS 1.3 이상 으로 암호화됩니다.
  • HTTP 는 자동으로 HTTPS 로 리다이렉트되며, HSTS (HTTP Strict Transport Security) 헤더가 적용됩니다.
  • 보안 헤더: Content-Security-Policy, X-Content-Type-Options: nosniff, Referrer-Policy: strict-origin-when-cross-origin, Permissions-Policy 가 응답에 부여됩니다.

1-2. 저장 데이터 암호화 (at rest)

  • 데이터베이스 (Supabase Postgres) 는 Supabase / AWS RDS 의 표준 저장 암호화 (AES-256) 및 디스크 수준 암호화로 보호됩니다.
  • 백업도 동일 수준으로 암호화됩니다 (Supabase managed).
  • API Key 는 평문 저장 금지 — SHA-256 (BYTEA) 해시만 보관됩니다. 발급 직후 1회만 이용자에게 전체 평문이 노출되며, 이후 마스킹된 prefix 만 표시됩니다.
  • 환경 변수·시크릿은 Vercel Environment Variables (Sensitive 플래그) 및 GitHub Actions Secrets 에 저장되며, 평문 노출되지 않습니다.

1-3. 데이터 처리 리전

구성요소본사 소재지데이터 처리 리전
Vercel (서버리스 + 정적 호스팅)미국글로벌 edge (한국 사용자는 ICN edge), 함수는 사용자 가까운 region
Supabase Postgres (주 데이터베이스)미국한국 (AWS ap-northeast-2, Seoul)
Upstash Redis (rate limit · JWT 캐시)미국일본 (AWS ap-northeast-1, Tokyo)
Sentry (에러 추적)미국미국
Stripe (결제)미국글로벌
Resend (트랜잭션 메일)미국일본 (AWS SES Tokyo 경유)

핵심 운영 데이터 (Supabase) 는 한국 리전 에서 처리됩니다. 국외 이전 상세는 개인정보처리방침 제6조·제9조 및 DPA 제9조·부속서 4 를 참조하십시오.

2. 인증 및 권한 관리

2-1. 이용자 인증 (B2B API)

  • X-API-Key 헤더 또는 veacon_session 쿠키 (Syncle SSO 경로) 로 인증.
  • 세션 쿠키는 HttpOnly · Secure · SameSite=Lax 플래그로 설정되어 XSS·CSRF 에 강건. 상세: 쿠키 정책.
  • JWT 검증은 Syncle Supabase 에 위임 (ADR-007) 하며, 양성 캐시 TTL = min(60초, jwt.exp − now) 로 만료 시점 초과 캐싱을 차단합니다.

2-2. 내부 시스템 접근

  • 최소 권한 원칙 (Principle of Least Privilege) 적용
  • 프로덕션 시스템 관리자 작업은 MFA 강제 (Vercel, Supabase, GitHub, Stripe Dashboard 등 모든 admin 콘솔)
  • 프로덕션 DB 직접 접근은 허가받은 소수 인원만 가능하며, Supabase audit log 에 기록됩니다.
  • service_role key 는 서버사이드에서만 사용되며, 브라우저·SDK 에 노출되지 않습니다.

2-3. 시크릿 관리

  • 모든 API 키·DB 자격증명은 Vercel Environment Variables (Sensitive 플래그) 에 저장.
  • GitHub Actions 의 cron / 배치 작업은 GitHub Secrets 를 통해 접근.
  • 로컬 개발은 .env.local (gitignored) 에서만 처리되며, 저장소에 commit 되지 않습니다.
  • 시크릿 회전 정책: 침해 의심·이직·연 1회 정기 회전.

3. 애플리케이션 보안

3-1. 쿼터 집행

  • 모든 B2B 요청은 플랜별 월 호출 한도 (monthly_call_quota) 를 엄격히 집행합니다.
  • 쿼터 초과 시 HTTP 402 QUOTA_EXCEEDED 응답과 함께 다음 월 1일 자동 리셋 시각을 반환.
  • X-Quota-Limit · X-Quota-Used · X-Quota-Resets-At 헤더로 실시간 잔량 안내.

3-2. Rate Limit

  • 플랜별 분당 호출 제한 (rate_limit_per_min) 을 Upstash Redis 의 sliding window 알고리즘으로 전역 공유 집행.
  • 초과 시 HTTP 429Retry-After 헤더 반환.

3-3. CORS

  • Veacon 소유 origin (https://veacon.io, https://www.veacon.io, https://app.veacon.io, https://docs.veacon.io) 과 환경변수로 정의된 preview 정규식만 허용.
  • Access-Control-Allow-Credentials: true 는 검증된 origin 에 한해 부여.
  • 과거의 *.vercel.app 와일드카드는 2026-04-22 부로 제거되었으며, 임의 Vercel 배포가 credentials 포함 요청을 보낼 수 없습니다.

3-4. 의존성 및 코드 보안

  • Dependency 스캔: GitHub Dependabot 자동 PR + npm audit CI 게이트.
  • 타입 안전성: 모든 PR 에 tsc --noEmit 통과 의무화.
  • 시크릿 스캔: GitHub secret scanning + push protection 활성.
  • 외부 라이브러리 평가: 신규 dependency 추가 시 라이선스·유지보수성·취약점 이력 검토.

4. 데이터 프라이버시

4-1. k-anonymity

  • 모든 집계 데이터는 k ≥ 3 의 익명성 임계값을 통과해야만 반환됩니다 (MVP 기준).
  • 정식 운영 시 k ≥ 5 로 상향 예정.
  • 데이터베이스 제약 (CHECK constraint) 으로 강제되어, 애플리케이션 버그로도 우회 불가 (db/migrations/20260421000001_intel_schema.sql).

4-2. 원시 데이터 격리

  • 원천 데이터 제공처 (Syncle, RTMS, R-ONE 등) 의 원시 매물·예약 데이터는 Veacon 에 그대로 복제되지 않으며, 익명화·집계된 결과만 저장됩니다.
  • ETL 과정에서 개인 식별 정보 (PII) 는 제거 또는 해시 처리됩니다.

4-3. 이메일 처리 (정확화)

  • SSO 인증 식별자 (external_users.email_hash): 이메일의 SHA-256 해시만 저장, 복원 불가.
  • 연락용 이메일 (intel.api_consumers.contact_email): 평문 저장. 트랜잭션 발송 (영수증·보안 알림), 청구 의무 이행, 팀 초대를 위해 필수.
  • 두 값은 서로 다른 테이블에 보관되며, 마케팅 목적 수집은 별도 옵트인 후에만 이루어집니다 (현재 미수집).

4-4. 데이터 분류

분류예시보호 수준
Public공개 API 응답 (/api/public/*), 마케팅 페이지무제한
Internal운영 로그·메타데이터·집계 통계직원 접근만, 감사 로그
Confidential이용자 이메일 (평문), 결제 정보, API Key 해시최소 권한, 암호화, 감사 로그

5. 감사 로그 (Audit Trail)

  • API 호출 로그 (intel.api_call_logs): 모든 API 호출이 불변 (immutable) 기록. UPDATE · DELETE 는 Postgres RULE ... DO INSTEAD NOTHING 으로 차단 (migration:133-136). 보존 기간 최대 12개월.
  • Key 라이프사이클 로그 (intel.api_key_audit_log): 발급·회전·폐기 이벤트 기록. SOC 2 감사 추적용 보관 — 최대 24개월 (감사 의무 기간 고려).
  • 시스템 접근 기록 (Supabase audit log 및 Vercel access log): 최소 6개월 보존 (정보통신망법 시행령 제15조의2 근거).

6. 사고 대응 (Incident Response)

6-1. 침해 통지

  • B2B 위탁사 (Controller) 대상: 침해 인지 후 부당한 지체 없이, 늦어도 48시간 이내 이메일로 통지. 상세 절차 및 통지 정보는 DPA 제7조 참조.
  • 정보주체 통지: PIPA 제34조 (1,000명 이상 침해 시 72시간 KISA 신고 + 정보주체 통지) 및 GDPR Art. 33-34 절차에 따라 처리. 상세: 개인정보처리방침 제17조.

6-2. 운영 상태 공개

  • Status page (https://status.veacon.io) — 활성화 P1 단계 후. 현재 상태 및 과거 incident 공개.
  • 중대 사고 발생 시 영향받은 Enterprise 고객에게 post-mortem 보고서 를 14일 이내 제공.

6-3. 사업 연속성·복구 (BCP/DR)

  • 백업: Supabase managed 일일 자동 백업 + Point-in-Time Recovery (PITR) — 7일 보존.
  • RPO (Recovery Point Objective): ≤ 1시간 (PITR continuous).
  • RTO (Recovery Time Objective): ≤ 24시간 (managed DB restore + Vercel zero-downtime deploy).
  • 장애 시나리오 훈련: 분기 1회 내부 복구 시뮬레이션 (P10 로드맵부터 공식화).

7. 취약점 공개 (Vulnerability Disclosure)

7-1. 책임 있는 공개 (Responsible Disclosure)

Veacon 에서 보안 취약점을 발견하신 경우 아래 원칙을 따라주십시오.

  • 연락처: hello@veacon.io — 제목에 [Security] prefix 를 반드시 포함해주십시오 (별도 PSIRT inbox 분기 처리)
  • 요청 사항: 취약점 상세, 재현 방법, 영향 범위, 제보자 연락처
  • 공개 전 협조 기간: 90일 (coordinated disclosure)
  • 응답 SLA:
    • 최초 응답: 24시간 이내
    • Severity 분류 통지: 영업일 3일 이내
    • 중대 (Critical / High) 취약점 조치: 7일 이내
    • Medium / Low: 30 / 90일 이내

7-2. Safe Harbor

다음 조건을 모두 충족하는 선의의 연구 활동에 대해 회사는 법적 조치를 취하지 않습니다.

  • 회사 및 다른 이용자의 데이터에 접근하지 않을 것 (또는 최소한의 증명용 접근 후 즉시 중단·삭제)
  • 서비스 가용성을 해치지 않을 것 (DDoS · 대량 자동 스캔 · 무차별 brute force 금지)
  • 공개는 회사의 조치 완료 후 또는 90일 경과 후에 수행할 것
  • 제3자 (이용자·재수탁사) 데이터를 추가 유포·판매하지 않을 것

7-3. Bug Bounty

현재 monetary reward 프로그램은 운영하지 않습니다. 다만, 검증된 신고에 대해서는 사전 동의 시 보안 페이지 (/security) 에 Acknowledgements 항목으로 공개 사례하며, 향후 정식 bug bounty 로 확장할 예정입니다 (P10 이후).

8. 인사 보안 (Personnel Security)

  • 고용 전 검증: 신원 확인 및 reference check
  • 비밀유지: 모든 임직원 · 계약자 사전 NDA 체결. 이용자 정보 접근 권한자는 별도 비밀유지 서약 (DPA 제13조).
  • 권한 회수: 퇴사·계약 종료 후 24시간 이내 모든 시스템 접근 권한 회수 + 시크릿 회전.
  • 보안 교육: 신규 입사 시 OWASP Top 10 · 개인정보 처리 · 사고 대응 절차 교육. 연 1회 갱신 교육.

9. 변경 관리 (Change Management)

  • Code Review 의무: 모든 production 변경은 PR 단위 review 후 main 머지. solo 푸시 금지.
  • CI 게이트: typecheck · 테스트 · 빌드 · dependency 스캔 통과 후에만 배포.
  • 시크릿 변경: 환경변수 변경은 founder 승인 후 Vercel Dashboard 에서 처리.
  • 마이그레이션: DB schema 변경은 별도 db/migrations/*.sql 파일로 commit 되며, idempotent 패턴 (CREATE ... IF NOT EXISTS) 강제.
  • 로드맵·ADR: 중대 결정은 docs/adr/ADR-XXX.md 로 기록.

10. 컴플라이언스 로드맵

항목상태시점
개인정보 보호법 (PIPA) 준수운영 중
정보통신망법 시행령 제15조의2 (접근 로그 6개월)운영 중
k-anonymity ≥ 3 강제운영 중 (MVP)
k-anonymity ≥ 5 강제예정정식 운영 시점
외부 침투 테스트 (연 1회)예정2027 년부터
SOC 2 Type II · ISO 27001로드맵P10 단계 (정식 시점 별도 공지)
Bug Bounty 정식 운영로드맵P10 이후

본 로드맵은 DPA 제8조 (감사) 및 부속서 2 (TOMs) 와 동기화됩니다. 시점이 변동되는 경우 본 페이지 갱신 후 Enterprise 고객에게 통지합니다.

11. 제3자 서비스 (재수탁사)

Veacon 이 의존하는 주요 제3자 서비스는 모두 공인된 보안 표준을 갖추고 있습니다. 처리 정보·국외이전 상세는 개인정보처리방침 제5조 및 DPA 부속서 3 참조.

서비스인증·표준역할
SupabaseSOC 2 Type II, HIPAA-ready데이터베이스·인증 (한국 ICN 리전)
VercelSOC 2 Type II, GDPR 적격서버리스 런타임·정적 호스팅, cookieless 분석
UpstashSOC 2 Type IIRate Limit · JWT 캐시 (Tokyo 리전)
StripePCI-DSS Level 1, SOC 2 Type II결제 처리
ResendSOC 2 Type II트랜잭션 메일
Sentry (Functional Software)SOC 2 Type II, ISO 27001에러·예외 추적 (US)

12. 관련 정책

13. 문의


시행일: 2026-05-16 · 버전: v1.1.0 다음 검토 예정일: 2026-11-16 (6개월 주기)