"우리는 작은 스타트업이라 해커들 관심 없을 거예요."
이건 가장 위험한 생각이에요. 작은 회사일수록 보안이 취약해서 오히려 공격 대상이 되기 쉬워요.
오늘은 스타트업이 최소한으로 지켜야 할 보안 체크리스트를 정리해드릴게요.
왜 보안이 중요한가요?
실제 사례
- A 스타트업: DB 유출로 고객 10만 명 개인정보 노출. 과태료 + 신뢰 상실로 폐업.
- B 스타트업: 랜섬웨어 감염. 백업 없어서 데이터 전부 손실.
- C 스타트업: 관리자 페이지 해킹. 결제 정보 탈취.
보안 사고의 비용
- 직접 비용: 복구, 과태료, 법적 비용
- 간접 비용: 신뢰 하락, 고객 이탈, 기업 가치 하락
작을 때 보안에 투자하는 게 훨씬 저렴해요.
기본 보안 체크리스트
1. HTTPS 필수
왜? HTTP는 데이터가 암호화 안 됨. 중간에서 가로챌 수 있음.
어떻게?
- SSL 인증서 적용 (Let's Encrypt 무료)
- 모든 페이지 HTTPS 강제
- HTTP → HTTPS 리다이렉트
2. 비밀번호 안전하게 저장
안 좋은 예:
// 절대 하면 안 됨
password = "1234"
db.save(password)
좋은 예:
// 해싱 후 저장
hashedPassword = bcrypt.hash("1234")
db.save(hashedPassword)
체크:
- 비밀번호 해싱 (bcrypt, Argon2)
- 평문 저장 절대 금지
- 솔트(Salt) 적용
3. SQL Injection 방지
안 좋은 예:
SELECT * FROM users WHERE id = '사용자입력'
공격자가 ' OR '1'='1 입력하면 모든 데이터 노출.
좋은 예:
SELECT * FROM users WHERE id = ?
-- 파라미터 바인딩 사용
체크:
- 파라미터 바인딩 사용
- ORM 사용 (직접 쿼리 지양)
- 입력값 검증
4. XSS (Cross-Site Scripting) 방지
문제:
사용자가 <script>악성코드</script> 입력하면 다른 사용자에게 실행됨.
해결:
- 사용자 입력 이스케이프
- CSP (Content Security Policy) 설정
- React 등 프레임워크 기본 보호 활용
5. 인증/인가 제대로
체크:
- JWT 안전하게 관리
- 토큰 만료 시간 설정
- 권한 체크 철저히 (관리자/일반 사용자)
- 로그아웃 시 토큰 무효화
6. 민감 정보 보호
절대 하면 안 되는 것:
- 소스코드에 API 키 하드코딩
- .env 파일 깃에 커밋
- 로그에 비밀번호 출력
해야 하는 것:
- 환경변수로 관리
- .gitignore에 민감 파일 추가
- 시크릿 관리 서비스 사용 (AWS Secrets Manager 등)
7. 접근 제어
체크:
- 관리자 페이지 IP 제한
- 불필요한 포트 닫기
- SSH 키 인증 사용
- 루트 계정 직접 접속 금지
8. 백업
체크:
- 자동 백업 설정
- 백업 복원 테스트
- 백업 데이터 암호화
- 최소 3곳에 보관 (3-2-1 규칙)
개인정보보호법 준수
필수 조치
1. 개인정보 처리방침 게시
- 수집 항목
- 수집 목적
- 보유 기간
- 제3자 제공 여부
2. 수집 동의
- 필수/선택 항목 구분
- 명시적 동의 받기
3. 암호화
- 비밀번호 해싱
- 주민번호 등 고유식별정보 암호화
- 전송 시 SSL/TLS
4. 접근 기록
- 개인정보 접근 로그 기록
- 최소 6개월 보관
과태료
| 위반 내용 | 과태료 |
|---|---|
| 안전조치 의무 위반 | 최대 5억원 |
| 처리방침 미게시 | 최대 1천만원 |
| 동의 없이 수집 | 최대 5천만원 |
외주 개발 시 보안
계약 시 명시
보안 조항 예시
1. 개발 환경 보안
- 테스트 데이터 실제 데이터 사용 금지
- 개발 완료 후 로컬 데이터 삭제
2. 코드 보안
- OWASP Top 10 취약점 없을 것
- 하드코딩된 시크릿 금지
3. 인수인계
- 접근 권한 즉시 회수
- 보안 취약점 목록 전달
인수인계 시
- 모든 계정 비밀번호 변경
- 외주 개발자 접근 권한 삭제
- API 키 교체
- 보안 점검 실시
무료 보안 도구
취약점 스캔
- OWASP ZAP: 웹 취약점 스캔 (무료)
- Snyk: 코드/라이브러리 취약점 (무료 티어)
모니터링
- Sentry: 에러 모니터링 (무료 티어)
- CloudFlare: DDoS 방어 (무료 티어)
비밀번호 관리
- 1Password: 팀 비밀번호 관리
- Bitwarden: 오픈소스 대안
보안 사고 대응 플랜
사고는 예방만큼 대응도 중요해요.
대응 순서
| 단계 | 행동 | 내용 |
|---|---|---|
| 1. 탐지 | 이상 징후 발견 | 알림 확인, 로그 점검 |
| 2. 차단 | 추가 피해 방지 | 시스템 격리, 접근 차단 |
| 3. 분석 | 원인 파악 | 피해 범위 확인, 침입 경로 추적 |
| 4. 복구 | 시스템 복구 | 백업에서 복원, 패치 적용 |
| 5. 보고 | 내부/외부 보고 | 필요 시 당국 신고, 고객 통지 |
| 6. 개선 | 재발 방지 | 보안 강화, 프로세스 개선 |
마치며
보안은 **"해도 되고 안 해도 되는 것"**이 아니에요. 필수예요.
최소한 이것만은:
- HTTPS 적용
- 비밀번호 해싱
- SQL Injection 방지
- 정기 백업
- 접근 권한 관리
- 개인정보 처리방침
보안 점검이 필요하시면 무료 상담을 통해 취약점을 진단받아 보세요.
OWASP Top 10 (2021) 요약
가장 흔한 웹 보안 취약점 10가지예요.
| 순위 | 취약점 | 설명 | 대응 |
|---|---|---|---|
| 1 | Broken Access Control | 권한 없이 접근 | 권한 체크 철저히 |
| 2 | Cryptographic Failures | 암호화 실패 | HTTPS, 해싱 적용 |
| 3 | Injection | SQL/코드 주입 | 파라미터 바인딩 |
| 4 | Insecure Design | 설계 결함 | 보안 설계 리뷰 |
| 5 | Security Misconfiguration | 잘못된 설정 | 기본값 변경, 불필요 기능 제거 |
| 6 | Vulnerable Components | 취약한 라이브러리 | 정기 업데이트 |
| 7 | Auth Failures | 인증 실패 | MFA, 세션 관리 |
| 8 | Data Integrity Failures | 무결성 실패 | 서명, 검증 |
| 9 | Logging Failures | 로깅 부재 | 모니터링 강화 |
| 10 | SSRF | 서버 요청 위조 | URL 검증 |
단계별 보안 강화 로드맵
1단계: 즉시 적용 (1주)
- HTTPS 적용
- 비밀번호 해싱 확인
- .env 파일 gitignore 확인
- 관리자 페이지 접근 제한
- 에러 메시지에 민감정보 노출 확인
2단계: 기본 강화 (1개월)
- SQL Injection 점검
- XSS 방어 적용
- CORS 설정 확인
- 입력값 검증 강화
- 로그인 시도 제한
- 자동 백업 설정
3단계: 심화 (3개월)
- 침투 테스트 실시
- 보안 교육 진행
- 취약점 스캔 자동화
- WAF 도입 검토
- 보안 정책 문서화
해킹 시나리오별 대응
시나리오 1: DB 유출
DB 유출 대응
증상: 고객 데이터가 외부 노출, 다크웹에서 데이터 판매
즉시 조치:
- DB 접근 차단
- 비밀번호 전체 리셋
- 유출 범위 파악
- 관계 기관 신고 (24시간 내)
- 고객 통지
사후 조치: 침입 경로 분석 → 보안 패치 적용 → 재발 방지책 수립
시나리오 2: 랜섬웨어
랜섬웨어 대응
증상: 파일 암호화, 몸값 요구
즉시 조치:
- 네트워크 격리
- 감염 범위 파악
- 백업 확인
- 경찰/KISA 신고
중요: ❌ 몸값 지불 금지 (복구 보장 없음) ✅ 백업에서 복원
시나리오 3: 디도스 공격
디도스 대응
증상: 서비스 마비, 트래픽 폭주
즉시 조치:
- CloudFlare 등 CDN 활성화
- 의심 IP 차단
- 서버 증설 (임시)
- ISP 연락
예방: Rate Limiting 설정, CloudFlare/AWS Shield 사전 설정
보안 인증/컴플라이언스
스타트업에 필요한 인증
| 인증 | 필요 상황 | 비용 | 기간 |
|---|---|---|---|
| ISMS | 정보통신 서비스 | 1,000~3,000만원 | 6개월+ |
| ISO 27001 | 글로벌 진출 | 2,000~5,000만원 | 6개월+ |
| PCI DSS | 카드 결제 | 3,000만원+ | 6개월+ |
| SOC 2 | B2B SaaS | 3,000만원+ | 6개월+ |
법적 요구사항
| 법률 | 의무 사항 |
|---|---|
| 개인정보보호법 | 처리방침 게시, 동의 받기, 암호화(고유식별정보), 접근 기록 6개월 보관 |
| 정보통신망법 | 이용자 100만 이상 ISMS 의무, 보안서버(SSL) 필수 |
함께 읽으면 좋은 글
- 기술 부채란? - 보안 부채도 기술 부채의 일종
- 유지보수 계약 가이드 - 보안 업데이트 포함 계약
- 개발 외주 계약 체크리스트 - 보안 조항 체크리스트
- 서버 비용 가이드 - 보안 서버 구성 비용
Photo by Unsplash