정보처리기사

소프트웨어 개발 보안 구축

레이코딩 2023. 4. 22. 17:04

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

 

 

(1) SW 개발 보안

- 소스 코드 등에 존재하는 보안 취약점을 제거하고, 보안을 고려하여 기능을 설계 및 구현하는 등 소프트웨어 개발 과정에서 지켜야 할 일련의 보안 활동

- SW 개발 보안 생명주기: 요구사항 명세, 설계, 구현, 테스트, 유지보수 (요설구테유)

- SW 개발 보안 3요소: 기밀성, 무결성, 가용성 (기무가)

- SW 개발 보안 용어: 자산, 위협, 취약점, 위험 (자위취위)

- 위험(Risk): 위협(Threat)이 취약점(Vulnerabilty)을 이용하여 조직의 자산(Asset) 손실 피해를 가져올 가능성(위험=위협×취약점×자산)

 

기밀성 (Confidentiality) 인가된 사용자에 대해서만 자원 접근이 가능해야 하는 특성
무결성 (Integrity) 인가된 사용자에 대해서만 자원 수정이 가능하며 전송 중인 정보는 수정되지 않아야 하는 특성
가용성 (Availability) 인가된 사용자는 가지고 있는 권한 범위 내에서 언제든 자원 접근이 가능해야 하는 특성

 

 

(2) SW 공격 기법

- DoS(Denial of Service) 공격

- 시스템을 악의적으로 공격해서 해당 시스템의 자원을 부족하게 하여 원래 의도된 용도로 사용하지 못하게 하는 공격

- 공격 기법: SYN 플러딩, UDP  플러딩, 스머프, 죽음의 핑, 랜드어택, 티어 드롭, 봉크, 보잉크

 

 

SYN 플러딩 공격자가 ACK를 발송하지 않고 계속 새로운 연결 요청을 하게 되어 서버는 자원만 소비하여 고갈
UDP 플러딩 대량의 UDP 패킷을 만들어 임의 포트 번호로 전송하여 응답 메시지(ICMP)를 지속 생성하여 자원 고갈
스머프/스머핑 출발지 주소를 공격 대상의 IP로 하여 네트워크 전체에게 ICMP Echo 패킷을 직접 브로드캐스팅하여 마비시키는 공격
죽음의 핑 (PoD) ICMP 패킷(Ping)을 아주 크게 만들어 전송하여 IP 단편화 발생하고, 수신측에서 패킷을 재조합하는 과정에서 부하 발생
랜드 어택 패킷 전송시 출발지와 목적지 주소를 동일하게 함으로써 공격 대상 시스템의 가용성 침해
티어 드롭 공격자가 IP Fragment Offset 값을 서로 중첩되도록 조작하여 전송하고,  수신측에서 재조합하는 과정에서 오류 발생
봉크 패킷을 분할하여 보낼 때 처음 패킷을 1번으로 보낸 후 다음 패킷을 보낼 때도 순서번호를 모두 1번으로 조작하여 전송
보잉크 패킷을 보낼 때 순서번호를 비정상적인 상태로 보내서 부하 발생

 

 

- DDoS(Distributed DoS) 공격

- 여러 대의 공격자를 분산 배치하여 동시에 동작하게 함으로써 특정 사이트를 공격

- 공격 구성요소: 핸들러(Handler), 에이전트(Agent), 마스터(Master), 공격자(Attacker), 데몬 프로그램(Daemon) (HAMAD)

- 공격 도구: Trinoo, Tribe Flood Network(TFN), Stacheldraht

- 공격 기법: DoS 공격 기법 포함, 대역폭 소진 공격(3, 4계층), 서비스/애플리케이션 마비 공격(7계층)

- 대응 방안: 차단 정책 업데이트, 좀비PC IP 확보, 보안 솔루션 운영, 홈페이지 보안 관리, 시스템 취약점 패치

 

 

- DRDoS(Distributed Reflection  DoS) 공격

- 출발지 IP를 공격 대상 IP로 위조하여 다수의 반사 서버로 요청 정보를 전송, 공격 대상은 반사 서버로부터 다량의 응답을 받아 서비스 거부되는 공격

- 공격 절차: 출발지 IP 변조, 공격 대상 서버로 SYN/ACK 전송, 서비스 거부

 

 

- 세션 하이재킹(Session Hijacking)

- TCP Sequence Number의 보안상 취약점을 이용한 공격

 

 

- 애플리케이션 공격

- 공격 기법: HTTP GET 플러딩, Slowloris, RUDY Attack, Slow Read Attack, Hulk DoS

 

HTTP GET 플러딩 HTTP 캐시 옵션을 조작하여 캐싱 서버가 아닌 웹 서버가 직접 처리하도록 유도하여 웹 서버의 과부하 유발
Slowloris HTTP GET 메서드를 사용 시 헤더의 개행 문자열을 오전송하여 웹 서버 연결상태를 장시간 지속하여 자원 소진
RUDY Attack 요청 헤더의 Content-Length를 비정상적으로 크게 설정 이후 매우 소량으로 전송하여 연결 유지
Slow Read Attack TCP 윈도 크기를 낮게 설정하여 서버로 전달하고 통신하면서 연결을 유지하게 만들어 서버의 연결 자원 고갈
Hulk DoS 공격자가 공격대상 웹 사이트 주소(URL)를 지속적으로 변경하면서 다량으로 GET 요청 발생 시키는 공격

 

 

- 네트워크 공격

- 공격 기법: 스니핑, 네트워크 스캐너(스니퍼), 패스워크 크래킹, IP 스푸핑, ARP 스푸핑, ICMP Redirect 공격, 트로이 목마

 

 

스니핑 공격대상에게 직접 공격을 하지 않고 데이터만 몰래 들여다보는 수동적 공격 기법
네트워크 스캐너, 스니퍼 네트워크 하드웨어 및 소프트웨어 구성의 취약점 파악을 위해 공격자가 취약점을 탐색하는 공격 도구
패스워드 트래킹 사전 크래킹 ID와 패스워드가 될 가능성이 있는 단어를 파일로 만들어 놓고 대입하여 공격
무차별 크래킹 패스워드로 사용될 수 있는 문자 등을 무작위로 대입하여 공격
패스워드 하이브리드 공격 사전 크래킹과 무차별 크래킹을 결합하여 공격
레인보우 테이블 공격 크래킹 하고자 하는 해시 값을 테이블에서 검색해서 역으로 패스워드를 찾는 공격
IP 스푸핑 공격자의 패킷 헤더를 인증된 호스트의 IP 주소로 위조하여 타깃에 전송하고 시스템의 정보를 빼내는 공격
ARP 스푸핑 특정 호스트 MAC 주소를 공격자 MAC 주소로 변경, 희생자로부터 특정 호스트로 나가는 패킷을 빼내는 공격
ICMP Redirect 공격 ICMP Redirect 메시지를 공격자가 원하는 형태로 만들어서 특정 목적지로 가는 패킷을 스니핑하는 공격
트로이 목마 정상적인 프로그램으로 보이지만 악성 루틴이 숨어 있는 프로그램으로 실행 시 악성 코드를 실행

 

 

- 시스템 보안 위협

- 공격 기법: 버퍼 오버플로우, 백도어, 주요 시스템 보안 공격 기법

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

- 유형: 스택 버퍼 오버플로우 공격, 힙 버퍼 오버플로우 공격

- 대응 방안: 스택 가드, 스택 쉴드, ASLR(Address Space Layout Randomization), 안전한 함수 활용

 

 

스택가드 버퍼 오버플로우 발생시 카나리(Canary) 값을 체크, 변할 경우 복귀 주소를 호출하지 않는 방식으로 대응
스택쉴드 함수 시작 시 복귀 주소를 스택에 저장해 두고, 함수 종료 시 다를 경우 오버 플로으로 간주하고 프로그램 중단
ASLR 주소 공간 배치 난수화, 실행 시마다 메모리 주소를 변경시켜 버퍼 오버플로우를 통한 특정 주소 호출 차단
안전한 함수 버퍼 오버플로우 취약 함수 strcat(), strcpy(), gets(), scanf(), sprintf()
버퍼 오버플로우 안전 함수 strncat(), strncpy(), fgets(), fscanf(), snprintf()

 

 

- 백도어: 제품, 시스템, 암호시스템 혹은 알고리즘에서 정상적인 인증 절차를 우회하는 기법

- 주요 시스템 보안 공격기법: 포맷 스트링 공격, 레이스 컨디션 공격, 키로거 공격, 루트킷

 

 

포맷 스트링 공격 외부로부터 입력된 값을 검증하지 않고 입출력 함수의 포맷 스트링을 사용하는 경우 발생하는 취약점 공격
레이스 컨디션 공격 실행되는 프로세스가 임시파일을 만드는 경우 악의적인 프로그램으로 실행중에 끼어들어 공격
키로거 공격 컴퓨터 사용자의 키보드 움직임을 탐지해서 저장하고, 개인 정보를 빼내는 해킹 공격
루트킷 차후의 침입을 위한 백도어, 트로이 목마 설치, 원격 접근, 흔적 삭제, 관리자 권환 획등 등 해킹 프로그램 모음

 

 

- 보안 관련 용어

 

 

스피어피싱 일반적인 이메일로 위장한 메일을 지속적으로 발송, 링크나 첨부파일 클릭하도록 유도하여 개인정보 탈취
스미싱 문자메시지(SMS)를 이용한 피싱(Phising) 공격
큐싱 큐알 코드(Quick Response Code)를 통해 악성 앱을 내려받도록 유도하여 정보를 빼내는 피싱 공격
봇넷 악성 프로그램에 감염되어 악의적인 의도로 사용될 수 있는 다수의 컴퓨터들이 네트워크로 연결된 형태
APT 공격 특정 타깃을 목표로 하여 다양한 수단을 통한 지속적이고 지능적인 맞춤형 공격
공급망 공격 개발사 네트워크에 침투하여 코드 수정하거나 배포 서버에 접근하여 파일 변경하여 사용자 PC에 설치 시 감염
제로데이 공격 보안 취약점이 발견되어 대응책이 공표되기 전에 해당 취약점을 악용하여 이루어지는 공격
독자적으로 실행되며, 스스로를 복제하여 네트워크 등의 연결을 통하여 전파하는 악성 소프트웨어
악성 봇 독자적으로 실행되지 못하고, 해커의 명령에 의해 원격에서 제어 또는 실행이 가능한 프로그램 (좀비 PC)
사이버 킬체인 지능적, 지속적 사이버 공격에 대해 7단계 프로세스별 공격분석 및 대응을 체계화한 APT 공격 방어 분석 모델
랜섬웨어 감염된 시스템의 파일들을 암호화하여 복호화할 수 없도록 하고, 암호화된 파일을 인질로 잡고 몸값 요구
이블 트윈 합법적 Wifi 제공자 행세하며 노트북이나 핫스팟에 연결한 무선 사용자의 정보를 탈취하는 무선 네트워크 공격
사회 공학 사람들의 심리와 행동 양식을 교묘하게 이용해서 원하는 정보 얻는 공격
트러스트존 프로세서 안에 독립적인 보안 구역을 따로 두어 중요한 정보를 보호하는 하드웨어 기반의 보안 기술
타이포스쿼팅 사이트 접속 시 주소를 오입력 실수를 이용하기 위해, 유사한 유명 도메인을 미리 등록 (URL 하이재킹)
다크 데이터 정보를 수집한 후, 저장만 하고 분석에 활용되지 않는 다량의 데이터

 

 

(3) 서버 인증 및 접근 통제

- 서버 인증: 다중 사용자 시스템과 망 운영 시스템에서 접속자의 로그인 정보를 확인하는 보안 절차로 전송된 메시지 무결성 및 송신자 검증하는 과정

- 서버 인증 기능(SSL 인증서): 스니핑 방지, 피싱 방지, 데이터 변조 방지, 기업 신뢰도 향상

- 인증 기술 유형: 지식기반, 소유기반, 생체기반, 특징(행위)기반 인증 (지소생특)

 

 

- 서버 접근 통제: 사람 또는 프로세스가 서버 내 파일에 읽기, 쓰기, 실행 등의 접근 여부를 허가하거나 거부하는 기능

- 목적: 비인가자로부터 객체의 기밀성, 무결성, 가용성 보장

- 용어: 주체(행위자), 객체(제공자), 접근(주체의 활동)

- 서버 접근 통제 유형: 임의적 접근 통제(DAC), 강제적 접근 통제(MAC), 역할 기반 접근 통제(RBAC)

 

 

임의적 접근 통제 (DAC) 주체의 신분(신원)에 근거하여 객체에 대한 접근을 제한
강제적 접근 통제 (MAC) 객체에 포함된 정보의 허용등급과 주체가 갖는 접근 허가 권한에 근거하여 객체에 대한 접근을 제한
역할 기반 접근 통제 (RBAC) 조직 내 맡은 역할(Role)에 기초하여 자원에 대한 접근을 제한

 

 

- 3A: 인증(Authentication), 권한 부여(Authorization), 계정 관리(Accouting)

- 인증: 주체의 신원을 객체가 인정해 주는 행위

- 권한 부여: 인증된 주체에게 접근을 허용하는 활동

- 계정 관리: 주체의 접근을 추적하고 행동을 기록하는 활동

- 식별(Identification): 자신이 누구라고 시스템에 밝히는 행위로 객체에게 주체가 자신의 정보를 제공하는 활동

- 인증 관련 기술: SSO, 커버로스

- SSO(Single Sign On): 커버로스에서 사용되는 기술로 한 번의 인증 과정으로 여러 컴퓨터상의 자원을 이용할 수 있도록 해주는 인증 기술

- 커버로스: MIT Athena 프로젝트 일환으로 개발되었으며 클라이언트/서버 모델에서 동작하고 대칭 키 암호기법에 바탕을 둔 티켓 기반의 프로토콜

 

 

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

- 벨-라파듈라 모델(BLP): 보안 요소 중 기밀성을 강조 (No Read Up, No Write Down)

- 비바 모델: 벨-라파듈라 모델의 단점을 보완한 무결성을 보장 (No Read Down, No Write Up)

 

 

(4) SW 개발 보안을 위한 암호화 알고리즘

- 암호 알고리즘(Encryption Algorithm): 데이터의 기밀성 및 무결성 확보를 위해 정보를 쉽게 해독할 수 없는 형태로 변환하는 기법

- 용어: 평문, 암호문, 암호화, 복호화, 키, 치환 암호(대치 암호), 전치 암호(자리 바꿈)

 

 

암호 알고리즘 양방향 (암호화/복호화) 대칭 키 (암호화=복호화) DES, 3DES, AES
비대칭 키 (암호화 ≠ 복호화) RSA
일방향 (암호화) 해시 함수 MAC, MDC

 

 

- 대칭 키 암호 방식: 암호화와 복호화에 같은 암호키를 쓰는 알고리즘

- 종류: 블록 암호 방식(DES, AES, SEED), 스트림 암호 방식(RC4)

- 비대칭 키 암호 방식(=공개키 암호 방식): 공개키(암호화)는 누구나 알 수 있고, 그에 대응하는 개인키(복호화)는 소유자만이 알 수 있는 알고리즘

- 종류: RSA

 

 

대칭 키 암호 방식 비밀키 n(n-1)/2
비대칭 키 암호 방식 공개키, 개인키 2n

 

 

- 해시 암호 방식: 임의 길이의 정보를 입력받아, 고정된 길이의 암호문(해시값)을 출력하는 암호 방식

- 종류: MAC(메시지 인증 코드), MDC(변경 감지 코드)

 

 

- 대칭 키 암호화 알고리즘

- 종류: DES, 3DES, SEED, AES, ARIA, IDEA, LFSR, Skipjack

 

 

DES IBM에서 개발한 대칭 키 기반 블록 암호화 알고리즘, 블록 크기는 64bit, 키 길이 56bit인 페이스텔 구조, 16라운드
SEED 국내 한국인터넷진흥원(KISA) 개발한 블록 암호화 알고리즘
AES 미국  표준 기술 연구소(NIST)에서 발표현 블록 암호화 알고리즘으로 DES 전사적 공격 가능해지고, 3DES 성능문제 극복
ARIA 학계(Academy), 연구기관(Research Institute), 정부(Agency)의 영문 앞글자로 구성된 블록 암호화 알고리즘
IDEA DES 대체하기 위해 스위스 연방기술 기관에서 개발한 블록 암호화 알고리즘
LFSR 선형 되먹임 시프트 레지스터
Skipjack 미 국가안보국(NSA)에서 개발한 Clipper 칩에 내장된 블록 알고리즘

 

 

- 비대칭 키 암호화 알고리즘

- 종류: 디피 헬만, RSA, ECC, ELGamal

 

 

디피 헬만 이산대수의 계산이 어려운 문제를 기본 원리로 한 최초의 공개키 알고리즘
RSA 3명의 MIT 수학 교수가 고안한 큰 인수의 곱을 소인수 분해하는 수학적 알고리즘 이용하는 공개키 암호화 알고리즘
ECC RSA 암호 방식 대안으로 타원 곡선 암호(ECC)는 타원곡선 군에서의 이산대수의 문제에 기초한 공개키 암호화 알고리즘
ELGamal 이산대수의 계산이 어려운 문제를 기본 원리로 하고 있으며, RSA와 유사하게 전자서명과 데이터 암/복호화에 사용

 

 

- 해시(Hash) 암호화 알고리즘

- 종류: MD5, SHA-1, SHA-256/384/512, HAS-160, HAVAL

 

 

MD5 MD4를 개선한 암호화 알고리즘으로 프로그램이나 파일의 무결성 검사에 사용하는 해시 알고리즘
SHA-1 NSA에서 미 정부 표준으로 지정되었고, DSA에서 사용하는 160비트의 해시 알고리즘
SHA-256 SHA(Secure Hash Algorithm)의 한 종류로 256비트의 해시 알고리즘
HAS-160 국내 표준 서명 알고리즘 KCDSA(Korea certificate-based Digital Signature Algorithm)을 위해 개발된 해시 알고리즘
HAVAL 메시지를 1024비트 블록으로 나누고 128, 160, 192, 224, 256 비트인 메시지 다이제스트를 출력하는 해시 알고리즘

 

 

(5) 데이터 암호화 전송

- 민감한 정보를 통신 채널을 통하여 전송 시 암/복호화 과정을 거쳐야 하고, IPSec, SSL/TLS, S-HTTP 등 보안 채널을 활용하여 전송

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

- IPSec 동작 모드: 전송 모드, 터널 모드

- IPSec 프로토콜: 인증(AH) 프로토콜, 암호화(ESP) 프로토콜, 키 관리(IKE) 프로토콜

SSL/TLS: 전송계층(4계층)과 응용계층(7계층) 사이 클라이언트와 서버 간 데이터 암호화(기밀성), 인증과 전송시 데이터 무결성 보장하는 보안 프로토콜

- SSL/TLS 보안 기능: 기밀성, 상호인증, 메시지 무결성

S-HTTP: 웹상에서 네트워크 트래픽을 암호화하는 주요 방법 중 하나로 클라이언트와 서버 간 전송되는 모든 메시지를 각각 암호화하여 전송하는 기술

- VPN(Virtual Private Network): 여러 공중 인터넷망을 하나의 사설망처럼 사용할 수 있는 보안 기술

 

 

(7) 자산에 대한 보안 항목식별

- 정보자산 주요 용어: 자산, 사용자, 소유자, 관리자

- 정보자산 분류: 소프트웨어, 하드웨어, 데이터, 문서, 시설, 지원설비, 인력

- 자산 목록표: 자산번호, 자산명, OS, 위치, 담당자(관리자)

 

 

(8) SW 개발 보안 적용

- 사례: BSIMM, Open SAMM, Seven TouchPoints, MS-SDL, OWASP CLASP

- OWASP: 오픈 소스 웹 애플리케이션 보안 프로젝트로 주로 웹을 통한 정보 유출, 악성 파일 및 스크립트, 보안 취약점 등을 연구하는 기관

 

BSIMM 보안 활동의 성숙도 수준을 영역별로 측정하여 SW 개발에 필요한 보안 능력 향상을 목표로 하는 개발 프레임워크
Open SAMM OWASP에서 개발하여 개방을 원칙으로 소규모, 중규모, 대규모로 점진적인 확대가 가능한 융통성 있는 프레임워크
Seven ToochPoints SW 보안의 모범 사례를 SDLC에 통합한 소프트웨에 개발 보안 생명주기 방법론
MS SDL MS 자사 소프트웨어 개발에 의무 적용하도록 한 보안 프레임워크로 동일 제품에 대해 pre-SDL/post-SDL 테스트
OWASP CLASP 프로그램 설계나 코딩 오류를  찾아내어 개선하기 위해 개발팀에 취약점 목록 제공, 운영중인 시스템에 적용 용이

 

 

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

 

 

(1) 시큐어 코딩 가이드

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

- 7가지 적용 대상: 입력데이터 검증 및 표현, 보안 기능, 시간 및 상태, 에러 처리, 코드 오류, 캡슐화, API 오용 (입보시 에코캡아)

 

 

입력데이터 검증 및 표현 입력값에 대한 검증 누락, 부적절한 검증, 잘못된 형식 지정 입력데이터에 대한 유효성 검증체제 수립
보안 기능 보안 기능의 부적절한 구현 인증, 접근 제어, 비밀번호 정책 설계 및 구현
시간 및 상태 병렬, 다중 프로세스 동작시 시간 및 상태의 부적절한 관리 공유 자원 접근 직렬화, 병렬 실행 프레임워크
에러 처리 에러 미처리, 불충분한 처리로 에러 메시지에 중요정보가 포함 충분한 에러 처리
코드 오류 개발자가 범할 수 있는 코딩 오류로 인해 유발 코딩 규칙 도출하여 검증 가능한 스크립트
캡슐화 불충분한 캡슐화로 인해 미인가 사용자에게 데이터 누출 디버그 코드 제거, 클래스 내 Private 접근자
API 오용 의도된 사용에 반하거나, 보안에 취약한 API 사용 개발 언어별 취약 API 확보 및 검출 프로그램

 

 

- 입력 데이터 검증 및 표현: XSS(Cross Site Scripting), 사이트 간 요청 위조(CSRF; Cross-Site Request Forgery), SQL 삽입(Injection)

- XSS: 검증되지 않은 외부 입력 데이터가 포함된 웹페이자 전송되어, 사용자가 열람함으로써 웹페이지에 포함된 부적절한 스크립트가 실행되는 공격

- CSRF: 사용자가 자신의 의지와는 무관하게 공격자가 의도한 행위를 특정 웹사이트에 요청하게 되는 공격

- SQL 삽입: 응용 프로그램의 보안 취약점을 이용해서 악의적인 SQL 구문을 삽입, 실행시키고 데이터베이스(DB)에 접근하여 정보를 탈취, 조작하는 공격

 

 

XSS Stored XSS 악성 스크립트 포함된 페이지를 읽음과 동시에 브라우저에서 실행되면서 감염
Reflected XSS 공격용 악성 URL 포함된 이메일 클릭시 공격 스크립트가 피해자로 반사되어 정보 탈취
DOM XSS DOM 기반 XSS 취약 브라우저를 대상으로 조작된 URL 포함된 이메일 클릭시 공격
SQL 삽입





From SQL Injection HTML From 인증 취약한 경우 사용자 인증을 위한 쿼리 문을 조작하여 인증 우회
Union SQL Injection UNION 연산자를 이용한 쿼리의 결과를 다른 쿼리의 결과에 결합하여 공격
Stored Procedure SQL Injection 저장 프로시저를 이용하여 공격
Mass SQL Injection 한 번의 공격으로 대량의 DB 값이 변조되어 홈페이지에 치명적인 영향을 미치는 공격
Error-Based SQL Injection DB 쿼리에 대한 에러값을 기반으로 점진적으로 DB 정보를 획득하는 공격
Blind SQL Injection 쿼리 결과의 참과 거짓을 통해 의도하지 않은 SQL 문을 실행하여 공격

 

 

- 보안 기능: 인증 없이 기능 허용, 부적절한 인가, 취약한 암호화 알고리즘 사용, 중요 정보 평문 저장 및 전송, 하드 코드 비밀번호, 취약한 패스워드 조건

- 에러 처리: 오류 상황 대응 부재, 적절하지 않은 예외 처리, 오류 메시지 통한 정보 노출

- 세션 통제: 불충분한 세션 관리

- 코드 오류: 널 포인터 역참조, 정수를 문자로 변환, 부적절한 자원 해제, 초기화되지 않은 변수 사용

- 캡슐화: 잘못된 세션에 의한 데이터 정보 노출, 제거되지 않고 남은 디버그 코드, 민감한 데이터를 가진 내부 클래스 사용, 시스템 데이터 정보 노출

- API 오용: DNS Lookup에 의존한 보안 결정, 위험하다고 알려진 함수 사용, 널(Null) 매개변수 미검사

 

 

(2) 시스템 보안 구현

- 유닉스/리눅스 주요 로그 파일

 

 

wtmp/wtmpx 사용자 로그인/로그아웃 정보 last
utmp/utmpx 현재 시스템에 로그인한 사용자 정보 who, w, users, finger
btmp, btmpx 로그인에 실패한 정보 lastb
lastlog 사용자별 최근 로그인에 대한 정보 lastlog
sulog su(Switc user) 명령어 실행 성공/실패 결과 정보 명령어 없음
messages 운영에 대한 전반적인 메시지 저장
secure 사용자 인증 등 보안과 관련된 주요 로그

 

 

- 네트워크 보안 솔루션: 방화벽, WAF, NAC, IDS, IPS, WIPS, UTM, VPN, SIEM, ESM

 

 

방화벽 기업 내부, 외부 간 트래픽을 모니터링 하여 시스템의 접근을 허용하거나 차단하는 시스템
웹 방화벽 (WAF) 일반적인 네트워크 방화벽과는 달리 웹 애플리케이션 보안에 특화된 보안 장비
네트워크 접근 제어 (NAC) 단말기가 내부 네트워크에 접속을 시도할 때 이를 제어하고 통제하는 기능을 제공하는 솔루션
침입 탐지 시스템 (IDS) 비인가 사용자에 의한 자원 접근과 보안정책 위반 행위(침입)을 실시간으로 탐지하는 시스템
침입 방지 시스템 (IPS) 네트워크 공격이나 침입을 실시간으로 차단하고, 유해 트래픽에 대한 조치를 능동적으로 처리하는 시스템
무선 침입 방지 시스템 (WIPS) 미인가 무선 단말기의 접속을 자동으로 탐지/차단하고 보안에 취약한 무선 공유기를 탐지하는 시스템
통합 보안 시스템 (UTM) 방화벽, IDS, IPS, VPN 등 다양한 보안 장비의 기능을 하나의 장비로 통합하여 제공하는 시스템
가상사설망 (VPN) 여러 공중 인터넷망을 하나의 사설망처럼 사용할 수 있는 보안 기술
SIEM 다양한 보안 장비와 이벤트 정보를 수집, 분석하여 위협 상황 시 신속하게 대응하는 보안 관제 솔루션
ESM 여러 보안 시스템으로부터 발생한 이벤트 및 로그를 통합해서 관리, 분석, 대응하는 보안 관리 시스템

 

 

시스템 보안 솔루션스팸 차단 솔루션(Anti-Spam Solution), 보안 운영체제(Secure OS)

콘텐츠 유출 방지 보안 솔루션보안 USB, 데이터 유출 방지(DLP; Data Loss Prevention), 디지털 저작권 관리(DRM; Digital Right Management)

취약점 분석: 자산이 가지고 있는 보안상의 결점 또는 취약한 속성을 파악하여 위험을 낮추는 활동

- 대상: 환경 및 시설, 하드웨어, 소프트웨어

- 취약점 분석 절차: 자산 조사 및 분석, 진단 대상 선정, 제약사항 확인, 진단 수행, 결과 분석/보고서 작성 (자진 제진결보)

SW 개발 보안 테스트와 결함 관리: 소프트웨어 보안 요구사항이 반영돼 있음을 보증하고, 취약점을 개선하여 안전한 소프트웨어를 개발하기 위한 활동

- 유형: 정적 분석, 동적 분석

 

 

(3) 비즈니스 연속성 계획(BCP; Business Continuity Plan)

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

 

 

BIA 장애나 재해로 인한 운영상 손실을 시간에 따른 영향도 및 손실 평가를 조사하는 BCP를 구축하기 위한 비즈니스 영향 분석
RTO 업무중단 시점부터 업무가 복구되어 다시 가동될 때까지의 시간으로 재해 시 복구 목표 시간 선정에 활용
RPO 업무중단 시점부터 데이터가 복구되어 다시 가동될 때 데이터의 손실 허용 시점으로 재해 시 복구 목표 지점 선정에 활용
DRP 재난으로 장기간에 걸쳐 시설의 운영이 불가능한 경우를 대비한 재난복구계획
DRS 재해복구계획의 원활한 수행을 지원하기 위하여 인적/물적 자원을 확보하고 지속적인 관리체계가 통합된 재해복구센터
Mirror Site 주 센터와 데이터복구센터 모두 실시간 동시 서비스가 가능 (RTO 0)
Hot Site 주 센터와 동일한 수준의 자원을 원격지에 보유하며 데이터의 최신 상태 유지 (RTO 4시간 이내) 
Warm Site 중요성이 높은 자원만 부분적으로 재해복구센터에 보유 (RTO 수일~수주)
Cold Site 데이터만 원격지에 보관, 재해 시 데이터를 근간으로 필요 자원을 조달하여 복구 (수주~수개월)

 

 

(4) 보안 용어

- 보안 공격

 

 

부 채널 공격 암호화 알고리즘의 실행 시기의 전력 소비, 전자기파 방사 등의 물리적 특성을 측정하여 정보를 획득하는 공격
드라이브 바이 다운로드 웹서버와 웹페이지에 악성 스크립트를 설치, 사용자 접속 시 실행되어 의도된 서버로 연결하여 감염시키는 공격
워터링홀 특정인 표적 공격으로 자주 방문하는 웹사이트에 악성코드 심거나 배포하는 URL로 유인하여 감염시키는 공격
비즈니스 스캠 기업 이메일 계정 도용하여 무역 거래 대금 가로채는 사이버 범죄
하트 블리드 하트비트 확장 모듈에서 클라이언트 요청 메시지 처리 시 데이터 길이 미검증 취약점을 이용하여 데이터 탈취
크라임웨어 금융정보 또는 인증정보 탈취하거나 유출을 유도하여 금전적인 이익 등의 범죄행위를 목적으로 하는 악성코드
토르 네트워크 네트워크 경로를 알 수 없도록 암호화 하여 데이터를 전송하며, 익명으로 인터넷을 사용할 수 있는 가상 네트워크
MITM 공격 네트워크 통신을 조작하여 통신 내용을 도청/조작하는 중간자(Man in the Middle) 공격
DNS 스푸핑 공격 DNS 응답, DNS 서버 캐시 정보를 조작하여 공격대상이 의도하지 않은 주소로 접속하게 하는 공격
포트 스캐닝 공격자가 침입 전 대상 호스트에 어떤 포트가 활성되어 있는지 확인하는 기법으로 사전 취약점을 분석 작업
디렉토리 리스팅 WAS의 미흡한 설정으로 인덱싱 활성화된 경우, 강제 브라우징으로 디렉토리 및 파일 목록을 볼 수 있는 취약점
리버스 쉘 공격 타깃 서버가 클라이언트(공격자)로 접속해서 클라이언트가 타깃 서버의 쉘을 획득해서 공격
익스플로잇 소프트웨어나 하드웨어의 버그/취약점을 이용하여 공격자가 의도한 명령을 실행하도록 하는 코드 또는 행위
스턱스넷 공격 원자력, 전기, 철강, 반도체, 화학 등 산업 기반 시설의 제어 시스템에 침투해서 오작동 일으키는 악성코드 공격
크리덴셜 스터핑 다른 곳에서 유출된 아이디와 비밀번호 등의 로그인 정보를 다른 곳에 무작위로 대입해 로그인 되면 정보 유출

 

 

- 보안 공격 대응

 

 

허니팟 비정상 접근을 탐지하기 위해 의도적으로 허술하게 만들어 노출하는 유인시스템
OWASP Top 10 보안상 큰 영향을 줄 수 있는 10가지 취약점에 대한 대응방안 제공하는 웹 보안 기술 가이드
핑거프린팅 콘텐츠 저작권 정보와 구매한 사용자 정보를 삽입하여 불법 배포자에 대한 위치 추적 가능
워터마킹 콘텐츠 저작권자 정보를 삽입하여, 불법 복제 시 원소유자 증명하는 콘텐츠 보호 기술
이상금융거래탐지시스템 (FDS) 전자금융거래 정보를 종합 분석하여 의심 거래를 탐지하고, 이상 거래를 차단하는 시스템
CC (Common Criteria) 정보기술 보안 기능과 보증에 대한 국제 평가 기준
사이버 위협정보 분석 공유시스템 (C-TAS) 사이버 위협정보를 수립해서 인터넷진흥원(KISA) 주관으로 공유하는 침해 예방 대응 시스템
장착형 인증 모듈 (PAM) 리눅스 시스템 내에서 각종 애플리케이션 인증을 위해 제공되는 다양한 인증용 라이브러리
CVE 소프트웨어의 보안취약점을 표준화한 식별자 목록
CWE 소프트웨어에서 공통적으로 발생하는 약점을 체계적으로 분류한 목록
ISMS/ISMS-P 정보보호 절차와 과정을 수립하여, 지속적으로 관리하기 위한 체계
PIMS 개인정보보호 체계를 구축했는지 평가하여, 기업에게 부여하는 인증제도
PIA 개인정보활용 시스템 도입이나 기존 시스템 변경 시 프라이버시에 미치는 영향 도출하는 체계
TKIP 임시 키 무결성 프로토콜