일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- 생활코딩
- jQuery
- 프론트엔드
- 세로메뉴바
- PROJECT
- 코드공유
- 실기
- 비전공자
- web
- 웹퍼블리셔
- JavaScript
- 자바스크립트
- Supabase
- 정보처리기사
- 웹디실기
- JS
- 렛츠기릿자바스크립트
- 코딩독학
- HTML
- 연산자
- 슬라이드전환
- 웹디자인기능사
- git
- 웹디자인기능사실기
- CSS
- github
- 타입스크립트
- 깃
- 리액트
- react
Archives
- Today
- Total
코딩하는라민
[정보처리기사 실기] 소프트웨어 보안 설계, 공격 기법 본문
728x90
반응형
[정보처리기사 실기] 소프트웨어 보안 설계
SW 개발 보안 3대 요소
요소 | 설명 |
기밀성 Confidentiality | 인가되지 않은 개인 혹은 시스템 접근에 따른 정보 공개 및 노출을 차단하는 특성 |
무결성 Integrity | 정당한 방법을 따르지 않고서는 데이터가 변경될 수 없으며, 데이터의 명확성 및 완전성과 고의/악의로 변경되거나 훼손 또는 파괴되지 않음을 보장하는 특성 |
가용성 Availability | 권한을 가진 사용자나 애플리케이션이 원하는 서비스를 지속해서 사용할 수 있도록 보장하는 특성 |
SW 개발 보안 용어
용어 | 설명 | 예시 |
자산 Assets | 조직의 데이터 또는 조직의 소유자가 가치를 부여한 대상 | 서버의 하드웨어 기업의 중요 데이터 |
위협 Threat | 조직이나 기업의 자산에 악영향을 기칠 수 있는 사건이나 행위 | 해킹, 삭제, 위변조, 파손 자산의 불법적 유출 |
취약점 Vulnerability | 위협이 발생하기 위한 사전조건 시스템의 정보 보증을 낮추는데 사용되는 약점 | 평문 전송 입력값 미검증 비밀번호 공유 |
위험 Risk | 위협이 취약점을 이용하여 조직의 자산 손실 피해를 가져올 가능성 |
Dos 공격 ⭐⭐
시스템을 악의적으로 공격해서 해당 시스템의 자원을 부족하게 하여 원래 의도된 용도로 사용하지 못하게 하는 공격
기법 | 설명 |
스머프/스머핑 | 🔹출발지 주소를 공격 대상의 IP로 설정하여 네트워크 전체에게 ICMP Echo 패킷을 직접 브로드캐스팅하여 마비시키는 공격 🔹바운스 사이트라고 불리는 제 3의 사이트를 이용해 공격 |
죽음의 핑 | 🔹 ICMP 패킷(ping)을 정상적인 크기보다 아주 크게 만들어 전송 🔹다수의 IP 단편화가 발생하고, 수신 측에서는 단편화된 패킷을 처리하는 과정에서 많은 부하를 발생하거나 재조합 버퍼의 오버프롤우가 발생하여 정상적인 서비스를 하지 못하도록 하는 공격 기법 |
랜드어택 | 출발지 IP와 목적지 IP를 같은 패킷 주소로 만들어 보냄 수신자가 자기 자신에게 응답을 보내게 하여 시스템의 가용성을 침해하는 공격 기법 |
티어드롭 | 🔹IP 패킷의 재조합 과정에서 잘못된 Fragment Offset 정보로 인해 수신시스템이 문제를 발생하도록 만드는 기법 🔹공격자는 IP Fragment Offset 값을 서로 중첩되도록 조작하여 전송하고, 이를 수신한 시스템이 재조합하는 과정에서 오류가 발생, 시스템의 기능을 마비시키는 방식 |
봉크/보잉크 | 프로토콜의 오류 제어를 이용한 공격 기법 시스템의 패킷 재전송과 재조립이 과부하 유발 🔹 봉크 : 같은 시퀀스 번호를 계속 보냄 🔹 보잉크 : 일정한 간격으로 시퀀스 번호에 빈 공간 생성 |
UDP 플러딩 | 🔹대량의 UDP 패킷을 만들어 임의의 포트 번호로 전송하여 응답 메시지를 생성하게 하여 지속해서 자원을 고갈시키는 공격 🔹ICMP 패킷은 변조되어 공격자에게 전달되지 않아 대기함 |
SYN 플러딩 | 🔹TCP 프로토콜의 구조적인 문제를 이용한 공격 🔹서버의 동시 가용 사용자 수를 SYN 패킷만 보내 점유하여 다른 사용자가 서버를 사용 불가능하게 만드는 공격 🔹공격자는 ACK 를 발송하지 않고 계속 새로운 연결 요청을 하게 되어 서버는 지원 할당을 해지하지 않고 자원만 소비하여 고갈됨 |
DDoS 공격 ⭐⭐
여러 대의 공격자를 분산 배치하여 동시에 동작하게 함으로써 특정 사이트를 공격하는 기법
침입한 시스템에 소프트웨어를 설치하고 이를 실행시켜 원격에서 공격 개시
DRDoS 공격
출발지 IP 를 공격 대상 IP로 위조하여 다수의 반사 서버로 요청 정보를 전송, 공격 대상자는 반사 서버로부터 다량의 응답을 받아서 서비스 거부(DoS)가 되는 공격
새션 하이재킹 ⭐
케빈 미트닉이 사용했던 공격 방법
TCP의 세션 관리 취약점을 이용한 공격 기법
내용 | |
공격 방식 | Victim 과 Server 사이의 패킷을 스니핑하여 시퀀스 번호를 획득하고, 공격자는 데이터 전송 중인 Victim 과 Server 사이를 비동기화 상태로 강제적으로 만들고, 스니핑하여 획득한 클라이언트 시퀀스 번호를 이용하여 공격 |
비동기 상태로 패킷이 유실되어 재전송 패킷이 증가한다. |
애플리케이션 공격 기법
기법 | 설명 |
HTTP GET 플러딩 | 🔹과도한 Get 메시지를 이용하여 웹 서버의 과부하를 유발시키는 공격 🔹HTTP 캐시 옵션을 조작하여 캐싱 서버가 아닌 웹 서버가 직접 처리하도록 유도, 웹 서버 자원을 소진시키는 서비스 거부 공격 |
Slowloris (Slow HTTP Header DoS) | HTTP GET 메서드를 사용하여 헤더의 최종 끝을 알리는 개행 문자열인 \r\n\r\n을 전송하지 않고, \r\n 만 전송하여 대상 웹 서버와 연결 상태를 장기간 지속시키고 연결 자원을 모두 소진시키는 서비스 거부 공격 |
RUDY (Slow HTTP POST DoS) | 요청 헤더의 Content-Length 를 비정상적으로 크게 설정하여 메시지 바디 부분을 매우 소량으로 보내 계속 연결 상태를 유지시키는 공격 |
Slow HTTP Read DoS | TCP 윈도 크기와 데이터 처리율을 감소시킨 상태에서 다수 HTTP 패킷을 지속적으로 전송하여 대상 웹 서버의 연결 상태가 장시간 지속, 연결 자원을 소진시키는 서비스 거부 공격 |
Hulk DoS | |
Hash DoS |
네트워크 공격 기법 ⭐⭐
스니핑 | 공격 대상에게 직접 공격하지 않고 데이터만 몰래 들여다보는 수동적인 공격 기법 | |
패스워드 크래킹 | 사전 크래킹 | ID 와 패스워드를 크랙하기 위해서 ID와 패스워드가 될 가능성이 있는 단어를 파일로 만들어 놓고 이 파일의 단어를 대입하여 크랙하는 공격 기법 |
무차별 크래킹 | 패스워드로 사용될 수 있는 영문자, 숫자, 특수문자 등을 무작위로 패스워드 자리에 대입하여 패스워드를 알아내는 공격 기법 | |
패스워드 하이브리드 공격 | 사전 공격과 무차별 공격을 결합하는 공격 기법 | |
레인보우 테이블 공격 | 패스워드 별로 해시 값을 미리 생성해서 테이블에 모아놓고, 크래킹하고자 하는 해시 값을 테이블에서 검색해서 역으로 패스워드를 찾는 공격 기법 | |
IP 스푸핑 | 침입자가 인증된 컴퓨팅 시스템인 것처럼 속여 타깃 시스템의 정보를 빼내기 위해 본인의 패킷 헤더를 인증된 호스트의 IP 어드레스로 위조하여 타깃에 전송하는 공격 기법 | |
ARP 스푸핑 | ARP 스푸핑은 공격자가 특정 호스트의 MAC 주소를 자신의 MAC 주소로 위조한 ARP Reply 를 만들어 희생자에게 지속적으로 전송하여 희생자의 ARP Cache Table 에 특정 호스트의 MAC 정보를 공격자의 MAC 정보로 변경, 희생자로부터 특정 호스트로 나가는 패킷을 공격자가 스니핑하는 공격 기법 | |
ICMP Redirect 공격 | 🔹ICMP 리다이렉트는 3계층에서 스니핑 시스템을 네트워크에 존재하는 또 다른 라우터라고 알림으로써 패킷의 흐름을 바꾸는 공격 기법 🔹ICMP Redirect 메시지를 공격자가 원하는 형태로 만들어서 특정 목적지로 가는 패킷을 공격자가 스니핑하는 공격 기법 | |
트로이목마 | 악성 루틴이 숨어있는 프로그램을 겉보기에는 정상적인 프로그램으로 보이지만 실행하면 악서 코드를 실행하는 프로그램 | |
네트워크 스캐너, 스니퍼 | 네트워크 하드웨어 및 소프트웨어 구성의 취약점 파악을 위해 공격자가 취약점을 탐색하는 공격 도구 |
버퍼 오버플로우 공격
메모리에 할당된 버퍼 크기를 초과하는 양의 데이터를 입력하여 이로 인해 프로세스의 흐름을 변경시켜서 악서 코드를 실행시키는 공격 기법
유형 | 설명 |
스택 버퍼 오버플로우 공격 | 🔹Local value 나 함수의 Return Address 가 저장되는 스택 영역에서 발생하는 오버플로우 공격 🔹스택 영역에 할당된 버퍼 크기를 초과하는 양의 데이터를 입력하여 복귀 주소를 변경하고 공격자가 원하는 임의의 코드를 실행하는 공격 기법 |
힙 버퍼 오버플로우 공격 | 🔹프로그램 실행 시 동적으로 할당되는 힙 영역에 할당된 버퍼 크기를 초과하는 데이터를 입력하여 메모리의 데이터와 함수 주소 등을 변경, 공격자가 원하는 임의의 코드를 실행하는 공격 기법 🔹인접한 메모리의 데이터가 삭제될 수 있으며, 해당 위치에 특정 함수에 대한 포인터 주소가 있으면 이를 악용하여 관리자 권한 파일에 접근하거나 공격자의 특정 코드를 실행함 |
대응방안
방안 | 설명 | |
스택가드 | 카나리라고 불리는 무결성 체크용 값을 복귀 주소와 변수 사이에 삽입해두고, 버퍼 오버플로우 발생 시 카나리 값을 체크하고, 변할 경우 복귀 주소를 호출하지 않는 방식으로 대응 | |
스택쉴드 | 함수 시작 시 복귀 주소를 Global RET 라는 특수 스택에 저장하고, 함수 종료 시 저장된 값과 스택의 RET 값을 비교해서 다를 경우 오버플로우로 간주하여 중단 | |
ASLR (Address Space Layout Randomization) | 메모리 공격을 방어하기 위해 주소 공간 배치를 난수화하고, 실행 시마다 메모리 주소를 변경시켜 버퍼 오버플로우를 통한 특정 주소 호출을 차단 | |
안전한 함수 활용 | 취약 함수 : strcat(), strcpy(), gets(), scanf(), sscanf(), vscanf(), vsscanf(), sprintf(), vsprintf() | 안전 함수 : strncat(), strncpy(), fgets(), fscanf(), vfscanf(), snprintf(), vsnprintf() |
백도어
정상적인 인증 절차를 우회하는 기법
고정된 형태가 있는 것은 아니고 프로그램에 일부로 감춰져 있을 수도 있고, 독자적인 프로그램이나 하드웨어 모습을 갖기도 함
시스템 보안 공격기법
기법 | 설명 |
포맷 스트링 공격 | 포맷 스트링을 인자로 하는 함수의 취약점을 이용한 공격 외부로부터 입력된 값을 검증하지 않고 입출력 함수의 포맷 스트링을 그대로 사용하는 경우 발생하는 취약점 공격 기법 |
레이스 컨디션 공격 | 둘 이상의 프로세스나 스레드가 공유자원을 동시에 접근할 때 접근 순서에 따라 비정상적인 결과가 발생하는 조건/상황 프로세스가 임시파일을 만드는 경우 악의적인 프로그램을 통해 실행 중에 끼어들어 임시 파일을 심볼릭 링크하여 악의적인 행위를 수행 |
키로거 공격 | 키보드의 움직임을 탐지해서 저장하고, ID나 패스워드, 계좌번호, 카드 번호 등과 같은 개인정보를 몰라 빼가는 해킹 공격 키보드 활동을 기록하는 것을 키로깅 또는 키스트로크 로깅이라고 한다. |
루트 킷 | 시스템에 침입 후 침입 사실을 숨긴 채 차후의 침입을 위한 백도어, 트로이목마 설치, 원격 접근, 내부 사용 흔적 삭제, 관리자 권한 획득 등 주요 불법적인 해킹에 사용되는 기능을 제공하는 프로그램 모음 |
보안 관련 용어
용어 | 설명 |
스피어 피싱 | 사회 공학의 한 기법 일반적인 이메일로 위장한 메일을 지속적으로 발송하여 메일 본문 링크나 첨부된 파일을 클릭하도록 유도하여 개인정보 탈취 |
스미싱 | SMS 와 피싱의 합성어로 문자메시지를 이용하여 신뢰할 수 있는 기업, 사람인 것처럼 가장하여 개인정보 요구하거나 소액 결제 유도 |
큐싱 | 큐알 코드와 피싱의 합성어로 금융 업무를 처리하는 사용자에게 인증이 필요한 것처럼 속여 큐알 코드를 통해 악성 앱을 내려받도록 유도 |
APT 공격 | 다양한 수단을 통한 지속적이고 지능적인 맞춤형 공격 기법 |
제로데이 공격 | 보안 취약점이 발견되어 널리 공표하기 전 해당 취약점을 악용하여 악의적인 코드를 삽입하거나 배포 서버에 접근하여 악의적인 파일로 변경하는 방식을 통해 감염시키는 공격 |
웜 | 스스로를 복제하여 네트워크 등의 연결을 통하여 전파하는 악성 소프트웨어 컴퓨터 프로그램 바이러스와 비슷하지만, 바이러스가 다른 실행 프로그램에 기생하여 실행되는 데 반해 웜은 독자적으로 실행되며 다른 실행 프로그램이 필요하지 않은 특징이 있음 |
사이버 킬체인 | 록히드 마틴의 공격 공격형 방위 시스템으로 지능적, 지속적 사이버 공격에 대해 7단계 프로세스별로 공격분석 및 대응을 체계화한 APT 공격 방어 분석모델 |
랜섬웨어 | 악성 코드의 한 종류 감염된 시스템의 파일들을 암호화하여 복호화할 수 없도록 하고, 피해자로 하여금 암호화된 파일을 인질처럼 잡고 몸값을 요구하는 악성 소프트웨어 |
악성 봇 | 스스로 실행되지 못함 해커의 명령에 의해 원격에서 제어 또는 실행 가능한 프로그램 또는 코드 백도어를 통해 전파되며, 스팸 메일 전송이나 분산 서비스 거부 공격 등에 악용 '좀비 PC' 는 악성 봇에 의해 감염된 PC 임 |
봇넷 | 악성 프로그램에 감염되어 악의적인 의도로 사용될 수 있는 다수의 컴퓨터들이 네트워크로 연결된 형태 |
공급망 공격 | 소프트웨어 개발사의 네트워크에 침투하여 소스 코드 수정 등을 통해 악의적인 코드를 삽입하거나 배포 서버에 접근하여 악의적인 파일로 변경하는 방식을 통해 감염시킴 |
이블 트윈 공격 | 무선 Wifi 피싱 기법으로 공격자는 합법적인 Wifi 제공자처럼 행세하며 노트북이나 휴대 전화로 핫스팟에 연결한 무선 사용자들의 저보를 탈취 |
728x90
반응형
'자격증 공부 > 정보처리기사' 카테고리의 다른 글
[정보처리기사 실기] IP 주소 계산 및 실기 중요 개념 (19) | 2023.10.03 |
---|---|
[정처기 실기] SQL 응용 - DDL, DML, DCL 명령어 (29) | 2023.10.02 |
[정보처리기사 실기] 공통 모듈 (57) | 2023.09.19 |
[정보처리기사 실기] 개발환경 구축, 형상관리 (0) | 2023.09.19 |
[정처기 실기] 프로그래밍 언어 활용 - 자료형, 식별자, 연산자 (0) | 2023.04.19 |