01 소프트웨어 개발 보안 설계
▶ SW 개발 보안의 3대 요소
⦁ 기밀성(Confidentiality) : 인가되지 않은 개인 혹은 시스템 접근에 따른 정보 공개 및 노출을 차단하는 특성
⦁ 무결성(Integrity) : 정당한 방법을 따르지 않고서는 데이터가 변경 될 수 없으며, 데이터의 정확성 및 완전성과 고의/악의로 변경되거나 훼손되지 않음을 보장
⦁ 가용성(Availability) : 권한을 가진 사용자나 애플리케이션이 원하는 서비스를 지속해서 사용할 수 있도록 보장하는 특성
▶ SW 개발 보안 용어
⦁ 자산 : 조직의 데이터
⦁ 위협(Threat) : 조직이나 기업의 자산에 악영향을 끼칠 수 있는 사건이나 행위
⦁ 취약점(Vulnerability) : 위협이 발생하기 위한 사전 조건
⦁ 위험(Risk) : 위협이 취약점을 이용해 조직의 자산 손실 피해를 가져올 가능성
▶ DoS(Denial of Service)
시스템을 악의적으로 공격해 해당 시스템의 자원을 부족하게 해 사용하지 못하게 하는 공격
▶ DoS 공격의 종류
⦁ SYN 플러딩(Flooding) : TCP 프로토콜의 구조적 문제를 이용한 공격, SYN 패킷만 보냄
⦁ UDP 플러딩(Flooding) : 대량의 UDP 패킷을 만들어 임의의 포트 번호로 전송
⦁ 스머프(Smurf)/스머핑(Smurfing) : 출발지 주소를 공격 대상의 IP로 설정하여, 네트워크 전체에게 ICMP Echo 패킷을 직접 브로드 캐스팅해 마비시킴
⦁ 죽음의 핑(PoD) : ICMP 패킷(핑)을 정상적인 크기보다 아주 크게 만들어 전송
⦁ 랜드 어택 : 출발지 IP와 목적지 IP를 같은 패킷 주소로 만들어 보내, 수신자가 자기 자신에게 응답
⦁ 티어 드롭 : IP 패킷의 재조합 과정에서 잘못된 Fragment Offset 정보로 인해 수신 시스템이 단편화된 패킷의 재조합 과정에서 문제를 발생하도록 만드는 Dos 공격, IP 헤더가 조작된 일련의 IP 패킷 조각들을 전송
⦁ 봉크(Bonk) : 같은 시퀀스 번호 계속 보냄
⦁ 보잉크(Boink) : 일정한 간격으로 시퀀스 번호에 빈 공간 생성
▶ DDoS(Distrivuted DoS)
여러 대의 공격자를 분산 배치해 동시에 동작하게 함으로써 특정 사이트 공격
▶ DDoS 공격 도구
⦁ Trinoo : 많은 소스로부터 통합된 UDP flood 서비스 거부 공격을 유발하는데 사용
⦁ TFN(Tribe Flood Network) : Trinoo와 비슷한 분산 도구, 많은 소스에서 하나 혹은 여러 개의 목표 시스템에 대해 서비스 거부 공격
⦁ Stacheldraht : 분산 서비스 거부 에이전트 역할
▶ DRDoS(Distributed Refleection DoS) 공격
공격자는 출발지 IP를 공격대상 IP로 위조하여 다수의 반사 서버로 요청 정보를 전송, 공격 대상자는 반사 서버로부터 다량의 응답을 받아서 서비스 거부(DoS)가 되는 공격이다.
▶ 애플리케이션 공격(DDoS 서비스 마비 공격)
⦁ HTTP GET Flooding : 과도한 Get 메시지를 이용해 웹 서버의 과부하를 유발시키는 공격
⦁ Slow HTTP Header DoS : HTTP GET 메서드를 사용해 헤더의 최종 끝을 알리는 개행 문자열을 전송하지 않음
⦁ Slow HTTP POST DoS : 요청 헤더의 Content-length를 비정상적으로 크게 설정하고 메시지 바디 부분을 매우 소량을 보냄
⦁ Slow HTTP Read DoS : TCP 윈도 크기와 데이터 처리율을 감소시킨 상태에서 다수 HTTP 패킷을 지속적으로 전송
⦁ Hulk DoS : 공격자가 공격대상 웹사이트 URL을 지속적으로 변경하면서 다량으로 GET 요청을 발생시키는 서비스 거부 공격
⦁ Hash DoS : 해시 충돌 발생시킴
▶ 네트워크 공격
⦁ 스니핑(Sniffing) : 공격대상에게 직접 공격 하지 않고 데이터만 몰래 들여다보는 수동적 공격
⦁ 네트워크 스캐너(Scanner), 스니퍼(Sniffer) : 공격자가 HW, SW 구성의 취약점을 탐색하는 공격 도구
⦁ IP 스푸핑(Spoofing) : 침입자가 인증된 컴퓨팅 시스템인 것처럼 속여 정보를 빼내기 위해 본인의 패킷 헤더를 인증된 호스트의 IP 어드레스로 위조해 타깃에 전송
⦁ ARP 스푸핑(Spoofing) : 공격자가 특정 호스트의 MAC 주소를 자신의 MAC 주소로 위조한 ARP Reply를 만들어 희생자에게 지속적으로 전송
⦁ ICMP Redirect 공격 : 스니핑 시스템을 네트워크에 존재하는 또 다른 라우터라고 알림으로써 패킷의 흐름을 바꾸는 공격 기법
⦁ 트로이 목마(Trojan Horses) : 악성 루틴이 숨어 있는 프로그램, 겉보기에는 정상적인 프로그램처럼 보이지만 실행하면 악성 코드를 실행하는 프로그램
⦁ 패스워드 크래킹/공격(Password Cracking)
- 사전(Dictionary) 공격 : ID와 패스워드가 될 가능성이 있는 단어를 파일로 만들어 놓음
- 무차별(Brute Force) 대입 공격 : 패스워드로 사용 될 수 있는 영문자, 숫자, 특수 문자 등 을 무작위로 패스워드 자리에 대입해 패스워드를 알아내는 공격 기법
- 패스워드 하이브리드 공격 : 사전 공격 + 무차별 대입 공격
- 레인보우 테이블 공격 : 패스워드 별로 해시 값을 미리 생성해 테이블에 모아 놓음
▶버퍼 오버플로우(Buffer Overflow) 공격
메모리에 할당된 버퍼 크기를 초과하는 양의 데이터를 입력해 공격
⦁ 유형 : 스택(Stack) 버퍼 오버플로우, 힙(Heap) 버퍼 오버플로우
⦁ 대응 방안 : Stack guard(카나리 값 사용), Stack Shield(Global RET), ASLR(배치 난수화)
▶ 백도어(Backdoor)
어떤 제품이나 컴퓨터 시스템, 암호시스템 혹은 알고리즘에서 정상적인 인증 절차를 우회하는 기법
▶ 주요 시스템 보안 공격기법
⦁ 포맷 스트링 공격(Format String Attack) : 외부로부터 입력된 값을 검증하지 않고 입출력 함수의 포맷 스트링을 그대로 사용하는 경우 발생하는 취약점 공격법
⦁ 레이스 컨디션 공격(Race Condition Attack) : 둘 이상의 프로세스나 스레드가 공유 자원을 동시에 접근 할 때 실행되는 프로세스가 임시파일을 만드는 경우 악의적인 프로그램을 통해 그 프로세스의 실행 중에 끼어들어 임시파일을 심볼릭 링크 함
⦁ 키로거 공격(Key Logger Attack) : 컴퓨터 사용자의 움직임을 탐지해 저장해, 개인의 중요한 정보를 몰래 빼가는 해킹 공격
⦁ 루트킷(Rootkit) : 시스템 침입 후 침입 사실을 숨긴 채 차후의 침입을 위한 백도어, 트로이 목마 설치 등 주로 불법적인 해킹에 사용되는 기능을 제공하는 프로그램의 모음
▶ 보안 관련 용어
⦁ 스피어피싱 : 사회 공학의 한 기법, 메일을 이용한 공격 기법
⦁ 스미싱 : 문자를 이용한 공격 기법
⦁ 큐싱 : 큐알 코드를 이용한 공격 기법
⦁ APT 공격 : 특정 타깃을 목표로 해 다양한 수단을 통한 지속적이고 지능적인 맞춤형 공격 기법
⦁ 랜섬웨어(Ransomware) : 감염된 시스템의 파일들을 암호화해 인질처럼 잡고 몸값을 요구하는 악성 소프트웨어
⦁ 이블 트윈 공격 : 무선 WiFi 피싱 기법, 합법적인 WiFi 제공자처럼 행세해 정보를 탈취하는 무선 네트워크 기법
⦁ 공급망 공격(Supply Chain Attack) : 소프트웨어 개발사의 네트워크에 침투하여 소스 코드의 수정 등을 통해 악의적인 코드를 삽입해 사용자 PC에 소프트웨어를 설치 또는 업데이트 시 자동적으로 감염되도록 하는 공격
'자격증 > 정보처리기사' 카테고리의 다른 글
[정보처리기사] 소프트웨어 개발 보안 구현 | 민민의 하드디스크 - 티스토리 (0) | 2023.04.17 |
---|---|
[정보처리기사] 접근 통제 기법 및 암호화 알고리즘 | 민민의 하드디스크 - 티스토리 (0) | 2023.04.17 |
[정보처리기사] 공통 모듈과 모듈화 | 민민의 하드디스크 - 티스토리 (0) | 2023.04.17 |
[정보처리기사] 개발환경 구축과 형상 관리 | 민민의 하드디스크 - 티스토리 (0) | 2023.04.17 |
[정보처리기사] 응용 SQL과 절차형 SQL | 민민의 하드디스크 - 티스토리 (0) | 2023.04.17 |