본문 바로가기
침해사고 분석 및 대응

침해사고 유형 별 시나리오 및 주요 취약점

by 열콩 2023. 12. 31.

- 침해사고 유형 별 시나리오

1) 리버스 쉘

-- 공격 절차

공격자는 공격 대상 서버 내부에 침입 성공 후 웹 서버의 루트 계정을 탈취하기 위해 telnet brute force/사전 공격 등을 수행하여 루트 계정 패스워드 알아냄. 이후 반복적인 침입을 위해 루트 권한을 가진 일반 사용자처럼 보이는 계정을 만들고, netcat을 이용한 리버스 쉘 연결 작업을 /etc/crontab에 등록하여 주기적으로 리버스 쉘 연결 후 악의적 공격 수행

**리버스 쉘과 일반 바인드 쉘의 차이: 바인드 쉘은 클라이언트가 타겟 서버에 접속해 타겟 서버의 쉘을 획득하는 방식이고, 리버스 쉘은 타겟 서버가 클라이언트 측으로 접속하게 하여 타겟 서버의 쉘을 획득하는 방식임. 일반적으로 방화벽의 인바운드 정책은 엄격하나 아웃바운드 정책은 느슨하므로 리버스 쉘을 사용하면 방화벽 필터링을 우회할 수 있음

**netcat: 다양한 네트워크 프로그램을 시뮬레이션하기 위한 목적으로 만들어진 프로그램.

명령어 형식은 nc [사용할 옵션] host port

 

2) 루트킷

-- 공격 절차

공격자는 취약점 스캔(nessus )을 통해 tomcat 관리자 페이지 취약점 발견 후 취약점 exploit을 통해 백도어(리버스 쉘) 및 루트킷 설치. 이후 리버스 쉘 공격 절차와 상동.

**exploit: S/WH/W의 버그 또는 취약점을 이용해 공격자가 의도한 동작이나 명령을 실행하도록 하는 익스플로잇 코드 또는 그러한 행위를 의미함.

ex) 버퍼 오버플로우 익스플로잇 >> NOP(0x90_아무 기능도 수행하지 않는 명령어)러 쉘 코드 주소를 가리고 복귀 주소(RET) 값을 공격자가 삽입한 쉘 코드가 위치하는 주소로 변경

**취약점 정보 분류 체계

CVE: 알려진 S/W 보안 취약점을 표준화한 식별자 목록. 미국 비영리 회사 MITRE에서 처음 만든 뒤 미국 NIST가 국가 취약성 데이터베이스를 만들어 협력체계 구축함. [CVE-해당년도-취약점] 번호 형식

CVSS: 보안취약점 평가 체계. 기본 기준, 시간적 기준, 환경적 기준을 고려해 취약점의 심각한 정도를 0.0~10.0까지 수치화하여 숫자가 높을수록 심각도 높음을 나타냄.

CWE: MITRE가 중심이 되어 소프트웨어에서 공통적으로 발생 가능한 보안약점(Weakness_취약점으로 연결될 수 있는 오류)을 체계적으로 분류한 목록.

CWSS: CWE에 등록된 취약점 평가 체계

 

3) DBD(Drive By Download)

-- 공격절차

공격자는 악성코드 경유지로 사용할 웹서버와 중계지로 사용할 사이트 웹서버를 해킹해 악성 스크립트 삽입함. 희생자는 평소 자주 사용하던 사이트에 접속하고 이때 악성코드에 감염되어 있던 사이트가 중계지로 리다이렉트하는 난독화된 iframe 악성 스크립트가 삽입된 응답페이지 반환. 사용자는 해당 iframe 태그로 인해 중계지로 이동하고 같은 절차로 악성코드 유포지에 리다이렉트되어 사용자에게 브라우저 취약점을 이용하는 익스플로잇 코드 및 악성코드가 설치되어 동작함. 난독화된 악성 스크립트를 통해 보안 장비를 통한 분석 및 탐지 어렵게 하고, 다수의 경유지&중계지를 거치므로 유포지에 대한 추적이 힘들게 함. 방문/경유/중계/유포 페이지가 따로 있음을 기억.

**난독화: 프로그램 코드를 읽기 어렵게 만드는 기술로 코드의 가독성을 낮춰 분석을 어렵게 하거나 패턴/시그니처 기반 보안 장비의 탐지를 우회할 목적으로 이용. 소스코드 난독화, 바이너리 난독화로 나뉨. 10진수 난독화에 자주 이용되는 함수는 eval()

**홈페이지를 통한 악성코드의 유포 목적은 파밍(가짜 사이트를 진짜 사이트인 것처럼)형 악성코드를 통해 금융 및 개인정보 탈취 목적의 형태나 특정 타겟 대상의 악성코드 유포하는 워터링 홀(사용자가 자주 방문하는 사이트를 감염시켜 두는 것) 방식의 APT 공격이 주된 목적.

4) 악성코드 행위 분석

-- 공격절차

사용자가 악성코드에 감염된 사이트에 접속해 사용자도 모르는 사이에 악성코드 유포지로 이동하고 취약점을 이용한 익스플로잇이 성공하며 드롭퍼 유형의 악성코드가 설치됨. 이후 익스플로잇 및 리버스 쉘 시나리오와 상동

**드롭퍼: 악성 행위를 수행할 코드가 압축/암호화된 형태로 존재하여 백신 등의 탐지를 우회하고 동작 시점에 내부 압축해제/복호화 루틴을 통해 악성코드를 생성. 실제 실행하기 전까지 확인 어려움.

**AVT(Advanced Volatile Threats): 지능형 휘발성 위협은 디스크 상에 악성코드의 흔적을 남기지 않고 메모리상에서만 실행시키면서 시스템에 피해를 입히는 파일리스 형태의 공격. 디스크 내에 악성코드가 파일 형태로 남지 않기 때문에 안티 바이러스 솔루션을 통한 파일 스캔이 불가하여 탐지가 어려움. 최근에는 드롭퍼 기반의 AVT 유형 멀웨어가 유행하고 있음.

**인젝터: 드롭퍼의 특수한 형태로, 파일 생성 없이 자신의 데이터를 이용해 바로 새로운 프로세스를 생성해 메모리에 상주시키는 형태의 악성코드

 

5) 워터링 홀

-- 공격절차

공격자는 공격 대상의 트래픽 등의 정보를 분석해 자주 이용하는 사이트를 파악 후 해당 사이트를 해킹하여 공격 대상의 주소 대역에서 접근하는 사용자에 대해 악성코드 유포지로 리다이렉트하는 악성 스크립트를 삽입. 공격 대상이 자기도 모르는 사이에 유포지로 리다이렉트되어 악성코드에 감염됨. 공격자는 연결된 리버스 쉘을 이용해 포트 스캐너, 포트포워딩을 위한 SSH 클라이언트/키로거 등의 추가 공격 도구를 다운받은 후, 공격 대상의 내부 시스템/네트워크 정보를 수집하여 내부 서버를 알아내 키로거를 통한 관리자 계정 탈취에 성공. 지속적인 침투를 위해 백도어를 시작 프로그램에 등록하여 지속적인 공격을 수행하고, 디스크 파괴형 악성코드를 통해 시스템의 장애를 유발시킴. APT 공격 중 일부.

**APT(Advanced Persistent Threat): 지능형 지속 위협은 특정 표적을 대상으로 취약점 파악 및 다양한 공격 기법을 이용해 지속적인 공격 활동을 통해 정보 탈취, 시스템 파괴 등의 손상을 입히는 공격 프로세스. 사회공학기법, 제로데이 취약점 등 다양한 공격 기법을 활용해 공격을 수행하고 공격 목표 달성할 때까지 장기간&지속적으로 은밀하게 공격 진행한다는 것이 특징. 스피어 피싱, 워터링 홀, USB 메모리 등으로 침투.

절차 [초기 정찰 - 초기 침입 - 거점 마련 - 권한 상승 - 내부 정찰 - 내부 침투 지속성유지 - 목표 달성]

**사이버 킬 체인: 사이버 상에서 표적에 대한 공격을 위해 일련의 공격 단계를 거치는 중, 어느 한 단계의 공격을 탐지/차단/대응해 목표 달성 이전에 선제적으로 공격을 무력화시키는 방어 시스템.

 

 

- 주요 취약점

--GNU bash 취약점(ShellShock CVE-2014-6271)

2014.09. 스테판 챠젤라스에 의해 최초 발견된 취약점. bash가 제공하는 함수 선언 기능에서 발생. 함수 선언문 끝에 임의의 명령어를 삽입하면 해당 명령어까지 실행함.

>> 취약한 버전의 bash를 사용하지 않도록 최신 버전으로 업데이트, CGI 서비스 사용 여부 확인 후 해당 서비스 사용하지 않는 경우 서비스를 중지/삭제, 네트워크 보안장비(IPS/IDS) 단서 공격 시그니처 등록해 차단

 

--SSL/TLS 관련 취약점

1) HeartBleed(CVE-2014-0610): OpenSSL 라이브러리의 하트비트 확장 모듈의 버그로 인해 발생. 서버에 저장된 중요 메모리 데이터가 노출되는 취약점.

>> 취약점이 존재하지 않는 OpenSSL 버전으로 업데이트, 네트워크 보안 장비에 필터링(0x0300, 0x0301, 0x0302에 대한 필터링_순서대로 SSLv3.0, TLSv1.0, TLSv1.1) 정책 수립

2) FREAK(CVE-2015-0204): 프랑스 국립 연구소 및 MS사에서 SSL을 통해 강제로 취약한 RSA로 다운그레이드 시킬 수 있는 취약점 발견. ssl3_get_key_exchange 함수에서 발생하는 취약점으로, 공격자가 MITM 공격을 통해 512비트 RSA로 다운그레이드할 수 있음.

>> OpenSSL 버전 최신으로 유지하고, 버전 업그레이드 어려울 경우 “RSA_EXPORT” cipher suite 비활성화, 일반 사용자는 취약점에 영향을 받는 OS 및 브라우저 업그레이드

3) LogJam: 중간자 공격을 통해 사용자와 웹/이메일 서버 간의 TLS 통신을 다운그레이드시킬 수 있는 취약점. TLS 프로토콜의 취약점으로, 공격자가 임시 디피-헬만 키교환을 사용해 TLS 연결을 512비트 수출 버전 암호화로 다운그레이드.

>> 클라이언트는 최신 버전의 브라우저 사용, 서버는 명시적으로 exportcipher suite 사용하지 않기, 2048비트 디피-헬만 그룹 생성하거나 타원곡선 디피-헬만 cipher suite 사용

4) POODLE(CVE-2014-3566): SSL/TLS 협상 시 법전 다운그레이드 공격을 통해 SSLv3.0(블록 암호화 모드인 CBC 모드를 사용하는 경우 발생하는 패딩된 암호 블록이 MAC에 의해 보호되지 않는 취약점)을 사용하도록 강제한 후 중간자공격을 통해 암호화되어 송수신되는 쿠키 정보나 데이터 추출.

>> SSLv3.0을 사용하지 않도록 웹서버 설정, OpenSSL 버전 최신으로 유지

5) DROWN(CVE-2016-0800): 취약한 구식 암호화 기법을 통한 RSA 복호화에서 따온 이름으로, SSLv2.0을 사용하는 서버에 악성 패킷을 보내 인증서 키 값을 알아내고 이를 이용해 암호화된 통신 내용을 복호화해 주요 정보 탈취

>> SSLv2.0 사용하지 않도록 웹서버 설정, OpenSSL 최신 버전으로 유지

6) HEIST: 자바스크립트로 브라우저에 대한 사이드채널 공격을 통해 암호문의 정확한 크기를 알아내는 공격

>> 3자 쿠키 비허용, 자바스크립트 사용 비활성화

 

--NTP DDoS

NTP(Network Time Protocol_네트워크를 통해 컴퓨터 시스템 간 시간 동기화에 사용하는 프로토콜. 123/UDP) 서버의 특정 명령어인 monlist(최근 NTP서버에 접속한 600개의 아이피 정보)를 요청함으로써 대규모 증폭&반사 형태의 디도스 공격을 유발할 수 있는 취약점

>> ntpd version 명령으로 버전 확인 후 monlist 기능이 해제된 최신 버전으로 업그레이드, ntpd.conf 파일 내에서 disable monitor 설정을 통해 monlist 기능 해제, 방화벽을 통한 차단

 

--SSDP DDoS

SSDP(Simple Server Discovery Protocol_네트워크 상의 서비스나 정보를 검색하는 프로토콜로, 프린터, 스캐너, IP 카메라 등 IoT 기기의 네트워크 탐색 용도로 사용. 1900/UDP)를 이용해 DDoS 공격 수행.

출발지 주소 희생자로 조작한 M-SEARCH * HTTP/1.1로 시작하는 요청 패킷을 작성해 전송하면 외부에 서비스 오픈되어 있는 IoT장비들로부터 대량의 응답이 전송됨.

>> 업무에 불필요한 UDP 포트 차단 및 UDP 서비스 중지, 보안 장비를 통한 임계치 기반의 UDP 패킷 차단

'침해사고 분석 및 대응' 카테고리의 다른 글

보안 솔루션 종류 및 특징  (1) 2023.12.31
침입차단시스템(iptables)  (1) 2023.12.31
침입탐지시스템(Snort)  (0) 2023.12.31