바이러스와 백신
(1) 악성코드에 대한 이해
○ 악성코드 : 제작자가 의도적으로 다른 사람에게 피해를 주기 위해 마든 모든 악의적인 프로그램, 매크로, 스크립트 등 컴퓨터상에서 작동하는 모든 실행 가능한 형태
○ 컴퓨터바이러스
▷ 정의 : 이론적인 정의로는 자신 또는 자신의 변형을 컴퓨터 프로그램이나 매크로, 스크립트 등 실행 가능한 부분에 복제하는 명령어들의 조합으로 정의되며, 실제적으로는 사용자 몰래 다른 곳에 자기 자신을 복제하는 프로그램, 악성프로그램으로 통합되는 추세에 있다.
▷ 부트 바이러스 : 부트 영역에 감염되는 바이러스(플로피 디스크 / 하드 디스크) 감염 후 위도우 환경에서는 치료가 어려우므로 도수 부팅 후 치료 필요
▷ Brain 바이러스, Michelangelo 바이러스, Monkey 바이러스, Anti-CMOS 바이러스, WYX 바이러스 등
▷ 파일 바이러스 : 일번적으로 실행 가능한 프로그램 파일에 감염되는 바이러스이며, 윈도우에서는 다양한 형태의 실행 파일 존재, 다양한 형태의 파일에 감염
▷ 도스용 파일 바이러스, 위도우용 파일 바이러스, 매크로 바이러스
▷ 부트 / 파일 바이러스 : 부트 영역 및 파일에 모두 감연되는 바이러스
▷ 나타스 바이러스, 절반 바이러스, 침입자 바이러스, 테킬라 바이러스 등 소수
▷ 매크로 바이러스 : 응용프로그램에서 지원하는 매크로 기능을 이용해서 자신을 복제하는 능력을 가진 바이러스
○ 트로이목마 : 백도어 종류도 트로미목마의 한 종류이며 트로이목마 프로그램은 바이러스와 달리 자기 복제 능ㄹ력이 없으며 유틸리티 프로그램 내에 악의의 기능을 가지는 코드를 내장하여 배포하거나 그 자체를 유틸리티 프로그램으로 위장하여 배포한다. 트로이목자가 설치되면 특정한 환경이나 조건 혹은 배포자의 의도에 따라 사용자의 정보 유출이나 자료파괴 같은 피해를 입을 수 있다.
▷ 주요기능 : 원격조정, 패스워드 가로채기, 키보드입력 가로채기, 시스템 파일 파괴 등
▷ Netubs, Back orifice 등
○ 인터넷웜 : 너트워크 / 전자메일을 통해 자신을 복제하는 악성 프로그램으로 인터넷웜(Internet Worm)이라고도 함
▷ 전파 방법
▶ 전자메일 첨부파일
▶ 정상적인 전자메일 첨부파일
▶ 네트워크 취약점 이용
▷ 대표적인 종류
▶ I-Worm/Happy99, I-Worm/Hybris, I-Worm/Naked, I-Worm/Navidad, I-Worm/ExploreZip, I-Worm/Wininit 등
▶ sql 슬래머
○ 메일폭탄 : 메일폭탄(Mail bomb)이란 상대방에게 피해를 줄 목적으로 특정한 사람이나 특정한 시스템을 대산으로 수천, 수만 통의 전자 우편을 일시에 보내거나, 대용량의 전자우편을 지속적으로 보내 결국 해당 사이트의 컴퓨터 시스템에 고장을 이르키는 기술이다.
○ Joke : 사용자에게 데이터 파괴 등의 구체적인 피해를 입히는 것은 아니지만 바이러스와 유사한 증상으로 사용자들이 놀라게 하는 각종 프로그램
- Delete_Game, Format_Game, Cokegift, Puzzle 등
- Hoax/Myth : 컴퓨터바이러로 잘못 알려진 일종의 스팸(Spam) 메일 부작용 : 보안 의식 저하 → 양치기 소년 효과
○ GoodTimes virus, join the crew, Sulfnbk.exe 등
○ 악성 스크립트 : 스크립트 기능을 이용해 제작한 악성 프로그램
- 배치파일, mlRC 스크립트, VBS(Visual Basic Script), JS(Java Script)
○ 스파이웨어(Spyware) : 개인 정보 일부를 해당 SW 개발자가 알 수 있도록 제작/명시한 정상적인 프로그램
트로이목마
(1) 트로이목마의 개요
○ 트로이목마 프로그램은 바이러스와 달리 자기 복제 능력이 없으며 유틸리티 프로그램 내에 악의의 기능을 가지는 코드를 내장하여 배포하거나 그 자체를 유틸리티 프로그램으로 위장하여 배포한다. 트로이목마가 설치되면 특정한 환경이나 조건 혹은 배포자의 의도에 따라 사용자의 정보 유출(Backdoor)이나 자료파괴 같은 피해를 입을 수 있다.
○ 트로이목마 기능(일반적인 기능)
- 원격 조정 : 원격조정은 해커가 트로이목마에 감염된 시스템을 통해서 악의적인 행위를 할 수 있다. 해커는 감염된 시스템의 파일, 데이터 등 시스템에 관한 모든 것을 와변하게 조정할 수 있다.
- 패스워드 가로채기 : 트로이목마에 감염된 시스템에 존재하는 캐시된 패스워드를 찾아내는 것이다. 주로 메신저, 인터넷에 존재하는 웹사이트, 기타 응용프로그램 사용시 요구되는 사용자 계정과 패스워드를 사용자 모르게 공격자의 이메일 주소로 전송한다.
- 키보드 입력 가로채기 : 시스템에서 사용자가 입력하는 키보드 입력을 임의의 로그파일에 복사한 후 해커가 설정해 놓은 특정한 이메일 주소로 전송하거나 실시간으로 전송한다.
- 시스템 파일 파괴 형태 : 감염된 시스템에 있는 파일이나 데이터들을 삭제하는 기능을 가지고 있다.
○ 트로이목마 탐지 방법
- 안티바이러스 프로그램에 의한 탐지
- 레지스트리를 검사하여 자동실행 설정된 내용 검사
- 사용자의 컴퓨터에서 사용하지 않는 포트가 열려져 있는지 검사
- 사용자의 컴퓨터에 설치하지 않는 프로그램이나 파일이 설치되었는지 검사
(2) 트로이목마 S/W 사례별 이해
○ NetBus
- 넷버스는 file manager, registry manager, Application Redirect, 화면 캡쳐, 키보드입력정보 보기 등이 기능
- 서버 프로그램의 접속 패스워드 설정 기능
- 서버프로그램의 포트변경 기능
○ Back Orifice
- 백오리피스는 CDC라는 해킹그룹에서 만든 해킹도구로 파일시스템의 모든 파일에 대한 접근, 프로세스 생성/삭제, 시스템 패스워드 유출, 키보드 모니터링, 네트워크 자원의 공유지정, 파일조작, 레지스터리조작 등의 기능
- 서버 프로그램의 접속패스워드 설정 기능
○ School Bus 등
- 패스워드 유출, 캐쉬영역의 패스워드 추출, 파일관리, 키보드 입력 모니터링 등의 기능
- 서버 프로그램의 접속 패스워드 설정 기능
○ ackcmd
- 위도우 2000을 위한 특수한 원격 명령 프롬프트, TCP ACK 세그먼트만 사용해서 통신을 하므로 어떤 경우 방화벽을 통과하는 연결이 가능하다.
- 즉, netstat -an 명령어로 연결세션정보를 얻기 어렵다.
○ 루트킷
- 루트킷의 목적은 자신과 다른 소프트웨어를 보이지 않게 숨기고 사용자가 공격자의 소프트웨어를 인지하고 제거할 가능성을 피하는 것이다. 루트킷은 파일 서버, 키로거(keylogger), 봇넷(botent) 및 재전송 메일(remailer)을 포함하여 거의 모든 소프트웨어를 숨길 수 있다. 따라서, 대개 감지할 수 없으며 제거하기도 거의 불가능합니다.
▶ 루트킷 기능
- 트래픽이나 키스트로크를 감시
- 시스템에 트로이목마 프로그램 설치
- 로그파일 수정
- 프로세스나 파일 숨김 기능
- 자동실행 설정
- 기타
▶ 루트킷 종류
- 윈도우 용 : FU-Rootkit, Hxdef100, NTRootit 등등
- 리눅스 용 : Suckit, lrk4, lrk5, adore 등
▶ 루트킷 탐지 : 안티바이러스 프로그램이나 전용도구를 이용하여 탐지 및 제거
- 안티바이러스 프로그램에 의한 탐지
- 일반적인 행동 기반의 루트킷 감지 소프트웨어 : Rootkit Revealer 등
공개해킹 도구
크래킹 S/W
(1) 크래킹의 개요
○ 크래킹은 해킹과 비교하여 악의적인 목적을 가지고 시스템에 침입하는 행위를 말하여, 다른 의미로 쉐어웨어 프로그램을 정식버전으로 변환하는 의미하기도 한다.
○ 해킹도구로써의 크래킹 기술은 사용자의 ID, 패스워드를 찾는 도구로써 활용되고 있는데 이때의 공격원리는 ID, 패스워드를 대입하여 맞는지, 틀리는지 지속적으로 수행해보는 방법이다.
(2) 크랭킹 S/W 사례별 이해
○ WWWhack
- 웹 서버의 로그인 ID와 패스워드, 접속계정의 ID와 패스워드, FTP의 ID와 패스워드 그리고 POP의 IP와 패스워드를 크랙하는 도구
○ Golden Eye, Webcrak 등
포트 스캐닝 S/W
(1) 포트스캐닝의 개요
○ 포트스캐닝은 공격자가 공격대상 시스템의 열려진 포트를 스캐닝하는 것으로써 OS 반별, 공격경로 선택 등을 위해서 수행하는 절차이다.
- 포트번호는 인터넷이나 기타 다른 네트워크 메시지가 서버에 도착하였을 때, 전달되어야 할 특정 프로세스를 인식하기 위한 방법이다. TCP와 UDP에서, 포트번호는 단위 메시지에 추가되는 헤더 내에 넣어지는 16 비트 정수의 형태를 갖는다. 이 포트번호는 논리적으로는 클라이언트와 서버의 전달계층 사이를, 그리고 물리적으로는 전달계층과 인터넷계층 사이를 통과하여, 계속 전달된다. 포트번호는 0~65535번 까지가 있으며, 애플리케이션용으로 지정되어있는 포트번호(well-known)는 0~1023, 그 외 포트는 연결시 일시적으로 부여되는 포트번호이다. 예를 들면, 클라이언트가 인터넷 서버에 하는 요청은 호스트의 FTP 서버에 의해 제공되는 파일을 요청하는 것일 수 있다. 원격지의 서버 내에 있는 FTP프로세스에 사용자의 요청을 전달하기 위해, 사용자 컴퓨터에 있는 TCP 소프트웨어 계층은 요청에 부가되는 16비트 정수의 보트번호 내에 21 (FTP 요청과 관련하여 통상 사용되는 번호이다.) 이라는 포트번호를 확인한다. 서버에서, TCP 계층은 21이라는 포트번호를 읽고, 사용자의 요청을 서버에 있는 FTP 프로그램에 전달할 것이다.
- Port scanner에 의한 목적지 시스템에 대하여 Listen되어 있는 port(접속 가능한 port)를 찾기 위한 행위이다. 공격자들은 Target싯트ㅔㅁ이 alive 되어 있는지 확인(주로 ping을 이용하며, 네트워크 단위에서는 ping sweep을 한다)하고, 열려진 port를 탐색한 후 취약점 scanner(Nessus, Internet Scanner 등)를 이용하여 취약점 분석을 한다. 그 후에 시스템의 취약점을 이용하여 공격을 하게 된다.
- 포트스캐닝은 특정 포트에 대해서 3Way hand-shaking가 확립되면 포트가 열려진 것을 확인할 수 있다.
(2) 포트 스캐닝 S/W 사례별 이해
○ NMap
▶ 다양한 방식을 이용한 포트스캐너
- TCP connect() scan : 3Way hand-shanking을 이용한 scanning 이다. 완전한 TCP 연결을 하여 Port의 open/close 상태를 확인하기 때문에 시스템에서 쉽게 탐지가 될 수 있다.
- TCP SYN scan : Half-open scan 또는 Stealth scan으로 불리기도 하며 완전한 TCP 연결을 맺지 않고, 대상포트로 SYN 패킷을 전송하여 SYN/ACK을 받으면 open상태, RST/ACK를 받으면 close 상태이다. SYN scan은 half-open 연결을 통하여 포트의 open/close 상태를 확인하기ㅏ 때문에 Tcp conntect() scan에 비하여 비밀스러운 연결로 시스템에 로그가 기록되지 않는다. TCP를 이용한 scanning 중 scan 속도가 TCP connect() scan 보다 빠르기 때문에 가장 많이 사용하는 방법이다.
- TCP FIN, Xmas Tree, NULL scan : 이 세가지 scan기법은 Stealth scan이라고 불리기도 하며 UNIX 계열 시스템에 대해서만 사용할 수 있다. 만약, TCP FIN, Xmas Tree, NULL scan은 TCP flag의 FIN을 활성화 하여 댓아 포트로 패킷을 전송하고, Xmas Tree scan은 TCP flag의 FIN, URG, PUSH을 활성화 하여 대상포트로 패킷을 전송한다. NULL scan은 TCP flag를 모두 비활성화 하여 대상 포트로 패킷을 전송한다. 세 scan 모두 포트가 close 상태이면 RST 패킷을 되돌려보낸다(RFC 793). Open 상태이면 패킷을 무시한다.
'기능반공부 > 기능경기대회' 카테고리의 다른 글
[정보보호산업기사] 시스템보안 p1. (0) | 2022.01.13 |
---|