[시나공] Secure SDLC · 개발 보안 정리 (Secure SDLC / CIA / 시큐어 코딩 / SQL Injection / XSS / 버퍼 오버플로우 / SSL / 하드코딩)
2026. 3. 26. 02:13ㆍCertifications/정보처리기사 실기
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 시나공 퀵이지 정보처리기사 실기 단기완성
(저자: 강윤석, 김용갑, 김우경, 김종일 | 출판사: 길벗)
※ 본 글은 위 교재를 참고하여 학습 목적으로 재정리한 내용입니다.
'Certifications > 정보처리기사 실기' 카테고리의 다른 글
| [시나공] 인증·접근제어·보안 시스템 정리 (SNEFRU / 인증 / 방화벽 / IDS / IPS / 템퍼 프루핑) (0) | 2026.03.26 |
|---|---|
| [시나공] 암호화 알고리즘 정리 (대칭키 / 공개키 / 해시 / AES / RSA / SHA) (0) | 2026.03.26 |
| [시나공] SQL 심화 정리 (JOIN / 서브쿼리 / DML / 트리거) (0) | 2026.03.24 |
| [시나공] SQL 기본 정리 (SELECT / WHERE / GROUP BY / 집계함수 / UNION) (0) | 2026.03.24 |
| [시나공] DDL · DCL · 트랜잭션 제어 정리 (CREATE / ALTER / DROP / GRANT / REVOKE / COMMIT / ROLLBACK) (0) | 2026.03.24 |