[시나공] Secure SDLC · 개발 보안 정리 (Secure SDLC / CIA / 시큐어 코딩 / SQL Injection / XSS / 버퍼 오버플로우 / SSL / 하드코딩)

2026. 3. 26. 02:13Certifications/정보처리기사 실기

1️⃣ Secure SDLC와 개발 보안 개요

✅ Secure SDLC

  • Secure SDLC는 보안상 안전한 소프트웨어를 개발하기 위해, 기존 SDLC에 보안 강화 절차를 포함한 개발 방법론
  • 소프트웨어를 기획·분석·설계·구현·테스트·운영하는 전 과정에서 보안 취약점을 사전에 줄이는 것이 핵심

🔹 대표 방법론


방법론 설명
CLASP SDLC의 초기 단계에서 보안을 강화하기 위한 방법론
SDL 마이크로소프트의 보안 강화 SDLC 방법론
Seven Touchpoints 소프트웨어 보안의 모범 사례를 SDLC 전반에 통합한 방법론

2️⃣ 소프트웨어 개발 보안 요소

✅ 개발 보안 3요소(CIA)

보안 요소 핵심 개념
기밀성
(Confidentiality)
인가된 사용자만 정보 접근 가능
데이터 노출 방지
무결성
(Integrity)
인가된 사용자만 데이터 수정 가능
데이터 위·변조 방지
가용성
(Availability)
인가된 사용자가 언제든 시스템 사용 가능
서비스 지속 제공

✅ 추가 보안 관련 개념

개념 설명
인증
(Authentication)
사용자가 합법적인 사용자인지 확인하는 행위
부인 방지
(Non-Repudiation)
데이터 송·수신 사실을 부인할 수 없도록 증거를 제공하는 것

🎯 포인트

  • “사용자 신원 확인” → 인증
  • “송·수신 사실 부인 불가” → 부인 방지

3️⃣ 시큐어 코딩(Secure Coding)

✅ 개념

  • 소프트웨어 구현 단계에서 발생할 수 있는 보안 취약점을 최소화하기 위해 보안 요소를 고려하며 코딩하는 것
  • 보안 취약점을 사전에 방지하여 안정성과 신뢰성을 확보하는 것이 목적

✅ 특징

  • 구현 단계 중심의 보안 활동
  • 보안 정책에 따라 시큐어 코딩 가이드 작성
  • 개발자 대상 보안 교육과 함께 수행되는 경우가 많음

🎯 포인트

  • “구현 단계에서 취약점 최소화”, “안정성과 신뢰성 확보” → 시큐어 코딩

4️⃣ 주요 개발 보안 취약점

✅ 1. SQL 삽입(SQL Injection)

  • 응용 프로그램에 SQL 구문을 삽입하여 데이터베이스를 비정상적으로 조작하는 공격
  • 내부 데이터 유출, 변조, 인증 우회 등이 발생할 수 있는 취약점

✅ 특징 및 대응 방법

취약점 특징 대응 방법
입력값 검증이 미흡하여
SQL 구문이 그대로 전달됨
입력값 검증 및 필터링
특수문자 제한
SQL 질의문 구조를 조작하여
DB 데이터를 조회·변조
Prepared Statement /
Parameterized Query
사용
로그인 우회 및 관리자 권한 탈취 가능 DB 계정 최소 권한 원칙 적용

🎯 포인트

  • “SQL문 삽입”, “DB 조작”, “인증 우회” → SQL Injection

✅ 2. 크로스사이트 스크립팅(XSS)

  • 웹페이지에 악의적인 스크립트를 삽입하여, 사용자의 브라우저에서 실행되도록 유도하는 공격
  • 개인정보 탈취, 세션 탈취, 비정상 동작 유발 등이 가능한 보안 취약점

✅ 특징 및 대응 방법

취약점 특징 대응 방법
사용자 입력값이 검증 없이
웹페이지에 그대로 출력됨
입력값 검증 및 필터링
스크립트 태그 입력 제한
악의적인 스크립트가 삽입되어
사용자 브라우저에서 실행됨
HTML 특수문자 치환
출력 시 이스케이프 처리
세션 탈취, 개인정보 유출 등
클라이언트 측 공격 발생
입력값 검증 및 필터링
출력 데이터 검증

🎯 포인트

  • “악성 스크립트를 삽입”, “사용자 측 브라우저에서 실행” → XSS

✅ 3. 메모리 버퍼 오버플로우(Buffer Overflow)

  • 연속된 메모리 공간을 사용하는 프로그램에서 할당된 메모리 범위를 벗어나 데이터를 읽거나 쓰는 오류
  • 프로그램 오작동, 시스템 충돌, 악성 코드 실행 등의 원인이 될 수 있는 취약점

✅ 특징 및 대응 방법

취약점 특징 대응 방법
배열 및 문자열 처리 과정에서
버퍼 크기를 초과하여 데이터가 저장됨
버퍼 크기 점검
입력 데이터 길이 제한
메모리 경계 검사가 없을 경우
할당된 메모리 범위를 벗어난 접근 발생
경계값 검사 수행
메모리 접근 범위 확인
프로그램 오작동, 시스템 충돌,
악성 코드 실행 가능
안전한 문자열 처리 함수 사용
메모리 안전 프로그래밍 적용

🎯 포인트

  • “할당된 메모리 범위 초과”, “메모리 읽기/쓰기 오류” → 버퍼 오버플로우

✅ 4. 하드코딩(Hard Coding)

  • 데이터를 코드 내부에 직접 입력하여 프로그래밍하는 방식
  • 비밀번호, 암호화 키, 인증 정보 등을 소스코드에 직접 작성할 때 발생하는 대표적인 보안 취약점

✅ 특징 및 대응 방법

문제점 대응 방법
소스코드에 비밀번호, 암호화 키 등
민감 정보가 직접 포함됨
환경 변수(Environment Variable) 사용
외부 보안 저장소 활용
소스 유출 시 민감 정보도 함께 노출됨 키 관리 시스템(KMS) 사용
보안 저장소에 키 분리 보관
코드 내부에 값이 고정되어
유지보수 및 보안 정책 변경이 어려움
설정 파일(Configuration) 분리
외부 설정 관리 방식 적용

🎯 포인트

  • “암호화 키를 코드에 직접 저장”, “코드 내부에 직접 입력” → 하드코딩

5️⃣ 보안 기능 관련 용어

✅ HTTPS

  • HTTP + SSL/TLS 기반의 안전한 웹 통신 방식
  • 웹 브라우저와 서버 사이의 통신을 암호화하는 방식

✅ SSL(Secure Sockets Layer)

  • 데이터를 송·수신하는 두 컴퓨터 사이, 즉 TCP/IP 계층과 애플리케이션 계층 사이에 위치하여 인증, 암호화, 무결성을 보장하는 프로토콜

🎯 포인트

  • “인증, 암호화, 무결성 보장”, “TCP/IP 계층과 애플리케이션 계층 사이” → SSL
  • “HTTP에 암호 통신 규약 결합” → HTTPS

6️⃣ 개발 보안 핵심 비교 정리

✅ 개발 보안 요소 vs 보안 공격 vs 보안 기술

구분 개념 핵심 키워드
기밀성 인가된 사용자만 정보 접근 가능 접근 제한, 정보 보호
무결성 데이터가 임의로 변경되지 않음 위·변조 방지, 정확성
가용성 필요할 때 언제든 사용 가능 지속 서비스, 사용 가능
인증 사용자가 정당한지 확인 신원 확인
부인 방지 송·수신 사실을 부인할 수 없음 증거 제공
SQL Injection SQL문 삽입으로 DB 공격 DB 조작, 인증 우회
XSS 악성 스크립트 삽입 공격 브라우저 실행
Buffer Overflow 메모리 범위 초과 접근 읽기/쓰기 오류
Hard Coding 민감정보를 코드에 직접 입력 키 노출, 유지보수 취약
SSL 인증·암호화·무결성 보장 안전한 통신

📊 시험 포인트 정리

🔥 1. Secure SDLC 방법론 구분

  • CLASP → SDLC 초기 단계 보안 강화
  • SDL마이크로소프트 보안 개발 방법론
  • Seven Touchpoints보안 모범 사례를 SDLC 전반에 적용

🔥 2. CIA 보안 3요소

  • 기밀성(Confidentiality) → 인가된 사용자만 접근
  • 무결성(Integrity) → 데이터 위·변조 방지
  • 가용성(Availability) → 언제든 사용 가능

🔥 3. 시큐어 코딩

  • 구현 단계에서 보안 취약점 최소화
  • 보안 요소를 고려한 안전한 코드 작성

🔥 4. 대표 보안 취약점 구분

  • SQL Injection → SQL문 삽입, DB 공격
  • XSS → 악성 스크립트 삽입, 브라우저 공격
  • Buffer Overflow → 메모리 범위 초과

🔥 5. SSL

  • 기능 → 인증 + 암호화 + 무결성
  • 위치 → TCP/IP 계층 ↔ 애플리케이션 계층 사이

🔥 6. Hard Coding

  • 비밀번호 / 암호화 키를 코드에 직접 작성
  • 민감정보 노출 위험

📌 암기 핵심 요약

  • Secure SDLC는 개발 전 과정에 보안을 반영하는 방법론
  • 개발 보안의 핵심 3요소는 기밀성, 무결성, 가용성
  • 구현 단계에서는 시큐어 코딩으로 취약점을 줄이는 방식
  • 대표 취약점은 SQL Injection, XSS, Buffer Overflow, Hard Coding
  • 안전한 통신 보장을 위한 대표 프로토콜은 SSL / HTTPS





2025 시나공 퀵이지 정보처리기사 실기 단기완성
(저자: 강윤석, 김용갑, 김우경, 김종일 | 출판사: 길벗)

※ 본 글은 위 교재를 참고하여 학습 목적으로 재정리한 내용입니다.