보안 체크리스트
VoicePing의 보안 조치와 운영 현황은 다음과 같습니다.데이터 보호
통신 암호화
- 애플리케이션과 영상·음성 데이터 통신에는 TLS 1.3을 사용합니다.
- AWS ELB에서 HTTPS 통신을 강제합니다.
백업
- 실시 주기: 데이터베이스를 매월 백업
- 로그 보관: 서버 접근 로그는 보안 모니터링과 사고 조사를 위해 S3에 저장합니다. 애플리케이션 로그에는 이름, 이메일 주소, 음성 인식 내용과 같은 직접적인 개인정보가 기록되지 않도록 설계되어 있습니다. IP 주소처럼 개인과 연결될 수 있는 식별자가 포함된 경우 유효한 삭제 요청을 받은 날부터 30일 이내에 삭제하거나 복원할 수 없도록 익명화합니다. 로그는 운영·보안에 필요한 최소 기간만 보관하며 장기 보관하지 않습니다.
- BCP 대책: 백업 데이터를 여러 리전에 원격 보관
데이터 접근 제한
- 데이터베이스와 서버 접근은 AWS 보안 그룹을 통해 특정 IP 주소로 제한합니다.
- 고객사별 데이터는 데이터베이스에서 논리적으로 분리합니다.
가용성
가동률
- 서비스는 원칙적으로 24시간 365일 이용할 수 있습니다.
- SLA는 99.9% 이상입니다.
- 가동률 실적은 99.99% 이상입니다(서비스 운영 이후 수십 분 이상 지속된 서버 중단 없음).
장애 시 대응
- 소스 코드 변경 이력과 데이터베이스 백업을 통해 24시간 언제든 롤백(복구)할 수 있습니다.
- AWS CloudWatch 또는 자체 알림 시스템으로 서버 프로세스와 시스템 상태를 모니터링합니다.
- 시스템 중단을 감지하면 알림을 보냅니다.
계획 정지
- 매주 금요일 21:00경에 업데이트하며, 몇 초 동안 연결이 끊길 수 있습니다.
- 영업 시간 중 업데이트가 필요하면 이메일 또는 앱 내 채팅(Intercom)으로 실시간 안내합니다.
지원 체계
장애 발생 시 통지
- 이메일과 앱 내 채팅(Intercom)으로 안내합니다.
긴급 연락처
- 앱 내 채팅(Intercom) 또는 문의 양식으로 문의할 수 있습니다.
- 영업 시간(9:00~18:00)에는 일반적으로 5분 이내에 답변합니다.
사용자 관리
계정 관리
- 사용자 1명당 계정 1개
- 퇴사·이동 시 고객이 계정을 삭제할 수 있습니다.
비밀번호 관리
- 사용자가 비밀번호를 변경할 수 있습니다.
- 이메일 토큰 방식의 2단계 인증을 지원합니다.
웹 애플리케이션 보안
VoicePing은 다음과 같은 보안 대책을 실시하고 있습니다.SQL 인젝션 대책
- ORM을 통해 데이터베이스 작업을 수행합니다.
- 모든 SQL 문은 플레이스홀더를 사용해 구성합니다.
- 데이터베이스 계정에는 필요한 읽기·쓰기 권한만 부여합니다.
OS 커맨드 인젝션 대책
- 셸 실행은 기본적으로 수행하지 않음
- 셸에 가까운 레이어의 로직이 필요한 경우 안전성이 확인된 라이브러리를 통해서만 실행
경로명 파라미터/디렉토리 트래버설 대책
- 외부 호스팅 또는 DB에 데이터 저장
- 웹 서버 내 파일에 직접 접근하는 기능 없음
- 예측하기 어려운 무작위 파일명을 사용합니다.
세션 관리
- 세션 ID는 예측 불가능하고 충분한 길이의 랜덤 문자열 사용
- 세션 ID는 Cookie 사용 (URL 파라미터에 저장하지 않음)
- HTTPS 통신에 사용하는 Cookie에는 Secure 속성 사용
- 로그인이 필요 없는 페이지와 인증이 필요한 페이지를 분리합니다.
크로스 사이트 스크립팅 (XSS) 대책
- 대응하는 프론트엔드 라이브러리 사용
- AWS ELB에서 HTTPS 강제
- HTTP 응답 헤더의 Content-Type 필드에 문자 코드(charset) 지정
- Cookie에 HttpOnly 속성 부여
CSRF 대책
- 백엔드에서 POST 요청의 접근 권한을 확인합니다.
- Referer 확인
- 중요한 작업을 수행하면 등록된 이메일 주소로 알림을 보냅니다.
HTTP 헤더 인젝션 대책
- 백엔드 미들웨어에서 헤더 출력용 API 사용
클릭재킹 대책
- X-Frame-Options 헤더 필드 출력
- 유효한 세션이 없으면 실행 불가
- 중요한 처리는 마우스만으로 일련의 작업을 실행할 수 없도록 설계
버퍼 오버플로우 대책
- Node.js를 사용하여 직접 메모리에 접근 불가
- GitHub에서 종속 라이브러리를 정기적으로 검사하고, 취약점이 발견되면 업데이트 PR을 생성합니다.
접근 제어 및 인가 제어
- 매니저 권한에 대해서는 2단계 이메일 토큰 인증 이용 가능
- 인증과 별도로 권한 제어를 적용해 로그인 사용자의 사칭 접근을 방지합니다.
시스템 구성도
VoicePing의 시스템 구성 개요입니다. 모든 통신은 HTTPS 또는 암호화된 연결로 보호됩니다.- 데스크톱 앱 (Windows / Mac / Linux)
- 모바일 앱 (iOS / Android)
- 웹 앱 (브라우저 호환)
- Cloudflare CDN (콘텐츠 전송 네트워크)
- Google Cloud Storage (정적 호스팅)
- 로드 밸런서 (AWS)
- 비즈니스 서버 (API 키 인증)
- 음성 번역 및 음성 인식 서버 (온프레미스 지원 가능, API 키 인증)
- 데이터베이스 (Google Cloud SQL / RDB)
- JSON Storage(S3)를 통한 음성, 음성 인식, 이미지 데이터 저장
- 외부 API / 서드파티 서비스 (API 키 인증)