자격증/정보처리기사

chapter 09. 소프트웨어 개발 보안 구축

yeonx 2022. 5. 2. 18:25
728x90

SW 개발 보안의 구성요소

정보보안의 세 가지 요소인 기밀성, 무결성, 가용성을 지키고 서버 취약점을 사전에 방지하여 위협으로부터 위험을 최소화하는 구축 방법을 말하다.

SW 개발 보안의 3대 요소 [2020년 4회]

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

 

 

SW 개발 보안을 위한 공격 기법의 이해

DoS 공격의 종류 [2020년 1회]

DoS 공격의 종류에는 SYN 플러딩, UDP 플러딩, 스머프, 죽음의 핑, 랜드 어택, 티어 드롭, 봉크, 보잉크 등이 있다.

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

 

 

세션 하이재킹 [2021년 1회]

① 세션 하이재킹(Session Hijacking) 개념

세션 하이재킹은 케빈 미트닉이 사용했던 공격 방법 중 하나로 TCP의 세션 관리 취약점을 이용한 공격 기법이다.

 

② 세션 하이재킹의 특징

  • TCP Sequence Number의 보안상 취약점으로 발생한다.
  • Victim과 Server 사이의 패킷을 스니핑 하여 Sequence Number를 획득하고, 공격자는 데이터 전송 중인 Victim과 Server 사이를 비동기화 상태로 강제적으로 만들고, 스니핑하여 획득한 Client Sequence Number를 이용하여 공격하는 방식이다.
  • 비동기화 상태로 패킷이 유실되어 재전송 패킷이 증가한다.
  • 세션 하이재킹을 통해 ACK Storm 증가, 네트워크 부하 증가 현상이 발생한다.

③ 세션 하이재킹의 탐지방법

  • 비동기화 상태 탐지
  • ACK 패킷 비율 모니터
  • 특정 세션에서 패킷 유실 및 재전송이 증가되는 것을 탐지
  • 기대하지 않은 접속의 리셋 탐지

 

네트워크 공격 [2020년 4회, 2021년 3회]

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

 

 

서버 접근 통제

서버 접근 통제의 유형 [2021년 1회]

유형 설명
임의적 접근 통제
(DAC; Discretionary Access Control)
- 주체나 그룹의 신분(=신원)에 근거하여 객체에 대한 접근을 제한하는 방법
- 신분 기반(Identity-Based) 접근통제 정책
- DAC에서 사용자는 자원과 관련된 ACL(Access Control List)이 수정됨으로써 자원에 대한 권한을 부여
강제적 접근 통제
(Mac; Mandatory Access Control)
- 객체에 포함된 정보의 허용등급과 접근 정보에 대해서 주체가 갖는 접근 허가 권한에 근거하여 객체에 대한 접근을 제한하는 방법
- 규칙 기반(Rule-Based) 접근통제 정책
역할 기반 접근 통제
(RBAC; Role Based Access Control)
- 중앙 관리자가 사용자와 시스템의 상호관계를 통제하며 조직 내 맡은 역할(Role)에 기초하여 자원에 대한 접근을 제한하는 방법
- RBAC에서 자원에 대한 접근은 사용자에게 할당된 역할에 기반
- 관리자는 사용자에게 특정한 권리와 권한이 정의된 역할을 할당

 

3A(Authentication, Authorization, Accounting) [2021년 3회]

3A는 유무선 이동 및 인터넷 환경에서 가입자에 대한 안전하고, 신뢰성 있는 인증, 권한 검증, 과금 기능을 체계적으로 제공하는 정보 보호 기술이다.

구성 설명
인증
(Authentication)
접근을 시도하는 가입자 또는 단말에 대한 식별 및 신분을 검증
권한 부여
(Authorization)
검증된 가입자나 단말에게 어떤 수준의 권한과 서비스를 허용
계정 관리
(Accounting)
리소스 사용에 대한 정보를 수집하고 관리하는 서비스

 

 

암호 알고리즘 상세

대칭 키 암호화 알고리즘 [2021년 2회, 3회]

대칭 키 암호화 알고리즘에는 DES, 3DES, SEED, AES, ARIA, IDEA, LFSR 등이 있다.

종류 설명
DES
(Data Encryption
Standard)
- 1975년 IBM에서 개발하고 미국의 연방 표준국에서 발표한 대칭 키 기반의 블록 암호화 알고리즘
- 블록 크기는 64bit, 키 길이는 56bit인 페이스텔(Feistel) 구조, 16라운드 암호화 알고리즘
- DES를 3번 적용하여 보안을 더욱 강화한 3DES도 활용됨
SEED - 1999년 국내 한국인터넷진흥원이 개발한 블록 암호화 알고리즘
- 128bit 비밀키로부터 생성된 16개의 64bit 라운드 키를 사용하여 총 16회의 라운드를 거쳐 128bit의 평문 블록을 128bit 암호문 블록으로 암호화하여 출력하는 방식
- 블록 크기는 128bit이며, 키 길이에 따라 128bit, 256bit로 분류
AES
(Advanced
Encryption
Standard)
- 2001년 미국 표준 기술 연구소(NIST)에서 발표한 블록 암호화 알고리즘
- DES의 개인 키에 대한 전사적 공격이 가능해지고, 3DES의 성능 문제를 극복하기 위해 개발
- 블록 크기는 128bit이며, 키 길이에 따라 128bit, 192bit, 256bit로 분류
- AES의 라운드 수는 10,12,14라운드로 분류되며, 한 라운드는 SubBytes, ShiftRows, MixColumns, AddRoundKey의 4가지 계층으로 구성
ARIA
(Academy.
Research Institute,
Agency)
- 2004년 국가정보원과 산학연구협회가 개발한 블록 암호화 알고리즘
- ARIA는 학계(Academy), 연구기관(Research Institute), 정부(Agency)의 영문 앞글자로 구성
- 블록 크기는 128bit이며, 키 길이에 따라 128bit, 192bit, 256bit로 분류
- ARIA는 경량 환경 및 하드웨어에서의 효율성 향상을 위해 개발되었으며, ARIA가 사용하는 대부분의 여난은 XOR과 같은 단순한 바이트 단위 연산으로 구성
IDEA
(International
Data Encrption
Algorithm
- DES를 대체하기 위해 스위스 연방기술 기관에서 개발한 블록 암호화 알고리즘
- 128bit의 키를 사용하여 64bit의 평문을 8라운드에 거쳐 64bit의 암호문을 만듦
LFSR
(Linear Feedback
Shift Register)
- 선형 되먹임 시프트 레지스터(LFSR)는 시프트 레지스터의 일종으로, 레지스터에 입력되는 값이 이전 상태 값들의 선형 함수로 계산되는 구조로 되어 있는 스트림암호화 알고리즘
- 이때 사용되는 선형 함수는 주로 배타적 논리합(XOR)이고, LFSR의 초기 비트 값은 시드(Seed)라고 함

 

해시(Hash) 암호화 알고리즘 [2020년 1회]

종류 설명
MD5
(Message-Digest algorithm 5)
- 1991년 R.rivest가 MD4를 개선한 암호화 알고리즘으로 프로그램이나 파일의 무결성 검사에 사용
- 각각의 512비트짜리 입력 메시지 블록에 대해 차례로 동작하여 128비트의 해시값을 생성하는 해시 알고리즘
SHA-1
(Secure Hash Algorithm)
- 1993년 NSA에서 미 정부 표준으로 지정되었고, DSA(Digital Dignature Algorithm)에서 사용
- 160비트의 해시값을 생성하는 해시 알고리즘
SHA-256/384/512
(Secure Hash Algorithm)
- SHA(Secure Hash Algorithm) 알고리즘의 한 종류로서 256비트의 해시값을 생성하는 해시 함수
- AES(Advanced Encryption Standard, 미연방 표준 알고리즘)의 키 길이인 128, 192, 256비트에 대응하도록 출력 길이를 늘인 해시 알고리즘
HAS-160 - 국내 표준 서명 알고리즘 KCDSA(Korean Certificate-based Digital Signature Algorithm)을 위하여 개발된 해시함수
- MD5와 SHA1의 장점을 취하여 개발된 해시 알고리즘
HAVAL - 메시지를 1024bits 블록으로 나누고 128, 160, 192, 224, 256 비트인 메시지 다이제스트를 출력하는 해시 알고리즘

 

안전한 전송을 위한 데이터 암호화 전송

IPSec [2020년 2회]

① IPSec(Internet Protocol Security) 개념

IPSec은 IP 계층(3 계층)에서 무결성과 인증을 보장하는 인증 헤더(AH)와 기밀성을 보장하는 암호화(ESP)를 이용한 IP 보안 프로토콜이다.

 

② IPSec의 기능

기능 설명
기밀성 대칭 암호화를 통해 전송 데이터에 대한 기밀성 제공
비 연결형 무결성 메시지가 위/변조되지 않았음을 보장하는 특성 제공
인증 데이터 원천 인증 및 송신처 인증
재전송 공격 방지 송신 측에서 IP 패킷별로 순서번호를 통해 재전송 공격 방지
접근 제어 Security Policy를 통해 시스템 접근 제어

 

③ IPSec 동작 모드

동작 모드 설명
전송 모드
(Transport Mode)
- IP 패킷의 페이로드를 보호하는 모드
- 즉 IP 상위 프로토콜 데이터를 보호하는 모드
터널 모드
(Tunnel Mode)
- IP 패킷 전체를 보호하는 모드
- IP 패킷 전체를 IPSec으로 캡슐화하여 IP 헤더를 식별할 수 없기 때문에 네트워크상 패킷 전송이 불가능
- 따라서 전송구간 주소 정보를 담은 New IP 헤더 추가

 

④ IPSec 프로토콜

프로토콜 설명
인증(AH) 프로토콜
(Authentical Header)
- 메시지 인증 코드(MAC)를 이용하여 인증과 송신처 인증을 제공해주는 프로토콜로 기밀성(암호화)은 제공하지 않는 프로토콜
- 무결성, 인증 제공
암호화(ESP) 프로토콜
(Encapsulation Security Payload)
- 메시지 인증 코드(MAC)와 암호화를 이용하여 인증과 송신처 인증과 기밀성을 제공하는 프로토콜
- 기밀성, 무결성, 인증 제공
키 관리(IKE) 프로토콜
(Internet Key Exchange)
- Key를 주고받는 알고리즘
- 공개된 네트워크를 통하여 Key를 어떻게 할 것인가를 정의, IKE 교환을 위한 메시지를 전달하는 프로토콜

 

 

[참고 : 수제비 2022]