콘텐츠로 바로가기

Application & Data Security

소프트웨어 코드와 저장된 데이터의 생애 주기 전반을 보호하기 위한 보안 코딩, 취약점 진단 및 데이터 암호화 물리와 전략을 다루는 학습 노드입니다.

sys.entry
M

Me

hyunyoun's Blog

posts6 min read

1. Overview

애플리케이션 및 데이터 보안(Application & Data Security, ADS)은 실질적으로 가치가 담긴 소프트웨어 로직과 그 데이터를 지키는 세밀한 방어 기법을 다룹니다.

인프라가 성벽이라면, 애플리케이션은 보안의 '최종 성소'입니다. 학습자는 웹 애플리케이션의 10대 취약점인 OWASP Top 10을 물리적으로 분석하고, 개발 단계에서 결함을 예방하는 보안 코딩(Secure Coding) 원칙을 배웁니다. 또한, 휴면 데이터(At-rest)와 전송 중인 데이터(In-transit)의 암호화 물리, 그리고 개인정보 보호를 위한 비식별화 기술을 학습하여 데이터 주권을 기술적으로 보장하는 역량을 갖춥니다.

2. Scope & Boundaries

In-Scope

  • Secure Development: 보안 코딩 가이드라인, 정적/동적 보안 분석(SAST/DAST) 물리
  • Web Security: SQL injection, XSS, CSRF 등 주요 웹 취약점 대응 역학
  • Data Protection: DB 암호화, 토큰화(Tokenization), 데이터 마스킹 물리
  • Privacy Tech: 개인정보 생애 주기 관리 및 비식별화(K-Anonymity 등) 논리

Out-of-Scope

  • 상세한 네트워크 방화벽 아키텍처 설계 (10-02 IPS 영역으로 위임)
  • 암호학적 알고리즘의 수학적 증명 (10-01 SFC 영역으로 위임)

Boundaries

  • ADS vs. Software Testing: 09-02 노드가 '기능의 무결성'을 검증한다면, ADS는 '기술적 약점을 이용한 악의적 침입의 불가능성'을 증명하는 데 집중합니다.

3. Counterexample

  • 단순히 취약점 스캐닝 도구를 돌려보고 리포트를 뽑는 것은 ADS 학습이 아닙니다. 왜 사용자 입력값의 **검증(Validation)**이 누락되면 데이터베이스의 논리 구조가 붕괴(SQLi)되는지 그 컨텍스트 혼동(Context Confusion) 물리적 원리를 설명하고, 암호화 키를 코드 내부에 하드코딩하는 것이 왜 데이터 보안의 근본적인 실패 사례가 되는지 키 관리 관점에서 논증할 수 있어야 합니다.

4. Prerequisites

  • 보안 기초 및 암호학 (Basic): 암호화/해시의 기본 기능과 용도 이해가 필요합니다. (10. SFC)
  • 웹 프로토콜 및 API 패러다임 (Recommended): HTTP 헤더와 요청/응답 구조에 대한 지식이 권장됩니다. (08. WAP)

5. Learning Map

  1. Threat Perception: 코드를 통해 발생할 수 있는 사고의 유형(OWASP 등)을 익힙니다.
  2. Coding Guardrails: 설계와 개발 단계에서 취약점을 원천 태단하는 규칙을 배웁니다.
  3. Data Fortress: 데이터가 저장될 때와 흐를 때 각각 어떤 물리적 보호 장치를 갖추어야 하는지 학습합니다.
  4. Assessment Flow: 완성된 시스템을 공격자의 관점에서 진단하고 개선하는 절차를 탐구합니다.

6. Learning Topics

Basic

Core: 웹 보안과 취약점의 물리 (Web Vulnerabilities)

  • Why to Learn: 가장 흔한 공격 경로인 웹 인터페이스의 구멍을 파악하여 기초적인 외부 방어선을 구축하기 위함입니다.
  • What to Learn:
    • OWASP Top 10 항목별 기술적 정의와 발생 물리
    • SQL 인젝션: 쿼리 문법의 논리적 변조 역학
    • XSS(교차 사이트 스크립팅): 브라우저 내 스크립트 강제 주입 물리
  • How to Learn:
    • DVWA(Damn Vulnerable Web App)와 같은 도구에서 의도된 취약점을 직접 공격하며 원리 파악
    • 입력값에 특수 문자(예: ', <)를 넣어 시스템이 어떻게 반응하는지 관측
  • Implement: 주요 취약점별 공격 시나리오와 이를 수동으로 검증하는 체크리스트

Core: 보안 코딩 원칙과 자동화 진단 (Secure Coding & Analysis)

  • Why to Learn: 개발자가 실수를 하더라도 시스템이 안전하게 유지되도록 설계 및 구현 가이드를 적용하기 위해서입니다.
  • What to Learn:
    • 입력값 검증과 출력 필터링의 시스템적 강제 물리
    • 정적 분석(SAST): 소스 코드 패턴 기반의 취약점 탐지 역학
    • 동적 분석(DAST): 구동 중인 앱에 변조된 데이터를 넣어 응답을 확인하는 물리
  • How to Learn:
    • SonarQube와 같은 도구를 프로젝트에 연동하여 보안 취약 경고를 해결하는 실습
    • 파라미터화된 쿼리(Prepared Statement)를 적용하여 SQLi가 물리적으로 차단되는 과정 분석
  • Implement: 팀 내에서 준수해야 할 필수 보안 코딩 가이드라인 문서

Practical

Core: 데이터 암호화 및 비식별화 실무 (Data Safeguards)

  • Why to Learn: 혹시 서버가 뚫리더라도 원본 데이터는 유출되지 않게 하는 '최후의 보루'를 구축하기 위함입니다.
  • What to Learn:
    • 정형/비정형 데이터의 컬럼 단위 암호화 구성 물리
    • 데이터의 휴면(At-rest), 이동(In-transit), 사용(In-use) 중 보호 전략
    • 개인정보 보호를 위한 마스킹, 가명화, 익명화 기술의 차이
  • How to Learn:
    • DB 수준에서 암호화 기능을 활성화하고, 실제 데이터 파일 내의 값이 어떻게 비가독적으로 변하는지 확인
    • TLS 1.3 설정을 통해 평문 패킷이 암호화되어 전송되는 과정을 캡처 및 분석
  • Implement: 민감 정보 생애 주기에 따른 단계별 암호화 및 접근 제어 설계도

Advanced

Core: DevSecOps와 애플리케이션 자가 보호 (Advanced AppSec)

  • Why to Learn: 고속 배포 환경에서도 보안 품질을 균일하게 유지하고 지능형 공격에 자동 대응하기 위해서입니다.
  • What to Learn:
    • DevSecOps 파이프라인: 빌드/배포 시 보안 검사 자동화 시퀀스
    • RASP(Runtime Application Self-Protection): 앱 내부에서 이상 행위를 실시간 감시하는 역학
    • 공급망 보안(Supply Chain Security): 오픈소스 라이브러리와 의존성 취약점 관리 물리
  • How to Learn:
    • CI/CD 파이프라인에 의존성 스캔 도구(Snyk 등)를 추가하여 취약한 라이브러리 사용 시 빌드를 중단시키는 실습
    • API 게이트웨이와 연동된 트래픽 분석 기반의 악성 요청 차단 시뮬레이션
  • Implement: 소프트웨어 공급망 보안을 포함한 전사적 DevSecOps 전략 로드맵

7. Terminology

Term (EN / ko, abbr) 1문장 정의 단계(기본/권장/실무/심화) 역할/맥락 관련 개념 유사/대비/함께 사용 오해 포인트 Evidence(Primary/Secondary/Industry) Flags(core)
Input Validation 외부로부터 들어오는 모든 데이터가 허용된 형식과 범위를 준수하는지 확인하는 일차적 방어 기법입니다. 기본 결함 예방 Sanitization Output Encoding 프론트엔드 검증만으로 충분하다 오해 P2:SWEBOK. core
Secret Management API 키, DB 비밀번호 등 민감한 인증 정보를 코드와 분리하여 안전하게 관리하는 물리적 체계입니다. 추천 인증 관리 Vault Hardcoding 단순히 '암호화 저장'으로 오해 Industry Standard core
SAST 정적 프로그램 분석 기술을 활용하여 런타임 없이 소스 코드 수준에서 취약점을 찾아내는 보안 기법입니다. 실무 자동 소스 진단 DAST Linting 모든 버그를 잡는다고 오해 P3:CyBOK Sec core
PII (개인정보) 특정 개인을 직접적으로 식별하거나 다른 정보와 결합하여 식별할 수 있는 모든 정보를 말합니다. 실무 법적 규제 GDPR Sensitive Data '이름/번호'만 해당한다고 오해 Industry core

8. References

Primary References

Secondary References

  • [OWASP Top 10 Project] — The standard for web application risk assessment.
  • [The Web Application Hacker's Handbook] Dafydd Stuttard — Deep dive into web attacks.

Industry References

  • [Google - Secure Software Development Framework (SSDF)] — Industry process standard.
  • [GDPR Articles] — Privacy and data protection regulations for software.

9. Final Checklist

Primary Checklist

  • 사용자 입력값이 비즈니스 로직에 전달되기 전, 서버 측(Server-side)에서 검증되어야 하는 물리적 보안 필연성을 기술할 수 있는가? (P2)
  • 데이터베이스 통신 시 '동적 SQL'이 '정적 SQL(Parametrized)'보다 보안상 취약한 이유를 데이터 처리 역학 관점에서 설명 가능한가? (P3)

Secondary Checklist

  • 암호화된 데이터를 전송할 때, 데이터의 무결성과 기밀성을 동시에 보장하기 위한 암호화 모드(예: GCM)의 이점을 이해하는가?
  • 소스 코드에 포함된 민감 정보를 탐지(Secret Scanning)하고, 이를 외부 관리 도구로 전환하는 자동화 환경을 구축할 수 있는가?

Industry Checklist

  • 실무 서비스의 개인정보 처리 방침에 따라, 데이터 보존 기간이 만료된 데이터를 물리적으로 안전하게 파기하는 절차를 설계할 수 있는는가? (SFIA)
  • 외부 라이브러리(NPM, Maven 등)의 CVE 취약점 공시를 모니터링하고, 패치 수준에 따른 시스템 영향도를 평가할 수 있는가?