정보처리기사 실기 요점정리

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 : 로그 및 보안 이벤트를 통합해서 관리하는 보안 솔루션