728x90

Secure SDLC

Secure SDLC의 개요

- 보안상 안전한 소프트웨어를 개발하기 위해 SDLC(소프트웨어 개발 생명주기)에 보안 강화를 위한 프로세스를 포함한 것

- 유지보수 단계에서 보안 이슈를 해결하기 위해 소모되는 비용을 최소화하기 위함

- Secure Software 사의 CLASP, Microsoft 사의 SDL 등

 

요구사항 분석 단계에서의 보안 활동

- 보안 항목에 해당하는 요구사항을 식별하는 작업 수행

- 보안 수준을 보안 요소별로 등급을 구분하여 분류

- 보안 요소 : 기밀성, 무결성, 가용성, 인증, 부인 방지

 

설계 단계에서의 보안 활동

- 식별된 요구사항을 소프트웨어 설계서에 반영하고 보안 설계서 작성

- 네트워크, 서버, 물리적 보안, 개발 프로그램 등 환경에 대한 보안통제 기준을 수립하여 설계에 반영

 

구현 단계에서의 보안 활동

- 표준 코딩 정의서 및 소프트웨어 개발 보안 가이드를 준수하여 설계서에 따라 보안 요구 사항 구현

- 단위 테스트 실행

- 시큐어 코딩 : 구현 단계에서 발생할 수 있는 보안 취약점을 최소화하기 위해 보안 요소들을 고려하여 코딩

 

테스트 단계에서의 보안 활동

- 작성된 보안 설계서를 바탕으로 보안 사항들이 정확히 반영되고 동작되는지 점검

 

유지보수 단계에서의 보안 활동

- 이전 과정을 모두 수행했음에도 발생할 수 있는 보안사고들을 식별하고 발생 시 해결하고 보안 패치 실시

 

세션 통제

세션 통제의 개요

- 서버와 클라이언트의 연결인 세션 간의 연결로 인해 발생하는 정보를 관리

- 요구사항 분석 및 설계 단계에서 진단해야 하는 보안 점검 내용

 

불충분한 세션 관리

- 일정한 규칙이 존재하는 세션ID가 발급되거나 타임아웃이 너무 길게 설정되어 있는 경우 발생

- 세션 하이재킹(세션 정보를 가로채는 공격)을 통해 획득한 세션 ID로 접근할 수 있음

 

잘못된 세션에 의한 정보 노출

- 다중 스레드 환경에서 멤버 변수에 정보를 저장할 때 발생

- 변수의 범위를 제한하는 방법으로 방지 가능

- 싱글톤 패턴에서 발생하는 레이스컨디션으로 인해 동기화 오류가 발생하거나 멤버 변수의 정보가 노출될 수 있음

- 레이스컨디션 : 두 개 이상의 프로세스가 공용 자원을 획득하기 위해 경쟁하고 있는 상태

 

세션 설계 시 고려사항

- 로그아웃 요청 시 할당된 세션이 완전히 제거되도록 함

- 이전 세션이 종료되지 않으면 새로운 세션이 생성되지 못하도록 함

 

입력 데이터 검증 및 표현

입력 데이터 검증 및 표현의 개요

- 입력 데이터로 인해 발생하는 문제들을 예방하기 위해 구현 단계에서 검증해야 하는 보안 점검 항목

- 개발 단계에서 유효성 검증 체계를 갖추고 검증되지 않은 데이터가 입력될 시 처리할 수 있도록 구현해야 함

- 일관된 언어셋을 사용하여 코딩

 

입력 데이터 검증 및 표현의 보안 약점

 

보안 기능

보안 기능의 개요

- 코딩하는 기능인 인증, 접근제어, 기밀성, 암호화들을 올바르게 구현하기 위해 구현 단계에서의 보안 점검 항목

 

보안 기능의 보안 약점

 

시간 및 상태

시간 및 상태의 개요

- 동시 수행을 지원하는 병렬 시스템이나 다수의 프로세스가 동작하는 환경에서 시간과 실행 상태를 관리하여 원활하게 동작되도록 하기 위한 보안 검증 항목

 

TOCTOU 경쟁 조건

- 검사 시점과 사용 시점을 고려하지 않고 발생하는 보안 약점

 

종료되지 않은 반복문 또는 재귀 함수

- 조건이나 논리 구조를 잘못 구성하여 종료할 수 없게 되는 경우 시스템 자원을 끊임없이 사용하여 자원고갈로 인한 서비스 또는 시스템 장애 발생

 

에러 처리의 개요

에러 처리의 개요

- 소프트웨어 실행 중 발생할 수 있는 오류들을 사전에 정의하여 오류로 인해 발생할 수 있는 문제들을 예방하기 위한 보안 점검 항목

- 예외처리 구문을 통해 오류에 대한 사항 정의

 

오류 메시지를 통한 정보 노출

- 오류 발생으로 실행 환경, 사용자 정보, 디버깅 정보 등 중요 정보를 소프트웨어가 메시지로 외부에 노출하는 보안 약점

- 오류 발생 시 최대한 내부에서 처리하거나 메시지를 최소한의 내용으로 출력하여 정보 노출을 방지해야 함

 

오류 상황 대응 부재

- 소프트웨어의 오류에 대한 에러 처리를 하지 않았거나 미비로 인해 발생하는 보안 약점

 

부적절한 예외처리

- 함수의 반환 값 또는 오류들을 세분화하여 처리하지 않고 광범위하게 묶어서 한 번에 처리하거나 누락된 예외가 존재할 때 발생하는 보안 약점

 

코드 오류

코드 오류의 개요

- 소프트웨어 구현 단계에서 코딩 중 실수하기 쉬운 형 변환, 자원 반환 등 오류를 예방하기 위한 보안 점검 항목

 

널 포인터 역참조

- 널 포인터가 가리키는 메모리에 어떠한 값을 저장할 때 발생하는 보안 약점

- 오류로 인해 반환되는 널 값을 포인터로 참조하는 경우 발생

 

부적절한 자원 해제

- 자원을 반환하는 코드를 누락하거나 프로그램 오류로 할당된 자원을 반환하지 못했을 때 발생하는 보안 약점

- 유한한 시스템 자원이 계속 점유하고 있으면 자원 부족이 발생

 

해제된 자원 사용

- 이미 반환된 메모리를 참조하는 경우 발생하는 보안 약점

- 반한 된 메모리를 참조하는 경우 예상하지 못한 값 또는 코드를 수행하게 되어 의도하지 않은 결과가 발생됨

 

초기화되지 않은 변수 사용

- 변수 선언 후 값이 부여되지 않은 변수를 사용할 때 발생하는 보안 약점

 

캡슐화

캡슐화의 개요

- 정보 은닉이 필요한 중요한 데이터와 기능을 불충분하게 캡슐화하거나 잘못 사용함으로써 발생할 수 있는 문제를 예방하기 위한 보안 점검 항목

 

제거되지 않고 남은 디버그 코드

- 개발 중에 버그 수정이나 결과값을 확인을 위해 남겨둔 코드들로 인해 발생하는 보안 약점

 

시스템 데이터 정보 노출

- 시스템의 내부 정보를 시스템 메시지 등을 통해 외부로 출력하도록 구현했을 때 발생하는 보안 약점

 

Public 메소드로부터 반환된 Private 배열

- Private 배열을 Public 메소드에서 반환할 때 발생하는 보안 약점

 

Private 배열에 Public 데이터 할당

- Private 배열에 Public으로 선언된 데이터 또는 메소드의 파리 미터를 저장할 때 발생하는 보안 약점

 

API 오용

API 오용의 개요

- 소프트웨어 구현 단계에서 API를 잘못 사용하거나 보안에 취약한 API를 사용하지 않도록 하는 보안 검증 항목

 

DNS Lookup에 의존한 보안 결정

- 도메인명에 의존하여 보안 결정을 내리는 경우 발생하는 보안 약점

- IP 주소를 직접 입력하여 접근하게 하여 방지 가능

 

취약한 API 사용

- 보안 문제로 사용이 금지된 API를 사용하거나 잘못된 방식으로 API를 사용했을 때 발생하는 보안 약점

 

암호 알고리즘

암호 알고리즘의 개요

- 중요정보를 보호하기 위한 평문을 암호화된 문장으로 만드는 방법

 

개인키 암호화 기법

- 동일한 키로 데이터를 암호화하고 복호화함

- 대칭 암호 기법, 단일키 암호화 기법이라고도 함

- Stream 기법 : 평문과 동일한 길이의 스트림을 생성하여 비트 단위로 암호화

- Block 기법 : 한 번에 하나의 데이터 블록을 암호화

 

공개키 암호화 기법

- 데이터를 암호화하는 공개키는 데이터베이스 사용자에게 공개하고 복호화하는 비밀키는 관리자에게만 공개

- 비대칭 암호화 기법이라고도 함

- RSA기법 : 공개키와 비밀키는 메시지를 열고 잠그는 상수를 의미

 

양방향 암호화 알고리즘 종류

- SEED : 블록 크기는 128비트, 키의 길이에 따라 128, 256로 분류

- ARIA : 블록 크기는 128비트, 키의 길이에 따라 128, 192, 256로 분류

- DES : 블록 크기는 64비트, 키의 길이 56비트

- AES : 블록 크기는 128비트, 키의 길이에 따라 128, 192, 256로 분류

 

해시(Hash)

- 임의의 길이의 입력 데이터나 메시지를 고정된 길이의 값이나 키로 변환

- SHA 시리즈, MD5, N-NASH, SNEFRU 등

 

실기 정리

 

2021 정보처리기사 실기 정리

본 정리 글은 시나공 정보처리기사 실기책과 2020년 기출문제 등을 참고하여 작성하였습니다. -> 책 정보 확인하기 시나공 정보처리기사 실기 수험생들의 궁금증을 100% 반영시험에 나올만한 내

1d1cblog.tistory.com

 

728x90

+ Recent posts