01. 악성코드
02. 바이러스
03. 웜
04. 트로이목마
05. PUP
06. 악성코드 탐지 및 대응책
01. 악성코드
제작자가 의도적으로 사용자에게 피해를 주기 위해 만든 모든 악의적 목적을 가진 프로그램 및 매크로, 스크립트 등으로 컴퓨터에서 작동하는 실행 가능한 모든 형태.
- 분류
상호 배타적인 것이 아니어서 하나의 악성 코드가 두 가지 이상의 특성을 가질 수 있다.
+동작에 의한 분류
- 바이러스: 사용자의 컴퓨터 내에서 프로그램이나 실행 가능한 부분을 몰래 변형하여 자신 또는 자신의 변형을 복사하는 프로그램. 복제와 감염으로, 다른 컴퓨터로 스스로 전파되지 않음
-웜: 인터넷 또는 네트워크를 통해 컴퓨터에서 컴퓨터로 전파되는 악성 프로그램. 윈도 또는 응용 프로그램의 취약점을 이용하거나 이메일 또는 공유 폴더, p2p를 통해 전파됨. 스스로 전파 가능
-트로이 목마: 바이러스나 웜처럼 컴퓨터에 직접적인 피해를 주지 않지만, 악의적인 공격자가 침투하여 사용자의
컴퓨터를 조종하는 프로그램. 다른 파일에 복사하지 않고 전파되지 않음
-PUP: 잠재적으로 원하지 않는 불필요한 프로그램이란 뜻으로 사용자에게 치명적인 피해를 주지 않지만 불편함을 주는 악성 코드. 프로그램 설치 시 사용자에게 직간접적인 동의를 구하지만 용도를 파악하기 어렵다
+목적에 의한 분류
-다운로더(downloader): 네트워크를 통해 어떤 데이터나 프로그램 등을 내려받는 것이 목적으로, 내려받은 데이터나 프로그램이 추가 공격을 위한 악성 코드이거나 악성 코드 작성자의 명령 집 한인 경우다.
-드로퍼(dropper): 자신 안에 존재하는 데이터로부터 새로운 파일을 생성하여 공격을 수행하는 것이 목적이다.
압축되어 있어 실행해보지 않고서는 확인이 어렵다.
-런처(launcher): 다운로더, 드로퍼 등으로 생성돼 파일을 실행하기 위해 관련 기능을 포함하고 있다
-애드웨어(adware): 광고가 포함된 s/w로 자체에 광고를 포함하거나 같이 묶어 배포한다. 압축 또는 동영상 재생 프로그램과 같은 프리웨어 설치 시에 동의 항목에 포함되어 설치 및 실행되는 경우가 많다.
사용자의 인식 없이 설치된 애드웨어는 인터넷 시작 페이지 변경, 광고와 관련된 알림 창 띄우기, 바탕화면에 광고 페이지의 바로가기 지속 생성이 목적이다.
-스파이웨어(spyware): 개인이나 기업의 정보를 몰래 수집하여 동의 없이 다른 곳에 보내는 것이 목적이다.
자신의 존재를 숨긴 채 사용자의 컴퓨터 조작 방해, 사용자의 컴퓨터 지켜보기, 사용자의 정보(검색 흔적, 사용자 로그인 정보, 은행이나 신용 계좌 정보, 은행 등) 수집한다. 패스워드 스틸러, 키로거 등으로 세분화됨.
-랜섬웨어(ransomware): 인질의 몸값을 나타내는 ransom과 s/w의 합성어로 사용자에 의해 랜섬웨어가 실행되면 파일 암호화가 진행되어 사용자가 실행하거나 읽을 수 없게 하고 돈을 요구. 거의 복구 불가능 / 백업 필요
-백도어(backdoor): 원래 시스템의 유지 보수나 유사시 문제 해결을 위해 시스템 관리자가 보안 설정을 우회한 다음 시스템에 접근할 수 있도록 만든 도구인데, 백도어를 악의적인 목적을 가진 공격자가 시스템에 쉽게 재 침입하는 데 이용하는 경우를 의미함.
백도어는 비인가된 접근을 허용하는 것으로 공격자가 사용자 인증 등의 절차를 거치지 않고 프로그램이나 시스템에 접근할 수 있도록 지원한다.
-익스플로잇(exploit): OS나 특정 프로그램의 취약점을 이용하여 공격하는 악성 코드. 기존 코드는 공격자가 직접 공격을 수행했으나 최근에는 악성 코드로 제작 및 배포하여 자동으로 공격 확산을 수행하는 경우가 많다.
-봇(bot): DDoS 공격 시 지정된 공격을 수행하도록 하는 악성 코드. 수많은 봇이 모여 대규모 공격을 수행하는 봇넷 구성
-스캐어웨어(scareware): 겁주다와 S/W의 합성어로 사용자를 놀라게 하거나 겁주는 목적이다. 악성코드에 감염되지 않았는데도 악성 코드를 탐지했다고 겁을 주고 자사의 안티바이러스 제품으로 제거해야 한다는 식으로 구매를 유도함.
+감염 증상
시스템 : 시스템 설정 정보 변경(레지스트리 키 값을 변경하여 시스템 정보를 변경한다)/FAT 파괴(시스템의 파일 시스템을 파괴함)/CMOS 변경(CMOS내용을 변경하여 부팅 시 오류를 발생 시킴)/CMOS정보 파괴/기본 메모리 감소/ 속도 저하/프로그램 자동 실행(레지스트리 값을 변경하여 시스템 부팅 시 특정 프로그램을 자동으로 실행)/프로세스 종료
네트워크: 메일 발송/정보유출/속도 저하/메시지 전송/특정 포트 오픈
하드디스크: 포맷/부트섹터 파괴
파일: 생성/삭제/감염/손상/암호화
특이점: 이상 화면 출력/특정 음 발생/메시지 상자 출력/증상 없음
02. 바이러스
1. 원시 바이러스
-단순하게 자기 복제 기능과 데이터 파괴 기능만을 가지고 있음
+부트 바이러스(몽키, 브레인, 미켈란젤로)
: 플로피디스크나 하드 디스크의 부트 섹터에 감염되는 바이러스로 MBR과 함께 PC메모리에 저장되어 부팅 시
자동으로 동작하여 부팅 후에 사용되는 모든 프로그램을 감염시킨다.
-컴퓨터 부팅 순서
- 1단계: POST(Power On Self Test)
POST(BIOS(Basic input/output System)에 의해 실행됨)는 O/S와 관련 없지만 O/S를 설치할 때 H/W자체가 시스템에 문제가 없는지 기본사항을 스스로 확인하는 POST과정을 항상 거친다.
메인보드는 LED로 문제 표시, 컴퓨터 조립 시 PCI 카드 제대로 안 끼우면 경고음
- 2단계: CMOS(Complementary Metal-Oxide Semiconductor)
PC 부팅 시 ESC 또는 F2를 누르면 CMOS에 들어갈 수 있다. CMOS에는 기본 장치에 대한 설정과 부팅 순서를 정할 수 있으며 이런 설정 사항을 BIOS가 읽어 시스템에 적용.
- 3단계: O/S 위치 정보 로드
윈도 부트 매니저가 실행되는 단계이다. bootmgr.exe가 실행되고 부트 설정 데이터(BCD Boot Configuration Data)를 읽어 실행 가능한 운영체제 목록을 보여준다. 부트 바이러스는 이 3단계에서 동작한다.
+파일 바이러스(예루살렘, 선데이, 스코피온, 크로, FCL..)
: 파일을 직접 감염시키는 것으로 하드디스크로 부팅하는 것이 일반화되면서 부트 바이러스 대안으로 등장.
일반적으로 COM이나 EXE와 같은 실행 파일과 오버레이 파일, 디바이스 드라이버 등에 감염되며 전체 바이러스의 80% 이상으로 바이러스에 감염된 실행 파일이 바이러스 코드를 실행한다.(프로그램을 덮어쓰는 경우, 프로그램 앞부분에 실행 코드를 붙이는 경우, 프로그램 뒷부분에 바이러스 코드를 부팅은 경우가 있음)
2세대 암호형 바이러스(슬로, 캐스케이드, 원더러, 버글러..)
: 바이러스 코드를 쉽게 파악하여 제거할 수 없도록 암호화한 바이러스. 1세대 바이러스는 패턴이 있어서 백신에 막히기 때문에 백신을 우회하기 위해 만듦.
ex) 바이러스 코드 -> 암호화-> 복호화 알고리즘/암호화된 바이러스 코드/복호화 키
3 세대 은폐형 바이러스(브레인, 조시, 512, 4096 바이러스)
: 2세대는 감염된 파일이 일정 기간의 잠복기를 가지도록 만들어진 것으로 감염이 돼도 실제 바이러스가 동작하기 전까지 그 존재를 파악하기 어려움
4 세대 다형성 바이러스
: 백신은 바이러스 안의 특정한 식별자로 감염 여부를 판단하는데 이를 우회하기 위해 만듦.
코드 조합을 다양하게 할 수 있는 조합(mutation) 프로그램을 암호형 바이러스에 덧붙여 감염시키기 때문에 프로그램이 실행될 때마다 바이러스 코드 자체를 변경하여 식별자 구분이 어렵게 함.
5 세대 매크로 바이러스(워드 콘셉트, 와쭈, 엑셀-라룩스, 멜리사..)
: 주로 MS 오피스 프로그램의 매크로 기능을 통해 감염되는 바이러스.(스크립트 형태의 실행환경을 이용)
->증상 - 문서가 정상적으로 열리지 않거나 암호가 설정되어있음/ 문서 내용에 깨진 글자나 이상한 문구가 포함/
매크로 메뉴가 실행할 수 없게 잠겨있다/엑셀이나 워드 작업 중 VB편집기의 디버그 모드가 실행된다.
매크로 사용에 대한 설정 보기 [옵션-보안센터-설정-매크로 설정]
6. 차세대 바이러스
최근에는 매크로 바이러스에서 네트워크와 메일을 이용하여 전파시킨다. 데이터 파괴 + 시스템 장악을 위한 백도어 기능을 가진 웜의 형태로 진화.
03. 웜
웜은 벌레와 증식을 뜻하는 말로 IT에서는 인터넷 또는 네트워크를 통해 컴퓨터에서 컴퓨터로 전파되는 프로그램을 의미.
-다른 컴퓨터의 취약점을 이용하여 스스로 전파되거나 메일로 전파되지만, 다른 파일을 감염시키는 컴퓨터 바이러스와는 다르다.
컴퓨터 바이러스 - 부트 영역에 침입하거나, 메모리에 상주하거나, 정상 파일에 침입..
웜 - 스스로 증식하는 것이 목적
1. 매스 메일러형 웜 (소빅, 두마루, 넷스카이, 베이글..)
: 자기 자신을 포함하는 대량 메일을 발송하여 확산되는 것. 전체에 40% 정도로 제목이 없는 메일이나 특정 제목의 메일을 전송하고 사용자가 이를 읽었을 때 감염.
-특징 및 증상
메일로 전파. 감염된 시스템이 많으면 SMTP 서버(25번)의 네트워크 트래픽이 증가
출처나 내용이 확인되지 않은 메일을 열었을 때 확산됨
베이글 웜은 웜 파일을 실행할 때 Can't find a viewer associated with the file 같은 가짜 오류 메시지를 출력
넷스카이 웜은 윈도 시스템 디렉터리 밑에 CSRSS.exe 실행파일을 만듦
변형된 종류에 따라 시스템에 임의의 파일을 생성
2. 시스템 공격형 웜(아고르, 블래스터 웜, 웰치아..)
O/S 고유의 취약점을 이용하여 내부 정보를 파괴하거나 컴퓨터를 사용할 수 없는 상태로 만들거나 외부의 공격자가 시스템 내부에 접속할 수 있도록 악성 코드를 설치하는 것.
-특징
전파할 때 과다한 TCP/135, 445 트래픽이 발생.
Windows, windows/system32, winnt, winnt/system32 폴더에 SVCHOST.EXE 파일을 설치
공격 성공 후 UDP/5599 등의 특정 포트를 열어 외부 시스템과 통신
시스템 파일 삭제 또는 정보 유출 가능
#웰치아 동작 - ICMP 패킷을 전송하면서 살아 있는 시스템을 찾고 컴퓨터에 설정된 시스템 IP를 기준으로 B클래스의 주소를 고정시킨 뒤 C클래스 대역의 IP를 계속 증가시키면서 ICMP 패킷을 전송한다.
시스템을 찾았으면 TCP/135번의 RPC DCOM취약점을 이용하여 공격을 시도함으로써 네트워크에 장애를 발생시키고 시스템을 비정상적으로 종료시킴.
3. 네트워크 공격형 웜(클레즈)
: 특정 네트워크나 시스템에 대해 SYN 플러딩이나 스머프와 같은 DOS 공격을 수행. 시스템 공격형 웜과 네트워크 공격형 웜은 버퍼 오버플로나 포맷 스트링과 같은 취약점을 주로 이용.
-주요 증상
네트워크가 마비되거나 급격히 느려짐/장비가 비정상적으로 동작
04. 트로이목마
: 악성 루틴이 숨어 있는 프로그램. 겉으론 멀쩡해 보이는데 안에는 악성 코드가 실행. 보통 다른 파일에 삽입되거나 스스로 전파되지 않고 백도어(원래 운영체제나 프로그램을 생성할 때 정상적인 인증 과정을 거치지 않아도 접근할 수 있도록 만든 통로=trap door, administrative hook)를 활용
프로그램 개발된 후 완전히 삭제되어야 하지만 그대로 남아있는 경우도 있다.
05. PUP
:(Potentially Unwanted Program) 사용자에게 직간접적으로 동의를 구하긴 하지만 용도를 파악하기 어려운 상태에서 설치되는 프로그램. 언제 설치했는지 모르는 프로그램들. 포르노나 크랙 사이트에 접속할 때 설치되는 경우도 있고 악성코드에 의해 설치되는 경우도 있다.
06. 악성코드 탐지 및 대응책
1. 네트워크 상태 점검하기
악성코드가 외부 공격자와의 통신이나 dos 신호를 수신하기 위해 생성한 서비스 포트를 확인한다.
2. 정상적인 프로세스와 비교하기
정상적인 프로세스와 네트워크 상태에서 확인한 프로세스를 비교/분석한다. 악성코드는 주로 iexplorer, csrr, svchost 등을 이용.
3. 악성 코드의 실제 파일 확인하기
네트워크 상태와 프로세스 분석을 통해 파악한 악성 코드의 실제 파일을 확인한다.
4. 시작 프로그램과 레지스트리 확인하기
악성 코드는 레지스터를 이용하는 경우가 많으므로 악성 코드를 삭제할 때 시작 프로그램과 레지스트리의 내용을 확인한다.
5. 악성 코드 제거하기
악성 코드 프로세스 중지하기->악성코드 파일 삭제하기-> 레지스트리 삭제하기
연습문제
1. 컴퓨터 (바이러스)란 자기 자신을 복제하여 대상 프로그램에 포함해서 해당 프로그램을 감염시키는 프로그램이다.
2. 바이러스와 웜의 차이를 설명하시오.
웜은 스스로 전파하지만 바이러스는 다른 컴퓨터로 전파하지 않음
3. 다음 중 악성 코드에 속하지 않는 것은? 4 자바스크립트
4. 다음 중 시스템 부팅 순서가 바르게 나열된 것은? 4 POST-CMOS-MBR로드-운영체제 정보 로드
5. 부팅 단계에서 부트 바이러스가 시스템에 감염되는 단계는? 3번 위에서 3단계임
6. 다음 중 파일 바이러스가 감염시키는 파일 확장자를 모두 고르시오. 1, 4 COM, EXE로 실행파일들
7. 파일 바이러스가 프로그램의 뒷부분에 위치할 때의 프로그램 실행 순서를 설명하시오.
8. 암호형 바이러스를 치료하는 방법을 간단히 설명하시오.
바이러스가 동작할 때 메모리에 올라오는 과정에서 암호화가 풀린다. 이를 이용해 메모리에 실행되어 올라온 바이러스와 감염 파일을 분석하고 치료.
9. 코드 조합을 다양하게 할 수 있는 조합 프로그램을 암호형 바이러스에 덧붙여 감염시키기 때문에 프로그램이 실행될 때마다 바이러스 코드 자체를 변경하여 식별자를 구분하기 어렵게 하는 바이러스는 무엇인가? 3 다형성 바이러스
10. 매크로 바이러스의 공격 대상을 모두 고르시오. 3,4 MS워드, MS 엑셀
11. 시스템 공격형 웜에 대해 간단히 설명하시오.
O/S 고유의 취약점을 이용하여 내부 정보를 파괴하거나 컴퓨터를 사용할 수 없는 상태로 만들거나 외부의 공격자가 시스템 내부에 접속할 수 있도록 악성 코드를 설치하는 것.
12. 악성 루틴이 숨어 있는 프로그램으로 겉보기에는 정상적인 것 같지만 사용자가 실행하면 악성 코드를 실행하는 것은 무엇인가? 2 트로이 목마
13.( )는 사용자가 설치할 의도가 없으나 용도를 쉽게 파악하기 어려운 상태에서 직간접적으로 사용자에게 동의를 구하여 설치하는 프로그램이다. PUP
14. 다음 중 악성 코드를 탐지하기 위해 확인하는 사항에 속하지 않는 것은? 4 디스크 상태
15. 윈도 시스템이 동작하기 위한 기본 프로세스에 대한 설명을 바르게 연결하시오.
CSRSS.EXE(client/server runtime subsystem: win32): 윈도우 콘솔을 관장하고 스레드를 생성 및 삭제하며 32비트 가상 MS-DOS 모드를 지원
LSASS.EXE(local security authentication server) : winlogon 서비스에 필요한 인증 프로세스를 담당한다.
SMSS.EXE(session manager subSystem): 사용자 세션을 시작하는 기능을 담당한다. 이 프로세스는 winlogon, win32(csrss.exe)를 구동하고 시스템 변수를 설정한다. 또 winlogon이나 csrss가 끝나기를 기다려서 정상적인 winlogon, csrss 종료 시 시스템을 종료.
SVCHOST.EXE(service host process): DLL(Dynamic Link Libraries)에 의해 실행되는 기본 프로세스로 한 시스템에서 여러 개의 svchost 프로세스를 볼 수 있다.
SERVICES.EXE(service control manager): 시스템 서비스를 시작 및 정지하고 그것들 간에 상호작용하는 기능을 수행.
'전공 공부 > 정보보안개론' 카테고리의 다른 글
ch. 8 암호의 이해 / 연습문제 (0) | 2021.07.22 |
---|---|
ch7. 모바일과 IoT 보안 / 연습문제 7장 (0) | 2021.07.21 |
ch.5 코드보안 / 연습문제 5장 (0) | 2021.07.14 |
ch.4 웹 보안 / 연습문제 4장 (1) | 2021.07.14 |
ch.3 네트워크 보안 / 연습문제 (0) | 2021.07.07 |