정보처리기사/정보처리기사 실기

[9과목] 소프트웨어 개발 보안구축

jooon 2022. 10. 17. 21:24

소프트웨어 개발 보안의 3대 요소

기밀성 (Confidentiality) – 인가되지 않은 개인 혹은 시스템 접근에 따른 정보 공개 및 노출 차단
무결성 (Integrity) – 비정상적인 방법으로 데이터 변경될 수 없으며 고의로 변경되거나 훼손 또는 파괴되지 않음을 보장
가용성 (Availability) – 권한을 가진 사용자나 애플리케이션이 원하는 서비스를 지속해서 사용할 수 있음

 
소프트웨어 개발 보안 용어

자산 (Assets) – 소유자가 가치를 부여한 대상
위협 (Threat) – 자산에 악영향을 끼칠 수 있는 사건이나 행위
취약점 (Vulnerability) – 위협이 발생하기 위한 사전 조건으로 시스템의 정보 보증을 낮추는 사용
위험 (Risk) – 자산 손실에 피해를 가져올 가능성

 

DoS 공격

–  시스템의 자원을 부족하게 만드는 악의적인 공격 방법
 

DoS 공격종류

자원 고갈 공격

SYN 플러딩 – 3 hand Shaking 과정에서, TCP 프로토콜의 구조적인 문제를 이용한 공격
UDP 플러딩 – 대량의 UDP 패킷 생성하여 자원을 고갈 시키는 공격
스머프 공격 – 출발지 주소를 공격 대상의 IP로 설정하여 네트워크 전체에게 ICMP Echo 패킷을 직접 브로드캐스팅하여 마비 시키는 공격
PoD (죽음의 핑) – ICMP 패킷(Ping)을 큰 사이즈로 만들어 의도적으로 전송

 
취약점 공격

랜드어택 – 출발지 목적지 IP 동일 -> 가용성 침해
티어드롭 – 잘못된IP Fragment Offset 정보로 수신 시스템의 문제 발생 유도
봉크/보잉크 – 프로토콜의 오류 제어를 이용한 공격 기법 (시퀀스 번호)

 

DDoS 공격

– 공격자를 분산 배치하여 동시에 특정 시스템을 공격하는 기법

구성요소 (HAMAD) :  핸들러, 에이전드, 마스터, 공격자, 데몬 프로그램

 
DDoS 대응방안
– 보안 솔루션 운영, 차단 정책 업데이트, 시스템 패치, 좀비PC IP 확보, 홈페이지 보안관리
 
DDoS 공격 도구

Trinoo – UDP flood 서비스 거부 공격을 유발
Tribe Flood Network (TFN)- 하나 혹은 여러 개의 목표 시스템에 대해 서비스 거부 공격을 수행
Stachelddraht – 분산 서비스 거부 에이전트 역할을 하는 Linux 및 Solaris 시스템용 멀웨어 도구

 
DRDoS 공격
– 반사 서버로부터 다량의 응답을 받아 서비스 거부되는 공격
 
애플리케이션 공격

HTTP GET 플러딩 – Cache Control Attack, 과도한 Get 메시지를 이용하여 웹 서버 과부화 유발
Slowloris – HTTP GET 메서드, 헤더의 끝을 알리는 개행 문자열을 전송하지 않아 접속유지
RUDY – Content-length를 비성장적으로 크게 설정

 

네트워크 서비스 공격

스니핑 – 데이터만 몰래 들여다보는 수동적 공격
스푸핑 - 승인받은 사용자인척 시스템에 접근제어를 우회하는 공격
네트워크 스캐너, 스니퍼  - 보안 취약점 파악 –> 공격 도구
패스워드 크래킹 – 사전 크래킹과 무차별 크래킹 사용
IP 스푸핑 – IP 주소 위조하여 타겟에게 전송하는 공격
ARP 스푸핑 – MAC 주소 위조하여 공격
ICMP Redirect - 3계층에서 스니핑 시스템을 네트워크에 존재하는 또 다른 라우터라고 알림으로써 패킷의 흐름을 바꾸는 공격
트로이 목마 – 정상적인 프로그램으로 보이지만 실행하면 악성 코드를 실행하는 프로그램

 
버퍼 오버플로우 공격
– 메모리에 할당된 버퍼 크기를 초과하는 양을 입력하는 공격
 
버퍼 오버플로우 대응방안

스택가드  : 카나리라고 불리는 부결성 체크용 값을 복귀 주소와 변수사이에 삽입하고 값이 변하면 호출하지 않는 방식
스택쉴드  : 복귀 주소를 Global RET이라는 특수 스택에 저장해 두고 스택의 RET 값을 비교해서 다를 경우 프로그램 실행 중단
ASLR : 메모리 공격을 방어하기 위해 주소 공간 배치를 난수화
 

주요 시스템 보안 공격비법

포맷 스트림 공격(Format String Attack) - 포맷 스트림을 인자로 하는 함수의 취약점을 이용한 공격으로 외부로부터 입력 된 값을 검증하지 않고 입출력 함수의 포맷 스트림을 그대로 사용하는 경우 발생하는 취약점 공격
레이스 컨디션 공격(Race Condition Attack) - 실행되는 프로세스가 임시파일을 만드는 경우 악의적인 프로그램을 통해 그 프로세스의 실행 중에 끼어들어 임시파일을 심볼릭 링크하여 악의적인 행위를 수행하는 공격
키로거 공격 (Key Logger Attack) - 사용자의 키보드 움직을 탐지하여 정보탈취
루트킷(RootKit) - 백도어, 트로이 목마, 설치 원격 접근 등 주로 불법적인 해킹에 사용되는 기능을 제공하는 프로그램 모음
 

보안 관련 용어

스피어피싱 (Spear Phishing) - 사회 공학의 한 기법으로, 메일의 본문 링크나 첨부된 파일을 클릭하도록 유도하여 사용자의 개인정보 탈취
스미싱 (Smishing) - 문자메시지를 이용하여 개인 정보 요구나 핸드폰 소액 결제 유도하는 공격
큐싱 (Qshing) - QR 코드를 통해 악성 앱을 내려밥도록 유도
봇넷 (Botnet) - 악성 프로그램에 감염되어 악의적인 의도로 사용될 수 있는 다수의 컴퓨터들이 네트워크로 연결된 상태
 
ART (Advanced Persisten Threat) 공격 - 특정 타겟을 목표로 하여 다양한 수단을 통한 지속적이고 지능적인 맞춤 공격
공급망 공격 (Supply Chain Atack) - 소프트웨어 개발사의 네트워크에 침투해 소스코드 수정 등을 통해 악의적인 코드를 삽입하여 사용자 PC에 소프트웨어 설치 및 업데이트 시 자동으로 감염되는 공격 방법
제로데이 공격 (Zero Day Atack) - 보안 취약점이 발견되어 널리 퍼지기 전에 취약점을 악용하여 이뤄지는 보안 공격 
웜 (Worm) - 스스로 복제하여 네트워크 등의 연결을 통하여 전파하는 악성 스프트웨어 컴퓨터 프로그램
 
악성 봇 (Malicious Bot) - 스스로 실행되지 못하고, 해커의 명령에 의해 원격에서 제어 또는 실행이 가능한 프로그램 혹은 코드
사이버 킬 체인 (Cyber Kill Chain) - 지속적 사이버 공격에 대해 7단계 프로세스별 공격분석 및 대응을 체계화한 APT 공격 방어 분석 모델
램섬웨어 (Ransomware) - 악성 코드의 한 종류로 감염된 시스템의 파일을 암호화하여 복화 할 수 없고 피해자로 하여금 암호화된 파일을 인질처럼 잡고 몸값을 요구하는 악성 소프트웨어
이블 트읜 (Evil Twin) 공격 - 무선 Wifi 피싱 기법으로 공격자는 합법적인 Wifi 제공자처럼 행세하며 Wifi 연결된 장비의 정보를 탈취하는 무선 네트워크 공격기법
사회공학 (Social Engineering) - 사람들의 심리와 행동 양식을 교묘하게 이용하여 원하는 정보를 얻는 공격
트러스트 존(Trust Zone) - 프로세스 안에 독립적인 보안 구역을 따로 두어 중요한 정보를 보호하는 방식 (일반구역, 보안구역 분류)
타이포 스쿼팅(Typosquatting) - 사이트를 접속할때 주소를 잘못 입력하거나 철자를 빠뜨리는 실수을 이용한 공격 또는 URL 하이재킹

 

접근통제기법

식별 (Identification) – 자신이 누구라고 시스템에 밝히는 행위
인증 (Authentication) – 주체의 신원을 검증하기 위한 활동
인가 (Authorization) – 인증된 주체에게 접근을 허용하는 활동
책임추적성 (Accountability) – 주체의 접근을 추적하고 행동을 기록하는 활동

 

서버 접근 통제 유형

임의적 접근 통제 (DAC)  : 주체나 그룹의 신분에 근거하여 객체에 대한 접근을 제한하는 방법, 신분 기반 접급통제
강제적 접근 통제 (MAC) :객체에 포함된 정보의 허용등급과 접근 정보에 대하여 접근 제한 하는 방법 , 규칙기반 접근통제
역할 기반 접근 통제 (RBAC) : 중앙 관리자가 사용자와 시스템의 상호관계를 통제하며 조직 내 맡은 역할에 기초하여 지원에 대한 접근을 제한하는 방법

 
3A

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

 
벨 라파둘라 – No Read Up , No Write Down , 기밀성
비바 모델 – No Read Down, No Write Up, 무결성
벨 기 비 무
 
대칭 키 암호 방식 키 개수  – n(n-1)/2
비대칭 키 암호 방식 키 개수 – 2n
 

일방향 암호 종류

MAC – 메시지 인증 코드로 메시지의 무결성 송신자의 인증 보장
MDC – 변경 감지 코드로 메시지의 무결성 보장
 

대칭 키 암호화 알고리즘

DES – 블록 크기 64bit, 키 길이 56bit, 16라운드 암호화 알고리즘
AES – 블록 크기 128bit,  키 길이에 따라 128bit,192bit,256bit  10,12,14 라운드 분류 미국 표준 기술 연구소 개발
IDEA – 키 길이 128bit, 64bit의 평문을 8라운드에 거쳐 64bit 암호문 만듬, 스위스 연방기술 개발
SEED - KISA에서 개발, 블록 크기 128bit, 키 길이에 따라 128bit, 256bit
ARIA – 국정원 개발, 블록 크기 128bit,  키 길이에 따라 128bit,192bit,256bit
LFSR - 레지스터에 입력되는 값이 이전 상태 값들의 선형 함수로 계산되는 구조로 되어 있는 스트림 암호화 알고리즘
Skipjack - 미 국가안보국 (NSA) 에서 개발한 Cilpper 칩에 내장된 블럭 알고리즘

비대칭 키 암호화 알고리즘

디피-헬만 – 최초의 공개키 알고리즘, 이산대수의 계산이 어려운 문제를 기본 원리로 하고있음
RSA – 큰 인수의 곱을 소인수 분해하는 수학적 알고리즘 이용한 공개키 암호화 알고리즘
ECC – 타원 곡선/암호는 유한체 위해서 정의된 타원곡선 군에서 이산대수의 문제에 기초한 공개키 알고리즘
ElGamal – 이산대수 원리, 전자서명과 데이터. 암.복호화에 함께 사용가능

해시 암호화 알고리즘

MD5 – MD4를 개선한 암호화 알고리즘, 각각의 512비트짜리 입력을 메시지 블록에 대해 차례로 동작하여 128비트를 해시값으로 생성하는 해시 알고리즘
SHA-1 NSA에서 미 정부 표준으로 지정, DSA에서 사용
SHA-256/384/512 – AES의 키 길이인 비트에 대응하도록 출력 길이를 늘인 해시 알고리즘
HAS-160 – 국내 표준 서명 알고리즘을 위해 개발된 해시함수
HAVAL – 메시지를 1024bits 블록으로 나누는 알고리즘

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

인증(AH) 프로토콜 – 메시지 인증 코드 (MAC)를 이용하여 인증을 제공. 기밀성은 제공하지 않음
암호화 (ESP) -메시지 인증 코드(MAC)와 암호화를 이용하여 기밀성 제공
키 관리 (IKE) – Key를 주고받는 알고리즘

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

Secure SDLC 모델 및 방법론

BSIMM – 미국 국토안보국의 지원을 받아 수행된 소프트웨어 보증 프로젝트
Open SAMM – OWASP에서 개발한 개방형 보완 프레임워크
Seven Touch Points - SDLC에 통합한 소프트웨어 개발 보안 생명주기 방법론
MS SDL – MS에서 개발한 보안강화 프레임워크
OWASP CLASP – 이미 운영중인 시스템에 적용하기 쉬운 보안 개발 방법론

 
시큐어 코딩 가이드

입력데이터 검증 및 표현 - 프로그램 입력값에 대한 검증 누락, 부적절한 검증, 잘못된 형식 지정
보안 기능 - 보안 기능의 부적절 구현 
시간 및 상태 - 하나 이상의 프로세스가 동작하는 환경에서 시간 및 상태의 부적절관리
에러 처리 - 에러 미처리, 불충분한 처리 등으로 에러 메시지에 중요정보 포함
코드 오류 - 개발자가 범할 수 있는 코딩 오류로 인해 유발
캡슐화 - 기능성이 불충분한 캡슐화로 인해 인가되지 않은 사용자에게 데이터 유출
API 오용 - 의도된 사용에 반하는 방법으로 API  사용, 보안에 취약한 API 사용
 
 니 원한 에코 캡아

 

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

XSS :검증되지 않은 웹페이지를 열람함으로서 웹페이지에 포함된 부적절한 스크립트가 실행되는 공격

 

XSS 공격 유형
Stored XSS – 악성 스크립트를 읽어 봄과 동시에 악성 스크립트가 브라우저에 실행되면서 감염
Reflected XSS – URL 클릭시 즉시 공격 스크립트가 피해자에 반사되어 접속 사이트 민감정보가 공격자에게 전송
DOM XSS – DOM 기반 XSS 취약점이 있는 브라우저 대상으로 URL 클릭시 공격하는 기법

 

사이트 간 요청 위조(CRSF) : 사용자의 의지와 무관하게 공격자가 의도한 행위를 특정 사이트에 요청하게 하는 공격
SQL 삽입 : 악의적인 SQL 구문을 삽입, 실행시 DB에 접근하여 정보탈취 및 조작

 

네트워크 보안 솔루션

방화벽 – 트래픽을 모니터링 하여 시스템의 접근을 허용하거나 차단
웹 방화벽 – SQL 인젝션, XSS 등과 같은 웹 공격을 탐지하고 차단
네트워크 접근 제어(NAC) – 단말기가 내부 네트워크에 접속을 시도할 때 제어하고 통제
침입 탐지 시스템 (IDS) -네트워크에서 발생하는 이벤트를 모니터링하고 비인가 사용자에게 의한 자원접근과 보안정책 위반을 실시간 탐지
침입 방지 시스템 (IPS) -네트워크에 대한 공격,침입 실시간으로 차단
무선 침입 방지 시스템(WIPS) – 무선 단발기 접속 실시간 차단
통합 보안 시스템 (UTM) – 다양한 보안장비의 기능을 하나의 장비로 통합하여 제공
VPN – 인증, 암호화, 터널링 기술을 활용하여 마치 전용망을 사용하는 효과를 가지는 보안솔루션
SIEM - 보안 로그와 이벤트 정보를 수집 후 정보간 연관성 분석 후 위협 상황 인지하고, 침해사고에 신속하게 대응하는 보안 관제 솔루션
ESM - 방화벽, 침입 탐지 시스템, UTM 등 여러 보안 시스템으로부터 발생한 각종 이벤트 및 로그를 통합해서 관리,분석 대응하는 통합 보안 관리 시스템

 

시스템 보안 솔루션

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

컨텐츠 유출 방지 보안 솔루션

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

비지니스 연속성 계획 (BCP)

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

비즈니스 연속성 계획 관련 주요 용어

BIA – 장애나 재해로 인해 운영 손실평가 및 영향도 분석
RTO – 업무중단 시점부터 업무 복구되어 가동될 때까지의 시간
RPO – 업무중단 시점부터 데이터가 복구되어 다시 정상가동될 때 데이터의 손실 허용시점
DRP – 재난으로 운영불가 시 재난복구계획
DRS – 재해복구계획 수행 지원하기 위해 , 평상시 인프라 확보

 
DRS 유형

Mirror Site – 복구 소요 시간(RTO) 즉시
Hot Site – 복구 소요 시간(RTO) - 4시간 이내
Warm Site – 복구 소요 시간(RTO) – 수일 ~ 수주
Cold Site – 복구 소요 시간(RTO) – 수주 ~ 수개월 신뢰성 낮음
 

보안 관련 용어

부 채널 공격 (Side Channel Attack) -  암호화 알고리즘의 실행 시기의 전력 소비, 전자기파 방사 등의 물리적인 특성을 측정하여 암호 키 등 내부 비밀 정보를 부 채널에서 획득하는 공격
드라이브 바이 다운로드 (Drive By Download) - 불특정 웹 서버와 웹 페이지에 악성스크립트를 설치하고, 불특정 사용자 접속 시 사용자 동의 없이 실행되어 의도된 서버로 연결하여 감염시키는 공격
워터링 홀(Watering Hole) - 특정인에 대한 표적을 목적으로 특정인이 잘 방문하는 웹 사이트에 악성코드를 심거나 악성코드를 배포하는 URL 자동으로 유인하여 감염시키는 공격
하트 블리드(Hart Bleed) - OpenSSL 암호화 라이브러리의 하트비트라는 확장 모듈에서 클라이언트 요청 메시지를 처리할 때 취약점을 이용한 공격
크라임웨어 (Crimware) - 금용정보 또는 인증정보 탈취, 유출을 유도하여 금전적인 이익 등 범죄행위를 목적
스턱스넷 공격(Stuxnet) - 독일 지멘스사의 SCADA 시스템을 공격 목표로 만든 공격
 

보안 공격 대응 관련 용어

 
허니팟 - 일부러 하술하게 만들어 해커에게 노출하는 유인시스템
OWASP TOP 10 - 보안상 큰 영향을 줄 수 있는 10가지 취약점에 대한 대응 방안
핑거프린팅 - 콘텐츠에 저작권 정보와 구매한 사용자 정보를 삽입하여 불법 배포자에 위치 추적 가능한 기술
워터마킹 - 콘텐츠에 저작권자 정보를 삽입하여, 불법 복제시 워터마크 추출, 원소유자를 증명하는 기술
이상금융거래탐지시스템 (FDS) - 의심 거래를 탐지, 이상 거래 차단
CC - 정보기술의 보안 기능과 보증에 대한 평가 기준
사이버 위협정보 분석 공유시스템 (C-TAS) - KISA 주관으로 관계 기관과 자동화된 정보공유를 할 수 있는 침해 예방 대응 시스템
장착형 인증 모듈 (PAM) - 리눅스 시스템 내에서 사용되는 각종 애플리케이션 인증을 위해 제공되는 다양한 인증용 라이브러리
CVE - 소프트웨어의 보안 취약점을 표준화한 식별자 목록 (규칙 : CVE - 연도 - 순서)
CWE - 공통적으로 발생하는 약점을 체계적으로 분류, 소스 코드 취약점을 정의한 데이터베이스
ISMS - 정보보호 관리 체계
PIMS - 기업이 개인정보관리를 잘 하고 있나 평가하여 기업에게 부여하는 인증제도
ISMS - P : ISMS + PIMS 통합
PIA - 개인정보 파일의 운용에 따라 정보주체의 개인정보 침해가 우려되는 경우에 그 위험요인의 분석과 개선사항 도출을 위한 평가
TKIP - 임시 키 무결성 프로토콜

반응형