본문 바로가기
  • 문과생의 백엔드 개발자 성장기
|Developer_Study/정보처리기사

[정보처리기사 실기] 9과목 - 소프트웨어 개발 보안 구축

by 케리's 2023. 3. 2.

01. 소프트웨어 개발 보안 설계

1. SW 개발 보안 

소스코드 등에 존재하는 보안 취약점 제거하고 보안을 고려하여 기능을 설계 및 구현하는 등

소프트웨어 개발 과정에서 지켜야 할 일련의 보안 활동을 말함

 

2. SW 개발 보안 구성요소 - 무기가

3대요소 설명
무결성
(Integrity)
정당한 방법을 따르지 않고서는 데이터가 변경될 수 없으며 데이터의 정확성 및 완전성과 고의/악의로 변경되거나 훼손 또는 파괴 되지 않음 보장
기밀성
(Confidentiality)
인가되지 않은 개인 혹은 시스템 접근에 따른 정보 공개 및 노출 차단하는 특성
가용성
(Avaliability)
권한을 가진 사용자가 애플리케이션이 원하는 서비스를 지속해서 사용할 수 있도록 보장하는 특성

 

3. SW 개발 보안 용어 - 자위취위

용어 설명
자산 (Assets) 조직에 데이터 또는 조직의 소유자가 가치를 부여한 대상
ex) 서버의 하드웨어, 기업의 중요데이터
위협 (Threat) 조직이나 기업의 자산에 악 영향을 끼칠 수 있는 사건이나 행위
ex) 해킹, 삭제, 자산 불법 유출, 위/변조, 파손
취약점 (Vulnerability) 위협이 발생하기 위한 사전조건으로 시스템의 정보 보증을 낮추는데 사용되는 약점
ex) 평문전송, 입력값 미검증, 비밀번호 공유
위험 (Risk) 위혐이 취약점을 이용하여 조식의 자산 손실 피해를 가져올 가능성

 

4. 공격기법 

* ICMP는 TCP/IP에서 IP 패킷을 처리할 때 발생되는 문제를 알려주는 프로토콜이다.

1) DoS (Denial of Service)

  • 시스템을 악의적으로 공격해서 해당 시스템의 자원을 부족하게하여 원래 의도된 용도로 사용하지 못하게 하는 공격
  • 특정 서버에 수 많은 접속시도를 만들어 다른 이용자가 정상적으로 서비스 이용을 하지 못하게 하거나 서버의 TCP연결 소진시키는 공격
  • 1대의 공격자 컴퓨터에서 타킷 시스템에 악성 패킷을 보내는 방식

(1) DoS 공격 종류

SYN 플러딩 TCP 프로토콜의 구조적인 문제를 이용한 공격
서버의 동시 가용 사용자수를 SYN패킷만 보내 점유하여 다른 사용자가 서버를 사용 불가게 하능 공격 
공격자는 ACK 를 발송하지 않고 계속 새로운 연결 요청을 하게되어 서버는 자원할당을 해지않고 자원만 소비하여 고갈됨
UDP플러딩 대량의 UDP 패킷을 만들어 임의의 포트번호로 전송하여 응답메시지를 생성하게하여 지속해서 자원을 고갈시키는 공격
ICMP 패킷은 변조되어 공격자에게 전달되지 않아 대기함
스머프 / 스머핑
(Smurf)
출발지 주소를 공격의 대상의 IP로 설정하여 네트워크 전체에게 ICMP Echo 패킷을 직접 브로드캐스팅하여 마비시키는 공격
바운스 사이트라고 불리는 제3의 사이트를 이용해 공격
죽음의 핑
(PoD : Ping of Death)
ICMP패킷 (Ping)을 정상적인 크기보다 아주 크게 만들어 전송하면 다수의 IP 단편화가 발생하고 수신 측에서는 단편화된 패킷을 처리(재조합)하는 과정에서 많은 부하가 발생하거나 재조합 버퍼의 오버플로우가 발생하여 정상적인 서비스를 하지 못하도록 하는 공격기법
랜드어택
(Land Attack)
출발지 IP와 목적지 IP를 같은 패킷주소로 만들어 보냄으로써 수신자가 자기자신에게 응답을 보내게 하여 시스템의 가용성 침해하는 공격기법
티어드롭
(Tear Drop)
IP 패킷의 재조합 과정에서 잘못된 Fragment Offset 정보로 인해 수신 시스템이 문제를 발생하도록 만드는 DoS 공격
공격자는 UP Fragment Offset 값을 서로 중첩되도록 조작하여 전송하고 이를 수신한 시스템이 재조합 하는 과정에서 오류가 발생, 시스템의 기능을 마비시키는 공격방식
해커는 대상 컴퓨터 시스템에 일련의 조각난 패킷을 보낸후 컴퓨터 시스템이 이러한 패킷을 수신하면 올바른 순서로 다시 조립하려고 시도한다.
그러나 패킷의 형식이 잘못되었기 때문에 이 프로세스로 인해 시스템이 과부하되고 컴퓨터가 충돌하거나 중지될 수 있다.
봉크/보잉크
(Bonk/Boink)
프로토콜의 오류제어를 이용한 공격기법, 시스템의 패킷 재 전송과 재조립이 과부하를 유발
ex) 봉크 : 같은 시퀀스 번호를 계속 보냄
보잉크 : 일정한 간격으로 시퀀스 번호에 빈 공간 생성

 

2) DDoS (Distributed DoS) 공격

  • DoS의 또 다른 형태로 여러대의 곡격자를 분산 배치하여 동시에 동작하게 함으로써 특정 사이트를 공격하는 기법
  • 해커들이 취약한 인터넷 시스템에 대한 액세스가 이뤄지면 침입한 시스템에 소프트웨어를 설치하고 이를 실행시켜 원격에서 공격을 개시한다.

(1) DDoS공격 구성요소 - HAMAD / 공마에 핸데

구성요소 설명
핸들러 (Handler) 마스터 시스템의 역할 수행을 하는 프로그램
에이전트 (Agent) 공격대상에 직접 공격을 가하는 시스템
마스터 (Marster) 공격자에게 직접 명령을 받는 시스템
여러대의 에이전트를 관리하는 역할
공격자 (Attacker) 공격을 주도하는 해커의 컴퓨터
데몬 프로그램 (Daemon) 에이전트 시스템의 역할을 수행하는 프로그램

공격자 → 마스터 → 에이전트 

                핸들러    데몬프로그램 

 

(2) DDoS공격 도구

공격도구 설명
Trinoo 많은 소스로부터 통합된 UDP flood 서비스 거부공격을 유발하는데 사용되는 도구
Trinoo 공격은 몇개의 서버들(마스터들)과 많은 수의 클라이언트들 (데몬들)로 이루어짐
Tribe Flood Network TFN은 Trinoo와 거의 유사한 분산도구로 많은 소스에서 하나 혹은 여러개의 목표 시스템에 대해 서비스 거부공격을 수행할 수 있는 도구
TFN 서비스 거부공격은 공격자가 클라이언트(마스터) 프로그램을 통해 공격명령을 일련의 TFN서버(데몬)들에게 보냄으로써 이루어짐
UDP flood공격, TCP SYN flood공격, ICMP echo 요청공격, ICMP브로드캐스트공격 수행가능
Stacheldrant 분산 서비스 거부 에이전트 역할을하는 리눅스, 솔라리스 시스템용 멀웨어도구
ICMP flood, SYN flood, UDP flood 와 Smurf등의 공격에 의해 DDoS 공격가능

 

(3) DDoS공격 종류

구분 종류 상세공격유형
대역폭 소진공격
(3~4계층)
UDP/ICMP Traffic Flooding * UDP/ICMP Flooding
* DNS Query Flooding
TCP Traffic Flooding * SYN Flooding
* SYN + ACK Flloding
IP Flooding * LAND Attack
* Teardrop
서비스(애플리케이션) 마비공격
(7계층)
HTTP Traffic Flooding * GET Flooding
* GET with Cache-Control
HTTP Header/Option Spoofing * Slowris
* Slowloris
* Slow HTTP Read Dos
Other L7 Service Flooding * HashDos
* Hulk DoS
* FTP/SMTP Attack

 

3) DRDoS (Distributed Reflection DoS) 공격

공격자는 출발지 IP를 공격대상 IP로 위조하여 다수의 반사 서버로 요청 정보를 전송,

공격 대상자는 반사 서버로 부터 다량의 응답을 받아서 서비스 거부가 되는 공격

 

출발지 IP 변조 → 공격 대상자 서버로 응답 → 서비스 거부

 

 

4) 애플리케이션 공격 

DDoS 서비스 (애플리케이션) 마비 공격 기법

공격기법 설명
HTTP GET 플러딩 과도한 GET 메시지를 이용하여 웹 서버의 과부하를 유발시키는 공격
HTTP 캐시 옵션을 조작하여 캐싱 서버가 아닌 웹 서버가 직접처리하도록 유도, 웹 서버 자원을 소진 시키는 서비스거부공격
Cache Control Attack 공격
Slowloris
(Slow HTTP Header Dos)
HTTP GET 메서드를 사용하여 헤더의 최종 끝을 알리는 개행 문자열인 \r\n\r\n을 전송하지 않고 \r\n만 전송하여 대상 웹 서버와 연결상태를 장시간 지속시키고 연결 자원 모드 소진시키는 서비스 거부공격
RUDY
(Slow HTTP POST Dos)
요청 헤더의 Content-Length를 비정상적으로 크게 설정하여 메시지 바디 부분을 매우 소량으로 보내 계속 연결상태를 유지시키는 공격
Slow HTTP Read Dos TCP 윈도 크기와 데이터 처리율을 감소시킨 상태에서 다수 HTTP 패킷을 지속적으로 전송하여 대상 웹 서버의 연결 상태가 장시간 지속, 연결 자원을 소진시키는 서비스 거부공격 
Hulk Dos 공격자가 공격대상 웹 사이트 웹페이지 주소를 지속적으로 변경하면서 다량으로 GET 요청을 발생시키는 서비스 거부공격
주소를 지속적으로 변경시키는 이유는 임계치 기반의 디도스 대응 장비를 우회하기 위한 방법
Hash Dos 웹 서버는 클라이언트 HTTP 요청을 통해 전달되는 파라미터를 효율적으로 저장하고 검색하기 위한 자료구조로 해시테이블을 주로사용
공격자는 이러한특성을 악용하여 조작된 많은 수의 파라미터를 POST방식으로 웹 서버로 전달하여 다수의 해시충돌을 발생시켜 소모시키는 서비스 거부공격

 

5) 네트워크 공격 

공격기법 설명
스니핑
(Sniffing)
공격대상에게 직접공격을 하지 않고 데이터만 몰래 들여다보는 수동적 공격기법
네트워크 스캐너, 스니퍼
(Scanner, Sniffer)
네트워크 하드웨어 및 소프트웨어 구성의 취약점 파악을 위해 공격자가 취약점을 탐색하는 공격도구
패스워드 크래킹
(Password Cracking)
사전 크래킹
(Dictionary)
시스템 또는 서비스  ID와 패스워드를 크랙하기 위해 ID와 패스워드가 될 가능성이 있는 단어를 파일로 만들어놓고 이 파일의 단어를 대입하여 크랙하는 공격기법
무차별 크래킹
(Brute Force)
패스워드로 사용될 수 있는 영문자, 숫자, 특수문자등을 무작위로 패스워드 자리에 대입하여 패스워드를 알아내는 공격기법
패스워드 하이브리드 사전공격 + 무차별 대입공격 결합하여 공격
레인보우 테이블 공격 패스워드 별로 해시값을 미리 생성해서 테이블에 모아놓고 크래킹하고자하는 해시값을 테이블에서 검색해서 역으로 패스워드 찾는 공격기법
IP 스푸핑 침입자가 인증된 컴퓨터 시스템인 것처럼 속여 타깃 시스템의 정보를 빼내기 위해
본인의 패킷 헤더를 인증된 호스트 IP어드레스로 위조하여 타깃에 전송하는 공격기법
ARP 스푸핑 공격자가 특정 호스트의 MAC 주소를 자신의 MAC 주소로 위조한 ARP Reply를 만들어 희생자에게 지속적으로 전송하여 희생자의 ARP Cache Table에 특정 호스트의 MAC 정보를 공격자의 MAC 정보로 변경, 희생자로부터 특정 호스트로 나가는 패킷을 공격자가 스니핑하는공격 
ICMP Redirect 공격 3계층에서 스니핑 시스템을 네트워크에 존재하는 또다른 라우터라고 알림으로써 패킷의 흐름을 바꾸는 공격기법
ICMP redirect 메시지를 공격자가 원하는 형태로 만들어 특정 목적이로 가는 패킷을 공격자가 스니핑 하는 기법
트로이목마 악성 루틴이 숨어있는 프로그램으로 겉보기에는 정상적인 프로그램으로 보이나 실행하면 악성코드를 실행하는 프로그램

 

5) 시스템 보안위협

(1) 버퍼오버플로우 (Buffer Overflow) 공격

메모리에 할당된 버퍼 크기를 초과하는 양의 데이터를 입력하여 이로인해 프로세스 흐름을 변경시켜 악성코드를 실행시키는 공격기법

유형 설명
스택 버퍼 오버플로우 메모리 영역중 Local Value 나 return Address가 저장되는 스택 영역에서 발생하는 오버플로우 공격
스택 영역에 할당된 버퍼크기를 초과하는 양의 데이터(실행가능코드) 입력하여 복귀 주소를 변경하고 공격자가 원하는 임의코드를 실행하는 공격기법
힙 버퍼 오버플로우 프로그램 실행시 동적으로 할당되는 힙영역에 할당된 버퍼크기를 초과하는 데이터 (실행가능코드)를 입력하여 메모리의 데이터와 함수 주소등을 변경, 공격자가 원하는 임의 코드를 실행하는 공격기법
인접한 메모리 (Linked-List) 데이터가 삭제될 수 있으며 해당 위치에 특정함수에 대한 포인터 주소가 있으면  이를 악용하여 관리자 권한 파일에 접근하거나 공격자의 특정 코드를 실행함

 

• 버퍼오버플로우 (Buffer Overflow) 대응방안

대응방안 설명
스택가드
(Stackguard)
카나리(Canary) 라고 불리는 무결성 체크용 값을 복귀주소, 변수사이에 삽입해두고 버퍼오버플로우 발생시 카나리값을 체크, 변할경우 복귀주소를 호출하지 않는 방식대응
스택쉴드
(Stack shield)
함수 시작시 복귀주소를 Global RET이라는 특수 스택에 저장해두고 함수 종료신 저장된 값과 스택의 RET값을 비교해서 다를경우 오버플로우로 간주하고 프로그램 실행을 중단
ASLR 
(Address Space Layout Randomization)
메모리 공격을 방어하기 위해 주소 공간 배치를 난수화하고 실행시마다 메모리 주소를 변경시켜 버퍼오버플로우를 통한 특정 주소 호출 차단
리눅스에서 설정가능
실행제한 스택에서 쓰기권한 제한, 스택에서 프로그램 실행금지, 가능성이있는 SUID 프로그램 제한

StackGuard와 Stack Shield의 주요 차이점은 StackGuard는 컴파일러 기반 보호 메커니즘인 반면 Stack Shield는 런타임 기반 보호 메커니즘이다.

 

(2) 백도어 (Backdoor)

어떤 제품이나 컴퓨터 시스템, 암호 시스템 혹은 알고리즘에서 정상적인 인증 절차를 우회하는 기법

 

(3) 주요 시스템 보안 공격 기법

공격기법 설명
포맷 스트링 공격
(Format String Attack)
포맷스트링을 인자로 하는 함수의 취약점을 이용한 공격으로 외부로부터 입력된값을 검증하지 않고 입출력 함수의 포맷스트링을 그대로 사용하는 경우 발생
레이스 컨디션 공격
(Race Condition Attack)
레이스 컨디션은 둘 이상의 프로세스나 스레드가 공유자원을 동시에 접근할 떄 접근 순서에 따라 비정상적인 결과가 발생하는 조건/상황
키로거 공격
(Key Logger Attack)
컴퓨터의 사용자 키보드 움직임을 탐지해서 ID, PW 계좌번호 , 카드번호 등 개인중요정보를 몰래 빼가는 해킹공격
루트킷
(Rootkit)
시스템 침입 후 침입 사실을 숨긴채 차후 침입을 위한 백도어, 트로이목마 설치, 원격접근 내부사용흔적삭제 관리자 권한 획득 등 주로 불법적 해킹에 사용되는 기능제공

 

6) 보안 관련 용어

용어 설명
스피어피싱
(Spear Phishing)
사회공학의 한 기법, 특정 대상을 선정 후 그 대상에게 일반적인 이메일로 위장한 메일을 지속적 발송하여 발송 메일의 본문링크나 첨부된 파일을 클릭하도록 유도하여 사용자 개인정보 탈취하는 공격기법
스미싱
(SMishing)
SMS 와 피싱의 합성어
문자메세지를 이용하여 신뢰할 수 있는 사람 또는 기업이 보낸것처럼 가정하여 비밀정보 요구, 소액결제 유도하는 공격
큐싱
(Qshing)
QR코드 피싱의 합성어
스마트폰을 이용하여 금융 업무를 처리하는 사용자에게 인증 등이 필요한 것처럼 속여 QR코드를 통해 악성 앱을 내려받도록 유도
봇넷 (Botnet) 악성 프로그램에 감염되어 악의적인의도로 사용될 수 있는 다수 컴퓨터들이 네트워크로 연결된 형태
APT공격
(Advanced Persistent Threat)
특정 타킷을 목표로 하여 다양한 수단을 통한 지속적이고 지능적인 맞춤형 공격
특수 목적의 조직이 하나의 표적에 대해 다양한 IT기술을 이용하여 지속적 정보수집, 취약점 분석해 피해주는 공격기법 
공급망 공격
(Supply Chain Atack)
소프트웨어 개발사의 네트워크 침투하여 소스코드 수정등을 통해 악의적인 코드를 삽입하거나 배포서버에 접근하여 악의적 파일로 변경하는 방식을 통해 사용자 PC에 소프트웨어 설치 또는 업데이트 시에 자동적으로 감염되도록 하는 공격기법
제로데이 공격 보안 취약점이 발견되어 널리 공표되기 전에 해당 취약점을 악용하여 이루어지는 보안 공격 기법
대응책이 공표되기전에 공격 이루어지기 때문에 대처방법 없음
웜 (Worm) 스스로 복제하여 네트워크등 연결 통하여 전파하는 악성 소프트웨어 컴퓨터 프로그램 
독자적으로 실행
악성봇(Maliciopus Bot) 스스로 실행되지 못하고 해커의 명령에 의해 원격에서 제어 또는 실행이 가능한 프로그램 혹은 코드
좀비PC는 악성 봇에의해 감염된 PC
사이버 킬 체인
(Cyber kill Chain)
공격형 방위 시스템으로 지능적, 지속적, 사이버 공격에 대해 7단계 프로세스별 공격 분석 및 대응 체계화한 APT 공격방어 분석모델 
랜섬웨어
(RansomWare)
악성코드 한 종류로 감염된 시스템의 파일들을 암호화하여 복호화할 수 없도록하고 피해자로하여금 암호화된 파일을 인질처럼 잡고 몸값을 요구하는 악성 소프트웨어
이블트윈공격
(Evil Twin)
무선 Wifi 피싱 기법으로 공격자는 합법접 와이파이 제공자처럼 행세하며 노트북이나 휴대전화로 핫스판에 연결한 무선 사용자들이 정보를 탈취하는 무선네트워크 공격기법
난독화 코드의 가독성을 낮춰 역공학에 대한 대비를 하기 위해 프로그램 코드의 일부 또는 전체 변경하는 기법
소스 코드 난독화와 바이너리 난독화로 나눔
Tripwire 크래커가 침입하여 시스템에 백도어를 만들어 놓거나 설정 파일을 변경해 놓았을 때 이러한 사실을 알 수 있게 분석하는 도구 
Ping 인터넷으로 접속하려는 원격 호스트가 정상적으로 운영되고 있는지 확인하는 진단목적으로 사용하는 명령어
Tcpdump 네트워크 인터페이스를 거치는 패킷의 내용을 출력해주는 프로그램
스니핑 도구 일종

 

5. 서버인증 

1) 인증 기술 유형 - 지소생특

유형 설명 예시
지식기반 사용자가 기억하고 있는 지식 ID/PW
소지기반 소지하고 있는 사용자 물품 공인인증서, OTP
생체기반 고유한 사용자 생체정보 홍채, 정맥, 얼굴, 지문
특징기반 사용자의 특징 활용 서명, 발걸음, 몸짓

 

2) 서버 접근 통제

사람 또는 프로세스가 서버 내 파일에 읽기, 쓰기, 실행 등 접근 여부 허가 또는 거부하는 기능이다.

 

(1) 접근 통제 기법 - 식인인책

유형 설명
식별 (Identification) 자신이 누구라고 시스템에 밝히는 행위
객체에게 주체가 자신의 정보를 제공하는 활동
인증 (Authentication) 주체의 신원을 검증하기 위한 활동
주체의 신원을 객체가 인정해주는 행위
인가(Authorization) 인증된 주체에게 접근을 혀용하는 활동
특정 업무를 수행할 권리를 부여하는 행위
책임추정성
(Accountability)
주체의 접근을 추적하고 행동을 기록하는 활동
식별, 인증, 인가, 감사 개념을 기반으로 수립

 

(2) 서버 접근 통제 유형 - DMRB

유형 설명 비교
임의적 접근통제
(DAC; Discretionary
Access Control)
시스템에 대한 접근을 사용자 그룹 신분 기반으로 제한하는 방법
DAC에서 사용자는 자원과 관련된 ACL(Access Control List)이 수정됨으로써 자원에 대한 권한을 부여 
권한부여 - 데이터소유자
접근결정 - 신분
정책변경 - 변경용이
장점 - 구현용이, 유연함
강제적 접근통제
(MAC; Mandatory Access Control)
시스템 정보의 허용등급을 기준으로 사용자가 갖는 접근 허가 권한에 근거하여 시스템에 대한 접근을 제한하는 방법
MAC에서 사용자들은 자원에 대한 권한을 관리자로 부터 부여
관리자만이 시스템 자원에 대한 권한을 할당할 수 있음
권한부여 - 시스템
접근결정 - 보안등급
정책변경 - 고정적(변경어려움)
장점 - 안정적, 중앙집중적
역할기반 접근 통제
(RBAC; Role Base -)
중앙 관리자가 사용자와 시스템의 상호관계를 통제하며 조직내 맡은 역할에 기초하여 자원에 대한 접근을 제한하는 방법
RBAC에서 자원에 대한 접근은 사용자에게 할당된 역할에 기반
권한부여 - 중앙관리자
접근결정 - 역할
정책변경 - 변경용이
장점 - 관리용이

 

(3) 접근 통제 보호 모델 - 벨기비무

구분 설명  
벨라파듈라 모델
(BLP; bell-lapadula Policy)
미국방부 지원 보안 모델, 보안 요소중 기밀성을 강조하며 가제적 정책에 의해 접근하는 통제모델 No Read Up - 보안수준이 낮은 주체는 보안 수준이 높은 객체를 읽어서는 안됨
No Write Down - 보안수준이 높은 주체는 보안 수준이 낮은 객체에 기록하면안됨
비바모델 벨라파둘라 모델의 단점을 보완한 무결성을 보장하는 최초의 모델 No Read Down - 높은 등급의 주체는 낮은 등급의 객체를 읽을 수 없음
No Write Up - 낮은 등급의 주체는 상위 등급의 객체를 수정할 수 없음

 

6. 암호 알고리즘 

데이터의 무결성 및 기밀성 확보를 위해 정보를 쉽게 해독 할 수 없는 형태로 변환하는 기법

 

양방향 대칭키 암호화 알고리즘의 한 종류, 암호화와 복호화에 같은 암호키를 쓰는 알고리즘
블록암호화방식 긴 평문을 암호화하기위해 고정 길이 블록을 암호화 하는 블록 알고리즘 (DES, AES, SEED)
스트림 암호방식  매우 긴 주기의 난수열을 발생시켜 평문과 더불어 암호문 생성
(RC4)
비대칭키 사전에 개인키를 나눠가지지 않은 사용자들이 안전하게 통신하는 방식
RSA, ECC, ELgamal, 디피헬만
일방향 임의 길이의 정보를 입력받아 고정된 길이의 암호문을 출력하는 암호방식
  해시 암호 방식 MAC, MDC

 

1) 암호 알고리즘 상세

암호화 알고리즘 

종류 설명
DES 
(Data Encryption Standard)
블록크기 64bit, 키 길이 56bit 인 페이스텔구조, 미국 연방 표준국(NIST) 암호화 알고리즘
AES DES  대체, 3DES의 성능 문제를 극복하기 위해 개발, 미국 표준 기술 연구소 
SEED 한국 인터넷 진흥원(KISA) 개발
ARIA 경량 환경 및 하드웨어에서 효율성 향상을 위해 개발, 국가정보원 + 산학연구협회가 개발
IDEA 스위스 연방기술 기관에서 개발
LFSR 선형 되먹임 시프트 레지스터
디피-헬만 최초의 공개키 알고리즘, 이산대수
RSA MIT 수학교수가 고안, 소인수분해 수학적 알고리즘
ECC RSA암호방식 대안, 타원곡선암호
ELGamal 이산대수 계산이 어려운 문제를 기본 원리로 함
MD5 MD4개선, 프로그램이나 파일의 무결성 검사에 사용
SHA-1 NSA에서 미 정부 표준으로 지정, DSA사용
SHA-256/384/512 256비트의 해시값을 생성하는 해시함수
HAS-160 국내 표준 서명 알고리즘을 위해 개발된 해시함수,  MD5 장점 + SHA-1장점

 

7. 보안 프로토콜

종류 설명
IPSec
(Internet Protocol Security)
IP계층에서 무결성과 인증을 보장하는 인증 헤더와 기밀성을 보장하는 암호화를 이용한 IP 보안 프로토콜
SSL/TLS
(Secure Socket Layer / Transport Layer Security))
전송계층과 응용계층 사이 클라이언트와 서버간의 웹데이터 암호화(기밀성), 상호인증 및 전송시 데이터 무결성 보장하는 보안 프로토콜
S-HTTP
(Secure Hypertext Transfer Protocol)
웹 상에서 네트워크 트래픽을 암호화 하는방법

 

8. 개인정보 보호관련 법령

개인정보 보호법, 정보통신망법, 신용정보법

  • 민감 정보 : 주체의 사생활을 현저하게 침해할 수 있는 정보(유전자 검사정보)
  • 고유 식별정보 : 개인을 고유하게 구별하기 위해 부여된 식별 정보(주민번호)

 

 

02. 소프트웨어 개발 보안 구현

 

1. SW 개발 보안 구현

1) 시큐어 코딩 가이드 - 입보시 에코캡아 ( 입어본 시원한 에코 무늬의 캡 달린 옷을 아주 싸게 사다.)

설계 및 구현 단계에서 해킹 등의  공격을 유발할 가능성이 있는 잠재적인 보안 취약점을 사전에 제거하고 외부 공격으로부터 안전한 소프트웨어를 개발하는 기법

  • 보안 취약점 : 운영 단계의 보안 리스크
  • 보안 약점 : 개발 단계의 보안 리스크
입력데이터 검증 및 표현 취약점 XSS, CSRF, SQL Injection
보안기능 소프트웨어 개발단계에서 인증, 접근제어, 기밀성, 암호화, 권한 관리등을 적절하게 구현하기 위한 보안 점검항목
시간 및 상태  
에러처리 프로그램 실행시 발생하는 에러를 예외처리 하지 못하거나 에러에 중요한 정보가 포함될 때 발생할 수 있는 취약점 예방하기 위한 보안 점검항목
세션 통제 세션과 관련되어 발생할 수 있는 취약점을 예방하기 위한 보안 점검항목
코드 오류 개발자의 실수로 발생하는 프로그램 오류를 예방하기 위한 보안 점검항목
캡슐화 외부에 은닉이 필요한 중요한 데이터와 인가되지 않은 사용자에게 노출되지 않게 보안 취약점을 예방하기 위한 보안 검증항목
API 오용 보안에 취약한 API를 오용하여 발생할 수 있는 보안 취약점 예방을 위한 보안 검증 항목

2) 입력 데이터 검증 및 표현 취약점

종류 설명
XSS
(Cross Site Script)
검증되지 않은 외부 입력 데이터가 포함된 웹 페이지를 사용자가 열람할때 부적절한 스크립트가 실행되는 공격
사이트간 요청위조
(CSRF; Cross Site Request Forgery)
사용자가 자신의 의지와는 무관하게 공격자가 의도한 행위를 특정 웹사이트에 요청하게 하는 공격
SQL 삽입
(SQL Injection)
악의적인 SQL 구문을 삽입하고 실행시켜 정보를 열람, 조작할 수 있는 취약 공격법

 

2. 시스템 보안 구현

1) 네트워크 보안 솔루션

종류 설명
방화벽 (Firewall) 기업 내/외부간 트래픽을 모니터링하여 시스템 접근을 허용하거나 차단하는 시스템
웹 방화벽 
(WAF; Web Application Firewall)
웹 어플리케이션 보안에 특화된 보안 장비
네트워크 접근제어
(NAC; Network Access Control)
단말기가 내부 네트워크에 접속을 시도할 때 이를 제어하고 통제하는 기능을 제공하는 솔루션
침입 탐지 시스템
(IDS; Intrusion Detection System)
네트워크에 발생하는 이벤트를 모니터링하고 비인가 사용자의 침입을 실시간 탐지하는 시스템
침입 방지 시스템
(IPS; Intrusion Prevention System)
네트워크에 대한 공격이나 침입을 실시간적으로 차단하는 시스템
무선 침입 방지 시스템
(WIPS; Wireless Intrusion Prevention System)
인가되지 않은 무선 단말기의 접속을 자동 탐지및 차단하고 보안에 취약한 무선 공유기를 탐지
통합 보안 시스템
(UTM; Unified Threat Management)
다양한 보안 장비의 기능을 하나의 장비로 통합하여 제공하는 시스템
가상 사설망
(VPN; Virtual Private Network)
인터넷과 같은 공중망에 인증, 암호화, 터널링 기술을 활용해 마치 전용망을 사용하는 효과를 가지는 보안 솔루션

 

2) 시스템 보안 솔루션

종류 설명
스팸 차단 솔루션
(Anti-Spam Solution)
메일 서버 앞단에 위치하여 프록시 메일 서버로 동작
보안 운영체제
(Secure OS)
컴퓨터 운영체제의 커널에 보안 기능을 추가한 솔루션

 

3) 콘텐츠 유출 방지 솔루션

종류 설명
보안 USB 정보 유출 방지등 보안 기능을 갖춘 USB 메모리
데이터 유출방지 
(DLP; Data Loss Prevention)
조직 내부의 중요 자료가 외부로 빠져나가는 것을 탐지하고 차단하는 솔루션
디지털 저작권 관리
(DRM) 
디지털 저작물에 대한 보호와 관리 위한 솔루션

 

3. 소프트웨어 개발 보안 테스트와 결함관리

1) 소프트웨어 개발 보안 테스트 유형

종류 설명
정적 분석 SW를 실행하지 않고 보안 약점 분석 (SW 개발 단계에서 주로 사용)
동적분석 SW 실행 환경에서 보안 약점 분석 (SW 시험단계에서 주로 사용)

 

2) 비즈니스 연속성 계획 (BCP; Busniess Continuity Plan)

각종 재해, 장애 재난으로부터 위기 관리를 기반으로 재해복구, 업무복구 및 재개 비상계획 등을 통해 비즈니스 연속성을 보장하는 체계 

종류 설명
BIA
(Bisiness Impact Analysis)
장애나 재해로 인한 운영상의 주요 손실을 볼 것을 가정하여 비즈니스 영향 분석
RTO
(Recovery Time Objective)
업무 중단 시점부터 업무가 복구되어 다시 가동될 때 까지의 시간
RPO
(Recovery Point Objective)
업무 중단 시점부터 데이터가 복구되어 다시 정상가동될때 데이터의 손실 허용 시점
DRP
(Disaster Recovery Plan)
재난으로 장기간에 ㄱㄹ쳐 시설의 운영이 불가능한 경우를 대비한 재난 복구계획
DRS
(Disaster Recovery System)
재해 복구 센터

 

3) DRS 유형

종류 설명
Mirror Site 재해 발생 시 복구 까지 소요시간 (RTO) 즉시
Hot Site 4시간 이내
Warm Site 수일~수주
Cold Site 수주 ~ 수개월 

댓글