본문 바로가기
알아두면쓸데있는신기한잡학사전/정보처리기사

2022 정보처리기사 실기 Chapter 09 소프트웨어 개발 보안 구축

by 대범하게 2022. 5. 6.
반응형

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)
반응형