본문 바로가기
정보처리기사

정보처리기사 실기 [09. 소프트웨어 보안 구축]

by 하겐모아 2024. 1. 22.

#09. 소프트웨어 보안 구축

(1) Secure SDLC

📌 Secure SDLC
> 보안상 안전한 소프트웨어를 개발하기 위해 SDLC 에 보안 강화를 위한 프로세를 포함한 것
> SDLC : Software Devlopment Life Cycle

📌소프트웨어 개발 보안 요소
> 기밀성(Confidentiality) / 무결성 (Integrity) / 가용성(Availability) / 인증(Authorization) / 부인방지 (NonRepudiation)

📌 시큐어 코딩
> 구현 단계에서 발생할  수 있는 보안 취약점들을 최소화하기 위해 보안 요소들을 고려하여 코딩

>소프트웨어 개발 과정에서 개발자의 실수, 논리적 오류 등으로 인해 소스 코드 등에 내포될 수 있는 잠재적인 보안 취약점을 최소화하고, 안전한 소프트웨어를 개발하기 위한 일련의 보안 활동

(2)세션 통제
📌세션통제
>세션의 연결로 인해 발생하는 정보를 관리하는 것

(3)입력 데이터 검증 및 표현

#보안약점
📌SQL 삽입(Injection)
> 웹 응용 프로그램에 SQL 을 삽입하여 내부 데이터베이스 서버의 데이터를 유출 및 변조하고, 관리자 인증을 우회나는 보안 약점

📌 경로 조작 및 자원 삽입
> 데이터 입출력 경로를 조작하여 서버 자원을 수정 삭제할 수 있는 보안 약점

📌크로스사이트 스크립팅 (XSS)
>웹페이지에 악의적인 스크립트를 삽입하여 방문자들의 정보를 탈취하거나, 비정상적인 기능 수행을 유발하는 보안 약점

 

📌 CSRF

> 공격자가 웹 서버의 취약점을 이용하여 악성 스크립트 구문을 삽입하고, 정상적인 사용자로 하여금 자신의 의지와는 무관하게 게시판 설정,변경 등 공격자가 의도한 행위를 특정 웹 사이트에 요청하게 하는 공격

 




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

📌 Dos(Denial of Service) 공격
> 시스템을 악의적으로 공격해서 해당 시스템의 자원을 부족하게 하여 원래 의도된 용도로 사용하지 못하게 하는 공격

#Dos 공격의 종류
📌 SYN 플러딩 
> 서버의 동시 가용 사용자수를 SYN 패킷만 보내 점유하여 다른 사용자가 서버를 사용 불가능하게 하는공격

📌UDP 플러딩
> 대량의 UDP 패킷을 만들어 임의의 포트 번호로 전송하여 응답 메시지를 생성하게 하여 지속해서 지원을 고갈시키는 공격

📌스머핑 
> 출발지 주소를 대상의 IP로 설정하여 네트워크 전체에게 ICMP Echo패킷을 직접 브로드캐스팅하여 마비시키는 공격

📌죽음의 핑
> ICMP 패킷을 정상적인 크기보다 아주 크게 만들어 전송하여 정상적인 서비스를 못하도록 하는 공격

📌 랜드어택
> 출발지 IP와 목적지IP를 같은 패킷 주소로 만들어 보내 시스템의 가용성을 침해하는 공격

📌티어트롭
> IP패킷의 재조합 과정에서 잘못된 정보로 인해 수신 시스템이 문제를 발생하도록 만드는 공격

> Offset 값을 변경시켜 수신 측에서 패킷을 재조립할 때 오류로 인한 과부하를 발생시킴으로써 시스템이 다운되도록 하는 공격

📌보잉크
> 프로토콜의 오류 제어를 이용한 공격기법


📌DDos(Distributed Denial of Service)
> 여러 대의 공격자를 분산 배치하여 동시에 동작하게함으로써 특정 사이트를 공격하는 기법

#DDos 공격도구
📌Trinoo 
> 많은 소스로부터 통합된 UDP Flood  서비스 거부 공격을 유발하는 데 사용되는 도구
📌Tribe Flood Network
>많은 소스에서 하나 혹은 여러개의 목표 시스템에 대해 서비스 거부  공격을 수행할 수 있는 도구

📌Dos 와 DDos의 차이
>Dos는 직접공격 / DDos는 공격하도록 지시
>Dos는 한 사람에 의해 공격을 감행 / DDos는 수많은 감염 호스트를 통해 공격을 감행

📌세션하이재킹
>TCP의 세션 관리 취약점을 이용한 공격 기법

#애플리케이션 공격기법
📌HTTP GET 플러딩 : 과도한 Get 메시지를 이용하여 웹 서버의 과부하를 유발시키는 공격
📌Slowloris : HTTP GET 메서드를 사용하여 헤더의 최종 끝을 알리는 개행 문자열(\n\t등)을 전송하지 않고, 대상 웹 서버와 연결상태를 장시간 지속시키고 연결 자원을 모두 소진시키는 서비스 거부 공격

📌RUDY : 요청헤더의 Content-length를 비정상적으로 크게 설정하여 메시지 바디 부분을 매우 소량으로 보내 계속 연결 상태를 유지시키는 공격

📌Slow Read Attack : TCP 윈도 크기와 데이터 처리율을 감소시킨 상태에서 다수 HTTP패킷을 지속적으로 전송하여 대상 웹 서버의 연결 상태가 장시간 지속, 연결자원을 소진시키는 서비스 거부 공격

#네트워크 공격
📌스니핑 : 공격대상의 데이터만 몰래 들여다보는 수동적 공격 기법
📌네트워크 스캐너, 스니퍼 : 네트워크 하드웨어 구성의 취약점 파악을 위해 공격자가 취약점을 탐색하는 공격 도구

📌스위치 재밍 : 위조된 MAC주소를 지속적으로 네트워크에 전송함으로써 스위칭 허브의 주소 테이블을 오버플로우시켜 허브처럼 동작하게 만든 후 다른 네트워크 세그먼트의 데이터를 스니핑한다. (더미 허브)

📌 ICMP Redirect

> 네트워크 계층에서 스니핑 시스템을 네트워크에 존재하는 또 다른 라우터라고 알림으로써 패킷의 흐름을 바꾸는 공격

 

스푸핑 - ip 조작해서 정보에 접근
스누핑 - 네트워크 상에 떠돌아 다니는 정보 획득
스니핑 - 네트워크 상에 떠돌아 다니는 정보 훔처보는 행위

#패스워드 크래킹
📌사전 크래킹 
> ID와 PW가 될 가능성이 있는 단어를 파일로 만들어 파일의 단어를 대입하여 크랙하는 공격 기법
📌무차별 크래킹
> 무작위로 패스워드 자리에 대입하여 패스워드를 알아내는 공격 기법
📌패스워드 하이브리드 공격
> 사전 공격 + 무차별 크래킹
📌IP 스푸핑
> 침입자가 인증된 컴퓨팅 시스템인 것처럼 속여서 인증된 호스트의 IP주소로 위조하여 타킷에 전송하는 공격 기법

> 타킷 시스템의 정보를 빼내기 위해서 본인의 패킷 헤더를 인증된 호스트의 IP주소로 위조하여 타킷에 전송하는 공격 기법

 

📌ARP스푸핑
>공격자가 특정 호스트의  MAC주소를 자신의 MAC주소로 위조한 APR Reply를 만들어 희생자에게 지속적으로 전송
📌트로이목마
>악성 루틴이 숨어있는 프로그램, 실행하면 악성코드를 실행

📌 크리덴셜 스터핑

> 다른 곳에서 유출된 로그인정보를 다른 웹 사이트나 앱에 무작위로 대입해 로그인이 이루어지면 타인의 정보를 유출시키는 기법

📌 익스플로잇(Exploit)

> 컴퓨터의 소프트웨어나 하드웨어 및 컴퓨터 관련 전자 제품의 버그, 보안 취약점 등 설계상 결함을 이용해 공격자의 의도된 동작을 수행하도록 만들어진 절차나 일련의 명령, 스크립트, 프로그램을 사용한 공격행위

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

👍 버퍼 오버플로우 대응 방안

> ASLR (Address Space Layout Randomization)

#보안 관련 용어
📌 스피어 피싱
> 발송 메일의 본문 링크나 첨부된 파일을 클릭하도록 유도하여 사용자의 개인정보 탈취하는 공격기법
📌 스미싱
> SMS를 이용하여 개인 정보를 요구하거나 휴대폰 소액 결제를 유도하는 피싱 공격

📌파밍

> PC가 악성코드에 감염되어 정상적인 홈페이지 주소를 입력하거나 기존에 설정해 둔 즐겨찾기로 접속해도 악성 사이트로 연결되어 개인의 금융정보를 훔치는 공격 기법
📌 큐싱
QR코드를 통해 악성앱을 내려받도록 유도하여 금융 정보 등을 빼내는 피싱 공격
📌봇넷
> 악성 프로그램이 감염되어 있는 컴퓨터들이 네트워크로 연결된 형태
📌ART공격
> 다양한 수단을 통한 지속적이고 지능적인 맞춤형 공격 기법
📌공급망공격
>SW개발사의 네트워크에 침투하여 악의적 코드를 삽입, 서버 배포하여 사용자가 설치 또는 업데이트시에 자동적으로 감영되도록 하는 공격 기법
📌제로데이 공격
> 보안 취약점이 발견되어 널리 공표되기 전에 해당 취약점을 악용하여 이루어지는 보안 공격 기법
📌웜
> 스스로 복제하여 네트워크 등의 연결을 통하여 전파하는 악성 프트웨어 프로그램
📌사이버 킬체인
> 공격형 방위시스템 , APT공격방어 분석 모델
📌 랜섬웨어
> 시스템의 파일을 암호화하여 인질처럼
📌이블트윈
> 핫스팟에 연결한 무선 사용자들의 정보를 탈취 

📌ROP (Return Oriented Programming) [보안기사 출제]

> 메모리에 적재되어있는 코드 조각들에 Return 명령을 사용하여 공격자가 원하는 흐름대로 명령을 실행하도록 하는 공격 기법

> 버퍼 오버플로우와 같은 취약점을 이용하여 프로그램의 실행 흐름을 조작할 때 가장 빈번하게 사용된다.

📌 백도어

> 정상적인 인증 절차를 우회

📌 Rootkit

> 불법적인 해킹에 사용되는 프로그램의 모음 (백도어, 트로이목마 등)

📌 크라임웨어(Crimeware)

> 온라인상에서 범죄와 같은 불법적인 행위를 수행하기 위해 제작된 컴퓨터 프로그램

📌 키로거 공격

> 키보드 움직임을 탐지해서 해킹 공격

📌 타이포스쿼팅(Typosquatting) :

> 철자가 유사한 도메인을 등록하여 URL 하이재킹 시도

📌 C&C서버

> 해커가 원격지에서 감연된 좀비 PC에 명령을 내리고 악성코드를 제어하기  위한 용도로 사용하는 서버

📌 트러스트존 (TrustZone)

> ARM에서 개발한 기술,  일반구역과 보안 구역으로 분할여하여 관리

📌 Tvishing

> 스마트 TV에 악성 소프트웨어 설치

📌 터보코드 (Turbo Code)

> 데이터 통신 중에 발생하는 비트 오류를 최소화하기 위해 오류 정정 부호의 일종

📌 핵티비즘(Hacktivism)

> 해킹과 행동주의의 합성어로 정치적인 해킹



📌인증기술의 유형
지식기반 인증 : 기억하고 있는것(ID/PW)
소지기반 인증 : 공인인증서/otp
생체기반 인증 : 홍채, 얼굴. 지문
특징(행위)기반 인증 : 서명, 몸짓

📌접근통제 기법
식별(identification) : 자신이 누구라고 시스템에 밝히는 행위
인증(Authentication) : 주체의 신원을 검증하기 위한 활동
인가(Authorization) : 인증된 주체의 접근을 추적하고 행동을 기록하는 활동
책임추적성 : 주체의 접근을 추적하고 행동을 기록하는 활동

📌서버접근통제유형
임의적 접근 통제(DAC) : 신분에 근거하여 객체에 대한 접근을 제하하는 방법
강제적 접근 통제(MAC) : 주체가 갖는 접근 허가 권한에 근거하여 객체에 대한 접근을 제한하는 방법
역할기밥 접근통제(RBAC) : 중앙관리자가 조직 내 맡은 역할에 기초하여 자원에 대한 접근을 제한하는 방법

📌접근 통제 모델
벨-라파듈라 모델 : 미국방부지원 보안 모델, 보안 요소 중 기밀성을 강조하며 강제적 정책에 의해 접근
No Read Up : 보안수준이 낮은 주체는 보안 수준이 높은 객체를 읽어서는 안됨
No Write Down : 보안수준이 높은 주체는 보안 수준이 낮은 객체에 기록하면 안됨

비바모델  : 무결성을 보장하는 최초 모델

📢암호 알고리즘

📌 양방향 방식 : 대칭키 암호방식 / 비대칭키 암호 방식
📌 일방향 방식 : MDC / MAC


📌대칭키 암호방식 : 암호화와 복호화에 같은 암호 키를 쓰는 알고리즘
블록 암호 방식 : 고정 길이의 블록을 암호화하여 반복하는 알고리즘(EDS AES SEED)
스트림 암호 방식 : 매우 긴 주기의 난수열을 발생시켜 평문과 더불어 암호문을 생성하는 방식(RC4)

📌비대칭키 암호방식 : 공개키는 누구나 알수 있으나 개인키는 키의 소유자만 알고 있어야 한다(RSA 디피-헬만)

📌일방향 방식(해시방식) : 임의 길이의 정보를 입력받아, 고정된 길이의 암호문(해시값)을 출력하는 암호 방식
MAC : 키를 사용하는 메시지 인증 코드로 메시지의 무결성과 송신자의 인증 보장
MDC : 키를 사용하지 않는 변경 감지 코드로 메시지의 무결성 보장

📌대칭키 암호화 알고리즘
DES : IBM 개발, 대칭키 기반 / 블록크기 64bit 
SEED  : 한국인터넷진흥원 (KISA)개발 / 128bit 비밀키로부터 생성된 16개의 64bit 라운드키를 사용
AES : 미국 표준기술 연구소(NIST) 개발 / DES를 대체
ARIA : 국정원과 산학연구협회가 개발 / 경량 환경 및 하드웨어에서의 효율성 향상을 위해 개발
IDEA : DES대체/ 스위스 연방기술기관 개발 /64bit / 
LFSR : 선형함수로 계산되는 구조로 되어있는 스트림 암호화 알고리즘

Skipjack : NSA에서 개발 / 클리퍼칩 내장 / 음성 데이터 암호화

TKIP (Temporal Key Integrity Protocol)

> 무선랜 보안에 사용된 웹 방식을 보완한 데이터 보안 프로토콜 / 임시 키  무결성 프로토콜 / 스트림 암호화 

 



📌비대칭키 암호화 알고리즘
디피-헬만 :  최초의 비대칭키 /  최초의 공개키 알고리즘 / 두 사용자간에 공통의 암호화 키를 안전하게 공유할 방법을 제시 / 많은 키 분배 방식에 관한 연구의 기본이 되는 알고리즘


RSA : MIT 교수 3명 / 소인수분해
ElGamal : 이산대수
ECC : 타원곡선

📌해시 암호화 알고리즘
MD5 : MD4 개선한 암호화 알고리즘 , 파일의 무결성 검사에 사용

SHA-1 : NSA에 미국 정보 표준 지정/  

SHA-265/384/512 : 256비트의 해시값을 생성하는 해시함수

HAS-160 : 국내 표준 서명 알고리즘(KCDSA) / MD5 와 SHA1의 장점을 취하여 개발된 해시 알고리즘 

 

📌 IPSec(Internet Protocol Security) 

> 무결성과 인증을 보장하는 인증 헤더와 기밀성을 보장하는 암호화를 이용한 IP보안 프로토콜

 

📌SSL(Secure Socket Layer) / TLS(Transport Layer Security)

> 클라이언트와 서버간의 웹 데이터암호화, 상호 인증 및 전송 시 데이터 무결성을 보장하는 보안 프로토콜

> 전송계층(4계층)과 응용계층(7계층) 사이에서 클라이언트와 서버간의 웹 데이터 암호화, 상호 인증 및 전송 시 데이터 무결성을 보장하는 보안 프로토콜

 

📌S-HTTP(Secure HTTP) : 웹 상에서 네트워크 트래픽을 암호화 하는 방법 / 서버 간에 전송되는 모든 메시지를 각각 암호화하여 전송한다.

 

#CH02 소프트웨어 개발보안 구현

 

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

XSS(Cross Site Script) : 검증되지 않은 외부 입력 데이터가 포함된 웹페이지를 사용자가 열람함으로써 웹페이지 포함된 부적절한 스크립트가 실행되는 공격

 

CSRF(Cross site Request Forgery)사이트 간 요청 위조 : 사용자가 자신의 의지와는 무관하게 공격자가 의도한 행위를 특정 웹사이트에 요청하게 하는 공격

 

👍 XSS와 CSRF의 차이점

> XSS는 악성코드가 클라이언트 PC에서 실행되서 클라이언트 PC의정보가 공격자에게 탈취되고,

CSRF는 공격자의 악의적인 요청이 클라이언트로 하여금 희생자 서버가 따로 있음

 

드라이브 바이 다운로드 (Drive By Download)

> 악의적인 해커가 불특정 웹 페이지에 악성 스크립트를 설치하고, 불특정 사용자 접속 시 사용자 동의 없이 실행되어 의도된 서버로 연결하여 감염시키는 방법

> 특정 웹사이트에 접속되었을때, 악성 SW가  사용자의 디바이스에 다운로드 되도록 한다

 

워터링홀 (Watering Hole)

> 특정인에 대한 표적 공격을 목적으로 특정인이 잘 방문하는 웹 사이트에 악성코드를 심거나 악성코드를 배포하는 URL로 자동으로 유인하여 감염시키는 공격

 

 

 

SQL 삽입(Injection) : 악의적인 SQL 구문을 삽입, 실행시켜 데이터베이스의 접근을 통해 정보를 탈취하거나 조작 등의 행위를 하는 공격

 

📌네트워크 보안 솔루션

방화벽(Firewall) : 기업 내부, 외부 간 트래픽을 모니터링 하여 시스템의 접근을 허용 /차단 하는 시스템

 

웹 방화벽 ( WAF) : 웹  애플리케이션 보안에 특화된 보안 장비

 

네트워크 접근 제어 (NAC : Network Access Control) : 단말기가 내부 네트워크에 접속을 시도할 때 이를 제어하고 통제하는 기능을 제공하는 솔루션 / MAC주소를 IP관리 시스템에 등록한 후 일관된 보안 관리 기능을 제공

 

침입 탐지 시스템(IDS : Intrusion Detection System) : 네트워크에 발생하는 이벤트를 모니터링하고, 보안정책 위반 행위를 실시간으로 탐지하는 시스템

 

침입 방지 시스템(IPS : Intrusion Prevention System) : 네트워크에 대한 공격이나 침입을 실시간적으로 차단하고

 

무선 침입 방지 시스템 (WIPS : Wireless Intrusion Prevention System) : 무선 단말기의 접속을 자동 탐지 및 차단하고 보안에 취약한 무선 공유기를 탐지하는 시스템

 

통합보안시스템(UTM : Unified Threat Management) : 다양한 보안 장비의 기능을 하나의 장비로 통합하여 제공하는 시스템

 

ESM(Enterprise Security Management) : 방화벽, 침입 탐지 시스템(IDS), 통합보안시스템(UTM), 가상사설망 등의 여러 보안 시스템으로부터 발생한 각종 이벤트 및 로그를 통합해서 관리, 분석, 대응하는 전사적 통합 보안 관리 시스템.

 

가상사설망 (VPN : Virtual Private Network) : 인터넷과 같은 공중망에 인증, 암호화, 터널링 기술을 활용해 마치 전용망을 사용하는 효과를 가지는 보안 솔루션

 

# 보안분석도구

📌 Tripwire

>크래커가 침입하여 시스템에 백도어를 만들어 놓거나 설정 파일을 변경해 놓았을때 이러한 사실을 알 수 있게 분석하는 도구

📌 Tcpdump

> 네트워크 인터페이스를 거치는 패킷의 내용을 출력해주는 프로그램으로 스니핑 도구의 일종으로 자신의 컴퓨터로 들어오는 모든 패킷의 내용을 도청할 수 있으며, 공격자에 대한 추적 및 공격유형 분석을 위한 패킷분석 시 활용할 수 있는 도구

 

 

📌콘텐츠 유출 방지 솔루션

데이터 유출 방지 (DLP : Data Loss Prevention) : 조직 내부의 중요 자료가 외부로 빠져나가는 것을 탐지하고 차단하는 솔루션

디지털 저작권 관리 (DRM) : 디지털 저작물에 대한 보호와 관리를 위한 솔루션

📌DRM 구성요소

콘텐츠 제공자

콘텐츠 분배자

패키저

보안 컨테이너

DRM 컨트롤러

클리어링 하우스 : 디지털 저작권 라이선싱을 중개하고 라이선스 발급을 수행하는 정산소


📌 BCP(Busniess Continuity Plan)[비즈니스 연속성 계획
> 재해, 장애, 재난으로부터 위기관리 기반으로 재해복구, 업무복구 및 재개, 비상계획 등을 통해 비즈니스 연속성을 보장하는 체계

📌 BIA (Busniess Impact Analysis)

> 재해,장애로 인해 운영상의 주요 손실을 볼 것을 가정하여 시간 흐름에 따른 영향도 및 손실평가를 조사하는 BCP를 구축하기 위한 비즈니스 영향 분석

📌 RPO (Recovery Point Objective)
> 업무중단 시점부터 데이터가 복구되어 다시 정상가동될 때 데이터의 손실을 허용하는 시점

📌 RTP (Recovery Time Objective)

> 업무중단 시점부터 업무가 복구되어 다시 가동될 때까지의 시간

📌DRP (Disaster  Recovery Plan)

> 재난으로 장기간에 걸쳐 시설의 운영이 불가능한 경우를 대비한 재난 복구 계획

📌DRS (Disaster Recovery System)

> 재해복구계획의 원활한 수행을 지원하기 위하여 평상시에 확보하여 두는 인적, 물적 자원 및 이들에 대한 지속적인 관리체계가 통합된 재해복구 시스템

📌 재해 복구 기간

> 재해복구 센터에 주센터와 동일한 수준의 자원을 보유하는 대신 중요성이 높은 자원만 부분적으로 재해 복구센터에 보유하고 있는 방식으로 재해 발생 시 복구까지의 소요 시간으로 나눔

👍 mirror site : 즉시

👍 hot site : 수시간

👍 warm site : 수일 ~ 수주

👍 cold site : 수주 ~ 수개월