정보처리기사

정보처리기사 실기 요약 - 9장. 소프트웨어 개발 보안 구축

례지 2022. 9. 22. 17:54
728x90

01. Secure SDLC

 

1) Secure SDLC(소프트웨어 개발 생명 주기): SDLC에 보안 강화를 위한 프로세스를 포함한 것

- CLASP: SDLC의 초기 단계에서 보안을 강화하기 위해 개발된 방법론

- SDL: MS사에서 기존의 SDLC를 개선한 방법론

- Seven Touchpoints: 소프트웨어 보안의 모범사례를 SDLC에 통합한 방법론

 

2) SDLC 단계별 보안 활동

- 요구사항 분석 → 설계 → 구현 → 테스트 → 유지보수

 

3) 소프트웨어 개발 보안 요소

- 기밀성(Confidentiality): 시스템 내의 정보와 자원은 인가된 사용자에게만 접근이 허용됨.

- 무결성(Integrity): 시스템 내의 정보는 오직 인가된 사용자만 수정할 수 있음.

- 가용성(Availability): 인가받은 사용자는 시스템 내의 정보와 자원을 언제라도 사용할 수 있음.

- 인증(Authentication): 시스템 내의 정보와 자원을 사용하려는 사용자가 합법적인 사용자인지를 확인하는 모든 행위

- 부인 방지(Non Repudiation): 데이터를 송수신한 자가 송수신 사실을 부인할 수 없도록 송수신 증거를 제공함

 

02. 세션 통제

 

1) 세션 통제: 세션의 연결과 연결로 인해 발생하는 정보를 관리하는 것

 

03. 입력 데이터 검증 및 표현

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

SQL 삽입 웹 응용 프로그램에 SQL을 삽입하여 내부 DB 서버의 데이터를 유출 및 변조하고 관리자 인증을 우회하는 보안 약점
경로 조작 및 자원 삽입 데이터 입출력 경로를 조작하여 서버 자원을 수정, 삭제할 수 있는 보안 약점
크로스사이트 스크립팅(XSS) 웹페이지에 악의적인 스크립트를 삽입하여 방문자들의 정보를 탈취하거나 비정상적인 기능 수행을 유발하는 보안 약점
운영체제 명령어 삽입 외부 입력값을 통해 시스템 명령어의 실행을 유도함으로써 권한을 탈취하거나 시스템 장애를 유발
위험한 형식 파일 업로드 악의적인 명령어가 포함된 스크립트 파일을 업로드함으로써 시스템에 손상을 주거나 시스템을 제어할 수 있는 보안 약점
신뢰되지 않는 URL 주소로 자동접속 연결 입력  값으로 사이트 주소를 받는 경우 이를 조작하여 방문자를 피싱 사이트로 유도하는 보안 약점
메모리 버퍼 오버플로 연속된 메모리 공간을 사용하는 프로그램에서 할당된 메모리의 범위를 넘어선 위치에서 자료를 읽거나 쓰려고 할 때 발생하는 보안 약점

 

04. 보안 기능

- 보안 기능의 보안 약점

적절한 인증 없이 중요 기능 허용 보안검사를 우회하여 인증과정 없이 중요한 정보 또는 기능에 접근 및 변경이 가능함
부적절한 인가 접근 제어 기능이 없는 실행 경로를 통해 정보 또는 권한을 탈취할 수 있음
중요한 자원에 대한 잘못된 권한 설정 권한 설정이 잘못된 자원에 접근하여 해당 자원을 임의로 사용할 수 있음
취약한 암호화 알고리즘 사용 암호화된 환경설정 파일을 해독하여 비밀번호 등의 중요 정보를 탈취할 수 있음
중요 정보 평문 저장 및 전송 암호화되지 않은 평문 데이터를 탈취하여 중요한 정보를 획득할 수 있음
하드코드된 암호화 키 암호화된 키도 하드코드된 경우 유출 시 역계산 또는 무차별 대입 공격에 의해 탈취될 수 있음

 

05. 시간 및 상태

- 시간 및 상태의 보안 약점

     - TOCTOU 경쟁 조건: 검사 시점과 사용 시점을 고려하지 않고 코딩하는 경우 발생

     - 종료되지 않는 반복문 또는 재귀 함수: 반복문이나 재귀함수에서 무한 반복되는 경우 발생하는 보안 약점

 

06. 에러처리

- 에러처리의 보안 약점: 오류 메시지를 통한 정보 노출, 오류 상황 대응 부재, 부적절한 예외처리

 

07. 코드 오류

 

1) 코드 오류의 보안 약점

널 포인터 역참조 널 포인터가 가리키는 메모리의 위치에 값을 저장할 때 발생
부적절한 자원 해제 자원을 반환하는 코드를 누락하거나 프로그램 오류로 할당된 자원을 반환하지 못했을 때 발생
해제된 자원 사용 이미 사용이 종료되어 반환된 메모리를 참조하는 경우 발생
초기화되지 않은 변수 사용 변수 선언 후 값이 부여되지 않은 변수를 사용할 때 발생

2) 스택 가드: 주소가 저장되는 스택에서 발생하는 보안 약점을 막는 기술

 

08. 캡슐화

 

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

 

2) 캡슐화의 보안 약점

잘못된 세션에 의한 정보 노출 다중 스레드 환경에서 멤버 변수에 정보를 저장할 때 발생
제거되지 않고 남은 디버그 소스 개발 중에 버그 수정이나 결과값 확인을 위해 남겨둔 코드로 인해 발생
시스템 데이터 정보 노출 시스템의 내부 정보를 시스템 메시지 등을 통해 외부로 출력하도록 코딩했을 때 발생
Public 메소드로부터 반환된 Private 배열 Private 배열을 Public 메소드에서 반환할 때 발생
Private 배열에 Public 데이터 할당 Private 배열에 Public으로 선언된 데이터 또는 메소드의 파라미터를 저장할 때 발생

 

3) 접근 제어자: 외부로부터의 접근을 제한하기 위해 사용되는 예약어

- Public > Protected > Default > Private

 

09. API 오용

- API 오용의 보안 약점: DNS Lookup에 의존한 보안 결정, 취약한 API 사용

 

10. 암호 알고리즘

 

1) 암호 알고리즘: 중요 정보를 보호하기 위해 평문을 암호화된 문장으로 만드는 절차 또는 방법을 의미

 

2) 개인키 암호화 기법(대칭, 단일키): 동일한 키로 데이터를 암호화하고 복호화하는 기법

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

     - 종류: LFSR, RC4

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

     - DES: 1997년 미국 NBS에서 발표

     - SEED: 1999년 KISA에서 개발, 키 길이에 따라 128, 256으로 분류됨

     - AES: 2001년 NIST에서 DES의 한계를 느끼고 발표

     - ARIA: 2004년 국가정보원과 산학연협회가 개발

- 공개키 암호화 기법(비대칭): 암호화할 때 사용하는 공개키는 공개하고 비밀키는 관리자가 비밀리에 관리

     - RSA: 큰 숫자를 소인수분해 하기 어렵다는 것에 기반하여 만들어짐

 

3) 해시: 임의의 길이 입력 데이터나 메시지를 고정된 길이의 값이나 키로 변환하는 것

- SHA 시리즈: 1993년 NSA가 설계, NIST에 의해 발표됨

- MD5: 1991년 Rivest가 MD4를 대체하기 위해 고안. 블록 크기 512비트, 키 길이 128비트

- N-NASH: 1989년 일본의 NTT에서 발표, 블록과 키 모두 128비트

- SNEFRU: 1990년 R.C.Merkle가 발표, 32비트 프로세서에서 구현을 용이하게 할 목적으로 개발됨.

 

11. 서비스 공격 유형

 

1) 서비스 거부 공격(DoS, Denial of Service)

Ping of Death(죽음의 핑) 패킷의 크기를 인터넷 프로토콜 허용 범위 이상으로 전송하여 네트워크를 마비시킴.
스머핑 IP나 ICMP의 특성을 악용하여 엄청난 양의 데이터를 한 사이트에 집중적으로 보냄으로서 네트워크를 불능 상태로 만듦.
SYN Flooding 3-way-handshake 과정을 의도적으로 중단시킴으로써 서버가 대기상태에 놓여 정상적인 서비스를 수행하지 못하게 하는 공격 방법
TearDrop Offset 값을 변경시켜 수신 측에서 과부하를 발견시킴으로써 시스템이 다운되도록 함.
LAND Attack 패킷을 전송할 때 송신 IP 주소와 수신 IP 주소를 모두 공격 대상의 IP 주소로 하여 자신에 대해 무한히 응답하게 함.
DDos(분산 서비스 거부 공격) 여러 곳에 분산된 공격 지점에서 한 곳의 서버에 대해 분산 서비스 공격을 수행하는 것

2) 네트워크 침해 공격 관련 용어

스미싱 문자 메시지를 이용해 사용자의 개인 사용 정보를 빼내는 수법
스피어 피싱 일반적인 이메일로 위장한 메일을 지속적으로 발송해 발송 메일의 본문 링크나 첨부 파일을 클릭하도록 유도해 개인 정보를 탈취
APT(지능형 지속 위협) 다양한 IT 기술과 방식들을 이용해 공격 대상의 네트워크에 침투해 활동 거점을 마련한 뒤, 때를 기다리면서 보안을 무력화시키고 정보를 수집해 외부로 빼돌림.
무작위 대입 공격 암호키를 찾기 위해 적용 가능한 모든 값을 대입하여 공격
큐싱 QR코드를 통해 악성 앱의 다운로드를 유도하거나 악성 프로그램을 설치하도록 함
SQL 삽입 전문 스캐너 프로그램 혹은 봇넷 등을 이욯 웹 사이트를 무차별적으로 공격하는 과정에서 취약한 사이트가 발견되면 DB 등의 데이터를 조작함.
크로스 사이트 스크립팅(XSS) 웹 페이지의 내용을 사용자 브라우저에 표현하기 위해 사용되는 스크립트의 취약점을 이용
스니핑 엿보기, 남의 패킷 정보를 도청하는 해킹 유형

3) 정보 보안 침해 공격 관련 용어

좀비 PC 악성코드에 감염되어 다른 프로그램이나 컴퓨터를 조종하도록 만들어진 컴퓨터로, C&C서버의 제어를 받아 주로 DDoS 공격 등에 이용됨.
C&C 서버 해커가 원격지에서 감염된 좀비 PC에 명령을 내리고 악성코드를 제어하기 위한 용도로 사용하는 서버
봇넷 악성 프로그램에 감염되어 악의적인 의도로 사용될 수 있는 다수의 컴퓨터들이 네트워크로 연결된 형태
네트워크를 통해 연속적으로 자신을 복제하여 시스템의 부하를 높여서 시스템을 다운 시킴
제로 데이 공격 보안 취약점이 발견되었을 때 널리 공표되기 전에 해당 취약점을 통하여 이루어지는 보안 공격
키로거 공격 컴퓨터, 사용자의 키보드 움직임을 탐지해 개인 정보를 빼가는 해킹 공격
랜섬웨어 사요자의 컴퓨터에 잠입해 내부 문서나 파일 등을 열지 못하도록 암호화하는 프로그램
백도어 시스템 설계자가 액세스 편의를 위해 시스템 보안을 제거하여 만들어놓은 비밀 통로
트로이 목마 정상적인 기능을 하는 프로그래믕로 위장하여 숨어있다가 해당 프로그램이 동작할 때 활성화됨. 자기 복제 능력은 없음.

 

12. 서버 인증

 

1) 보안 서버: 개인 정보를 암호화하여 송수신 할 수 있는 기능을 갖춘 서버

 

2) 인증: 로그인을 요청한 사용자의 정보를 확인하고 접근 권한을 검증하는 보안 절차

- 지식 기반 인증: 사용자가 기억하고 있는 정보를 기반으로 인증을 수행하는 것

     - 유형: 고정된 패스워드, 아이핕

- 소유 기반 인증: 사용자가 소유하고 있는 것을 기반으로 인증을 수행하는 것

     - 유형: 신분증, 메모리 카드, 스마트 카드, OTP

- 생체 기반 인증: 사용자의 고유한 생체 정보를 기반으로 인증을 수행하는 것

     - 사용자의 고유한 생체 정보를 기반으로 인증을 수행하는 것

 

13. 보안 아키텍처/보안 프레임워크

 

1) 보안 아키텍처: 보안 요소 및 보안 체계를 식별하고 이들 간의 관계를 정의한 구조

 

2) 보안 프레임워크: 안전한 정보 시스템 환경을 유지하고 보안 수준을 향상시키기 위한 체계

 

14. 로그 분석

- 로그: 시스템 사용에 대한 모든 내역을 기록해 놓은 것

 

15. 보안 솔루션

 

1) 보안 솔루션: 외부로부터의 불법적인 침입을 막는 기술 및 시스템

 

2) 주요 보안 솔루션

방화벽(Firewall) 내부의 네트워크와 인터넷 간에 전송되는 정보를 선별하여 수용, 거부, 수정하는 기능을 가진 침입 차단 시스템
침입 탐지 시스템(IDS) 컴퓨터 시스템의 비정상적인 사용, 오용, 남용 등을 실시간으로 탐지하는 시스템
침입 방지 시스템(IPS) 비정상적인 트래픽을 능동적으로 차단하고 격리함
데이터 유출 방지(DLP) 내부 정보의 외부 유출을 방지하는 보안 솔루션
웹 방화벽(Web Firewall) 웹 기반 공격을 방어할 목적으로 만들어진 웹 서버에 특화된 방화벽
VPN(가상 사설 통신망) 공중 네트워크와 암호화 기술을 이용하여 사용자가 마치 자신의 전용 회선을 사용하는 것처럼 해주는 보안 솔루션
NAC(Network Access Control) 네트워크에 접속하는 내부 PC의 일관된 보안 관리 기능을 제공
ESM(통합 보안 관계 시스템) 로그 및 보안 이벤트를 통합하여 관리함
728x90