정보처리기사 실기 요점정리
9장. 소프트웨어 개발 보안 구축
▶ 수험서 : 2021 시나공 정보처리기사 실기
※ 시나공 교재를 토대로 작성하였으며 [ ] 안에 번호는 교재의 섹션입니다.
※ 부족한 내용은 구글링 및 수제비 카페를 참고하여 작성하였습니다.
[133] Secure SDLC(Software Development Life Cycle)
- Secure SDLC : 보안상 안전한 소프트웨어를 개발하기 위해 SDLC에 보안 강화를 위한 프로세스를 포함한 것을 의미한다.
- Secure SDLC의 대표적인 방법론 : CLASP, SDL, Seven Touchpoints
- 단계별 보안 활동
* 요구사항 분석 단계 : 보안 항목에 해당하는 요구사항을 식별하는 작업을 수행
* 설계 단계 : 식별된 보안 요구사항들을 소프트웨어 설계서에 반영하고 보안 설계서를 작성
* 구현 단계 : 표준 코딩 정의서 및 소프트웨어 개발 보안 가이드를 준수하며, 설계서에 따라 보안 요구사항들을 구현
* 테스트 단계 : 설계 단계에서 작성한 보안 설계서를 바탕으로 보안 사항들이 정확히 반영되고 작동되는지 점검
* 유지보수 단계 : 이전 과정을 모두 수행하였음에도 발생할 수 있는 보안사고들을 식별
- 소프트웨어 개발 보안 요소
* 기밀성 : 시스템 내의 정보와 자원은 인가된 사용자에게만 접근이 허용됨을 의미한다.
* 무결성 : 시스템 내의 정보는 오직 인가된 사용자만 수정할 수 있음을 의미한다.
* 가용성 : 인가받은 사용자는 시스템 내의 정보와 자원을 언제라도 사용할 수 있음을 의미한다.
- 시큐어 코딩 : 구현 단계에서 발생할 수 있는 보안 취약점들을 최소화하기 위해 보안 요소들을 고려하며 코딩하는 것을 의미한다.
[134] 세션 통제
- 세션 통제 : 세션의 연결과 연결로 인해 발생하는 정보를 관리하는 것을 의미한다.
- URL Rewire : 쿠키를 사용할 수 없는 환경에서 세션ID 전달을 위해 URL에 세션ID를 포함시키는 것, 노출된 세션ID로 보안 위협에 노출됨
클라이언트의 요청 메시지의 헤더 부분에 적힌 URL을 관리자가 목적에 맞게 변경할 수 있도록 지원하는 기능
[135] 입력 데이터 검증 및 표현
- 구현 단계 보안 점검 항목 : 입력 데이터 검증 및 표현, 보안 기능, 시간 및 상태, 에러처리, 코드 오류, 캡슐화, API 오용
- SQL Injection : 웹 응용 프로그램에 SQL을 삽입하여 데이터베이스 서버의 데이터를 유출 및 변조하고 관리자 인증을 우회하는 공격기법
- 크로스 사이트 스크립팅 : 웹페이지에 악의적인 스크립트를 삽입하여 정보를 탈취하거나 비정상적인 기능 수행을 유발하는 공격기법
- 메모리 버퍼 오버플로 : 연속된 메모리 공간을 사용하는 프로그램에서 할당된 메모리의 범위를 넘어선 위치에서
자료를 읽거나 쓰려고 할 때 발생하는 보안 약점
[136] 보안 기능
- 하드코드된 암호화 키 : 암호화된 키도 하드코드된 경우 유출 시 역계산 또는 무차별 대입 공격에 의해 탈취할 수 있음
* 하드코드 : 데이터를 코드 내부에 직접 입력하여 프로그래밍하는 방식
- 중요정보 평문 저장 및 전송 : 암호화되지 않은 평문 데이터를 탈취하여 중요한 정보를 획득할 수 있음
- 부적절한 인가 : 접근제어 기능이 없는 실행경로를 통해 정보 또는 권한을 탈취할 수 있음
[137] 시간 및 상태
- TOCTOU 경쟁 조건 : 검사시점과 사용시점을 고려하지 않고 코딩하는 경우 발생하는 보안 약점
[139] 코드 오류
- 널 포인터 역참조 : 널 포인 가리키는 메모리의 위치에 값을 저장할 때 방생하는 보안 약점
- 스택 가드 : 주소가 저장되는 스택에서 발생하는 보안 약점을 막는 기술
메모리상에서 프로그램의 복귀 주소와 변수 사이에 특정 값을 저장해 두었다가
그 값이 변경되었을 경우 오버플로우 상태로 가정하여 프로그램 실행을 중단함
[140] 캡슐화
- 접근 제어자 : public + (패키지외부) > protected # (하위클래스) > default ~ (패키지) > private - (클래스)
[142] 암호화 알고리즘
- 개인키 암호화 기법 : 동일한 키로 데이터를 암호화하고 복호화하는 암호화 기법, = 비밀키, 대칭키
* SEED : 1999년 한국인터넷진흥원에서 개발한 블록 암호화 알고리즘, 블록 128비트, 키 128/256 비트
* ARIA : 2004년 국가정보원과 산학연합회가 개발한 블록 암호화 알고리즘, 블록 128비트, 키 128/192/256 비트
* DES : 1975년 미국 NBS에서 발표한 개인키 암호화 알고리즘, 보안을 강화한 3DES도 있음, 블록 64비트, 키 56비트
* AES : 2001년 미국 표준 기술 연구소에서 발표한 개인키 암호화 알고리즘, DES의 한계 극복, 블록 128비트, 키 128/192/256 비트
- 공개키 암호화 기법 : 암호화할 때 사용하는 공개키는 공개하고 비밀키는 관리자가 관리하는 암호화 기법
* RSA : 1978년 MIT의 라이베스트, 샤미르, 애들먼에 의해 제안된 공개키 암호화 알고리즘, 소인수분해 기반
- 해시: 임의의 길이의 입력 데이터나 메시지를 고정된 길이의 값이나 키로 변환하는 것
* SHA 시리즈 : 1993년 미국 국가안보국이 설계, 미국 국립표준기술연구소에 의해 발표됨
* MD5 : 1991년 라이베스트가 MD4를 대체하기 위해 고안한 암호화 해시 함수, 블록 512비트, 키 128비트
* N-NASH : 1989년 일본의 전신전화주식회사에서 발표한 암호화 해시 함수, 블록 128비트, 키 128비트
* SNEFRU : 1990년 머클이 발표한 해시 함수, 32 비트 프로세서에서 구현 목적
[144] 서버 인증
- 보안 서버 : 인터넷을 통해 개인정보를 암호화하여 송수신할 수 있는 기능을 갖춘 서버를 말한다.
- 인증 : 로그인을 요청한 사용자의 정보를 확인하고 접근 권한을 검증하는 보안 절차이다.
- 인증 유형 : 지식 기반 인증(Something you know), 소유 기반 인증(Something you have), 생체 기반 인증(Something you are),
위치 기반 인증(Somewhere you are), 행위 기반 인증(Something you do)
[145] 보안 아키텍처 / 보안 프레임 워크
- 보안 아키텍처 : 보안 요소 및 보안 체계를 식별하고 이들 간의 관계를 정의한 구조를 말한다.
- 보안 프레임워크 : 안전한 정보 시스템 환경을 유지하고 보안 수준을 향상시키기 위한 체계를 말한다.
[146] 로그 분석
- 로그 : 시스템 사용에 대한 모든 내역을 기록해 놓은 것이다.
- 리눅스의 로그 파일 : 커널 로그, 부팅 로그, 크론 로그, 시스템 로그, 보안 로그, FTP 로그, 메일 로그
- 윈도우 이벤트 뷰어의 로그 : 응용 프로그램, 보안, 시스템, Setup, Forwarded Events
[147] 보안 솔루션
- 보안 솔루션 : 외부로부터의 불법적인 침입을 막는 기술 및 시스템
- 방화벽 : 내부의 네트워크와 인터넷 간에 전송되는 정보를 선별하여 수용, 거부, 수정하는 기능을 가진 침입 차단 시스템
- 침입 탐지 시스템 IDS : 컴퓨터 시스템의 비정상적인 사용, 오용, 남용 등을 실시간으로 탐지하는 시스템
- 침입 방지 시스템 IPS : 비정상적인 트래픽을 능동적으로 차단하고 격리하는 등의 방어조치를 취하는 보안 솔루션
- 데이터 유출방지 DLP : 내부 정보의 외부 유출을 방지하는 보안 솔루션
- 웹 방화벽 : 웹 기반 공격을 방어할 목적으로 만들어진 웹 서버에 특화된 방화벽
- VPN : 공중 네트워크와 암호화 기술을 이용하여 사용자가 마치 자신의 전용 회선을 사용하는 것처럼 해주는 보안 솔루션
- NAC : 네트워크에 접속하는 내부 PC의 MAC 주소를 IP 관리 시스템에 등록한 후 일관된 보안 관리 기능을 제공하는 보안 솔루션
- ESM : 로그 및 보안 이벤트를 통합해서 관리하는 보안 솔루션
'CS > 정보처리기사' 카테고리의 다른 글
[정보처리기사 실기] 11장. 응용 SW 기초 기술 활용 (0) | 2021.07.20 |
---|---|
[정보처리기사 실기] 10장. 프로그래밍 언어 활용 (0) | 2021.07.19 |
[정보처리기사 실기] 8장. SQL 응용 (0) | 2021.07.19 |
[정보처리기사 실기] 7장. 애플리케이션 테스트 관리 (0) | 2021.07.19 |
[정보처리기사 실기] 6장. 화면 설계 (0) | 2021.07.16 |