본문으로 건너뛰기

버그 제보

이상한 점을 알려 주시면 고칠게요. 지금 보고 있는 페이지와 브라우저 정보가 함께 담겨요.

페이지:

Backend

보안 시스템 설계: 원칙과 민감 데이터 관리

작성 2026. 10. 21.추가
목차12개 항목
출처와 참고

ByteByteGo의 System Design 101 가이드 「Cybersecurity 101」, 「How to Design a Secure System」, 「How do we manage sensitive data in a system?」를 바탕으로 재구성한 노트다. 웹 애플리케이션 위험 순위는 「OWASP Top 10」 2025년판 소개 문서로 보강했다.

무엇을 지키나: CIA

요소뜻깨지는 예지키는 수단
기밀성(Confidentiality)허가된 사람만 읽는다데이터 유출, 도청암호화, 접근 통제
무결성(Integrity)허가 없이 바뀌지 않는다위변조, 중간자 공격해시·서명, 감사 로그
가용성(Availability)필요할 때 쓸 수 있다DDoS, 랜섬웨어, 장애이중화, 백업, 레이트 리밋

자세한 공격 기법 목록은 정보 시스템 보안에, 계층별 네트워크 공격은 네트워크 보안: 방화벽, VPN, 계층별 공격에 있다.

흔한 위협과 기본 방어

위협기본 방어
악성 코드·랜섬웨어엔드포인트 보호, 패치, 오프라인 백업
피싱·사회공학피싱에 강한 인증(패스키), 교육
무차별 대입·계정 탈취MFA, 시도 횟수 제한 → 2단계 인증: TOTP와 패스키
인젝션입력 검증, 파라미터화 쿼리 → API 보안 체크리스트
서비스 거부방화벽, CDN·DDoS 방어, 오토스케일링
내부자 위협최소 권한, 감사 로그, 직무 분리

설계 체크리스트

보안은 출시 직전에 덧붙이는 기능이 아니라 처음부터 기본값이다. 설계 단계에서 아래 영역을 하나씩 점검한다.

영역핵심 질문관련 노트
인증누가 들어오는가. MFA·패스키를 지원하나세션 기반 인증과 토큰 기반 인증
인가들어온 사람이 무엇을 할 수 있나. 기본은 거부인가권한 시스템 설계: ACL, RBAC, ABAC
암호화전송 중(TLS)과 저장 중 데이터가 모두 암호화되나인코딩·암호화·해시·토큰화와 디지털 서명
취약점 관리의존성·이미지 취약점을 지속적으로 찾고 고치나DevSecOps
감사·규정 준수누가 언제 무엇을 했는지 위변조 불가하게 남나
네트워크 보안기본 거부 방화벽, 사설망 분리, 관리 포트 제한네트워크 보안: 방화벽, VPN, 계층별 공격
단말 보안직원 기기 관리, 디스크 암호화, 화면 잠금
컨테이너 보안최소 이미지, 루트 아닌 사용자, 이미지 서명DevSecOps
API 보안입력 검증, 레이트 리밋, 응답 최소화API 보안 체크리스트
서드파티 관리외부 업체·SDK에 넘기는 데이터와 권한이 최소인가
사고 대응탐지 → 격리 → 복구 → 사후 분석 절차와 연락망이 있나
재해 복구RTO·RPO 목표와 복구 연습고가용성과 재해 복구 설계

OWASP Top 10: 웹 애플리케이션 위험 순위

OWASP(Open Worldwide Application Security Project) Top 10은 실제 취약점 데이터와 업계 설문을 모아 웹 애플리케이션에서 가장 치명적인 위험 열 가지를 정한 인식 표준이다. 보안 코딩 교육과 점검의 출발점으로 쓴다. 최신판은 2025년판(여덟 번째)이다.

순위위험(2025)내용2021년판 대비
A01접근 통제 실패(Broken Access Control)권한 없는 데이터·기능에 접근. 다른 사용자 ID로 조회(IDOR), 관리자 API 노출유지. SSRF를 흡수했다
A02보안 설정 오류(Security Misconfiguration)기본 계정·불필요한 기능·과한 에러 메시지·클라우드 권한 설정 실수5위 → 2위
A03소프트웨어 공급망 실패(Software Supply Chain Failures)의존성·빌드 시스템·배포 인프라의 침해신설(옛 「취약하고 오래된 구성 요소」를 넓혔다)
A04암호화 실패(Cryptographic Failures)평문 전송·저장, 약한 알고리즘, 잘못된 키 관리2위 → 4위
A05인젝션(Injection)SQL·명령어·XSS처럼 입력이 코드로 해석된다3위 → 5위
A06안전하지 않은 설계(Insecure Design)위협 모델링 없이 설계 단계부터 빠진 통제4위 → 6위
A07인증 실패(Authentication Failures)크리덴셜 스터핑, 약한 비밀번호 정책, 세션 관리 결함이름에서 「식별」이 빠졌다
A08소프트웨어·데이터 무결성 실패서명 검증 없는 업데이트, 신뢰할 수 없는 직렬화 데이터유지
A09보안 로깅·경보 실패(Security Logging & Alerting Failures)기록은 있어도 경보가 없어 침해를 늦게 안다「모니터링」이 「경보」로 바뀌었다
A10예외 상황 처리 미흡(Mishandling of Exceptional Conditions)잘못된 에러 처리, 논리 오류, 비정상 상황에서 열린 채 실패(fail open)신설

프레임워크

체크리스트를 조직 단위로 운영할 때는 공개 프레임워크를 뼈대로 쓴다. NIST CSF 2.0은 거버넌스(Govern)·식별(Identify)·보호(Protect)·탐지(Detect)·대응(Respond)·복구(Recover)의 여섯 기능으로 나누고, ISO/IEC 27001은 정보보호 관리 체계 인증 표준이다.

민감 데이터 관리

민감 데이터는 개인 식별 정보(PII), 건강 정보, 금융 정보, 지식 재산, 교육·법률 기록 등이다. GDPR 같은 개인정보 법규는 보호 의무를 지우고 위반 시 큰 과징금을 매긴다. 그래서 데이터 보호를 설계 요구사항으로 다룬다.

1. 분류부터

어떤 필드가 민감한지 모르면 보호할 수 없다. 데이터마다 등급(공개, 내부, 기밀, 제한)을 붙이고, 등급에 따라 저장소·접근 권한·로그 마스킹 규칙을 정한다.

2. 암호화와 키 관리

  • 전송 구간은 TLS, 저장 데이터는 저장소 암호화 + 필요하면 필드 단위 암호화를 쓴다.
  • 비밀번호는 암호화가 아니라 느린 해시로 저장한다 → 비밀번호 저장과 비밀번호 관리자
  • 암호문과 키를 같은 곳에 두지 않는다. 키는 KMS·HSM에 두고, 데이터 키를 마스터 키로 감싸는 봉투 암호화를 쓴다.
  • 가장 중요한 키는 한 사람이 단독으로 쓰지 못하게 키 분할과 이중 통제를 건다. 예를 들어 신청자·관리자·감사자가 각자 한 조각씩 가져 모두 모여야 열리게 하거나, N명 중 M명이 모여야 복원되는 비밀 분산을 쓴다.

3. 비식별화

비식별화(data desensitization) 는 데이터에서 개인을 알아볼 수 없게 지우거나 바꾸는 일이다. 연구·통계·외부 공유는 물론, 사내에서 분석가에게 넘길 때도 쓴다.

기법방법되돌리기
마스킹010-****-1234처럼 일부를 가린다불가
가명화식별자를 다른 값(해시·토큰)으로 바꾼다대응표가 있으면 가능. 그래서 여전히 개인정보로 취급될 수 있다
토큰화원본은 금고에, 시스템에는 토큰만금고 권한이 있으면 가능
일반화·범주화나이 34 → 30대, 주소 → 시·군·구불가
집계·노이즈개별 행 대신 통계, 차분 프라이버시불가

여러 필드를 조합하면 다시 특정될 수 있다(생년월일 + 성별 + 우편번호). 한 필드씩이 아니라 조합을 보고 판단한다.

4. 최소 권한

사용자·서비스에게 업무에 필요한 최소한의 데이터 권한만 준다. 역할 기반 접근 제어(RBAC)가 흔한 출발점이다 → 권한 시스템 설계: ACL, RBAC, ABAC.

5. 수명 주기

단계할 일
수집필요한 것만 받는다 → 데이터 최소화와 프라이버시 실천
개발운영 데이터 대신 비식별 데이터로 개발한다. 꼭 필요하면 기한을 둔 권한만 준다
운영데이터 상품(리포트·피드)이 배포되면 개발자 접근 권한을 회수한다
보관·폐기보관 기한이 지나면 지운다. 백업에서도 지워지는지 확인한다

정리

  • 보안 설계의 목표는 CIA이고, 인증·인가·암호화·네트워크·컨테이너·API·서드파티·감사·사고 대응·재해 복구를 처음부터 기본값으로 넣는다.
  • 민감 데이터는 분류 → 암호화와 키 분리 → 비식별화 → 최소 권한 → 수명 주기 관리 순으로 다룬다.
  • 키는 데이터와 떨어진 곳에 두고, 가장 중요한 키는 한 사람이 단독으로 쓰지 못하게 한다.

관련 노트: 정보 시스템 보안, API 보안 체크리스트, DevSecOps, 권한 시스템 설계: ACL, RBAC, ABAC, 프라이버시를 위한 암호화: 전송·저장·종단 간, 네트워크 보안: 방화벽, VPN, 계층별 공격, 개발자 머피의 법칙

원본 기록6

댓글

GitHub 계정으로 댓글을 남길 수 있어요.