01 소프트웨어 개발 보안 설계
▶ SW 개발 보안의 3대 요소
=> 기무가
- 기밀성(Confidentiality): 인가되지 않은 개인 혹은 시스템 접근에 따른 정보 공개 혹은 노출을 차단하는 특성
- 무결성(Integrity): 정당한 방법을 따르지 않고서는 데이터가 변경될 수 없으며, 데이터의 정확성 및 완전성과 고의/악의로 변경되거나 훼손 또는 파괴되지 않음을 보장하는 특성
- 가용성(Availability): 권한을 가진 사용자가 애플리케이션이 원하는 서비스를 지속해서 사용할 수 있도록 보장하는 특성
▶ SW 개발 보안 용어
=> 자위취위(SW 개발 보안 기본용어 단답형 출제 가능성!!)
- 자산(Assets): 조직의 데이터 또는 가치를 부여한 대상
- 위협(Threat): 조직이나 기업의 자산에 악영향을 끼칠 수 있는 사건이나 행위
- 취약점(Vulnerability): 위협이 발생하기 위한 사전조건
- 위험(Risk): 위협이 취약점을 이용해 조직의 자산 손실 피해를 가져올 가능성
▶ DoS(Denial of Service)
시스템을 악의적으로 공격해 해당 시스템의 자원을 부족하게 해 사용하지 못 하게 하는 공격
▶ DoS 공격의 종류
- SYN플러딩(SYN Flooding): TCP 프로토콜의 구조적 문제를 이용한 공격, SYN 패킷만 보냄
- UDP 플러딩(Flooding): 대량의 UDP 패킷을 만들어 임의의 포트 번호로 전송
- 스머프(Smurf)/스머핑(Smurfing): 출발지 주소를 공격대상의 IP 주소로 설정하여, 네트워크 전체에게 ICMP Echo 패킷을 직접 브로드캐스팅하여 마비시키는 공격
- PoD(Ping of Death): ICMP 패킷을 아주 크게 만들어 전송, 마비시키는 공격
(Ping을 아주 크게 만들어 전송하면 다수의 IP 단편화 발생 -> 수신 측에서 재조립 과정에서 많은 부하 발생 OR 버퍼오버플로우 발생 정상적인 서비스 불가능)
- 랜드 어택(Land Attack): 출발지 주소 IP와 목적지 주소 IP를 같은 패킷 주소로 만들어 보내, 수신자가 자기 자신에게 응답
- 티어 드롭(Tear Drop): IP 패킷의 재조합 과정에서 잘못된 Fragment Offset 정보로 인해 수신 시스템이 단편화된 재조합 과정에서 문제를 발생하도록 만드는 DoS 공격, IP 헤더가 조작된 일련의 IP 패킷 조각들을 전송
- 봉크(Bonk): 같은 시퀀스 번호 계속 보냄
- 보잉크(Boink): 일정한 간격으로 시퀀스 번호에 빈 공간 생성
▶ DDoS(Distributed Denial of Service)
여러 대의 공격자를 분산 배치해 동시에 동작하게 함으로써 특정 사이트 공격
* DDoS 공격 구성 요소 => HAMAD(하마드)
- Handler(핸들러): 마스터 시스템의 역할을 수행하는 프로그램
- Agent(에이전트): 공격 대상에 직접 공격 수행하는 시스템
- Master(마스터): 공격자에게서 명령을 받는 시스템/여러 대의 에이전트 시스템 관리
- Attacker(공격자): 공격을 주도하는 해커 컴퓨터
- Daemon(데몬 프로그램): 에이전트 시스템의 역할을 수행하는 프로그램
▶ DDos 공격 도구
- Trinoo: 많은 소스로부터 통합된 UDP flood 거부 공격을 유발하는데 사용
- TFN(Tribe Flood Network): Trinoo와 비슷한 분산 도구, 많은 소스에서 하나 혹은 여러 개의 목표 시스템에 대해 서비스 거부 공격 => UDP flood 공격, TCP SYN flood 공격, ICMP Echo 요청 공격, ICMP 브로드캐스팅 공격(Smurf공격) 수행 가능
- Stacheldraht: 분산 서비스 거부 에이전트 역할
▶ DRoS(Distributed Reflection DoS) 공격
공격자는 출발지 IP를 공격대상 IP로 위조하여 다수의 반사 서버로 요청 정보를 전송, 공격 대상자는 반사서버로부터 다량의 응답을 받아서 서비스 거부(DoS)가 되는 공격이다.
▶ 세션 하이재킹
케빈 미트닉이 사용했던 공격 방법의 하나로, TCP의 세션 관리 취약점을 이용한 공격기법이다. 세션 하이재킹에 대응하기 위해서는 비동기화 상태 탐지, ACK 패킷 비율 모니터링, 특정 세션에서 패킷 유실 및 재선송 증가 탐지 등이 있다.
▶ 애플리케이션 공격(DDoS 서비스 마비 공격)
- HTTP GET Flooding: 과도한 GET 메시지를 이용해 웹 서비스 과부하를 유발시키는 공격
- Slow HTTP Header Dos(Slowloris): HTTP GET 메서드를 사용해 헤더의 최종 끝을 알리는 개행 문자열을 전송하지 않음, 웹 서버와 연결상태 장시간 지속으로 연결 자원 모두 소진.
- Slow HTTP POST DoS(RUDY): 요청 헤더의 Content-length를 비정상적으로 크게 설정하고 메시지 바디 부분을 매우 소량을 보내 연결 상태 유지 공격/
- Slow HTTP Read DoS: TCP 윈도 크기와 데이터 처리율을 감소시킨 상태에서 다수 HTTP 패킷을 지속적으로 전송
- Hulk DoS: 공격자가 공격대상 웹사이트 URL을 지속적으로 변경하면서 다량으로 GET 요청을 발생시키는 서비스 거부 공격
- Hash DoS: 해시 충돌 발생시킴
▶ 네트워크 공격
- 스니핑(Sniffing): 공격대상에게 직접 공격하지 않고 데이터만 몰래 들여다보는 수동적 공격기법
- 네트워크 스캐너(Scanner), 스니퍼(Sniffer): 공격자가 HW, SW 구성의 취약점을 탐색하는 공격 도구
- 패스워드 크래킹(Password Cracking)
- 사전 크래킹: ID와 패스워드가 될 가능성이 있는 단어를 파일로 만들어 놓음
- 무차별 크래킹: 패스워드로 사용될 수 있는 영문자, 숫자, 특수 문자 등을 무작위로 패스워드 자리에 대입해 패스워드를 알아내는 공격기법
- 패스워드 하이브리드 크래킹: 사전 크래킹 + 무차별 크래킹
- 레인보우 테이블 공격: 패스워드 별로 해시 값을 미리 생성해 테이블에 모아 놓음
- IP 스푸핑(Spoofing): 침입자가 인증된 컴퓨팅 시스템인 것처럼 속여서 타깃 시스템의 정보를 빼내기 위해 보인의 패킷 헤더를 인증된 호스트의 IP 어드레스로 위조해 타깃에 전송
- ARP 스푸핑(Spoofing): 공격자가 특정 호스트의 MAC주소를 자신의 MAC주소로 위조한 ARP Reply를 만들어 희생자에게 지속적으로 전송, 희생자로부터 특정 호스트로 나가는 패킷을 공격자가 스니핑하는 공격기법
- ICMP Redirect 공격: 스니핑 시스템을 네트워크에 존재하는 또 다른 라우터라고 알림으로써 패킷의 흐름을 바꾸는 공격 기법
- 트로이 목마(Trojan Horses): 악성 루틴이 숨어 있는 프로그램, 겉보기에는 정상적인 프로그램처럼 보이지만 실행하면 악성 코드를 실행하는 프로그램
* 스니핑 => 염탐, 도청/스푸핑 => 위조
▶ 버퍼 오버플로우(Buffer Overflow) 공격
메모리에 할당된 버퍼 크기를 초과하는 양의 데이터를 입력해 공격 -> 프로세스 흐름 변경시켜 악성코드 실행시킴
- 유형: 스택(Stack) 버퍼 오버플로우, 힙(Heap) 버퍼 오버플로우
- 대응 방안: Stackguard(카나리 값 사용), StackShield(Global RET), ASLR(주소 배치 난수화), 안전한 함수 활용
▶ 백도우(Backdoor)
어떤 제품이나 컴퓨터 시스템, 암호시스템 혹은 알고리즘에서 정상적인 인증 절차를 우회하는 기법
▶ 주요 시스템 보안 공격기법
- 포맷 스트링 공격(Format String Attack): 외부로부터 입력된 값을 검증하지 않고 입출력 함수의 포맷 스트링을 그대로 사용하는 경우 발생하는 취약점 공격법
- 레이스 컨디션 공격(Race Condition Attack): 둘 이상의 프로세스나 스레드가 공유자원을 동시에 접근할 때 실행되는 프로세스가 임시파일을 만드는 경우 악의적인 프로그램을 통해 그 프로세스의 실행 중에 끼어들어 임시파일을 심볼릭 링크 함
- 키로거 공격(Key Logger Attack): 컴퓨터 사용자의 움직임을 탐지해 저장해, 개인의 중요한 정보를 몰래 빼가는 해킹공격
- 루트킷(Rootkit): 시스템 침입 후 침입 사실을 숨긴 채 차후의 침입을 위한 백도어, 트로이 목자 설치 등 불법적인 해킹에 사용되는 기능을 제공하는 프로그램 모음
▶ 보안 관련 용어
- 스피어 피싱(Spear phishing): 사회공학의 한 기법, 메일을 이용한 공격기법
- 스미싱: 문자를 이용한 공격 기법
- 큐싱: 큐알 코드를 이용한 공격 기법
- APT 공격(Advanced Persistenet Threat): 특정 타깃을 목표로 하여 다양한 수단을 통한 지속적이고 지능적인 맞춤형 공격 기법
- 공급망공격(Supply Chain Attack): 소프트웨어 개발사의 네트워크에 침투하여 소스 코드의 수정 등을 통해 악의적인 코드를 삽입해 사용자 PC에 소프트웨어를 설치 또는 업데이트 시 자동적으로 감염되도록 하는 공격
- 제로데이 공격(Zero Day Attack): 보안 취약점이 널리 공표되기 전에 해당 취약점을 악용하여 이루어지는 보안 공격기법
- 웜(Worm): 스스로 복제, 연결전파, 독자적 실행
- 악성 봇(Malicious Bot): 스스로 실행 x, 해커의 명령에 의해 원격에서 제어 또는 실행 가능 프로그램
- 사이버 킬체인(Cyber Kill Chain): 공격형 방위시스템으로, 지능적, 지속적 사이버 공격에 대해 7단계 프로세스별 공격분석 및 대응을 체계화한 APT 공격 방어 분석 모델
- 랜섬웨어(Ransomware): 감염된 시스템의 파일들을 암호화해 인질처럼 잡고 몸값을 요구하는 악성 소프트웨어
- 이블 트윈(Evil Twin)공격: 무선 와이파이 피싱 기법
▶ 인증 기술의 유형
=> 지소생특(인증 기술 문제로 출제되기 좋은 개념)
- 지식기반 인증: 사용자가 기억하고 있는 지식, 아이디/패스워드
- 소지기반 인증: 소지하고 있는 사용자 물품, 공인 인증서
- 생체기반 인증: 고유한 사용자의 생체 정보, 홍채, 정맥, 얼굴, 지문
- 특징기반 인증: 사용자의 특징 활용 서명, 발걸음, 몸짓
▶ 접근 통제 기법
- 인증(Authentication): 주체의 신원을 검증하기 위한 활동
- 인가(Authorization): 인증된 주체에게 접근을 허용하는 활동
▶ 서버 접근 통제 유형
- DAC(Discrtionary Access Control): 임의저적 접근 통제로, 시스템에 대한 접근을 사용자/그룹의 신분 기반으로 제한
- MAC(Mandatory Acces Control): 강제적 접근 통제로, 시스템에 대한 접근을 시스템 정보의 허용등급을 기준으로 제한
- RBAC(Role Based Access Control): 역할 기반 접근 통제로, 시스템에 대한 접근을 조직 내 맡은 역할을 기반으로 제한
▶ 접근 통제 보호 모델
=> 벨기비무
- 벨-라파듈라 모델(BLP): 기밀성 보장(No Read Up, No Write Down)
- 비바 모델: 무결성 보장(No Read Down, No Write Up)
▶ 암호 알고리즘
- 양방향(암호화, 복호화)
- 대칭 키 암호 방식 = 비밀키 암호 방식(암호화 키=복호화 키)
- 블록 암호 방식: DES, AES, SEED, ARIA, IDEA
- 스트림 암호 방식: RC4, LFSR, SEAL
- 비대칭 키 암호 방식 = 공개키 암호 방식(암호화 키≠복호화 키)
- RSA, ECC, Elgamal, 디피-헬만
- 대칭 키 암호 방식 = 비밀키 암호 방식(암호화 키=복호화 키)
- 일방향(암호화)
- 해시 암호 방식: MAC, MDC
▶ 대칭키 암호화 알고리즘
- DES: 1975년 미국 연방 표준국(NIST)에서 발표, 56bit 키 이용 => 64bit 평문 블록을 64bit 암호문 블록으로 만듬
- AES: 2001년 미국 표준 기술 연구소(NIST)에서 발표, DES 상위호환
- SEED: 1999년 한국인터넷진흥원(KISA) 개발, 대칭키 128비트 블록의 암호 알고리즘
- ARIA: 2004년 국가정보원과 산학연구협회가 개발
- IDEA: DES를 대체하기 위해 스위스 연방기술 기관에서 개발
- LFSR: 선형 되먹임 시프트 레지스터, 선형 함수로 계산
▶ 비대칭 키 암호화 알고리즘
- 디피-헬만: 최초 공개키 알고리즘, 이산대수
- RSA: 1977년 3명의 MIT 수학 교수가 고안, 소인수 분해하는 수학적 알고리즘
- ECC: RSA 암호 방식에 대한 대안, 타원 곡선 암호
- ElGamal: 이산 대수의 계산이 어려운 문제를 기본원리로 함
▶ 해시 암호화 알고리즘
- MD5: MD4를 개선한 알고리즘, 프로그램이나 파일의 무결성 검사에 사용
- SHA-1: NSA에서 미 정부 표준으로 지정, DSA에서 사용, 해시 값 생성
- SHA-256/384/512
- HAS-160: 국내 표준 서명 알고리즘을 위해 개발된 해시 함수, 해시 값 생성
▶ IPSec(Internet Protocol Security)
IP 계층에서 무결성과 인증을 보장하는 인증 헤더와 기밀성을 보장하는 암호화를 이용한 IP 보안 프로토콜
- 인증, 암호화, 키 관리 프로토콜로 구성
▶ SSL/TLS
개념 정확히 알고 있기!
SSL(Secure Socket Layer)/TLS(Transport Layer Security)
전송계층(4계층)과 응용 계층 사이에서 클라이언트와 서버 간의 웹 데이터 암호화, 상호 인증 및 전송 시 데이터 무결성을 보장하는 보안 프로토콜
▶ S-HTTP(Secure Hypertext Transfer Protocol)
웹상에서 네트워크 트래픽을 암호화하는 주요 방법, 클라이언트와 서버 간 전송되는 모든 메시지를 각각 암호화해 전송하는 기술
▶ 개인정보보호 관련 법령
개인정보 보호법, 정보통신망법, 신용정보법
- 민감 정보: 주체의 사생활을 현저하게 침해할 수 있는 정보
- 고유 식별 정보: 개인을 고유하게 구별하기 위해 부여된 식별 정보
02 소프트웨어 개발 보안 구현
▶ 시큐어 코딩 가이드
=> 입보시 에코캡아(시큐어 코딩 가이드는 소프트웽 개발 시 필수사항으로 7가지 적용대상에 대해 이해 필요)
- 입력 데이터 검증 및 표현: 프로그램 입력값에 대한 검증 누락, 부적절한 검증, 잘못된 형식 지정
- 보안 기능: 인증, 접근제어, 기밀성, 암호화, 권한 관리 등의 부적절한 구현
- 시간 및 상태: 거의 동시에 수행 지원하는 병렬 시스템 또는 하나 이상의 프로세스가 동작하는 환경에서 시간 및 상태의 부적절한 관리
- 에러 처리: 에러 미처리, 불충분한 처리 등으로 에러메시지에 중요정보가 포함
- 코드 오류: 개발자가 범할 수 있는 코딩 오류로 인해 유발
- 캡슐화: 기능성이 불충분한 캡슐화로 인해 인가되지 않은 사용자에게 데이터 누출
- API 오용: 의도된 사용에 반하는 방법으로 API를 사용하거나, 보안에 취약한 API 사용
▶ 입력 데이터 검증 및 표현 취약점
- XSS(Cross Site Script): 검증되지 않은 외부 입력 데이터가 포함된 웹페이지를 사용자가 열람할 때 부적절한 스크립트가 실행되는 공격
- Stored XSS/Reflected XSS/DOM(Document Object Model XSS)
- 사이트 간 요청 위조(CSRF; Cross Site Request Forgery): 사용자가 자신의 의지와는 무관하게 공격자가 의도한 행위를 특정 웹사이트에 요청하게 하는 공격
- SQL 삽입(Injection): 악의적인 SQL 구문을 삽입하고 실행시켜 정보를 열람, 조작할 수 있는 취약점 공격법
▶ 네트워크 보안 솔루션
(실무에서 약어 중심으로 활용)
- 방화벽(Firewall): 기업 내부, 외부 간 트래픽을 모니터링 하여 시스템의 접근을 허용하거나 차단하는 시스템
- 웹 방화벽(WAF; Web Application Firewall): SQL 인젝션, XSS 등과 같은 웹 공격을 탐지하고 차단하는 기능
- 네트워크 접근 제어(NAC; Network Access Control): 단말기가 내부 네트워크에 접속을 시도할 때 이를 제어하고 통제하는 기능을 제공하는 솔루션
- 침입 탐지 시스템(IDS; Intrusion Detection System): 네트워크에서 발생하는 이벤트를 모니터링 하고 침입을 실시간으로 탐지하는 시스템
- 침입 방지 시스템(IPS; Intrusion Prevent System): 네트워크에 대한 공격이나 침입을 실시간적으로 탐지하는 시스템
- 무선 칩입 방지 시스템(WIPS; Wireless Intrusion Prevention System): 인가되지 않은 무선 단말기의 접속을 자동으로 탐지 및 차단하고, 보안에 취약한 무선 공유기를 탐지하는 시스템
- 통합 보안 시스템(UTM; Unified Threat Management): 다양한 보안 장비의 기능을 하나로 통합한 장비
- 가상사설망(VPN; Virual Private Network): 인터넷과 같은 공중망에 인증, 암호화, 터널링 기술을 활용해 마치 전용망을 사용하는 효과를 가지는 보안 솔루션
▶ 콘텐츠 유출 방지 솔루션
- 데이터 유출 방지(DLP; Data Loss Prevention): 조직 내부의 중요 자료가 외부로 빠져나가는 것을 탐지하고 차단
- 디지털 저작권 관리(DRM; Digital Right Management): 디지털 저작물에 대한 보호와 관리 솔루션/파일 자체에 암호를 걸어 권한 없는 사용자능 사용하지 못 함
* 디지털 저작권 관리(DRM) 구성요소: 암키식저 파정크인 => 암호화/키 관리/식별 기술/저작권표현/암호화 파일 생성/정책 관리/크랙방지/인증
▶ 비즈니스 연속성 계획(BCP; Business Continuity Plan)
각종 재해, 장애, 재난으로부터 위기관리를 기반으로 재해복구, 업무복구 및 재개, 비상 계획 등을 통해 비즈니스 연속성을 보장하는 체계
▶ 비즈니스 연속성 계획 관련 주요 용어
- BIA(Business Impact Analysis): 장애나 재해로 인한 운영상의 주요 손실을 볼 것을 가정하여 비즈니스 영향 분석
- RTO(Recovery Tim Objective): 업무중단 시점부터 업무가 복구되어 다시 가동될 떄까지의 삭ㄴ
- RPO(Recovery Point Objective): 업무중단 시점부터 데이터가 복구되어 다시 정상 가동될 때 데이터의 손실 허용 시점
- DRP(Disater Recovery Plan): 재난으로 장기간에 걸쳐 시설의 운영이 불가능한 경우를 대비한 재난 복구 계획
- DRS(Disater Recovery System): 재해 복구 센터
▶ DRS의 유형
- Mirror Site: 재해 발생 시 복구까지의 소요 시간(RTO)은 즉시
- Hot Site: 4시간 이내
- Warm Site: 수일 ~ 수주
- Cold Site: 수주 ~ 수개월
▶ 보안 공격 관련 중요 용어
- 부 채널 공격(Side Channel Attack): 암호화 알고리즘의 물리적 특성을 측정 해 내부 비밀정보를 획득
- 드라이브 바이 다운로드(Drive By Downloda): 해커가 불특정 웹 서버와 웹 페이지에 악성 스크립트를 설치하고, 불특정 사용자 접속 시 사용자 동의 없이 실행되어 의도된 서버로 연결하여 감염시킴
- 워터링홀(Watering Hole): 특정인이 잘 방문하는 웹 사이트에 악성코드를 심는 공격기법
- 스캠 공격(SCAM): 기업 이메일 계정 도용하여 무역 거래 대금 가로채는 사이버 범죄
- 하트 블리드(HeartBleed)
- 크라임웨어(Crimeware): 중요한 금용정보 또는 인증정보를 탈취하거나 유출을 유도하여 금전적인 이익 등의 범죄행위를 목적으로 하는 악성코드
- 토르 네트워크: 네트워크 경로을 알 수 없도록 암호화 기법을 사용하여 데이터를 전송하며, 익명으로 인터넷을 사용할 수 있는 가상 네트워크
- MITM 공격(Man in the Middle): 네트워크 통신을 조작하여 통신 내용을 도청 및 조작하는 공격기법
- DNS 스푸핑 공격(Spoofing): 공격 대상에게 전달되는 DNS응답(IP주소)을 조작하거나 DNS 서버의 캐시 정보를 조작하여 희생자가 의도하지 않은 주소로 접속하게 만드는 공격기법
- 포트 스캐닝(Port Scanning): 공격자가 침입 전 대상 호스트에 어떤 포트(서비스)가 활성화되어 있는지 확인하는 기법으로 침입 전 취약점을 분석하기 위한 사전 작업
- 디렉토리 리스팅 취약점
- 리버스 쉘 공격
- 익스플로잇
- 스턱스넷 공격
- 크리덴셜 스터핑
▶ 보안 공격 대응 관련 중요 용어
- 허니팟(Honeypot): 비정상적인 접근을 탐지하기 위해 의도적으로 설치해 둔 시스템으로 일부러 허술하게 만들어서 해커에게 노출하는 유인시스템
- OWASP Top 10
- 핑거프린팅(Finger Printing): 멀티미디어 콘텐츠에 저작권 정보와 구매한 사용자 정보를 삽입하여 콘텐츠 불법 배포자에 대한 위치 추적이 가능한 기술(저작권 정보구매자 정보)
- 워터마킹(Water Marking): 디지털 콘텐츠에 저작권자 정보를 삽입하여, 불법 복제 시 워터마크를 추룽, 원소유자를 증명할 수 있는 콘텐츠 보호 기술
- 이상금융거래탐지시스템(FDS; Fraud Detection System)
- CC(Common Criteria)
- 사이버 위협정보 분석 공유 시스템
- 장착형 인증 모듈
- CVE(Common Vulnerabilities and Exposures)
- CWE(Commnon Weakness Enumeration)
'알아두면쓸데있는신기한잡학사전 > 정보처리기사' 카테고리의 다른 글
2022 정보처리기사 실기 Chapter 11 응용 SW 기초 기술 활용 (0) | 2022.05.07 |
---|---|
2022 정보처리기사 실기 Chapter 10 애플리케이션 테스트 관리 (0) | 2022.05.06 |
2022 정보처리기사 실기 Chapter 08 서버 프로그램 구현 (0) | 2022.05.06 |
2022 정보처리기사 실기 Chapter 05 인터페이스 구현 (0) | 2022.05.05 |
2022 정보처리기사 실기 Chapter 04 통합구현 (0) | 2022.05.05 |