동기의 이것저것
article thumbnail
728x90

소프트웨어 개발 보안 설계

소프트웨어 개발 보안 설계

 

1) SW 개발 보안의 3대 요소

  • 기밀성(confidentiality): 인가되지 않은 개인 혹은 시스템 접근에 따른 정보 공개 및 노출을 차단하는 특성
  • 무결성(integrity): 정당한 방법을 따르지 않으면 데이터가 변경될 수 없다.
  • 가용성(availability): 권한을 가진 사용자나 애플리케이션이 원하는 서비스를 지속 사용할 수 있도록 보장

 

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

 

DoS 공격

개념: 시스템을 악의적으로 공격해서 해당 시스템의 자원을 부족하게 하여 원래 의도된 용도로 사용하지 못하게 하는 공격이다.

 

DoS 공격의 종류

  • SYN 플러딩: TCP 프로토콜의 구조적 문제를 이용한 공격, 서버의 동시 가용 사용자 수를 SYN 패킷만 보내 점유하여 다른 사용자가 서버를 사용 불가능하게 하는 공격
  • UDP 플러딩: 대량의 UDP 패킷을 만들어 임의의 포트 번호로 전송하여 응답 메시지(ICMP) 를 생성하게 하여 지속해서 자원 고갈시키는 공격
  • 스머프 / 스머핑: 출발지 주소를 공격 대상의 ip로 설정하여 네트워크 전체에게 ICMP Echo 패킷을 직접 브로드캐스팅하여 마비시키는 공격
  • 죽음의 핑 (Ping of Death): ICMP 패킷을 정상적인 크기보다 아주 크게 만들어 전송하면 다수의 ip 단편화가 발생하고 수신 측에서는 패킷을 처리하는 과정에서 많으 부하가 발생, 재조합 버퍼의 오버플로우
  • 랜드 어택: 출발지 ip와 목적지 ip를 같은 패킷 주소로 만들어 보냄으로써 수신자가 자기 자신에게 응답을 보내게 하여 시스템의 가용성 침해하는 공격기법
  • 티어 드롭: ip 패킷의 재조합 과정에서 잘못된 Fragment Offset 정보로 인해 수신시스템이 문제를 발생하도록 만드는 공격
  • 봉크 / 보잉크: 프로토콜의 오류 제어를 이용한 공격기법으로서 시스템의 패킷 재전송과 재조립이 과부하 유발

 

DDoS 공격

개념: DoS의 또 다른 형태로 여러 대의 공격자를 분산 배치하여 동시에 동작하게 함으로써 특정 사이트를 공격하는 기법이다.

 

DRDos공격

개념: 공격자는 출발지 ip를 공격대상 ip로 위조하여 다수의 반사 서버로 요청 정보를 전송, 공격 대상자는 반사 서버로부터 다량의 응답을 받아서 서비스 거부가 되는 공격

 

세션 하이재킹

개념: 케빈 미트닉이 사용했던 공격 방법 중 하나로 TCP의 세션 관리 취약점을 이용한 공격기법이다.

 

애플리케이션 공격

  • HTTP GET 플러딩
  • Slowloris
  • RUDY
  • Slow HTTP Read DoS
  • Hulk DoS
  • Hash DoS

 

네트워크 공격

  • 스니핑: 공격대상에게 직접 공격하지 않고 데이터만 몰래 들여보다는 수동적 공격
  • 네트워크 스캐너, 스니퍼: 네트워크 하드웨어 및 소프트웨어 구성의 취약점 파악을 위해 공격자가 취약점을 탐색하는 공격 도구
  • 패스워드 크래킹
    • 사전 크래킹
    • 무차별 크래킹 (Brute Force)
    • 패스워드 하이브리드 공격
    • 레이보우 테이블 공격
  • IP 스푸핑: 침입자가 인증된 컴퓨팅 시스템인 것처럼 속여서 타깃 시스템의 정보를 빼내기 위해서 본인의 패킷 헤더를 인증된 호스트의 IP Address 로 위조하여 타깃에 전송
  • ARP 스푸핑: 공격자가 특정 호스트의 MAC 주소를 자신의 MAC 주소로 위조한 ARP Reply 만들어 희생자에게 지속적으로 전송
  • ICMP Redirect 공격: 3계층에서 스니핑 시스템을 네트워크에 존재하는 또 다른 라우터라고 알림으로써 패킷의 흐름을 바꾸는 공격기법
  • 트로이 목마: 악성 루틴이 숨어 있는 프로그램으로 겉보기에는 정상 프로그램이지만 실행하면 악성 코드 실행하는 프로그램

 

보안 관련 용어

  • 스피어피싱: 특정 대상 선정한 후 그 대상에게 위장 메일 지속적으로 발송해 링크 클릭하도록 유도, 개인정보 탈취
  • 스미싱: SMS와 피싱의 합성어
  • 큐싱: 큐알 코드와 피싱의 합성어
  • 봇넷: 악성 프로그램에 감염되어 악의적인 의도로 사용될 수 있는 다수의 컴퓨터들이 네트워크로 연결된 형태
  • APT 공격: 특정 타깃 목표로 하여 다양한 수단을 통한 지속적이고 지능적인 맞춤형 공격기법
  • 공급망 공격: 네트워크에 침투하여 소스 코드의 수정 등을 통해 악의적인 코드 삽입
  • 제로데이 공격: 보안 취약점이 발견되어 널리 공표되기 전에 악용하여 이루어지는 보안 공격기법 
  • 웜: 스스로 복제하여 네트워크 등의 연결을 통해 전파하는 악성 소프트웨어 컴퓨터 프로그램
  • 랜섬웨어: 감염된 시스템의 파일들을 암호화하여 복호화 할 수 없도록 한다.
  • 이블 트윈 공격: 무선 wifi 피싱 기법

 

3) 서버 인증 및 접근 통제

 

서버 접근 통제의 개념: 사람 또는 프로세스가 서버 내 파일에 읽기, 쓰기, 실행 등의 접근 여부를 허가하거나 거부하는 기능

 

접근 통제 기법

  • 식별
  • 인증
  • 인가
  • 책임추적성

 

서버 접근 통제의 유형

  • 임의적 접근 통제 (DAC): 주체나 그룹의 신분에 근거하여 객체에 대한 접근을 제한하는 방법
  • 강제적 접근 통제 (MAC): 객체에 포함된 정보의 허용등급과 접근 정보에 대하여 줴가 갖는 접근 허가 권한에 근거하여 객체에 대한 접근 제한
  • 역할 기반 접근 통제 (RBAC)

 

3A

  • 인증 (Authentication)
  • 권한부여 (Authorization)
  • 계정 관리 (Accounting)

 

접근 통제 보호 모델

  • 벨-라파듈라 모델: 보안 요소 중 기밀성을 강조하며 강제적 정책에 의해 접근 통제하는 모델이다.
  • 비바 모델: 벨-라파듈라 모델의 단점을 보완한 무결성을 보장하는 최초의 모델

 

암호 알고리즘 상세

  • 대칭 키 암호화 알고리즘
    • DES:  1975년 IBM에서 개발, 블록 크기는 64bit 키 길이는 56bit 페이스텔 구조 16라운드
    • SEED: 1992년 국내 한국인터넷진흥원(KISA)이 개발한 블록 암호화 알고리즘, 128bit 비밀키로부터 생성된 16개의 64bit 라운드 키를 사용
    • AES: 2001년 미국 표준 기술 연구소 (NIST) 에서 발표한 블록 암호화 알고리즘, DES의 개인 키에 대한 전사적 공격이 가능해지고 3DES 성능 문제 극복하기 위해 개발, 블록 크기 128bit 키 길이에 따라 128, 192, 256 로 분류 10, 12, 14 라운드로 분류
    • ARIA: 2004년 국가정보원과 산학연구협회가 개발한 블록 암호화 알고리즘, 블록 크기 128비트, 경량 환경 및 하드웨어에서의 효율성 향상 위해 개발 xor과 같은 단순한 바잍트 단위 연산으로 구성
    • IDEA: DES 대체하기 위해 스위스 연방기술 기관에서 개발한 블록 암호화 알고리즘 8라운드
    • LFSR: 시프트 레지스터의 일종, 스트림 암호화 알고리즘
  • 비대칭 키 암호화 알고리즘
    • 디피-헬만: 최초의 공개키 알고리즘으로 이산대수의 계산이 어려운 문제를 기본 원리로 한다, 두 사용자 간에 공통의 암호화 키를 안전하게 공유할 방법 제시
    • RSA: 1977년 3명의 MIT 수학 교수가 고안한 큰 인수의 곱을 소인수 분해하는 수학적 알고리즘 이용하는 공개키 암호화 알고리즘
    • ECC: 1985년 코블리치와 밀러가 RSA 암호 방식에 대한 대안으로 제안, 타원 곡선 암호는 이산대수의 문제에 기초한 공개키 암호화 알고리즘
    • EIGamal: 1984년 , 이산대수 계산 어려운 문제 기본 원리, RSA와 유사하게 전자서명과 데이터 암 복호화에 함께 사용 가능
  • 해시 암호화 알고리즘
    • MD5: 1991년 R.rivest, 무결성 검사에 사용, 512비트짜리 입력 메시지 블록에 대해 차례로 동작하여 128비트 해시값 생성
    • SHA-1: 1993년 NSA에서 미 정부 표준으로 지정, DSA에서 사용, 160비트 해시값 생성
    • SHA-256/384/512: 256비트의 해시값 생성, AES의 키 길이인 128, 192, 256 비트에 대응하도록 출력 길이 늘림
    • HAS-160: 국내 표준 서명 알고리즘 KCDSA 위해 개발된 해시함수, MD5 SHA1 장점 취해 개발
    • HAVAL: 메시지를 1024bits 블록으로 나누고 메시지 다이제스트를 출력하는 해시 알고리즘

 

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

 

IPSec

개념: IP 계층에서 무결성과 인증을 보장하는 인증 헤더와 기밀성을 보장하는 암호화를 이용한 IP 보안 프로토콜이다.

 

SSL / TLS
개념: 전송계층 과 응용계층 사이에서 클라이언트와 서버간의 웹 데이터 암호화, 상호 인증 및 전송 시 데이터 무결성을 보장하는 보안 프로토콜이다.

 

S-HTTP: 웹상에서 네트워크 트래픽을 암호화하는 주요 방법 중 하나로 클라이언트와 서버 간에 전송되는 모든 메시지를 각각 암호화하여 전송하는 기술이다.

 

 

소프트웨어 개발 보안 구현

SW 개발 보안 구현

 

1) 입력 데이터 검증 및 표현

 

입력 데이터 검증 및 표현 취약점

  • XSS(Cross Site Script): 사용자가 웹페이지를 열람함으로써 웹페이지에 포함된 부적절한 스크립트가 실행되는 공격
    • Stired XSS: 악성 스크립트 포함된 페이지를 읽어 봄과 동시에 악성 스크립트가 브러우저에 실행되면서 감염
    • Reflected XSS: 악성 url 생성한 후 이메일로 사용자에게 전송하면 클릭시 즉시 반사되어 접속 사이트에 민감정보를 공격자에게 전송하는 기법
    • DOM XSS
  • 사이트 간 요청 위조 CSRF(Cross-Site Request Forgery): 자신의 의지와는 무관하게 공격자가 의도한 행위를 특정 웹사이트에 요청하게 하는 공격
  • SQL 삽입 (injection): 응용 프로그램의 보안 취약점을 이용해 악의적은 sql 구문을 삽입, 실행시켜 데이터베이스의 접근을 통해 정보 탈취하는 행위

 

비즈니스 연속성 계획 (BCP)

 

1) 비즈니스 연속성 계획의 개념

: 각종 재해, 장애, 재난으로부터 위기관리를 기반으로 재해복구, 업무복구 및 재개, 비상계획 등을 통해 비즈니스 연속성을 보장하는 체계이다.

 

주요 용어

  • BIA: 시간 흐름에 따른 영향도 및 손실평가 조사
  • RTO: 업무중단 시점부터 업무가 복구되어 다시 가동될 때까지의 시간
  • RPO: 업무중단 시점부터 데이터가 복구되어 다시 정상가동될 때 데이터의 손실 허용 시점
  • DRP: 장기간 걸쳐 시설의 운영이 불가능한 경우 대비한 재난 복구 계획
  • DRS: 평상시에 확보하여 두는 인적, 물적 자원 및 이들에 대한 지속적인 관리체계가 통합된 재해복구센터

 

728x90
반응형
profile

동기의 이것저것

@U_motivation

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!