콘텐츠로 이동

1부: 시스템 보안 아키텍처 이해

소요시간: 20분 (14:05~14:25)
목표: 웹서비스 보안의 기본 개념을 이해하고, 한울타리 시스템에 어떻게 적용되어 있는지 파악


1.1 개인정보 보안이란 무엇인가?

섹션 제목: “1.1 개인정보 보안이란 무엇인가?”

살아 있는 개인을 식별할 수 있는 정보 (개인정보보호법 제2조)

flowchart LR
    subgraph 개인정보["📋 개인정보의 범위"]
        A["일반 개인정보<br/>━━━━━━━━<br/>이름, 연락처, 주소<br/>이메일, 생년월일"]
        B["고유식별정보<br/>━━━━━━━━<br/>주민등록번호<br/>외국인등록번호<br/>여권번호"]
        C["민감정보<br/>━━━━━━━━<br/>건강정보, 사상/신념<br/>인종, 범죄경력<br/>유전정보"]
    end
분류예시보호 수준
일반 개인정보이름, 연락처, 주소, 이메일기본 보호
고유식별정보주민등록번호, 외국인등록번호암호화 필수
민감정보국적, 체류자격, 건강정보최고 수준 보호

한울타리는 다문화가족의 개인정보를 다루는 공공 서비스입니다.

👤 이용자 정보
├── 이름, 연락처, 주소 (일반 개인정보)
├── 국적, 체류자격 (민감정보)
├── 프로그램 신청 이력
└── 상담 내용

개인정보를 보호하기 위한 기술적·관리적·물리적 조치

구분내용예시
보호 대상개인정보 (위 정보들)이용자의 이름, 연락처, 국적 등
보호 방법기술적 + 관리적 조치암호화, 접근통제, 정책 수립
보호 목적유출·변조·훼손 방지안전한 서비스 제공

이 정보가 유출되거나 변조되면:

  • 이용자 피해 (개인정보 악용)
  • 서울시 신뢰도 하락
  • 법적 제재 (과징금 최대 매출액 10%)

모든 보안 활동은 이 3가지를 지키기 위한 것입니다.

요소영어의미예시
기밀성Confidentiality허가된 사람만 정보 열람회원정보는 담당자만 볼 수 있음
무결성Integrity정보가 변조되지 않음콘텐츠가 해커에 의해 수정되지 않음
가용성Availability필요할 때 서비스 이용 가능사이트가 항상 정상 작동
graph TD
    subgraph 정보보안 3요소
        C[기밀성<br/>Confidentiality]
        I[무결성<br/>Integrity]
        A[가용성<br/>Availability]
    end
    
    C --> |"허가된 사람만 접근"| 보안
    I --> |"변조 방지"| 보안
    A --> |"서비스 연속성"| 보안

사용자가 웹사이트에 접속하는 과정

섹션 제목: “사용자가 웹사이트에 접속하는 과정”

“mcfamily.or.kr을 입력하면 무슨 일이 일어날까요?”

sequenceDiagram
    participant 사용자
    participant DNS as DNS 서버
    participant CDN as CDN/방화벽
    participant 서버
    participant DB as 데이터베이스

    사용자->>DNS: 1. mcfamily.or.kr 주소 요청
    DNS-->>사용자: 2. IP 주소 응답 (123.45.67.89)
    사용자->>CDN: 3. 웹페이지 요청
    CDN->>CDN: 4. 보안 검사 (악성 요청 차단)
    CDN->>서버: 5. 정상 요청 전달
    서버->>DB: 6. 데이터 조회
    DB-->>서버: 7. 데이터 응답
    서버-->>CDN: 8. 웹페이지 생성
    CDN-->>사용자: 9. 웹페이지 전달
용어쉬운 설명비유
DNS도메인 이름을 IP 주소로 변환전화번호부 (이름 → 번호)
IP 주소인터넷에서 컴퓨터의 고유 주소집 주소
CDN전 세계에 분산된 서버로 빠르게 콘텐츠 전달전국 배송센터
방화벽악성 접근을 차단하는 보안 장치건물 출입문 보안요원
서버웹사이트를 실행하는 컴퓨터가게 직원
데이터베이스정보를 저장하는 창고서류 보관함
CMS콘텐츠를 쉽게 관리하는 시스템워드프로세서 (글쓰기 도구)
클라우드인터넷을 통해 빌려 쓰는 컴퓨터렌터카 (필요할 때 빌려 씀)
flowchart LR
    subgraph 1단계["1️⃣ DNS"]
        DNS[도메인 → IP 변환]
    end
    
    subgraph 2단계["2️⃣ CDN/방화벽"]
        CDN[콘텐츠 전달 + 보안]
    end
    
    subgraph 3단계["3️⃣ 서버"]
        서버[웹사이트 실행]
    end
    
    subgraph 4단계["4️⃣ 데이터베이스"]
        DB[정보 저장]
    end

    1단계 --> 2단계 --> 3단계 --> 4단계
    
    DNS -.-> |"DNS 보안"| 안전
    CDN -.-> |"DDoS 방어, WAF"| 안전
    서버 -.-> |"인증, 권한 관리"| 안전
    DB -.-> |"암호화, 백업"| 안전

개념역할한울타리 적용
DNS도메인 → IP 변환Cloudflare DNS
CDN콘텐츠 빠른 전달Cloudflare CDN
방화벽악성 접근 차단Cloudflare WAF + Gov-ncloud FW
접근 제어관리자 인증 강화Cloudflare Access (MFA)
클라우드서버 인프라Gov-ncloud (정부 승인)
CMS콘텐츠 관리Drupal 10
앱/웹사용자 화면Next.js 14
데이터베이스정보 저장PostgreSQL
캐시빠른 응답Redis
보안 관제24시간 모니터링CFL 매니지드

전 세계 320개 이상 데이터센터를 보유한 CDN·보안 서비스 기업

서비스한울타리 적용효과
Cloudflare DNSmcfamily.or.kr 도메인 관리빠른 DNS 응답 + DDoS 방어
Cloudflare CDN정적 콘텐츠 배포전 세계 빠른 접속
Cloudflare WAF웹 방화벽SQL Injection, XSS 등 해킹 차단
Cloudflare Access관리자 페이지 보호이메일 OTP 인증 (MFA)

왜 Cloudflare인가?
무료~저비용으로 기업급 보안 제공, 국내외 공공기관 다수 사용

☁️ Gov-ncloud (네이버클라우드 공공 전용)

섹션 제목: “☁️ Gov-ncloud (네이버클라우드 공공 전용)”

국정원 CSAP 인증을 받은 정부·공공기관 전용 클라우드

항목내용
운영사네이버클라우드 (NCloud)
인증✅ CSAP (클라우드 보안인증)
데이터 위치대한민국 국내만
환경공공기관 전용 독립 환경
보안관제24시간 CFL 매니지드
SLA99.9% 가용성 보장

왜 Gov-ncloud인가?
공공기관이 민간 클라우드를 이용하려면 CSAP 인증 필수. 국내 데이터 저장 보장.

전 세계 정부·기업에서 사용하는 오픈소스 CMS(콘텐츠 관리 시스템)

항목내용
버전Drupal 10.5.1 (2024년 최신)
언어PHP 8.3
특징다국어 지원, 역할 기반 권한, 번역 워크플로우
사용 기관미국 백악관, NASA, 영국 정부, 서울시 등

왜 Drupal인가?
5개 언어 지원, 복잡한 권한 관리, 공공기관 보안 요건 충족

Vercel이 개발한 React 기반 웹 프레임워크

항목내용
버전Next.js 14
언어TypeScript
특징서버 사이드 렌더링, 빠른 페이지 로딩
역할사용자가 보는 화면 (프론트엔드)
솔루션역할특징
PostgreSQL데이터베이스암호화 저장, 대용량 처리, 오픈소스
Redis캐시빠른 응답, 세션 관리, 메모리 기반
flowchart TB
    subgraph 인터넷["🌐 인터넷"]
        사용자["👤 사용자<br/>(일반 이용자)"]
        관리자["👨‍💼 관리자<br/>(담당자)"]
    end

    subgraph CDN_Layer["1️⃣ CDN/DNS/방화벽 계층"]
        DNS["DNS<br/>━━━━━━━━<br/>도메인 → IP 변환<br/><small>Cloudflare DNS</small>"]
        CDN["CDN + WAF<br/>━━━━━━━━<br/>콘텐츠 전달 + 웹방화벽<br/><small>Cloudflare</small>"]
        DDoS["DDoS 방어<br/>━━━━━━━━<br/>대량 공격 차단<br/><small>Anti-DDoS</small>"]
    end

    subgraph Access_Layer["2️⃣ 접근 제어 계층"]
        일반접근["일반 사용자 접근<br/>━━━━━━━━<br/>OAuth 2.0 인증<br/><small>로그인/회원가입</small>"]
        관리접근["관리자 접근<br/>━━━━━━━━<br/>MFA 다중 인증<br/><small>Cloudflare Access</small>"]
    end

    subgraph Cloud["3️⃣ 클라우드 계층 (Gov-ncloud CSAP)"]
        subgraph 서버["서버"]
            CMS["CMS (관리자)<br/>━━━━━━━━<br/>콘텐츠 관리 시스템<br/><small>Drupal 10</small>"]
            WEB["웹/앱 (사용자)<br/>━━━━━━━━<br/>사용자 화면<br/><small>Next.js 14</small>"]
        end
        
        subgraph 데이터["데이터"]
            DB["데이터베이스<br/>━━━━━━━━<br/>정보 저장 (암호화)<br/><small>PostgreSQL</small>"]
            Cache["캐시<br/>━━━━━━━━<br/>빠른 응답<br/><small>Redis</small>"]
        end

        subgraph 보안관제["보안 관제"]
            CFL["24시간 모니터링<br/>━━━━━━━━<br/>침입 탐지/차단<br/><small>CFL 매니지드</small>"]
        end
    end

    사용자 --> DNS
    관리자 --> DNS
    DNS --> CDN
    CDN --> DDoS
    DDoS --> 일반접근
    DDoS --> 관리접근
    일반접근 --> WEB
    관리접근 --> CMS
    CMS --> DB
    WEB --> DB
    CMS --> Cache
    WEB --> Cache
    CFL -.-> 서버
    CFL -.-> 데이터
구분내용
서비스명한울타리 (다문화가족 통합 정보 플랫폼)
운영 주체서울시 다문화담당관 → 서울시가족센터 위탁
개발/운영스컹크웍스스튜디오
이용자다문화가족, 외국인 주민
지원 언어한국어, 영어, 중국어, 일본어, 베트남어 (5개)
주요 기능정보 제공, 프로그램 신청, 한국어 교육, 취업 지원

보안은 여러 겹으로 보호합니다

섹션 제목: “보안은 여러 겹으로 보호합니다”

마치 집을 보호하는 것처럼, 여러 단계의 보안이 필요합니다.

flowchart TB
    subgraph Layer4["4️⃣ 운영 보안 (사람)"]
        L4["• 누가 접근할 수 있는지 관리<br/>• 로그 기록 및 모니터링<br/>• 정기 보안 점검"]
    end
    
    subgraph Layer3["3️⃣ 데이터 보안 (정보)"]
        L3["• 개인정보 암호화 저장<br/>• 비밀번호 안전하게 보관<br/>• 정기 백업"]
    end
    
    subgraph Layer2["2️⃣ 애플리케이션 보안 (프로그램)"]
        L2["• 로그인 인증 (아이디/비밀번호)<br/>• 관리자 2차 인증 (MFA)<br/>• 세션 자동 만료"]
    end
    
    subgraph Layer1["1️⃣ 네트워크 보안 (통신)"]
        L1["• 방화벽 (악성 접근 차단)<br/>• HTTPS 암호화 (도청 방지)<br/>• DDoS 방어 (서비스 마비 방지)"]
    end
    
    Layer4 --> Layer3 --> Layer2 --> Layer1

1️⃣ 네트워크 보안 - “통신을 보호”

섹션 제목: “1️⃣ 네트워크 보안 - “통신을 보호””
보안 기술쉬운 설명한울타리 적용
방화벽 (Firewall)허가되지 않은 접근 차단Gov-ncloud 방화벽
WAF웹 공격(해킹) 시도 차단Cloudflare WAF
HTTPS/SSL통신 내용 암호화 (도청 방지)전 구간 적용
DDoS 방어대량 접속 공격 방어Cloudflare Anti-DDoS

HTTPS란? 🔒
브라우저 주소창에 자물쇠가 표시되면 HTTPS가 적용된 것입니다.
사용자와 서버 사이의 모든 통신이 암호화되어 제3자가 볼 수 없습니다.

2️⃣ 애플리케이션 보안 - “로그인을 보호”

섹션 제목: “2️⃣ 애플리케이션 보안 - “로그인을 보호””
보안 기술쉬운 설명한울타리 적용
아이디/비밀번호 인증기본 로그인OAuth 2.0
MFA (다중 인증)비밀번호 + 추가 인증관리자 필수 적용
세션 타임아웃미사용 시 자동 로그아웃10분 설정
로그인 실패 제한연속 실패 시 계정 잠금5회 실패 시 잠금

MFA(다중요소 인증)란? 🔐
비밀번호만으로는 부족! 추가로 휴대폰 인증코드나 이메일 확인이 필요합니다.
비밀번호가 유출되어도 추가 인증 없이는 접근 불가능합니다.

3️⃣ 데이터 보안 - “정보를 보호”

섹션 제목: “3️⃣ 데이터 보안 - “정보를 보호””
보안 기술쉬운 설명한울타리 적용
암호화 저장정보를 알아볼 수 없게 저장PostgreSQL 암호화
비밀번호 해시비밀번호를 복원 불가능하게 저장SHA-256 해시
백업정기적으로 복사본 저장일일 백업

해시(Hash)란? 🔢
비밀번호 “MyPass123”을 저장할 때:
❌ 그대로 저장 → 유출 시 즉시 노출
✅ 해시 저장 → “a7f3b2c1…” 형태로 변환, 원본 복원 불가

4️⃣ 운영 보안 - “사람을 관리”

섹션 제목: “4️⃣ 운영 보안 - “사람을 관리””
보안 기술쉬운 설명한울타리 적용
권한 관리업무에 필요한 권한만 부여역할별 권한 분리
로그 기록누가 무엇을 했는지 기록접속/작업 로그
보안 관제24시간 이상 징후 모니터링CFL 매니지드
정기 점검취약점 발견 및 개선연 1회 이상

직접 서버를 사지 않고, 인터넷으로 빌려 쓰는 컴퓨터 자원

구분직접 구축클라우드
비용초기 비용 높음사용한 만큼 지불
관리직접 관리전문 업체가 관리
확장새 장비 구매 필요클릭 몇 번으로 확장
보안직접 구축전문 보안 서비스 제공

“한울타리 서버를 어디에 둘 것인가?”

flowchart LR
    subgraph 선택지["서버 운영 방식"]
        A["🏢 서울시 데이터센터<br/>━━━━━━━━<br/>서울시 직접 운영"]
        B["☁️ 민간 클라우드<br/>━━━━━━━━<br/>CSAP 인증 클라우드"]
    end
    
    한울타리 --> B
    B --> |"✅ 선택"| GOV["Gov-ncloud<br/>(네이버 공공클라우드)"]
구분서울시 데이터센터민간 클라우드 (Gov-ncloud)
운영 주체서울시 직접 운영네이버클라우드 + CSAP 인증
물리적 위치서울시 데이터센터국내 데이터센터 (법적 동일)
보안 인증서울시 자체 기준✅ 국정원 CSAP 인증
비용 구조고정 비용 (장비 구매)종량제 (사용량 기반)
확장성장비 추가 구매 필요즉시 확장 가능
보안관제서울시 자체 관제✅ 24시간 CFL 매니지드
장애 대응서울시 인력 대응전문 인력 즉시 대응
이관 난이도-별도 이관 프로젝트 필요

왜 민간 클라우드(Gov-ncloud)를 선택했나?

섹션 제목: “왜 민간 클라우드(Gov-ncloud)를 선택했나?”
이유설명
CSAP 인증국정원 보안 심사 통과, 법적 요건 충족
비용 효율초기 투자 없이 사용량 기반 과금
전문 보안관제24시간 CFL 매니지드 (IPS, WAF, Anti-DDoS)
빠른 확장트래픽 증가 시 즉시 서버 확장
국내 데이터 보관대한민국 내 데이터센터만 사용

참고: 서울시 데이터센터 이관 시 별도 프로젝트 수행 필요 (스컹크웍스는 이관 경험 없음)

Cloud Security Assurance Program
국가정보원이 운영하는 클라우드 보안 인증 제도

flowchart LR
    subgraph 인증["CSAP 인증"]
        심사["국정원 보안 심사"]
        인증완료["인증 완료"]
    end
    
    subgraph 의미["인증의 의미"]
        안전["✅ 보안 기준 충족"]
        신뢰["✅ 공공기관 이용 가능"]
        관리["✅ 정기 보안 점검"]
    end
    
    심사 --> 인증완료 --> 안전
    인증완료 --> 신뢰
    인증완료 --> 관리
항목내용
사용 클라우드Gov-ncloud (네이버클라우드 공공 전용)
인증 상태✅ CSAP 인증 완료
데이터 위치대한민국 국내 데이터센터만 사용
환경 분리공공기관 전용 독립 환경
가용성 보장SLA 99.9%
보안 관제24시간 전문 관제 서비스

보안 영역적용 기술설명
클라우드 인증Gov-ncloud (CSAP)정부 승인 클라우드
관리자 인증MFA (다중 인증)비밀번호 + 추가 인증
사용자 인증OAuth 2.0표준 로그인 프로토콜
통신 암호화HTTPS/TLS모든 통신 암호화
웹 방화벽WAF웹 해킹 시도 차단
DDoS 방어Anti-DDoS대량 공격 방어
침입 방지IPS침입 시도 탐지/차단
보안 관제CFL 매니지드24시간 모니터링
항목현재 상태목표
로그 보관 정책기본 설정1년 보관 정책 수립
내부관리계획작성 중문서화 완료

1.7 서울시 보안 체크리스트 현황

섹션 제목: “1.7 서울시 보안 체크리스트 현황”

서울시에서 제시한 89개 보안 점검 항목 분석 결과:

pie title 서울시 보안 체크리스트 현황 (89개 항목)
    "충족 (51%)" : 45
    "검토필요 (36%)" : 32
    "해당없음 (13%)" : 11
구분항목 수비율설명
🟢 충족45개51%현재 기준 충족
⚠️ 검토필요32개36%문서화/정책 수립 필요
해당없음11개13%서비스 특성상 해당 없음
영역충족률상태
클라우드 인프라 (설비)100%✅ 완료
클라우드 인프라 (하드웨어)90%✅ 대부분 완료
가상환경 보안80%⚠️ 일부 문서화 필요
정책적 측면50%🔴 문서화 필요
인적 관리40%🔴 교육/절차 수립 필요
감사자료 관리30%🔴 로그 보관 정책 필요
우선순위필요 문서
🔴 즉시계정/권한 관리 절차서, 침해사고 대응 절차서
🟡 1개월감사 로그 관리 정책, 취약점 점검 계획서
🟢 3개월데이터 분류 체계, 표준운영절차(SOP)

항목현황관련 법 조항
기술적 보호조치✅ 완료제29조
접근통제 (MFA)✅ 관리자 적용시행령 제30조
통신 암호화 (HTTPS)✅ 전 구간제29조
비밀번호 암호화✅ SHA-256시행령 제30조
개인정보 처리방침✅ 웹사이트 공개제30조
위탁 계약✅ 체결 완료제26조
항목필요 조치
내부관리계획보안 조직·역할·절차 문서화
접근권한 이력3년간 보관 정책 명문화
접속기록 보관1~2년 보관 정책 수립
침해사고 대응72시간 내 신고 절차 문서화

🔴 2026년 개정 주요 변경사항 (8월 시행)

섹션 제목: “🔴 2026년 개정 주요 변경사항 (8월 시행)”
변경 사항영향
유출 “가능성” 단계부터 통지 의무조기 대응 필요
과징금 최대 10%로 상향제재 강화
랜섬웨어 피해도 통지 대상범위 확대
CEO 최종책임 명시책임 강화

  1. 보안의 목적: 기밀성, 무결성, 가용성 보호
  2. 다층 보안: 네트워크 → 애플리케이션 → 데이터 → 운영, 여러 겹으로 보호
  3. 클라우드 인증: Gov-ncloud CSAP 인증으로 정부 보안 기준 충족
  4. 현재 상태: 89개 체크리스트 중 51% 충족, 36%는 문서화 작업 중
  5. 관리자 인증: MFA(다중 인증)로 보안 강화됨
용어의미
DNS도메인을 IP 주소로 변환 (전화번호부)
CDN콘텐츠를 빠르게 전달 (전국 배송센터)
방화벽악성 접근 차단 (건물 보안요원)
WAF웹 해킹 공격 차단 (웹 전문 방화벽)
MFA비밀번호 + 추가 인증 (이중 잠금)
HTTPS통신 암호화 (자물쇠 표시)
클라우드빌려 쓰는 서버 (렌터카)
CSAP정부 클라우드 보안 인증

Q: 왜 관리자만 MFA가 적용되어 있나요?
A: 관리자는 더 많은 정보에 접근할 수 있어 추가 보안이 필요합니다. 일반 사용자는 OAuth 2.0 기반 인증으로 안전하게 보호됩니다.

Q: 개인정보는 어디에 저장되나요?
A: 대한민국 국내 데이터센터(Gov-ncloud)에만 저장되며, 암호화되어 보관됩니다.

Q: 해킹당하면 어떻게 되나요?
A: 3부에서 자세히 설명하지만, 24시간 보안 관제로 이상 징후를 탐지하고, 침해사고 대응 절차에 따라 조치합니다.


다음: 2부: 서울시 보안 요구사항 해설