정보
-
업무명 : 정보처리기사 필기 : 제5과목 정보시스템 구축 (소프트웨어 개발 보안 구축)
-
작성자 : 박진만
-
작성일 : 2021-03-03
-
설 명 :
-
수정이력 :
내용
[Secure SDLC]
-
Secure SDLC의 개요
-
보안상 안전한 소프트웨어를 개발하기 위해 SDLC에 보안 강화를 위한 프로세스를 포함 한 것
-
-
요구사항 분석 단계에서의 보안 활동
-
보안항목에 해당하는 요구사항을 식별하는 작업을 수행
-
-
보안 요소
-
기밀성, 무결성, 가용성, 인증, 부인 방지
-
-
설계 단계에서의 보안 활동
-
식별된 보안 요구사항들을 소프트웨어 설계서에 반영하고, 보안 설계서를 작성
-
-
구현 단계에서의 보안 활동
-
표준 코딩 정의서 및 소프트웨어 개발 보안 가이드를 준수하며, 설계서에 따라 보안 요구 사항들을 구현
-
-
테스트 단계에서의 보안 활동
-
설계 단계에서 작성한 보안 설계서를 바탕으로 보안 사항들이 정확히 반영되고 동작되는 지 점검
-
-
유지보수 단계에서의 보안 활동
-
보안 사고들을 식별하고, 사고 발생 시 이를 해결하고 보안 패치를 설치
-
[세션 통제]
-
세션 통제의 개요
-
세션 : 서버와 클라이언트의 연결
-
세션 통제 : 세션의 연결과 연결로 인해 발생하는 정보를 관리하는 것
-
세션 통제는 요구사항 분석 및 설계 단계에서 진단해야 하는 보안 점검 내용
-
보안 약점 : 불충분한 세션 관리, 잘못된 세션에 의한 정보 노출
-
-
-
불충분한 세션 관리
-
일정한 규칙이 존재하는 세션ID가 발급되거나 타임아웃이 너무 길게 설정되어 있는 경우 발생할 수 있는 보안 약점
-
-
잘못된 세션에 의한 정보 노출
-
다중 스레드(Multi-Thread) 환경에서 멤버 변수에 정보를 저장할 때 발생하는 보안 약점
-
-
세션 설계 고려사항
-
시스템의 모든 페이지에서 로그아웃이 가능하도록 UI(User Interface)를 구성
-
로그아웃 요청 시 할당된 세션이 완전히 제거되도록 한다.
-
-
세션ID의 관리
-
안전한 서버에서 최소 128비트의 길이로 새성
-
세션ID의 예측이 불가능하도록 안전한 난수 알고리즘을 제공
-
[입력 데이터 검증 및 표현]
-
입력 데이터 검증 및 표현의 개요
-
입력 데이터로 인해 발생하는 문제들을 예방하기 위해 구현 단계에서 검증해야 하는 보 안 점검 항목들
-
-
입력 데이터 검증 및 표현의 보안 약점
-
점검을 수행하지 않은 경우 SQL 삽입, 자원 삽입, 크로스사이트 스크립팅(XSS), 운영체 제 명령어 삽입 등의 공격에 취약해진다.
-
보안 약점의 종류 : SQL 삽입, 경로 조작 및 자원 삽입, 크로스사이트 스크립팅(XSS), 운영체 제 명령어 삽입, 위험한 형식 파일 업로드, 신뢰되지 않는 URL 주소로 자동접속 연결
-
[보안 기능]
-
보안 기능의 개요
-
소프트웨어 개발의 구현 단계에서 코딩하는 기능인 인증, 접근제어, 기밀성, 암호화 등을 올바르게 구현하기 위한 보안 점검 항목들
-
-
보안 기능의 보안 약점
-
적절한 인증 없이 중요기능 허용
-
부적절한 인가
-
[시간 및 상태]
-
시간 및 상태의 개요
-
병렬처리 시스템이나 다수의 프로세스가 동작하는 환경에서 시스템이 원활하게 동작되 도록 하기 위한 보안 검증 항목
-
-
TOCTOU 경쟁 조건
-
검사 시점(Time Of Check)과 사용 시점(Time Of Use)을 고려하지 않고 코딩하는 경 우 발생하는 보안 약점
-
[에러처리]
-
에러처리의 개요
-
소프트웨어 실행 중 발생할 수 있는 오류(Error)들을 사전에 정의하여 오류로 인해 발생 할 수 있는 문제들을 예방하기 위한 보안 점검 항목들이다.
-
-
오류 메시지를 통한 정보 노출
-
오류 발생으로 실행 환경, 사용자 정보, 디버깅 정보 등의 중요 정보를 소프트웨어가 메 시지로 외부에 노출하는 보안 약점
-
-
오류 상황 대응 부재
-
소프트웨어 개발 중 예외처리를 하지 않았거나 미비로 인해 발생하는 보안 약점
-
-
부적절한 예외처리
-
함수의 반환값 또는 오류들을 세분화하여 처리하지 않고 광범위하게 묶어 한 번에 처리 하거나 누락된 에외가 존재할 때 발생하는 보안 약점
-
[코드 오류]
-
코드 오류의 개요
-
개발자들이 코딩 중 실수하기 쉬운 형(Type) 변환, 자원 반환 등의 오류를 예방하기 위 한 보안 점검 항목들
-
-
널 포인터(Null Pointer) 역참조
-
널 포인터가 가리키는 메모리에 어떠한 값을 저장할 때 발생하는 보안 약점
-
-
부적절한 자원 해제
-
자원을 반환하는 코드를 누락하거나 프로그램 오류로 할당된 자원을 반환하지 못했을 때 발생하는 보안 약점
-
-
해제된 자원 사용
-
이미 사용이 종료되어 반환된 메모리를 참조하는 경우 발생하는 보안 약점
-
[캡슐화]
-
캡슐화의 개요
-
정보 은닉이 필요한 중요한 데이터와 기능을 불충분하게 캡슐화하거나 잘못 사용함으로 써 발생할 수 있는 문제를 예방하기 위한 보안 점검 항목들
-
캡슐화로 인해 발생할 수 있는 보안 약점
-
① 잘못된 세션에 의한 정보 노출 : 다중 스레드(Multi-Thread) 환경에서 멤버 변수에 정보를 저장할 때 발생
-
② 제거되지 않고 남은 디버그 코드 : 개발 중에 버그 수정이나 결과값 확인을 위해 남겨둔 코드 들로 인해 발생
-
③ 시스템 데이터 정보 노출
-
④ Public 메소드로부터 반환된 Private 배열
-
⑤ Public 배열에 Private 데이터 할당
-
-
[API 오용]
-
API 오용의 개요
-
API를 잘못 사용하거나 보안에 취약한 API를 사용하지 않도록 하기 위한 보안 검증 항목
-
-
DNS Lookup
-
보안 결정을 내리는 경우 발생하는 보안 약점
-
-
취약한 API 사용
-
보안 문제로 사용이 금지된 API를 사용하거나 잘못된 방식으로 API를 사용했을 때 발생
-
[암호 알고리즘]
-
암호 알고리즘의 개요
-
중요 정보를 보호하기 위해 평문을 암호화된 문장으로 만드는 절차 또는 방법
-
단방향 암호화 방식 : 해시(Hash)
-
양방향 암호화 방식 : 개인키(Stream 방식, Block 방식), 공개키
-
-
-
개인키 암호화(Private Key Encryption) 기법
-
동일한 키로 데이터를 암호화하고 복호화한다.
-
블록(Block) 암호화 방식 : 한 번에 하나의 데이터 블록을 암호화(DES, SEED, AES, ARIA)
-
스트림(Stream) 암호화 방식 : 평문과 동일한 길이의 스트림을 생성하여 비트 단위로 암호화 (LFSR, RC4)
-
-
장점 : 암호화/복호화 속도가 빠름, 알고리즘이 단순, 파일의 크기가 작다.
-
-
공개키 암호화(Public Key Encryption) 기법
-
암호화 할 때 사용하는 공개키(Public Key)는 데이터베이스 사용자에게 공개하고, 복호 화할 때의 비밀키(Secrey Key)는 관리자가 비밀리에 관리
-
비대칭 암호 기법이라고도 하며, 대표적으로 RSA(Rivest Shamir Adleman)기법이 있다.
-
-
장점 : 키의 분배가 용이, 관리해야 할 키의 개수가 적다.
-
-
양방향 알고리즘의 종류
-
SEED, ARIA, DES, AES, RSA
-
-
해시(Hash)
-
임의의 길이의 입력 데이터나 메시지를 고정된 길이의 값이나 키로 변환
-
데이터의 암호화, 무결성 검증을 위해 사용
-
[문제]
-
1. 소프트웨어에서 발생할 수 있는 보안 취약점들을 최소화하기 위해 보안 위협 요소들을 고려하여 프로그래밍하는 것을 의미하는 용어는?
-
① Secure Coding
-
② Secure SDLC
-
③ Secure Architecture
-
④ Secure Framework
-
-
2. 소프트웨어 개발의 구현 단계에서 보안 기능의 점검 미비로 인해 발생할 수 있는 보안 약점에 해당하지 않는 것은?
-
① 종료되지 않는 반복문 또는 재귀함수
-
② 부적절한 인가
-
③ 중요한 자원에 대한 잘못된 권한 설정
-
④ 적절한 인증없이 중요기능 허용
-
-
3. 다음 중 코드 오류와 관련된 보안 약점에 대한 설명으로 가장 옳지 않은 것은?
-
① 널 포인터가 가리키는 메모리에 값을 저장하면 오류가 발생한다.
-
② 널 포인터 역참조를 방지하려면 널 포인터를 초기화해야 한다.
-
③ 자원을 획득해서 사용한 다음에는 반드시 해제하여 반환해야 하는데 그렇지 않을 경우 문제가 발생한다.
-
④ 이미 사용이 종료된 반환 메모리를 참조하지 않기 위해서는 주소를 저장하고 있는 포인 터를 초기화한다.
-
-
4. 데이터를 암호화하는데 사용되는 RSA 기법에 대한 설명으로 가장 옳지 않은 것은?
-
① 암호화키와 해독키를 별도로 사용한다.
-
② 암호화키를 일반적으로 공중키라고도 한다.
-
③ 해독키는 반드시 비밀로 보호되어야 한다.
-
④ 암호화키를 사용하여 해독키를 유도할 수 있다.
-
참고 문헌
[논문]
- 없음
[보고서]
- 없음
[URL]
- 없음
문의사항
[기상학/프로그래밍 언어]
- sangho.lee.1990@gmail.com
[해양학/천문학/빅데이터]
- saimang0804@gmail.com
'자기계발 > 자격증' 카테고리의 다른 글
[자격증] 데이터분석 전문가 (ADP) 필기 : 제1과목 데이터 이해 (1) | 2022.10.15 |
---|---|
[자격증] 정보처리기사 필기 : 제5과목 정보시스템 구축 (시스템 보안 구축) (0) | 2021.03.03 |
[자격증] 정보처리기사 필기 : 제5과목 정보시스템 구축 (IT 프로젝트 정보시스템 구축 관리) (0) | 2021.03.03 |
[자격증] 정보처리기사 필기 : 제5과목 정보시스템 구축 (소프트웨어 개발 방법론 활용) (0) | 2021.03.03 |
[자격증] 정보처리기사 필기 : 제4과목 프로그래밍 언어 (응용 SW 기초 기술 활용) (0) | 2021.03.03 |
최근댓글