[정보처리기사 실기] 9장 소프트웨어 개발 보안 구축 - 소프트웨어 개발 보안 설계

2022. 4. 23. 21:05정보처리기사/실기

728x90
반응형

소프트웨어 개발 보안 설계

SW 개발 보안의 개념

- 개발과정에 지켜야 할 일련의 보안 활동 : 요구 사항 명세 -> 설계 -> 구현 -> 테스트 -> 유지 보수

구성요소

- 3대 요소 : 기밀성, 무결성, 가용성

- 보안 용어 : 자산, 위협, 취약점, 위험

보안을 위한 공격기법의 이해

(1) 도스 공격 : 악의적으로 공격해 시스템 자원 고갈시키는 것, TCP 연결을 소진시키는 공격

  • SYN 플러딩 : TCP 구조적 문제를 이용, SYN 패킷만 보내 점유해 사용자가 서버 사용 불가능하게 만듬, 공격자는 ACK 발송하지 않고 새로운 연결 요철을 하게 되어 자원만 소비 고갈
  • UDP 플러딩 : 대량의 UDP 만들어 임의의 포트 번호로 전송해 응답 메시지 생성하게 해 지속적 자원 고갈, ICMP 패킷은 변도되어 공격자에게 전달 되지 않아 대기함
  • 스머핑 : 출발지 주소를 공격 대상의 IP로 설정 네트워크 전체에 ICMP echo 패킷을 직접 브로드캐스팅해 마비, 바운스 사이트로 제 3의 사이트 이용 공격
  • Ping of Death : ICMP 패킷 정상적인 크기보다 크게 만들어 전송, 다수의 IP 단편화가 발생, 단편된 패킷을 처리하는 과정에 과부화 발생, 재조합 버퍼의 오버플로우가 발생해 정상적인 서비스를 하지 못하도록 하는 공격 기법
  • 랜드 어택 : 출발지와 목적지를 동일 IP로 설정해 스스로 가용성 침해
  • 티어 드롭 : IP 헤더가 조작된 일련의 패킷 조각들을 전송
  • 봉크/보잉크 : 프로토콜 오류 제어 이용한 공격 기법으로 시스템의 패킷 재전송과 재조립이 과부하 유발
    • 예 : 봉크 : 같은 시퀀스 번호 계속 보냄, 보잉크 : 일정한 간격으로 시퀀스 번호에 빈 공간 생성

(2) 디도스 공격 : 도스와 달리 분산 배치해 동시에 동작하게 함으로 사이트 공격, 취약 컴퓨터 액세스해 원격으로 공격 개시

  • 공격 요소
    • 핸들러 : 마스터 시스템 역할
    • 에이전트 : 공격 대상에 직접 공격
    • 마스터 : 직접 명령 받는 시스템, 여러대 에이전트 관리
    • 공격자 : 공격 주도 해커
    • 데몬 프로그램 : 에이전트 시스템의 역할 수행
  • 공격 도구
    • Trinoo : 통합된 UDP flood 서비스 거부 공격을 유발해 사용, 몇 개의 서버들과 많은 수의 클라이언트들로 이뤄짐
    • Tribe Flood Network : 위와 비슷하고 분산 도구로 많은 소스에서 하나 혹은 여러 개의 목표 시스템에 대해 서비스 거부 공격, 공격자가 마스터를 통해 명령을 일련의 TFN 서버들에게 보냄, Flood 뿐 아니라 SYN, ICM공격 또한 수행
    • Stacheldrant : 에이전트 역할 하는 리눅스 및 솔라리스 용 멀웨어 도구
  • 대응 방안 : 차단 정책 업데이트, 좀비PC IP 확보, 보안 솔루션 운영, 홈페이지 보안 관리, 시스템 패치
  • 공격 종류
    • 대역폭 소진 공격 (3~4 계층) 
      • UDP/ICMP Traffic Flooding : UDP/ICMP, DNS Query Flooding
      • TCP Traffic Flooding : SYN, SYN+ACK Flooding
      • IP Flooding : LAND Attack, Teardrop
    • 서비스 마비 공격 (7계층)
      • HTTP Traffic Flooding : GET Flooding, GET with Cache-Control
      • HTTP Header / Option Spoofing : Slowris, Slowloris, Slow HTTP Read Dos
      • Other L7 Service Flooding : Hash Dos, Hulk Dos, FTP/SMTP Attack

(3) DRDos 공격 : 출발지 IP를 공격 대상으로 위조해 다수의 반사 서버로 요청 정보를 전송, 공격 대상자는 반사 서버로부터 다량의 응답을 받아 서비스 거부 공격

  • 절차
    • 출발지 IP 변조 : 공격대상자로 설정 Spoofin해 SYN 패킷 공격 경유지 서버로 전송
    • 공격 대상자 서버로 응답 : Sppofing 된 IP로 SYN/ACK 전송
    • 서비스 거부 : 수 많은 응답을 받아 서비스 거부
  • 대응 방안 : ISP가 직접 차단, 연결을 완료하지 않은 SYN 출처 IP 조사해 블랙리스트, 필터링해 운영

(4) 세션 하이재킹 : TCP 세션 관리 취약점을 이용한 공격 기법

  • 특징
    • 보안상 취약점 발견, 빅팀과 서버 사이의 패킷을 스니핑해 시퀀스 넘버 획득하고, 공격자는 전송준인 빅팀과 서버 사이 비동기 상태로 강제, 스니핑해 얻은 클라이언트 시퀀스 넘버 이용해 공격
    • 비동기 상태 패킷이 유실시 재전송 패킷이 증가
    • ACK Strom 증가, 네트워크 과부하 발생
  • 탐지 방법
    • 비동기 상태 탐지, ACK 패킷 비율 모니터링, 특정 세션에서 패킷 유실 및 재전송 증가 탐지, 기대하지 않은 접속의 리셋 탐지

(5) 애플리케이션 공격

- HTTP GET Flooding, Slowloris, RUDY, Slow HTTP Read Dos, Hulk Dos, Hash Dos

 

(6) 네트워크 공격

- 스니핑, 네크워크 스캐너 혹 스니퍼, 패스워드 크래킹(사전 크래킹, 무차별 크래킹, 패스워드 하이브리드 공격, 레인보우 테이블 공격), IP 스푸핑, ARP 스푸핑, ICMP Redirect 공격, 트로이 목마

 

(7) 시스템 보안 위협

  • 버퍼 오버플로우 공격 : 할당된 버퍼 크기 초과하는 데이터 입력, 흐름 변경시켜 악성 코드 실행
    • 스택 버퍼 오버플로우 공격, 힙 버퍼 오버플로우 공격
    • 대응 방법 : 스택가드, 스택쉴드, ASLR, 안전한 함수 활용
  • 백도어 : 정상적인 인증 절차 우회, 허가 받지 않고 시스템에 접속하는 권리 얻기 때문에 은밀히 작동
    • 탐지 기법 : 프로세스 및 열린 포트 확인, Setuid 파일 검사, 백신 및 백도어 탐지 툴 활용, 무결성 검사, 로그 분석
  • 주요 시스템 보안 공격 기법
    • 포맷 스트링 공격, 레이스 컨디션 공격, 키로거 공격, 루트 킷

(8) 보안 관련 용어

- 스피어피싱, 스미싱, 큐싱, 봇넷, APT 공격, 공급망 공격, 제로데이 공격, 웜, 악성 봇, 사이버 킬체인, 랜섬웨어, 이블 트윈 공격

서버 인증 및 접근 통제

(1) 개념 : 다중 사용자 시스템과 망 운영 시스템에서 접속자의 로그인 정보 확인하는 보안 절차, 무결성과 인증

 

(2) 기능 : 스니핑 방지, 피싱 방지, 데이터 변조 방지, 기업 신뢰도 향상

 

(3) 인증 기술의 유형 : 지식기반, 소지기반, 생체기반, 특징기반 인증

 

(4) 서버 접근 통제

  • 개념 : 프로세스가 서버 내 파일 CRUD 접근 여부 허가하거나 거부하는 기능
  • 목적 : 비인가로 부터 기밀성 무결성 가용성 보장
    • 용어 : 주체, 객체, 접근
    • 통제 기법 : 식별, 인증, 인가, 책임추적성
  • 서버 접근 통제 유형 : 임의적 접근 통제, 강제적 접근 통제, 역할 기반 접근 통제
  • 3A : 인증 Authentication, 권한 부여 Authorization, 계정 관리 Accounting

(5) 접근 통제 보호 모델

  • 벨 라파듈라 모델 : 미 국방부 지원, 기밀성 강조 : No Read Up, No write Down
  • 비바 모델 : 위 모델 단점 보완, 무결성 보장 : No Read Down, No Write up

SW 개발 보안을 위한 암호화 알고리즘

(1) 개념 : 무결성 및 기밀성 확보 위해 정보를 쉽게 해독할 수 없는 형태로 변환

  • 평문, 암호문, 암호화, 복호화, 키, 치환 암호, 전치 암호

(2) 방식 

  • 양방향 방식
    • 대칭키 암호 방식 : 암 복호화에 같은 암호 키 사용
      • 블록 암호 방식 : 고정 길리 블록을 암호화하는 방법 : DES, AES, SEED
      • 스트링 암로 방식 : 난수열 발생시켜 평문과 더불어 암호문 생성 : RC4
      • 키의 갯수 : n(n-1)/2
      • 계산 속도가 빠름, 키분배나 관리가 어렵다, 기밀성만 보장함
    • 비대칭 키 암로 방식 : 공개 키는 누구나 알지만 그에 대응하는 개인 키는 소유자만 알고 있다, 공개키로 암호화하면 반드시 개인 키로 복호화해야 한다. 
      • RSA, ECC, ElGamal, Diffie-Helman
      • 키 갯수 : 2n
      • 암호화 키 사전 공유 불필요, 키 수가 적다, 계산 속도 느림
  • 일방향 방식
    • 임의 길이 정보 입력 받아, 고정된 길이의 암호문 출력, 해시 알고리즘 적용된 경우 복호화 불가능
    • 해쉬 함수 기반은 MAC과 MDC 존재
      • MAC : 키를 사용하는 메시지 인증코드 메시지의 무결성과 송신자의 인증 보장 : HMAC, NMAC
      • MDC : 키를 사용하지 않는 변경 감지 코드 메시지의 무결성 보장 : MD5, SHA

(3) 종류

  • 대칭키 암호화 : DES, SEED, AES, ARIA, IDEA, LFSR
  • 비대칭키 암호화 : Diffie-Hellman, RSA, ECC, ElGamal
  • 해쉬 암호화 : MD5, SHA-1, SHA-256/384/512, HAS-160, HAVAL

안전한 전송을 위한 데이터 암호화 전송

  • IPSec : 3계층에서 무결성과 인증을 보장하는 인증 헤더와 기밀성을 보장하는 암호화 이용한 보안 프로토콜
    • 기능 : 기밀성, 비연결형 무결성, 인증, 재전송 공격 방지, 접근 제어
    • 동작 모드 : 전송 모드, 터널 모드
    • 프로토콜 : 인증 프로토콜 AH, 암호화 프로토콜 ESP, 키 관리 프로토콜 IKE
  • SSL/TLS : 4와 7계층 사이의 클라이언트와 서버 간의 웹 데이터 기밀성, 상호 인증 및 전송 시 데이터 무결성 보장하는 보안 프로토콜
    • 특징 : Netscape 사가 개발, 다양한 암호 통신 방법 활용, 특정 암호 기술에 의존 하지 않음
    • 기능 : 기밀성, 상호인증, 메시지 무결성
    • 구성요소 : Change Cipher Spec Protocol, Alert Protocol, Hearbeat Protocol, HandShake Protocol, Record Protocol
  • SHTTP : 웹상에서 네트워크 트래픽을 암호화, 클라와 서버 간 모든 메시지 각 암호화, HTTP 사용하는 앱에서만 가능

자산에 대한 보안 항목 식별

(1) 용어 : 자산, 사용자, 소유자, 관리자

 

(2) 정보 자산의 식별 : 중요 자산을 보호하기 위해 자산의 식별과 평가 수행, 중복 누락을 최소화하여 자산 목록 작성

 

(3) 분류 기준 : 소프트웨어, 하드웨어, 데이터, 문서, 시설, 지원 설비, 인력

 

 

728x90
반응형