자격증/정보처리기사 실기

정보처리기사 실기 - SW 개발 보안 설계

비뀨_ 2023. 7. 15. 22:40

개념

보안 취약점 제거하고 보안을 고려해 기능 설계, 구현하는 활동을 말한다.

 

SW 개발 보안 생명주기

  • 요구사항 명세
    • 보안 항목 식별, 요구사항 명세서
  • 설계
    • 보안 설계서 작성, 보안설계 검토 
    • 위협 모델링 : 위협원 도출을 위함
  • 구현
    • SW 개발 보안 가이드 준수해 개발 
    • 소스 코드 보안 약점 진단 및 개선
  • 테스트
    • 모의침투 테스트, 동적분석을 통한 보안 취약점 진단 및 개선
  • 유지보수
    • 지속적인 개선
    • 보안 패치

SW 개발 보안 구성요소

기밀성, 무결성, 가용성 지키고 취약점 사전 방지

위험을 최소화하는 구축 방법

 

  • 기밀성(Confidentiality) : 
    • 인가된 사용자에 대해서만 자원 접근이 가능해야 하는 특성 
    • 인가되지 않은 개인이나 시스템 접근에 따른 정보 공개 및 노출을 차단
  • 무결성(Integrity)
    • 인가된 사용자에 대해서만 자원 수정이 가능하며, 전송 중인 정보는 수정되지 않아야 함
    • 정당한 방법으로만 데이터가 변경되며, 데이터의 정확성 및 완전성
  • 가용성(Availability)
    • 인가된 사용자는 가지고 있는 권한 범위 내에서 자원접근이 가능해야 함
    • 원하는 서비스를 지속적으로 사용할 수 있도록 해야 함.

보안 용어

  • 자산 (Assets) : 데이터 또는 가치를 부여한 대상
    • ex : 하드웨어, 데이터
  • 위협 (Threat) : 자산에 악영향을 끼칠 수 있는 행위
    • 해킹, 삭제, 불법 유출, 위조/변조, 파손
  • 취약점(Vulnerability) : 위협이 발생하기 위한 사전 조건.
    • 평문 전송, 입력값 미검증, 비밀번호 유출
  • 위험 (Risk) : 위협이 취약점을 이용해 조직의 자산 손실 피해를 가져올 가능성

SW 개발 보안을 위한 공격 기법 이해

DoS 공격 (Denial of Service)

1. 시스템을 악의적으로 공격해 해당 시스템의 자원을 부족하게 해 원래 의도된 용도로 사용하지 못하게 하는 공격

2. 특정 서버에게 수많은 접속 시도를 만들어 다른 이용자가 정상적으로 서비스를 이용하게 하지 못하게 만들거나, TCP 연결을 소진시키는 등의 공격

 

공격 기법 설명
SYN 플러딩
(SYN Flooding)
말 그대로 TCP 연결할 때 사용하는 SYN을 넘쳐나게(Flooding) 보냄
공격자는 ACK을 보내지 않고 계속 새로운 연결 요청을 함.
UDP 플러딩
(UDP Flooding)
대량의 UDP 패킷을 만들어 임의의 포트 번호로 전송해 응답을 생성하게 해 자원 고갈하게 만듦.

스머프 / 스머핑
(Smurf / Smufing)
출발지 주소를 공격 대상의 IP로 설정해  네트워크 전체에 ICMP Echo 패킷을 직접 브로드캐스팅해 마비.
Bounce 사이트라고 불리는 제 3의 사이트를 이용해 공격
죽음의 핑
(Death of Ping)
ICMP Ping 을 정상 크기보다 아주 크게 만들어 전송하면 다수의 IP 단편화가 발생하고, 
수신 측에서는 단편화된 패킷을 분해해 재조립하는 과정에서 부하가 발생하거나, Over Flow가 발생해 정상적인 서비스를 하지 못하도록 하는 기법
랜드 어택
(Land Attack)
출발지 IP와 목적지 IP를 같은 패킷 주소로 만들어 보내서 수신자가 자기 자신에게 응답을 보내게 해 시스템의 가용성을 침해
티어 드롭
(Tear Drop)
패킷의 재조합 과정에서 잘못된 Fragment OffSet 정보로 수신시스템이 문제를 발생하도록 하는 Dos공격
봉크 (Bonk) 패킷을 분할해 보낼 때 처음 패킷을 첫번째로 보낸 후 다음 패킷을 보낼 때도 순서를 모두 1번으로 조작해 전송
보잉크(Boink) 패킷 시퀀스 번호를 비정상적인 상태로 보내서 부하를 일으키는 기법

 

 

 

DDoS 공격 (Denial of Service)

Dos의 또 다른 형태로 여러 대의 공격자를 분산 배치해 동시에 동작하게 해 특정 사이트를 공격하는 기법

취약한 인터넷 시스템에 Access를 하면, 침입한 시스템에 소프트웨어를 설치하고, 이를 실행시켜 원격에서 공격을 함.

 

공격 요소

  • 핸들러 : 마스터 시스템의 역할을 하는 프로그램 
  • 에이전트 : 공격 대상에 직접 공격을 하는 시스템
  • 마스터 :
    • 공격자에게서 직접 명령을 받는 시스템.
    • 여러대의 에이전트를 관리하는 역할
  • 공격자 : 공격을 주도하는 해커의 컴퓨터
  • 데몬 프로그램 : 에이전트 시스템의 역할을 수행

 

대응 방안

  • 차단 정책 업데이트 : 공격 규모 확인해 가용성이 침해될 수 있는 지점을 확인 및 
                                      데이터 기반 차단 정책 업데이트
  • 좀비 PC IP 확보
    • 공격자는 대부분 Source IP를 위조하므로 IP 위변조 여부를 확인하는 절차 필요
  • 보안 솔루션 운영
    • 방화벽, 침입 탐지 시스템 등 보안 솔루션 운영
  • 홈페이지 보안 관리
    • 홈페이지에 대한 모의해킹 등을 수행하여 보안 유지
  • 시스템 패치
    • 시스템에 존재하는 취약점을 패치를 통해 해결

 

DDOS 공격의 종류 

대역폭 소진 공격 ( 3 ~ 4계층)

UDP / ICMP Trafic Flooding

- UDP / ICMP Flooding
- DNS Query Flooding
TCP Traffic Flooding

- SYN Flooding
- SYN+ ACK Flooding
Ip Flooding - Land Attack
(보내는 사람 IP = 호스트 = 받는곳 IP -> 무한루프)
- Teardop

애플리케이션(서비스) 마비 공격 ( 7 계층)

HTTP Traffic Flooding - GET Flooding
- GET With Cache-Control
HTTP Header / Option Spoofing - Slowris
- Slowloris
- Slow Read Attack
Other L7 Service Flooding - Hash Dos
- Hulk Dos
- FTP/SMTP Attack

 

세션 하이재킹 ( Session Hijacking)

개념

TCP 세션 관리 취약점을 이용한 공격기법

특징

  • TCP Sequnce Number 보안상 취약점으로 발생
    • 1. Victim(피해자)와 Server 사이의 패킷을 스니핑하여 Sequnce Number 획득한다
    • 2. 공격자는 데이터 전송중인 Victim과 Server 사이를 비동기화 상태로 강제적으로 만든다
    • 3. 스니핑해서 획득한 Client의 Sequnce Number를 이용해 공격하는 방식
  • 비동기화 상태로 패킷이 유실되어 재전송 패킷이 증가
  • ACK Storm 증가, 네트워크 부하 증가 현상이 발생

탐지 방법 

  • 비동기화 상태 탐지
  • ACK 패킷 비율 모니터링
  • 특정 세션에서 패킷 유실 및 재전송이 증가되는 것을 방지
  • 기대하지 않은 접속의 리셋 탐지

 

애플리케이션 공격 (Application Attack)

 

HTTP GET Flooding

  • Cache Control Attack 공격
  • 과도한 Get 메시지를 이용해 웹 서버의 과부하 유발
  • HTTP 캐시 옵션을 조작해 캐싱 서버가 아니라 웹 서버가 직접 처리하도록 유도해 서버 자원 소진

Slowloris ( Slow HTTP Header DoS)

  • 헤더의 끝을 알리는 개행 문자열 \r\n\r\n을 주지 않고 \r\n만 줘서
    서버 연결 상태를 장시간 지속해 자원 모두 소진

Rudy Attack( Slow HTTP Post Dos)

  • 요청 헤더의 Content-Length 비정상적으로 크게 설정
    메시지 바디 부분을 매우 소량으로 보내 계속 연결 상태를 유지시키는 공격

Slow Read Attack

  • TCP Window 크기를 낮게 설정해 서버로 전달,
    윈도우 크기를 기준으로 통신하면서 데이터 전송이 완료될 때까지 연결을 유지하게 만들어 서버 자원 고갈

Hulk Dos

  • 공격자가 대상 웹 사이트 URL을 지속적으로 변경하며 다량으로 GET 요청을 발생시키는 서비스 거부 공격
    URL 변경 이유 : 임계치 대응을 우회하기 위해서

 

 

서버 인증 및 접근 통제

서버 인증 개념

다중 사용자 시스템과 망 운영 시스템에서 접속자의 로그인 정보를 확인하는 보안 절차

전송된 메시지 무결성송신자를 검증하는 과정이 인증에 해당

 

서비 인증 기능

  • 스니핑 방지
    • SSL 인증서를 설치하면 정보가 유출되어도 암호화되어 안전함
  • 피싱 방지
    • 인증을 받지 않으면 유사사이트에 대해서 SSL 인증서를 발급받을 수 없음
  • 데이터 변조 방지
    • 제 3자의 악의적 개입으로 데이터 값 변조될 가능성이 존재
    • SSL 보안서버 구축을 통해 원천봉쇄

인증 기술 유형

  • 지식 기반 인증
    • Id / password 등 사용자가 기억하는 지식
  • 소지기반 인증
    • 공인인증서, OTP 등 소지하고 있는 인증 물품
  • 생체 기반 인증
    • 홍채, 정맥, 지문 등 사용자의 고유 생체 정보
  • 특징(행위) 기반 인증
    • 서명, 몸짓 등

 

3A

- 모바일, 웹 등 인터넷 환경에서 관리를 체계적으로 제공하는 정보 보호 기술

구성 설명
인증
(Authentication)
- 접근 시도하는 사용자에 대한 신분을 검증
- 신원 검증
권한 부여
(Authorization)

- 인증된 주체에게 권한 부여
- 검증된 사용자에게 일정 수준의 권한과 서비스를 허용
계정 관리
(Accounting)
- 주체 접근을 추적하고 행동 기록
- 리소스 사용에 대한 정보를 

 

인증 관련 기술

구분 설명
SSO
(Single Sign On)
한 번의 인증으로 여러 컴퓨터상의 자원을 이용할 수 있는 기술
*쉽게 통합 로그인이다*
커버로스 Client / Server 모델에서 동작하는 대칭 키 암호기법을 기반으로 한 티켓 기반의 프로토콜

 

암호화 알고리즘

개념

암호 알고리즘은 데이터의 무결성, 기밀성

  • 양방향 (암호화, 복호화)
    • 대칭 키 :  암호화 키 == 복호화 키
      • 스트림 암호 :
        • LFSR
        • SEAL
      • 블록 암호
        • Feistel : 암호화 과정 == 복호화 과정
          • DES
          • 3DES
        • SPN : 암호화 과정 != 복호화 과정
          • AES
    • 비대칭 키  : 
      • 암호화 키 != 복호화 키
      • DH, RSA, ECC, EIGamal
  • 단방향 : 해시함수로 암호화만
    • MDC (변경 감지 코드) : 무결성
    • MAC (메시지 인증 코드) : 무결성 + 인증

 

암호 알고리즘 용어 개념

용어 설명
평문 (Plain Text) 암호화되기 전의 원본 메시지
암호문 암호화가 적용된 메시지
암호화 평문을 암호문으로 바꾸는 작업
복호화 암호문을 평문으로 바꾸는 작업
적절한 암호화를 위해 사용하는 값
치환 암호 비트, 문자 or 문자 블록을 다른 비트, 문자 or 문자 블록으로 대체하는 방법
전치 암호 비트, 문자 또는 블록이 원래 의미를 감추도록 자리바꿈 등으로 재배열 하는 방법

 

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

IPSEC (Internet Protocol Security)

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

 

SSL (Secure Socket Layer) / TLS (Transport Layer Security)

전송계층인 4계층, 응용계층 7계증 사이에서 클라이언트와 서버간의 기밀성, 데이터 무결성을 보장하는 보안 프로토콜

 

S-HTTP (Secure HTTP)

네트워크 트래픽을 암호화하는 주요 방법 중 하나.

Client와 Server 간의 모든 메시지를 각각 암호화 해 전송하는 기술

HTTP를 사용한 Application에서만 가능