9 소프트웨어 개발 보안 구축
I. 소프트웨어 개발 보안 설계
1. 소프트웨어 개발 보안 설계
(1) SW 개발 보안의 3대 요소
- 기무가
① 기밀성 : 인가되지 않은 개인 혹은 시스템 접근에 따른 정보 공개 및 노출을 차단하는 특성
② 무결성 : 정당한 방법을 따르지 않고서는 데이터가 변경될 수 없으며, 데이터의 정확성 및 완전성과 고의/악의로 변경되거나 훼손 또는 파괴되지 않음을 보장
③ 가용성 : 권한을 가진 사용자나 애플리케이션이 원하는 서비스를 지속해서 사용할 수 있도록 보장하는 특성
(2) SW 개발 보안 용어
- 자위취위
① 자산 : 조직의 데이터 또는 조직의 소유자가 가치를 부여한 대상
② 위협 : 조직이나 기업의 자산에 악영향을 끼칠 수 있는 사건이나 행위
③ 취약점 : 위협이 발생하기 위한 사전 조건으로 시스템의 정보 보증을 낮추는 데 사용되는 약점
④ 위험 : 위협이 취약점을 이용하여 조직의 자신 손실 피해를 가져올 가능성
(3) SW 개발을 위한 공격기법의 이해
- DoS공격 개념 : 시스템을 악의적으로 공격해서 해당 시스템의 자원을 부족하게 하여 원래 의도된 용도로 사용하지 못하게 하는 공격
- DoS공격의 종류
① SYN Flooding : SYN 패킷만을 점유하여 서버의 자원 할당을 해지하지 않고 소모 하여 고갈 시킴
② UDP Flooding : 대량의 UDP 패킷으로 ICMP를 지속적으로 생성하게 하여 자원 고갈 시킴
③ Smurf / Smurfing : 네트워크 전체에 ICMP Echo 패킷을 직접 브로드캐스트 하여 마비시킴
④ Pod;Ping of Death : ICMP 패킷(Ping)을 비정상적으로 크게 만들어 재조합의 과정을 정상적으로 수행시키지 못하게 하는 방식
⑤ Land Attack : Source IP와 Destination IP를 동일하게 하여 자기 자신에게 질의응답을 루프 걸리게 하는 방식
⑥ Tear Drop : IP패킷의 재조합 과정에서 잘못된 Fragment Offset 정보로 인해 수신시스템에 문제가 생기게 유도
⑦ Bonk / Boink : 프로토콜의 오류 제어를 이용한 공격 기법
- DDoS공격의 개념 : 여러 대의 공격자를 분산 배치하여 동시에 동작하게 하여 특정 사이트를 공격하는 기법
- DDoS 공격 구성요소( 하마드 )
① Handler : 마스터 시스템의 역할을 수행하는 프로그램
② Agent : 공격 대상에 직접 공격을 가하는 시스템
③ Master : 공격자에게서 직접 명령을 받는 시스템 / 여러 대의 에이전트 관리
④ Attacker : 공격 주도하는 해커의 컴퓨터
⑤ Daemon : 에이전트 시스템의 역할을 수행하는 프로그램
- DDoS 공격 도구 : Trinoo / Tribe Flood Netwrok / Stacheldraht
- DDoS 공격 대응 방안 : 차단 정책 업데이트, 좀비PC IP확보, 보안 솔루션 운영, 홈페이지 보안 관리, 시스템 패치
- DRDoS공격의 개념 : 출발지 IP를 공격대상 IP로 위조하여 다량의 응답을 받아 서비스 거부가 되게 하는 공격
- DRDoS 공격 절차 : 출발지 IP 변조 – 공격 대상자 서버로 응답 – 서비스 거부
- DRDoS 대응 방안
① ISP가 직접 차단
② 반사 서버에서 연결을 완료하지 않은 Syn 출처 IP를 조사하여 블랙 리스트로 운영 및 차단
③ 공격 대상이 되고 있는 서버의 IP와 Port(서비스)를 변경, 필터링 수행
- 어플리케이션 공격
① HTTP GET 플러딩
② Slowloris ( Slow HTTP Header DoS )
③ RUDY ( Slow HTTP POST DoS )
④ Slow HTTP Read DoS
⑤ Hulk DoS
⑥ Hash DoS
- 네트워크 공격
① Sniffing : 공격 대상에게 직접 공격 하지 않고 데이터만 몰래 들여다보는 기법
② Scanner, Sniffer : 네트워크 HW 및 SW 구성의 취약점을 파악하기 위해 취약점 탐색하는 공격 도구
③ Password Cracking : Dictionary 크래킹, Brute Force 크래킹, Password Hybrid Attack, Rainbow Table Attack
④ IP Spoofing : 침입자가 인증된 컴퓨팅 시스템인 것처럼 속여 타깃 시스템의 정보를 빼냄
⑤ ARP Spoofing : MAC주소를 변조하여 희생자로부터 특정호스트로 나가는 패킷을 공격자가 스니핑하는 공격기법
⑥ ICMP Redirect : 패킷의 흐름을 바꿔 특정 목적지로 가는 패킷을 공격자가 스니핑 하는 공격기법
⑦ Trojan Horses : 악성 루틴이 숨어 있는 프로그램으로 실행 하면 악성 코드가 실행하는 프로그램
- 시스템 보안 위협
① Buffer Overflow 공격 : 스택 버퍼 오버플로우 공격 / 힙 버퍼 오버플로우 공격
② Backdoor : 정상적 인증 절차를 우회하는 기법
③ 주요 시스템 보안 공격 기법 : Format String Attack, Race Condition Attack, Key Logger Attack, Rootkit
- 보안 관련 용어
① Spear Phishing : 특정 대상 선정 후 메일 클릭 유도
② Smishing : 문자메시지를 이용한 피싱
③ Qshing : 큐알코드를 이용한 피싱
④ Botnet : 악성 프로그램에 감염된 다수의 컴퓨터들이 연결된 상태
⑤ Advanced Persistent Threat : 특정 타깃을 목표로 다양하고 지속적인 맞춤형 공격기법
⑥ Supply Chain Attack : SW의 개발사의 소스코드를 악의적으로 수정하여 설치 또는 업데이트시 감염
⑦ Zero Day Attack : 보안 취약점이 발견되기 전에 취약점을 악용한 공격기법
⑧ Worm : 바이러스와 달리 독자적으로 실행되는 악성 소프트웨어 컴퓨터 프로그램
⑨ Malicious Bot : 해커의 명령에 의해 제어 또는 실행되는 프로그램 혹은 코드
⑩ Cyber Kill Chain : 7단계의 프로세스별 APT 공격 방어 분석 모델
⑪ Ransomware : 파일을 암호화 하여 인질로 잡을 수 있는 악성 소프트웨어
⑫ Evil Twin Attack : 무선 Wifi 피싱 기법 / 합법적인 Wifi처럼 보이게 함
⑬ Obfuscation : 코드의 가독성을 낮춰 역공학에 대한 대비를 하는 기법
⑭ Tripwire : 침입자의 백도어나 설정 파일 변경 사실을 탐지, 분석하는 도구
⑮ Ping : 원격 호스트가 정상적 운영 상황인지 확인하는 명령어
16 Tcpdump : 스니핑 도구의 일종으로 네트워크 인터페이스를 거치는 패킷의 내용을 출력해주는 프로그램
(4) 서버 인증 및 접근 통제
- 인증 기술의 유형 : 지소생특 / 지식기반, 소지기반, 생체기반, 특징기반
- 서버 접근 통제
① 통제 용어 및 기법 : 용어(주체, 객체, 접근) / 기법(식별, 인증, 인가, 책임추적성)
② 서버 접근 통제 유형 : 임의적 접근 통제(DAC;신분기반 접근 제한), 강제적 접근 통제(MAC;등급기반 접근 제한), 역할기반 접근 통제(RBAC)
- 접근 통제 보호 모델(벨기비무)
① 벨-라파튤라 : 기밀성 강조
② 비바모델 : 무결성 보장
(5) SW개발 보안을 위한 암호화 알고리즘
- 암호 알고리즘 방식
① 양방향 방식
대칭키 암호 방식 : 블록 암호 방식, 스트림 암호 방식 : DES, AES, SEED
비대칭키 암호 방식(=공개키 암호 방식 : RSA, 디피-헬만
② 일방향 암호 방식 (해시 암호 방식) : MAC, MDC
- 암호 알고리즘 상세
① DES : 페이스텔 구조
② SEED : KISA 개발
③ AES : NIST에서 발표
④ ARIA : XOR과 같은 단순 바이트 단위 연산으로 구성
⑤ IDEA : DES를 대체, 스위스 연방기술 기관
⑥ LFSR : 시프트 레지스터 일종
⑦ 디피-헬만 : 최초의 공개키 알고리즘
⑧ RSA : 큰 인수의 곱을 소인수 분해
⑨ ECC : 타원곡선 군에서의 이산대수의 문제에 기초
⑩ ElGamal : 이산대수의 계산이 어려운 문제를 기본 원리로 함
⑪ MD5 : MD4개선
⑫ SHA-1 : DSA에 사용
⑬ SHA-256/384/512 : AES의 늘린 키 길이에 대응
⑭ HAS-160 : 국내 표준 서명 알고리즘
(6) 안전한 전송을 위한 데이터 암호화 전송
- IPSec : 인증 헤더와 기밀성을 보장하는 암호화를 이용한 IP 보안 프로토콜
- SSL/TLS : 4계층과 7계층 사이에서 기밀성, 데이터 무결성을 보장하는 보안 프로토콜
- S-HTTP : 웹상에서 네트워크 트래픽을 암호화 하는 주요 기법
(7) 정보에 대한 보안 항목 식별
- 법률적 검토
① 개인정보보호 관련 법령 : 개망신(개인정보보호법/정보통신망법/신용정보법)
- 개인정보 보호법 검토
① 고유 식별정보의 종류 : 주여운외(주민등록번호/여권번호/운전면허번호/외국인등록번호)
② 개인정보보호 법령 내 정보사고 : 분도유변훼(분실/도난/유출/변조/훼손)
(8) 자산에 대한 보안 항목식별
- 주요 용어 : 자산, 사용자, 소유자, 관리자
(9) SW 개발 보안 적용 사례
- BSIMM / Open SAMM / Seven TouchPoints / MS SDL / OWASP CLASP
II. 소프트웨어 개발 보안 구현
1. SW 개발 보안 구현
(1) 시큐어 코딩 가이드 : 입보시 에코캡아(입력데이터 검증 및 표현 / 보안 기능 / 시간 및 상태 / 에러 처리 / 코드 오류 / 캡슐화 / API 오용)
(2) 입력데이터 검증 및 표현
- 입력 데이터로 인해 발생하는 문제들을 예방하기 위해 구현 단계에서 검증해야 하는 보안 점검 항목들
- 취약점
① XSS(Cross Site Script) : 부적절한 스크립트
② 사이트 간 요청 위조(CSRF;Cross-Site Request Forgery) : 자신의 의지와는 무관하게 공격자가 의도한 행위를 특정 웹사이트에 요청하게 함
③ SQL삽입(SQL injection) : 악의적인 SQL구문을 삽입하여 DB에 접근
(3) 보안 기능
- 보안 기능 취약점
① 적절한 인증 없이 주요 기능 허용
② 부적절한 인가
③ 취약한 암호화 알고리즘 사용
④ 중요 정보 평문 저장 및 전송
⑤ 하드 코드 된 비밀번호
(4) 에러 처리
- 에러 처리 취약점
① 취약한 패스워드 요구 조건
② 오류 메시지 통한 정보 노출
③ 오류 상황 대응 부재
④ 적절하지 않은 예외 처리
(5) 세선 통제
- 세션 통제 취약점 : 불충분한 세션 관리
(6) 코드 오류
- 코드 오류 취약점
① 널 포인터 역참조
② 정수를 문자로 변환
③ 부적절한 자원 해제
④ 초기화되지 않은 변수 사용
(7) 캡슐화
- 캡슐화 취약점
① 잘못된 세션에 의한 데이터 정보 노출
② 제거되지 않고 남은 디버그 코드
③ 민감한 데이터를 가진 내부 클래스 사용
④ 시스템 데이터 정보 노출
(8) API 오용
- API 오용 취약점
① DNS Lookup에 의존한 보안 결정
② 위험하다고 알려진 함수 사용
③ Null 매개변수 미검사
2. 시스템 보안 구현
(1) 유닉스/리눅스 주요 로그 파일
- wtmp(x) : 사용자 로그인/로그아웃 정보
- utmp(x) : 현재 시스템에 로그인한 사용자 정보
- btmp(x) : 로그인에 실패한 정보
- lastlog : 사용자별 최근 로그인 시간 및 접근한 소스 호스트 정보
- sulog : su 명령어 실행 성공/실패 결과 정보
- acct/pact : 사용자별로 실행되는 모든 명령어에 대한 로그
- xlerlog : FTP서비스 데이터 전송 기록 로그
- messages : 가장 기본적인 시스템 로그 파일
- secure : 보안과 관련된 주요 로그
(2) 보안 솔루션
- 네트워크 보안 솔루션
① Firewall : 기업 내부, 외부 간 트래픽을 모니터링 하여 시스템의 접근을 허용하거나 차단하는 시스템
② WAF;Web Application Firewall : 웹 공격 탐지 및 차단 기능
③ NAC;Network Access Control : 네트워크 제어 및 토제 기능
④ IDS;Intrusion Detection System : 비인가 사용자에 의한 자원 접근 및 침입 실시간 탐지
⑤ IPS;Intrusion Prevention System : 네트워크에 대한 공격이나 침입을 실시간으로 차단
⑥ WPS;Wireless Intrusion Prevention System : 인가되지 않은 무선 단말기의 접속을 자동으로 탐지 및 차단
⑦ UTM;Unfined Threat Management : 다양한 보안장비의 기능을 하나의 장비로 통합 제공
⑧ VPN;Virtual Private Network : 인터넷과 같은 공중망이 전용망의 효과를 가짐
- 시스템 보안 솔루션
① 스펨 차단 솔루션(Anti-Spam Solution) : 메일 서버 앞단에서 프록시 메일 서버로 동작
② 보안 운영체제(Secure OS) : 커널에 보안 기능을 추가
- 콘텐츠 유출 방지 보안 솔루션
① 보안 USB : 정보 유출 방지 등의 보안 기능을 갖춘 USB 메모리
② 데이터 유출 방지(DLP;Data Loss Prevention) : 정보 흐름에 대한 모니터링 및 실시간 차단 기능
③ 디지털 저작권 관리(DRM;Digital Right Management) : 디지털 저작물에 대한 보호와 관리를 위한 솔루션
(3) 취약점 분석
- 취약점 분석 대상
- 취약점 분석 절차(자진 제진결보)
① 자산 조사 및 분석
② 진단 대상 선정
③ 제약사항 확인
④ 진단 수행
⑤ 결과 분석/보고서 작성
3. SW 개발 보안 테스트와 결함 관리
(1) 소프트웨어 개발 보안 테스트의 유형 : 정적분석 / 동적분석
(2) 소프트웨어 개발 보안테스트 절차
- 준비단계 / 실행단계 / 개선단계 / 관리단계 / 종료단계
4. 비즈니스 연속성 계획(BCP;Business Continuity Plan)
(1) 비즈니스 연속성 계획 관련 주요 용어
- BIA(Business Impact Analysis) : 비즈니스 영향 분석
- RTO(Recovery Time Objective) : 복구 목표 시간의 선정
- RPO(Recovery Point Objective) : 복구 목표 지점의 선정
- DRP(Disaster Recovery Plan) : 재난으로 장시간 운영이 불가능한 경우를 대비
- DRS(Disaster Recovery System) : 재해복구센터
① Mirror Site : 실시간 운영 / RTO = 0
② Hot Site : 동기, 비동기 식으로 미러링 / RTO = 4시간 이내
③ Warm Site : 중요성 높은 자원만 부분적으로 보유 / RTO = 수일~수주
④ Cold Site : 데이터만을 원격지에 보관 / RTO = 수주~수개월
5. 보안 중요 용어
(1) Side Channel Attack : 내부 비밀 정보를 부 채널에서 획득
(2) Drive By Download : 멀웨어 서버로 연결하여 감염
(3) Watering Hole : 특정인이 잘 방문하는 웹 사이트에 악성코드를 심거나 악성코드 배포 URL로 유인하여 감염
(4) SCAM : 기업 이메일 계정을 도용하여 무역 거래 대금을 가로채는 공격 수법
(5) HeartBleed : HeartBeat라는 확장모듈의 취약점을 이용해 데이터 탈취
(6) Crimeware : 금융정보 또는 인증정보를 탈취하거나 유출을 유도
(7) IoT-SSDP;Simple Service Discovery Protocal : SSDP의 특성을 활용하여 IoT 장치를 좀비 PC로 이용한 공격
(8) WindTalker : 무선신호패턴을 스니핑하여 해킹하는 기술
(9) Tor Network : 익명으로 인터넷 사용이 가능한 가상 네트워크
(10) Meltdown : 커널 사용자 영역을 우회하여 시스템 메모리에 접근하는 취약점
(11) Spector : 실패한 분기 예측으로 인한 메모리 데이터를 관찰 가능한 취약점
(12) MITM(Man in the Middle) 공격 : 네트워크 통신을 조작하여 통신 내용을 도청 및 조작하는 공격기법
(13) DNS Spoofing
(14) Port Scanning
(15) Directory Listing
(16) Reverse Shell
(17) Exploit
(18) Stuxnet
(19) Credential Stuffing
6. 보안 공격 대응 관련 주요 용어
(1) HoneyPot
(2) OWASP Top 10
(3) Finger Printing
(4) Water Marking
(5) FDS;Fraud Detection System
(6) CPTED(Crime Prevent Through Environment Design)
(7) CC(Common Criteria)
(8) C-TAS;Cyber Threats Analysis System
(9) PAM;Pluggable Autherification Module
(10) CVE;Common Vulerabilities and Exposures
(11) CWE;Common Weakness Enumeration
(12) CVSS;Common Vulnerability Scoring System
나머지 파트는정리 못하고 달달 외웠다...
'자격증 > 정처기' 카테고리의 다른 글
정처기 실기 파트8 (0) | 2022.07.10 |
---|---|
정처기 실기 파트7 (0) | 2022.07.10 |
정처기 실기 파트6 (0) | 2022.07.10 |
정처기 실기 파트5 (0) | 2022.07.10 |
정처기 실기 파트4 (0) | 2022.07.10 |