정보처리기사 CBT
종목 메뉴

개념 한 쪽

정보처리기사 Secure SDLC — 개발 보안 설계

소프트웨어를 만드는 전 과정에 보안을 심는 것이 Secure SDLC다. 입력값 검증, 취약점 연구, 암호화 방식의 선택까지 설계 단계에서 함께 다룬다. 어떤 공격이 어디서 생기고, 어떤 원칙과 기법으로 막는지를 구분하는 것이 핵심이다.

2026-11-08 기준 · 정보처리기사 대시보드

이 개념을 문제로 확인하고 싶으면 이 개념 문제 10개 풀기 회원용

가입 없이 오늘의 10문제 바로 풀기 →

시험에 이렇게 나온다

출제기준 단원 「Secure SDLC(SoftwareDevelopment Life Cycle)」의 공개 문제 3개를 묻는 꼴별로 나누면 이렇습니다.

묻는 꼴문제 수무엇을 묻나
입력 데이터 보안 약점 판별1입력값 검증 약점과 자원 고갈 설명의 옳고 그름 가리기
SQL 삽입 설명 판별1데이터베이스 종류에 따른 기법 차이를 묻는 설명 가리기
웹 보안 프로젝트 식별1웹 취약점을 연구하는 오픈소스 프로젝트 찾기

뜻

Secure SDLC는 소프트웨어 개발 생명주기 전반에 보안 활동을 녹여 넣는 관점이다. 개발이 끝난 뒤에 보안을 덧붙이는 것이 아니라, 요구 분석부터 설계·구현·시험까지 각 단계에서 보안 약점을 미리 다룬다. 이 관점에서 가장 자주 등장하는 것이 입력 데이터 처리의 보안 약점이다.

입력 데이터와 관련한 대표 약점으로 SQL 삽입, 크로스사이트 스크립트, 운영체제 명령어 삽입이 있다. 이들은 모두 외부에서 들어오는 입력값을 충분히 검증하지 않아 생긴다. SQL 삽입은 데이터베이스 쿼리를 조작하고, 크로스사이트 스크립트는 브라우저에서 악성 코드를 실행하게 하며, 운영체제 명령어 삽입은 서버 명령을 직접 실행하게 만든다. 반면 자원 고갈은 외부에서 대량 요청을 보내 시스템 자원을 소모시키는 공격으로, 외부 입력 검증 부재와는 결이 다르다. SQL 삽입도 데이터베이스 종류에 따라 쓸 수 있는 함수와 구문이 달라, 모든 기법이 하나로 같다고 볼 수 없다.

웹 애플리케이션 보안 취약점을 연구하는 오픈소스 프로젝트로 OWASP가 있다. 웹을 통한 정보 유출, 악성 파일과 스크립트, 보안 취약점 등을 다룬다. 월드 와이드 웹은 인터넷 서비스 자체를 가리키고, 국제 전기 통신 연합은 통신 표준을 정하는 국제 기구라서 보안 연구 프로젝트와는 다르다.

보안을 설계할 때는 보안 서비스의 목적을 구분한다. 부인 방지는 데이터를 주고받은 사실을 증거로 남겨 당사자가 이를 부정하지 못하게 한다. 인증은 신원을 확인하고, 암호화는 내용을 숨기며, 위험 탐지는 공격을 찾아낸다.

암호화는 키를 어떻게 나누는지로 갈린다. 대칭키 방식은 암호화와 해독에 같은 키를 쓰고, 비대칭키 방식은 암호화 키와 해독 키가 다르다. 공개키 시스템에서 공개키는 공개되어도 되고 개인키만 비밀로 지키면 된다. 키 분배가 쉽고 키가 분리되며 RSA가 대표적인 공개키 알고리즘이다. 암호화와 해독에 서로 다른 키를 쓰는 방식 역시 공개키 계열이며 RSA가 여기에 속한다. DES, SEED, RC2는 하나의 키를 쓰는 대칭키 방식이다. DES는 평문을 64비트 블록으로 나누고, 64비트 키 가운데 8비트를 패리티로 빼고 남은 56비트를 실제 키로 쓴다.

예제

입력값 검증과 관련한 문제는 외부 입력과 무관한 공격을 섞어 함정을 만든다. 자원 고갈을 내부 입력값으로 일으키는 것처럼 설명하거나, SQL 삽입 기법이 데이터베이스 종류와 상관없이 모두 같다고 하면 틀린다. 암호화에서는 공개키까지 보안해야 한다는 설명이 대표적인 함정이다. 공개키는 이름 그대로 공개되어도 되고 개인키만 지키면 된다. DES의 블록 크기와 키 길이를 뒤바꾸거나 32비트·16비트 같은 다른 숫자를 끼워 넣는 선지도 경계해야 한다. 부인 방지와 인증, 암호화를 서로 바꿔 놓는 문제도 자주 나온다.

대표 기출 3문항

SQL Injection 공격과 관련한 설명으로 틀린것은?

  1. SQL Injection은 임의로 작성한 SQL 구문을 애플리케이션에 삽입하는 공격방식이다.
  2. SQL Injection 취약점이 발생하는 곳은 주로웹 애플리케이션과 데이터베이스가 연동되는 부분이다.
  3. DBMS의 종류와 관계없이 SQL Injection공격 기법은 모두 동일하다.
  4. 로그인과 같이 웹에서 사용자의 입력 값을 받아 데이터베이스 SQL문으로 데이터를요청하는 경우 SQL Injection을 수행할 수 있다.
정답과 해설 보기

정답 ③ · 웹 애플리케이션과 데이터베이스 간의 입력값 검증 부실로 발생하는 SQL 인젝션 공격의 특성을 묻는 문제이다. SQL 인젝션 공격은 공격 대상이 되는 DBMS(오라클, MySQL, MS-SQL 등)의 종류에 따라 지원하는 내장 함수, 주석 기호, 시스템 테이블 구조 등이 다르기 때문에 공격 기법과 구문이 달라진다.

SQL Injection 공격 기법은 DBMS 종류(Oracle, MySQL 등)에 따라 사용 가능한 함수나 구문이 다르므로 동일하지 않습니다.

오픈소스 웹 애플리케이션 보안 프로젝트로서 주로 웹을 통한 정보 유출, 악성 파일 및 스크립트, 보안 취약점 등을 연구하는 곳은?

  1. WWW
  2. OWASP
  3. WBSEC
  4. ITU
정답과 해설 보기

정답 ② · 웹 애플리케이션 보안 취약점을 연구하는 오픈소스 프로젝트의 명칭을 묻는 문제이다. OWASP는 Open Web Application Security Project의 약자로, 웹을 통한 정보 유출, 악성 파일 및 스크립트, 보안 취약점 등을 연구하는 국제 오픈소스 프로젝트이다.

웹 애플리케이션 보안 취약점 연구를 주도하는 오픈소스 프로젝트는 OWASP이다.

Secure 코딩에서 입력 데이터의 보안 약점과 관련한 설명으로 틀린 것은?

  1. SQL 삽입 : 사용자의 입력 값 등 외부 입력 값이 SQL 쿼리에 삽입되어 공격
  2. 크로스사이트 스크립트 : 검증되지 않은 외부 입력 값에 의해 브라우저에서 악의적인 코드가 실행
  3. 운영체제 명령어 삽입 : 운영체제 명령어 파라미터 입력 값이 적절한 사전검증을 거치지 않고 사용되어 공격자가 운영체제 명령어를 조작
  4. 자원 삽입 : 사용자가 내부 입력 값을 통해 시스템 내에 사용이 불가능한 자원을 지속적으로 입력함으로써 시스템에 과부하 발생
정답과 해설 보기

정답 ④ · 이 문제는 입력 데이터 검증 관련 보안 약점 설명 중 틀린 것을 찾는 문제이다. 자원 삽입은 시스템 자원을 임의로 사용하는 공격으로, 외부 입력 값으로 시스템이 허용하지 않은 자원을 지정해 발생하는 취약점이지 설명처럼 내부 입력 값으로 시스템에 과부하를 일으키는 것이 아니다.

자원 삽입(Resource Exhaustion)은 외부 입력이 아닌 시스템 자원을 고갈시키는 공격 유형이며, 설명이 부정확합니다.

자주 묻는 물음

SQL 삽입과 자원 고갈은 어떻게 다른가요?
SQL 삽입은 외부 입력값을 제대로 검증하지 않아 데이터베이스 쿼리가 조작되는 약점이다. 자원 고갈은 외부에서 대량 요청을 보내 시스템 자원을 소모시키는 공격으로, 내부 입력값을 통한 자원 삽입과는 다르다.
공개키 시스템에서 비밀로 지켜야 하는 것은 무엇인가요?
공개키는 공개되어도 되고 개인키만 비밀로 유지한다. 두 키 모두를 보안해야 한다는 설명은 틀린다.
DES는 블록과 키를 몇 비트로 처리하나요?
평문을 64비트 블록으로 나누고, 64비트 키에서 패리티 8비트를 뺀 56비트를 실제 키로 쓴다.
이 개념 문제 10개 풀기 회원용

정보처리기사 풀이 세트에서 이 개념의 문제 10개를 바로 풀어 보세요.