본문 바로가기
개발/정보처리기사

9장 소프트웨어 개발 보안 구축

by hamcheeseburger 2021. 10. 10.

Secure SDLC (Software Development Life Cycle)

기존에 존재하던 SDLC에 보안 강화를 위한 프로세스를 추가한 것

 

(1) 방법론

- CLASP

: SDLC 초기단계에서 보안 강화를 위해 추가된 방법론

- SDL

: 마이크로소프트사에서 기존의 SDLC를 개선한 방법론

- Seven Touchpoints

: 소프트웨어 보안의 모범사례를 SDLC에 추가한 방법론

 

(2) 소프트웨어 개발 보안 요소

- 기밀성

: 인가된 사용자만이 접근할 수 있음

- 무결성

: 인가된 사용자만이 수정할 수 있음

- 가용성

: 인가된 사용자는 언제 어디서든 접근할 수 있음

- 인증

: 해당 사용자가 인가된 사용자인지 확인하는 과정

- 부인방지

: 송수신자가 본인이 송수신한 사실을 부인하는 것을 방지하기 위한 증거를 제공

 

(3) 시큐어 코딩

구현단계에서 발생할 수 있는 보안취약점들을 최소화하기 위해 보안 요소들을 고려하며 코딩하는 것

 

입력 데이터 검증 및 표현

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

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

 

보안 기능

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

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

 

암호 알고리즘

중요정보를 보호하기 위해 평문을 암호화된 문장으로 만드는 절차 및 방법

 

1. 개인키 암호화 기법 (단일키 암호화 기법)

동일한 키로 암호화하고 복호화하는 방법.

 

(1) 스트림 암호화 방식

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

ex. LFSR, RC4

 

(2) 블록 암호화 방식

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

ex. AES, DES, SEED, ARIA

 

2. 공개키 암호화 기법

암호화 할 때 사용하는 공개키는 사용자에게 공개, 복호화할 때의 비밀키는 관리자가 비밀리에 관리하는 암호화 기법

 

- SEED

: 한국인터넷진흥원(KISA)에서 개발

- ARIA

: 국정원 + 산학연협회가 개발

- DES

- AES

: DES의 한계를 느끼고 개발

 

- RSA

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

 

3. 해시

임의의 길이의 입력데이터를 고정된 길이의 값으로 변환하는 것

 

- SHA

- MD5

- N-NASH

- SNEFRU

 

서비스 공격 유형

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

공격 유형 설명
죽음의 핑 인터넷 프로토콜 허용 범위보다 큰 패킷을 전송하여 네트워크를 마비시킴.
재조립 과부화, 분할된 패킷에 대한 ICMP ping 메시지 응답으로 시스템 다운.
스머핑 IP나 ICMP의 특성을 이용하여 대량의 응답 메시지를 한 사이트가 받으므로써 네트워크 불능상태를 만듦.
송신자 IP를 공격 대상으로 변경하고 브로드캐스트 주소를 수신지로 하여 공격 대상이 대량의 응답 메시지를 받게 하는 수법.
SYN Flooding 3-way-handshaking 과정을 의도적으로 중단하여 서버가 대기상태에 놓여 정상적인 서비스를 수행하지 못하게 하는 수법
Tear Drop 전송할 패킷의 offset을 변경하여 재조립 과부화를 발생시켜 시스템이 다운되도록 함
LAND Attack 송신자와 수신자의 IP주소를 공격대상의 IP주소로 지정하여 자신에 대해 무한히 응답하게 하는 공격
DDoS (분산 서비스 거부 공격) 여러 곳에 분산된 지점에서 한 서버에 대해 분산 서비스 공격을 수행하는 것
데몬 : Trin00, TFN, TFN2K, Stacheldraht

2. 네트워크 침해 관련 용어

공격 유형 설명
스미싱 문자 메시지를 이용해 사용자의 개인정보를 빼내는 수법
스피어 피싱 사회공학 기법의 한 종류, 특정 대상을 선정하고 그 대상에게 위장 메일을 지속적으로 발송하여 발송 메일의 링크를 클릭하게 만드는 기법
APT (Advanced Persistent Threats, 지능형 지속 위협) 다양한 IT 기술/방식을 이용해 조직적으로 특정 기업이나 조직 네트워크에 침투해 활동 거점을 마련한 뒤 때를 기다리면서 보안을 무력화시키고 정보를 수집한 다음 외부로 빼돌리는 형태의 공격
무작위 대입 공격 암호화된 문서의 암호키를 찾아내기 위해 적용 가능한 모든 값을 무작위로 대입하는 것
큐싱 QR코드를 통해 악성 앱의 다운로드를 유도하거나 악성 프로그램을 설치하도록 하는 금융사기 수법
스니핑 네트워크 중간에서 남의 패킷 정보를 도청하는 행위

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

공격 유형 설명
좀비 PC 악성코드에 감염되어 다른 프로그램이나 컴퓨터를 조종할 수 있도록 만들어진 컴퓨터.
DDoS 공격에 사용됨
C&C 서버 (Command & Control) 해커의 원격지에서 좀비 PC에 명령을 내리고 악성코드를 제어하기 위한 용도로 사용
봇넷 악성프로그램에 감염된 다수 컴퓨터들이 네트워크로 연결된 형태
네트워크를 통해 자기 자신을 연속적으로 복제하여 시스템 부하를 높이고 결국 시스템을 다운시키는 바이러스의 일종
제로 데이 공격 새로 발견된 보안 취약점이 공표되기 전에 해당 보안 취약점으로 이뤄지는 공격. 공격의 신속성을 의미함.
키로거 사용자의 키보드 움직임을 탐지하여 중요한 정보를 빼내는 기법
랜섬웨어 사용자의 컴퓨터에 침입해 문서파일을 암호화하여 사용자가 열람할 수 없게 하는 프로그램
백도어 개발자가 유지보수나 편의를 위해 만들어 놓은 시스템 보안을 제거해 놓은 비밀통로
백도어 탐지 방법 : 열린 포트 확인, 무결성 확인, 로그 확인, SetUID 파일 확인
트로이 목마 정상적인 기능을 하는 프로그램으로 위장하며 프로그램 내에 숨어있다가 해당 프로그램이 동작할 때 활성화되어 부작용을 일으키는 것. 자기 복제 능력은 없음.

 

보안 솔루션

외부로부터의 불법적인 침입을 막는 기술 및 시스템

1. 방화벽

내부 네트워크나 인터넷 간에 전송되는 정보를 선별하여 수용/거부/수정 하는 기능을 가진 침입 차단 시스템

2. 침입 탐지 시스템 (IDS : Intrusion Detection System)

컴퓨터 시스템의 비정상적인 사용, 오용, 남용 등을 실시간으로 탐지하는 시스템

 

- 오용 탐지 : 미리 지정해 놓은 공격 패턴이 감지 되면 이를 알려줌

- 이상 탐지 : 평균적인 시스템 상태에서 비정상적인 행위나 자원의 사용이 발견되면 이를 알려줌

3. 침입 방지 시스템 (IPS : Intrusion Prevention System)

비정상적인 트래픽을 능동적으로 차단하고 격리하는 등의 방어를 취하는 보안 솔루션

방화벽 + 침입 탐지 시스템

4. 데이터 유출 방지(DLP : Data Leakage/Loss Prevention)

내부 데이터를 외부로 유출할 수 없게 방지하는 보안 솔루션

5. 웹 방화벽

방화벽에서 탐지하지 못하는 웹 기반 공격을 방어할 목적으로 만들어진 방화벽

6. VPN (Virtual Private Network : 가상 사설 네트워크)

공중 네트워크를 암호화 기술을 이용하여 사용자가 마치 자신의 전용 회선을 사용하는 것처럼 해주는 보안 솔루션

7. NAC (Network Access Control)

내부 컴퓨터의 mac주소를 IP 관리 시스템에 등록하고 일관된 보안 관리 기능을 제공하는 보안 솔루션

8. ESM (Enterprise Security Management)

다양한 장비에서 발생하는 로그 및 보안 이벤트를 통합하여 관리하는 보안 솔루션

'개발 > 정보처리기사' 카테고리의 다른 글

8장 SQL 응용  (0) 2021.10.09
10장 프로그래밍 언어 활용  (0) 2021.10.07
2장 데이터 입출력 구현  (0) 2021.10.04
7장 애플리케이션 테스트 관리  (0) 2021.10.04
6장 화면설계  (0) 2021.10.04

이전 댓글