Download presentation
Presentation is loading. Please wait.
1
충북인력개발원 정보통신과 교수/공학박사 강원찬
해킹 및 악성 코드 대응 충북인력개발원 정보통신과 교수/공학박사 강원찬
2
1 2 3 4 악성 코드의 종류와 그 특성을 알아본다. 바이러스의 동작 원리를 이해한다. 웜의 동작 원리를 이해한다.
기타 악성 코드의 종류를 알아본다.
3
1. 침입자 Hacker or Cracker 침입자 분류 가장 잘 알려진 두 가지 보안 위협들 중 하나
위장된 사용자(Masquerader) 컴퓨터 권한을 가지지 못하는 사람이 합법적 사용자 계정을 사용하기 위해 시스템을 뚫고 들어가는 사람 외부인 소행 직권 남용자(Misfeasor) 자신의 접근 권한을 오용하는 합법적 사용자 내부인 소행 비밀 파괴자(clandestine user) 시스템 감시 통제, 감사, 액세스 제어를 피하거나 감사 수집물 전체를 삭제하려는 사람 내/외부인 소행
4
침입자 양성적 측면 악성적 측면 양성적 침입자인지 악성적 침입자인지 알릴 방법이 없다.
네트워크 사이를 탐험 무엇이 있는지 알고자 하는 사람들 합법적 사용자의 성능 하락 악성적 측면 특권 데이터 read, 수정, 시스템 혼란 양성적 침입자인지 악성적 침입자인지 알릴 방법이 없다. 민감한 데이터를 가지고 있지 않더라도 이러한 문제에 대한 해결책을 보유해야 한다.
5
침입자 증가 이유 세계화 경쟁(Globalization)
산업 스파이의 활동 증가 많은 해커 클럽이 이런 목적으로 등장 클라이언트/서버 구조(Client/Server architecture) 기존 보안 s/w로 보호되는 메인 프레임이나 독립형 pc들에 데이터 저장 현재 클라이언트/서버 구조가 점점 인기 대부분의 서버 -- UNIX : 메인 프레임 형식의 보안 특징을 가지지 않음 해커의 빠른 기술 습득(Hacker’s steep learning curve) 지하 게시판 등을 통한 정보의 공유 이에 반해, 보안 및 시스템 요원들은 정보 공유를 꺼림
6
해커 기술 습득 예 텍사스 A&M대학에서 발생 1992년 8월 발생 그곳의 machine이 다른 곳의 컴퓨터를 공격하는데 이용
12,000개의 컴퓨터들이 연결된 센터에 패스워크 분해 루틴을 운용 수 백개의 패스워드 알아냄 한 지역 컴퓨터는 해커 게시판으로 셋업 이를 이용, 서로 접촉, 기술 진척 상황을 논의 상위 수준의 해커 고도의 기술력을 가짐 하위 수준의 해커 단순히 배포된 분해 프로그램을 이용하는 보병(foot soldier) 개념
7
침입자 문제에 대한 해결책으로 CERT가 발족
CERT : Computer Emergency Response Team 시스템 약점에 대한 정보 수집 활동 시스템 관리자에게 배포 불행히도, 해커 역시 CERT보고서에 접근 발견한 모든 약점을 테스트 하기 위한 프로그램을 개발
8
1.1 침입 기술 침입자의 목적 대부분 사용자 패스워드 형태로 보호 패스워드 파일의 보호 방법 액세스 제어
시스템의 접근 권한 획득 또는 시스템 액세스 권한 범주의 증가 특별히 보호되는 정보 획득 가능 대부분 사용자 패스워드 형태로 보호 패스워드와 접근 권한을 가진 사용자들이 연결되어 있음 합법적 사용자의 패스워드를 이용 시스템 진입 패스워드 파일의 보호 방법 일방향 암호화 암호화된 형태로 패스워드 저장 제시된 패스워드를 암호화하고 이를 저장된 데이터와 비교 액세스 제어 패스워드 파일에의 접근이 하나 혹은 소수의 계정으로 제한
9
패스워드 분석 기술 시스템에 적재된 default 패스워드를 시도 한 문자 내지 세 문자 정도의 짧은 패스워드를 철저히 시도
온라인 사전 또는 목록에 있는 단어를 시도 사용자 이름, 사무실 이름, 배우자 및 자녀 이름, 취미 등에 관한 정보 수집 사용자 전화번호, 주민등록 번호 관련 있는 자동차 번호 트로이 목마를 사용 원격 사용자와 호스트 시스템 간에 라인 도청 합법적 사용자 위장, 시스템 관리자로부터 새로운 패스워드 발행 요구 합법적 사용자의 패스워드 타이핑 관찰
10
1.2 비기술적인 공격에 대한 방어 비기술적 공격 방법 사람들의 인식 부족과 부주의로 패스워드 노출 보안 정책 권고 사항
모든 직원들에게 지속적인 교육 실시 모든 직원들은 전자우편, 음성 우편, 팩스 등의 약점에 대해 교육 받아야 한다. 침입 발견을 위한 지속적이고 주기적인 감사 책임을 명시하고 모든 직원들과 계약자들이 서명 합법적 사용자 위장, 시스템 관리자로부터 새로운 패스워드 발행 요구 합법적 사용자의 패스워드 타이핑 관찰
11
1.3 패스워드 보호 패스워드 시스템 침입자에 대한 방어의 최전선 시스템에 로그인한 개인의 ID를 인증 보안 제공 방법
임의적 액세스 제어가 가능 다른 사용자들의 ID를 올림으로서 자신의 파일들을 다른 사람이 읽는 것을 허가
12
패스워드의 약점 UNIX 패스워드 구조 새로운 패스워드 적재 첨가값 패스워드 패스워드 파일 12비트 56비트 적재
사용자 ID 첨가값 Epwd[첨가값,0] 첨가값 패스워드 12비트 56비트 적재 Crypt(3) 11문자
13
패스워드의 약점 패스워드 확인 패스워드 파일 패스워드 첨가값 Crypt(3) 선택 비교
사용자 ID 첨가값 Epwd[첨가값,0] 패스워드 사용자 ID 첨가값 Crypt(3) 선택 비교 암호화된 패스워드
14
Crypt(3)으로 알려진 암호화 루틴은 DES에 기초를 둠
DES의 E-table은 12비트 첨가값을 사용하여 수정 첨가값은 사용자에게 할당된 시간과 관련 첨가값의 목적 패스워드 화일에 중복된 패스워드를 방지 사용자가 두가지 추가 문자를 기억하도록 요구하지 않고 패스워드 길이를 효과적으로 증가 시킨다. 전체 경우 가지수를 추측 시도하는 공격을 위해 DES의 하드웨어 구현을 어렵게 함.
15
패스워드의 약점 UNIX 패스워드 구조의 위협 요소 guest 계정을 통하여 시스템 접근 후 패스워드 추측 프로그램을 수행
수 백개 내지 수 천개의 가능한 패스워드를 검사 가능 만약 패스워드 파일의 사본을 취득할 수 있다면 다른 컴퓨터에서도 암호풀기 프로그램을 쉽게 수행 가능 적당한 시간 이내에 수 천개의 가능한 패스워드를 훑어볼 수 있게 한다.
16
패스워드의 약점 1993년 보고된 패스워드 크래커 따라서,
Thinking Machines Corporation 병렬 컴퓨터 이용 단위 벡터당 1초당 1,560개의 암호화 실행 처리 노드당 4개 벡터를 가지고 128노드 기계에서 초당 800,000개 암호화 수행 1,024노드 기계에서는 초당 6백 4십만개의 암호화 수행 따라서, 그러나 이러한 기술은 아직 패스워드 공격을 실현 가능하게 해 주지는 못한다. 사람들은 쉽게 추측할 수 있는 패스워드를 사용한다는 사실에 근거하여 공격 수행
17
패스워드의 약점 효과적인 패스워드 추측 다양한 자원으로부터 거의 14,000개의 암호화된 패스워드를 포함하는 UNIX 패스워드 파일들을 수집 이로부터 모든 패스워드들 중에 거의 1/4이 추측됨 사용 전략 사용자 이름, 이름의 첫 자, 계정명, 다른 관련된 개인 정보 다양한 사전상의 단어 시도 수집된 단어를 이용하여 다양한 순열을 시도 수집된 단어를 이용하여 다양한 대분자 사용 순열을 시도
18
엑세스 제어 패스워드 공격을 방어하기 위한 효율적인 전략 추측하기 힘든 패스워드를 선택하는 것 목적 4가지 기본 기술
패스워드 선택 전략 목적 추측 가능한 패스워드를 제거하고 사용자가 기억할 수 있는 패스워드를 선택 4가지 기본 기술 사용자 교육 컴퓨터 생성(computer-generated) 패스워드 반작용(reactive) 패스워드 검사 사전(proactive) 패스워드 검사
19
4가지 기본 기술 사용자 교육 컴퓨터 생성(computer-generated) 패스워드 반작용(reactive) 패스워드 검사
많은 사용 인구와 많은 거래가 있는 곳에서는 의문시 됨 사람들은 무엇이 강력한 패스워드인지 판단을 내리지 못함 컴퓨터 생성(computer-generated) 패스워드 패스워드가 정말로 랜덤하다면 사람들이 기억하기 힘듬 반작용(reactive) 패스워드 검사 시스템이 추측가능한 패스워드를 발견하기 위해 분석기를 수행 추측되는 패스워드를 취소시키고 사용자에게 통보 사전(proactive) 패스워드 검사 가장 믿을 수 있는 방법 사용자가 자신의 패스워드를 선택 가능 패스워드가 정당하지 않으면 거절 사전 공격에서 추측될 것 같지 않은 굉장히 큰 패스워드 공간에서 기억하기 쉬운 패스워드를 선택할 수 있다는 것에 근거
20
침입 발견 침입 방어 시스템이 실패한다면, 제 2 방어노선은 침입 발견이다
침입이 빨리 발견되면 될수록 손상된 정도가 더 적어지고 회복도도 더 빨리 이룰 수 있다. 효과적인 침입 발견 시스템은 침입 억제력 역할 침입 예방 시설을 강화하는데 쓰일 수 있는 침입 기술에 대한 정보 수집을 가능케 한다. 침입 발견 침입자의 행동이 합법적인 사용자의 행동과 다르다는 가정에 기초 그러나, 침입자의 공격과 합법적 사용자의 정확한 구분은 되지 않음
21
침입 발견 Porras, P가 제안한 침입 방법 예)
통계적인 이례 발견(Statistical Anomaly Detection) 일정 기간 동안 합법적인 사용자들의 행동 관련 데이터 수집, 그 후 통계적인 테스트가 관찰된 행동에 적용 임계치(threshold) 발견 사용자와는 별개로 다양한 사건의 출현 주기에 대하여 한계점을 정의 프로필 기반(profile-based) 발견 각 사용자 활동의 프로필이 개발되고 개인 계정들에서 변화를 발견하는 데 이용 규칙 기반 발견(Rule-Based Detection) 일련의 규칙들을 정의 이례발견 전의 행동으로부터 이례적 행위들을 발견하기 위한 규칙 개발 침투 검증 어떤 전문가 시스템이 의심스런 행동을 조사
22
침입 발견 규칙 기반 침입 발견 시스템에서 사건들을 관찰하고 활동이 주어지 패턴인지 혹은
의심스러운 패턴인지를 유도하는 규칙들의 집합을 적용함으로써 침 입을 발견 사용될 수 있는 규칙들의 형태 1. 사용자들은 다른 사용자의 개인 디렉토리에 있는 파일을 읽지 말아야 한다. 2. 다른 사용자들의 파일에 쓰지 말아야 한다. 3. 로그인한 사용자들은 몇 시간 후에 그들이 전에 사용한 똑같은 파일들을 종종 접근한다. 4 동일한 시스템에 한 번 이상 로그인 하지 말아야 한다. 5 시스템 프로그램의 복사물들을 만들지 말아야 한다.
23
감사 기록 침입 발견을 위한 기본적인 툴 사용자에 대한 기록은 침입 발견 시스템에서 입력자료로 사용 기본적인 감사 기록 방법
선천적인(native) 감사 기록 운영 체제가 사용자 활동 정보를 수집하는 계정(accounting) 소프트웨어를 포함 장점 : 부가적인 수집 s/w가 필요하지 않음 단점 : 필요 정보가 포함되어 있지 않거나 유용한 형태로 정보를 가지고 있지 않다. 발견-명시 감사 기록 방법 수집 장치가 침입 발견 시스템에 의해 요구된 정보만을 생성 장점 : 다양한 시스템에서 사용 가능 단점 : 한 기계에서 수행되는 두 개의 계정 패키지를 가져야 하는데 관련 된 오버헤드
24
Section 01 악성 코드의 역사와 분류 악성 코드의 정의
제작자가 의도적으로 사용자에게 피해를 주고자 만든 모든 악의적 목적을 가진 프로그램 및 매크로, 스크립트 등 컴퓨터상에서 작동하는 모든 실행 가능한 형태
25
악성 코드의 역사 1972년 1984년 컴퓨터 바이러스의 개념이 처음 등장.
소설가인 데이비드 제럴드의 공상과학소설『When Harlie was One』(Nelson Doubleday, 1972)에는 '다른 컴퓨터에 계속 자신을 복제, 감염된 컴퓨터의 운영체제에 영향을 미쳐 점차 시스템을 마비시키는 장치를 한 과학자가 제작해 배포한다'는 내용이 소개. 1984년 컴퓨터 바이러스라는 용어는 1984년에 프레드 코헨(Fred Cohen)에 의하여 다음과 같이 개념이 정립됨. We define a computer ‘virus’ as a program can ‘infect’ other programs by modifying them to include a possibly evolved copy of itself.
26
악성 코드의 역사 1986년 일반적으로 1986년에 발견된 브레인 바이러스(Brain Virus)를 최초의 바이러스로 칭함. 이 바이러스는 파키스탄에서 프로그래머로 일하던 알비 형제가 자신들의 소프트웨어가 불법 복제되는 것을 참다못해 바이러스를 만들어서 뿌렸다고 함. 1987년 예루살렘 대학에서 13일의 금요일 바이러스가 발견됨. 유명한 바이러스로 예루살렘 바이러스라고도 불리는데, 13일의 금요일에 시스템내의 파일을 삭제하게 되어 있는 바이러스다. 이탈리아에서 제작한 것으로 알려지고 있음. 1989년 모리스 웜이 발생하여, 미국의 네트워크를 마비시킨 사건이 일어남. 최초의 웜으로 알려지고 있음. 1991년 1991년 11월에는 그간의 바이러스와 전혀 다른 특징을 가진 바이러스가 출현. 당시 발견된 DIR II는 MS 도스의 FAT 파일시스템의 연결 구조를 이용하며, 바이러스 감염시 프로그램의 크기를 증가시키지 않고 기생할 수 있다는 특징을 가짐.
27
악성 코드의 역사 1997년 매크로 바이러스가 출현. 매크로(Macro)란 엑셀이나 워드에서 특정한 기능을 자동화시켜놓은 일종의 프로그램인데, 이 바이러스는 시스템 프로그램과 같은 고난이도의 기술만이 웜/바이러스 제작에 이용될 수 있다는 인식을 바꾸어 놓음. 1999년 월 컴퓨터 하드 디스크의 바이오스(BIOS)를 손상시키고 각종 파일을 삭제하는 CIH 바이러스로 인해 많은 컴퓨터가 피해를 입음. 2001년 코드 레드 웜에 의해 8시간 만에 25만대 이상의 컴퓨터가 감염됨. 이 웜은 윈도우 2000과 윈도우 NT 서버를 경유지로 이용해 미국 백악관을 공격하였는데, 국내도 최소 3만대 이상의 시스템이 피해를 입은 것으로 추정됨.
28
악성 코드의 역사 2003년 2003년 1월 25일 인터넷 대란을 일으킨 SQL_Overflow 웜이 등장.
CAIDA에 따르면, 기준으로 2003년 1월 25일 05시 29분에 슬래머가 퍼지기 시작하여, 06시를 기준으로 전 세계의 74,855대 시스템이 그림과 같이 감염됨. 8월에는 1~2분 간격으로 컴퓨터를 강제 재부팅시킴으로써 국내외적으로 큰 피해를 준 블래스터 웜(Blaster Worm)을 시작으로, 웰치아 웜(Welchia Worm), 엄청난 양의 스팸 메일을 집중 발송해 전 세계를 깜짝 놀라게 한 소빅.F 웜(Sobig.F Worm) 등이 발생
29
악성 코드의 역사 2004년 마이둠 웜(Mydoom Worm)이 1월 26일에 처음 등장해 역대 최고의 전파 속도로 세계적으로 100만대 이상의 PC를 감염. 이외에도 넷스카이, 베이글, 새서 웜 등의 변종이 지속적으로 등장. 6월에는 자기 복제가 가능하고 네트워크를 통해 전파되는, 최초의 웜 형태를 지닌 휴대폰 악성 코드인 카비르 웜이 등장 2005년 웜의 다양한 변종이 지속적으로 등장해 컴퓨터 사용자를 괴롭힘. 3월에는 블루투스 외에 멀티미디어 메시징 서비스(MMS)를 이용해, 감염된 휴대폰에 저장된 전화번호를 통해 악성 코드를 퍼뜨리는 휴대폰 악성 코드인 컴워리어가 등장하여 전파 방법상에서의 지역적 한계를 넘음. 현재 최근에 알려진 바이러스의 종류도 15만 개 이상. IT 시장 조사 기관인 IDC는 2004 년에 37억 달러 규모였던 안티 바이러스 시장이 2009년에는 73억 달러에 이를 것으로 전망.
30
악성 코드의 분류 정의에 따른 악성 코드의 분류 이름(코드) 설명 바이러스(Virus) 웜(Worm) 트로이 목마
사용자 컴퓨터(네트워크로 공유된 컴퓨터 포함)내에서 사용자 몰래 프로그램이나 실행 가능한 부분을 변형해 자신 또 는 자신의 변형을 복사하는 프로그램이다. 가장 큰 특성은 복제와 감염이다. 다른 네트워크의 컴퓨터로 스스로 전파되지는 않는다. 웜(Worm) 인터넷 또는 네트워크를 통해서 컴퓨터에서 컴퓨터로 전파되는 악성 프로그램이다. 윈도우의 취약점 또는 응용 프로그램의 취약점을 이용하거나 이메일이나 공유 폴더를 통해 전파되며, 최근에는 공유 프로그램(P2P)을 이용하여 전파되기도 한다. 바이러스와 달리 스스로 전파되는 특성이 있다. 트로이 목마 (Trojan Horse) 바이러스나 웜처럼 컴퓨터에 직접적인 피해를 주지는 않지만, 악의적인 공격자가 컴퓨터에 침투하여 사용자의 컴퓨 터를 조종할 수 있는 프로그램이다. 고의적으로 만들어졌다는 점에서 프로그래머의 실수인 버그와는 다르다. 또 자기 자신을 다른 파일에 복사하지 않는 다는 점에서 컴퓨터 바이러스와 구별된다. 혹스(Hoax) 인터넷 메신저나 이메일 또는 게시판, 문자 메시지 등에 거짓 정보나 괴담 등을 실어 사용자를 속이는 가짜 컴퓨터 바 이러스다. 우리나라에서는 1997년부터 나타나기 시작해 해마다 등장하고 있는데, 특히 만우절을 전후한 3월 말에서 4월 초에 많이 나타난다. 한 예로, 2004년 3월에 나타난 혹스에는‘누군가 사람의 추가를 요구하면 추가하지 말고 취소하십시오. 바이러스입니다. 지금 MSN 창에 있는 사람들에게도 이 메시지를 빨리 돌려주십시오”라는 내용이 담 겨 있었다. 확인 결과 가짜 바이러스인 혹스로 판명되었다. 악성 자바 코드 웹 사이트에서 동적인 기능을 구현하기 위해서 자바 스크립트나 자바 애플릿을 많이 사용하는데, 이런 자바 스크립트 나 자바 애플릿을 이용하여 악의적인 기능을 하는 코드를 말한다. 악성 ActiveX ActiveX는 마이크로소프트에서 만든 객체지향 프로그래밍을 위한 도구 모음이다. ActiveX 컨트롤은 이 ActiveX를 이용하여 객체지향 프로그래밍을 하기 위한 컴포넌트인데, 이를 이용하여 악의적인 기능을 수행하게 하는 코드를 악 성 ActiveX 코드라 한다.
31
악성 코드의 분류 악성 프로그램으로 인해 발생할 수 있는 증상 대분류 소분류 설명 시스템 관련 시스템 정보 변경
변경 레지스터리 키값을 변경하여 시스템의 정보를 변경한다. FAT 파괴 시스템의 파일시스템을 파괴한다. CMOS 변경 CMOS 내용을 변경하여 부팅때 에러를 발생시킨다. CMOS 정보 파괴 CMOS의 일부를 파괴한다. 기본 메모리 감소 시스템의 기본 메모리를 줄인다. 시스템 속도 저하 시스템의 속도를 저하시킨다. 프로그램 자동 실행 레지스터리값을 변경해 시스템을 부팅할 때 특정 프로그램을 자동으로 실행시킨다. 프로세스 종료 특정 프로세스를 강제로 종료시킨다. 시스템 재부팅 시스템을 재부팅시킨다 네트워크 관련 메일 발송 특정 사용자에게 메일을 발송한다. 정보 유출 사용자의 정보를 네트워크를 통해서 공격자 컴퓨터로 전송한다. 네트워크 속도 저하 감염된 컴퓨터가 속한 네트워크가 느려진다. 메시지 전송 메시지를 네트워크를 통해 다른 컴퓨터로 전달한다. 특정 포트 오픈 특정 백도어 포트를 연다. 하드 디스크 관련 하드 디스크 포맷 하드 디스크를 포맷한다. 부트 섹터 파괴 하드 디스크의 특정 부분을 파괴한다. 파일 관련 파일 생성 특정 파일을 생성한다. 주로 백도어 파일을 생성한다. 파일 삭제 특정 파일이나 디렉토리를 삭제한다. 파일 감염 바이러스가 특정 파일을 감염시킨다. 파일 손상 바이러스가 특정 파일에 겹쳐 쓰기 형태로 감염되면 파일이 손상된다. 특이 증상 특정 화면 출력 화면에 특정 내용이 나타난다. 특정음 발생 컴퓨터에서 특정음이 난다. 메시지 상자 출력 화면에 특정 메시지 상자가 나타난다. 증상 없음 특이한 증상이 없다.
32
Section 02 바이러스 바이러스 악성 코드 중 가장 기본적인 형태며, 최초의 악성 코드가 만들진 1980년대 이후에서 2000년대 초반까지 악성 코드의 주류를 차지함.
33
1세대 : 원시형 바이러스 원시형 바이러스 부트 바이러스
컴퓨터 바이러스가 등장하기 시작할 때쯤 퍼지던 가장 원시적인 형태의 바이러스로, 단순히 자기 복제 기능과 데이터 파괴 기능만을 가지고 있음. 부트 바이러스 플로피 디스크나 하드 디스크의 부트 섹터에 감염되는 바이러스로, 부팅할 때 자동으로 동작. 1 단계 : POST POST는 하드웨어 자체가 시스템에 문제가 없는지 기본 사항을 스스로 체크하는 과정. BIOS에 의해서 실행되는데, POST 도중 하드웨어에서 문제가 발견되면 사용자에게 여러 방법으로 그 문제를 알림.
34
1세대 : 원시형 바이러스 2단계 : POST CMOS에서는 기본 장치에 대한 설정과 부팅 순서를 설정할 수 있음.
BIOS는CMOS에서 이런 기본 설정 사항을 읽어 시스템에 적용.
35
1세대 : 원시형 바이러스 3단계 : 마스터 부트 레코드(MBR)
CMOS 정보를 읽어 부팅 매체를 확인한 뒤에는 부팅 매체의 MBR(Master Boot Record) 정보를 읽음. MBR은 운영체제가 어디에, 어떻게 위치해 있는지를 식별하여 컴퓨터의 주 기억장치에 적재될 수 있도록 하기 위한 정보로, 하드 디스크나 디스켓의 첫 번째 섹터에 저장되어 있음. MBR은 메모리에 적재될 운영체제가 저장된 파티션의 부트 섹터 레코드를 읽을 수 있는 프로그램을, 부트 섹터 레코드는 운영체제의 나머지 부분을 메모리에 적재시키는 프로그램을 담고 있음. 부트 바이러스는 이 단계에서 동작. 부트 바이러스에 감염된 플로피 디스크로 운영체제를 구동시키면 바이러스가MBR과 함께 PC 메모리에 저장되고 부팅 후에 사용되는 모든 프로그램에 자신을 감염시킴. 부트 바이러스는 브레인, 몽키, 미켈란젤로 바이러스가 있음.
36
1세대 : 원시형 바이러스 파일 바이러스 파일 바이러스는 파일을 직접 감염시키는 바이러스로서 부트 바이러스와는 달리 하드 디스크가 PC에서 일반화되면서 그 대안으로 나온 형태임. 일반적으로 COM이나 EXE와 같은 실행 파일과 오버레이 파일, 디바이스 드라이버 등에 감염되며, 전체 바이러스의 80% 이상을 차지함. 바이러스에 감염된 실행 파일이 실행될 때 바이러스 코드를 실행. (a) 프로그램을 덮어쓰는 경우, (b) 프로그램 앞부분에 실행 코드를 붙이는 경우, (c) 프로그램의 뒷부분에 바이러스 코드를 붙이는 경우가 있음.
37
1세대 : 원시형 바이러스 바이러스가 프로그램의 뒷부분에 위치한 경우 바이러스의 실행 루틴
예루살렘 바이러스가 최초의 파일 바이러스로 알려져 있으며, 이외에도 썬데이, 스콜피온, 크로우, FCL 등이 있음. CIH 바이러스도 이에 해당됨.
38
2세대 : 암호형 바이러스 암호형 바이러스 바이러스 제작자들은 백신의 진단을 우회하기 위해 자체적으로 코드를 암호화하는 방법을 사용하여 백신 프로그램이 진단하기 힘들게 만들기 시작함. 바이러스가 동작할 때 메모리에 올라오는 과정에서 암호화가 풀리기 때문에 백신 제작자들은 이를 이용하여 암호화하는 방법을 거꾸로 분석하여 감염 파일과 바이러스를 치료함. 슬로우, 캐스케이드, 원더러, 버글러 등의 바이러스가 있음.
39
3세대 : 은폐형 바이러스 은폐형 바이러스 확산되기 전에 바이러스가 활동하기 시작하면 다른 시스템으로 전파되기 힘들기 때문에 일정 기간 동안 잠복기를 가지도록 바이러스를 작성함. 이와 같은 이유로 나온 은폐형 바이러스는 직관적인 방법(백신 프로그램 또는 일반적인 정보 확인 등)으로 바이러스 감염 여부를 진단하지 못하게 됨. 브레인, 조시, 512, 4096 바이러스 등이 있음
40
4세대 : 다형성 바이러스 다형성 바이러스 백신 프로그램이 특정 식별자를 이용하여 바이러스를 진단하는 기능을 우회하기 위해 만들어진 바이러스. 코드 조합을 다양하게 할 수 있는 조합 프로그램을 암호형 바이러스에 덧붙여 감염되어, 실행될 때마다 바이러스 코드 자체를 변경시켜 식별자로 구분하기 어렵게 함.
41
5세대 : 매크로 바이러스 매크로 바이러스 기존의 바이러스는 실행할 수 있는 파일(COM이나 EXE)에 감염된 반면, 매크로 바이러스는 엑셀 또는 워드와 같은 문서 파일의 매크로 기능을 이용하기 때문에 워드나 엑셀 파일을 열 때 감염됨. 워드 컨셉트, 와쭈, 엑셀-라룩스, 멜리사 바이러스 등이 있음.
42
5세대 : 매크로 바이러스 매크로 바이러스의 증상 문서가 정상적으로 열리지 않거나 암호가 설정되어 있음.
문서 내용에 깨진 글자나 이상한 문구가 포함어 있음. 도구 메뉴 중 매크로 메뉴가 실행할 수 없게 잠겨 있음. 엑셀이나 워드 작업 중VB(Visual Basic) 편집기의 디버그 모드가 실행됨.
43
차세대 바이러스 차세대 바이러스 매크로 바이러스에서 나타난 스크립트 형태의 바이러스가 더욱 활성화되고 있으며, 네트워크와 메일을 이용하여 전파되는 방식이 대부분. 바이러스는 단순히 데이터를 파괴하고 다른 파일을 감염시키는 형태에서 벗어나 사용자 정보를 빼내가거나 시스템을 장악하기 위한 백도어 기능을 가진 웜의 형태로 진화하고 있음.
44
2. 바이러스 2.1 악의 있는 프로그램들 악의 있는 프로그램 호스트 프로그램 필요 독립적 논리 폭탄 트로이목마 바이러스
트랩도어 논리 폭탄 트로이목마 바이러스 박테리아 벌레 복제 가능
45
트랩도어 트랩도어를 알고 있는 사람이 일상의 보안 접근 절차를 통하지 않고 액세스를 할 수 있는 프로그램의 비밀 진입점
디버그, 프로그램 검색을 위해 수 년간 합법적으로 사용 어떤 특별한 입력을 인식하는 코드이거나 또는 어떤 사용자 ID로부터 수행되거나 나타날 것 같지 않은 일련의 사건들에 의해 발생되는 코드 양심 없는 프로그래머가 접근 권한을 획득하기 위해 사용될 때 위험
46
논리폭탄(Logic Bomb) 프로그램 위협의 가장 오래된 형태 중 하나
어떤 조건을 만나면 실행되도록 어떤 합법적인 프로그램에 끼워 넣어진 코드 조건 날짜, 시간, 특별한 사용자, 파일의 존재 여부 영향 데이터나 전제 파일 삭제, 수정, 컴퓨터 작동 중시 사용 예 프로그램 개발자가 개발 대금을 받지 못할 것을 우려 특정 지불 일자를 넘길 경우 폭발 시스템 무능력화
47
트로이목마(Trojan Horses) 해당 프로그램이 호출되었을 때 원치 않거나 해로운 기능을 수행하는 감춰진 코드를 포함한 어떤 유용한 프로그램이나 명령 절차 허가 되지 않은 사용자가 직접 성취할 수 없는 기능들을 간접적으로 성취하기 위해 이용 가능 유용한 유틸리티인 것처럼 이름을 붙여서 사용자로 하여금 사용하게 함 감춰진 해로운 기능이 수행됨 또 다른 동기는 데이터 파괴 유용한 프로그램을 수행하면서 동시에 사용자 파일 삭제
48
바이러스(Viruses) 다른 프로그램들을 변경시킴으로써 감염
완전한 자신의 복사물을 만들기 위한 비밀 방법을 명령 코드 안에 수반 감염된 S/W는 감염되지 않은 S/W 일부와 접촉할 때마다 바이러스 복제물이 새로운 프로그램으로 복사되어 넘어감 사람들이 의식하지 못하는 사이에 전염
49
박테리아(Bacteria) 벌레(Worm) 어떤 파일을 손상시키는 않는 프로그램 목적 전염되기 위해 네트워크를 이용
자기 자신을 목제 지속적으로 재생산 모든 프로세서 용량, 메모리, 또는 디스크 공간을 차지 시스템 다운 전염되기 위해 네트워크를 이용 활성화된 벌레는 컴퓨터 바이러스나 박테리아처럼 행동 트로이목마 프로그램 주입 파괴적인 행동들 수행 벌레(Worm)
50
2.2 바이러스 1. 정의 자기 자신을 스스로 복제 할 수 있는 기능을 가지고 있으며 컴퓨터 프로그램이나 실행가능한 부분을 변형시켜 자신 혹은 자신의 변형을 복사해 넣는 명령어의 집합. 2. 특징 다른 시스템이나 소프트웨어를 감염시키기 위해 자신을 복제 할 수 있는 코드를 가지고 있으며 주로 어셈블리어와 c-언어로 짜여있다.
51
그 후 Lehigh, 예루살렘 바이러스등이 출현
3. 역사 1949년 존 폰 노이만 “Theory and Organization of Complicated Automata” -- 최초의 기술적 언급 1987년에 “파키스탄 브레인”이라는 최초의 바이러스가 미국에서 발견됨. 그 후 Lehigh, 예루살렘 바이러스등이 출현 가장 최근에 ‘멜리사’ 바이러스 출현(1999) 바이러스로 인터넷 사용시 주의가 요망되었음 감염되면 자동으로 다른 사람에게 메일 전송 기하급수적으로 증가되는 메일 양으로 인해 시스템 down 미 FBI, 배포자 검거 --- 작성한 S/W의 지문값으로 추적 검거한 것으로 추적 매년 많은 수의 바이러스가 제작, 유포되고 있음
52
4. 발전 단계 제 1세대 원시형 바이러스(Primitive Virus)
--- 컴퓨터 바이러스의 존재 가능성을 증명하는 수준. ex)돌 바이러스, 예루살렘 바이러스 등 제 2세대 암호화 바이러스(Encryption Virus) --- 백신 프로그램이 진단하기 어렵도록 일부 또는 전부를 암호화시켜 저장. ex) 폭포 바이러스, 느림보 바이러스 등 제3세대 은폐 바이러스 ( Stealth Virus ) --- 기억장소에 존재하면서 파일의 길이가 늘어나지 않은 것처럼 은폐 --- 기억장소 먼저 검사함으로써 치료 가능 --- 브레인 바이러스, 조쉬 바이러스, 4096바이러스 등 제4세대 갑옷형 바이러스 ( Amour Virus ) --- 여러 단계의 암호화와 자체 수정기법을 이용함으로써 백신 프로그램의 개발을 지연
53
5. 컴퓨터 바이러스의 분류 1) 기종에 따라 개인용 컴퓨터 2) 로스 그린버그의 바이러스 분류 ( 기능에 따라 )
대형기종 개인용 컴퓨터 2) 로스 그린버그의 바이러스 분류 ( 기능에 따라 ) ㄱ) 벌레(Worm) 프로그램 ㄴ) 트로이 목마( Trojam horse Program) ㄷ) 컴퓨터 바이러스( Computer Virus)
54
3) 랄프 버거의 바이러스 분류 ( 기생 장소에 따라 ) ㄱ) overwriting 바이러스 ㄴ) Non-overwriting 바이러스 ㄷ) 메모리 상주 바이러스 ㄹ) 호출 바이러스 4) IBM-PC 바이러스 분류 ( 감염되는 부위에 따라 ) ㄱ) 부트 바이러스 ㄴ) 파일 바이러스 ㄷ) 부트/파일 바이러스
55
1) 인식 --- 바이러스에 대한 정보와 작동원리 파악
6. 바이러스 예방 대책 1) 인식 바이러스에 대한 정보와 작동원리 파악 2) 정책 바이러스 연구기관 신설, 바이러스에 대한 교육 및 홍보 3) 기타 주기적 백업, 바이러스의 사용, BBS로부터의 다운로드시 주의, 정품 S/W의 사용 등 7. 바이러스 백신 프로그램의 종류 1) 예방 백신 프로그램 플루샷 플러스(FLU SHOT+), 메이스 백신(Mace), 앤티 바이러스, 트랩 디스크, BOMBSAQAD, DATA PHYSICIAN, C-4 Antiviaral shield, DISK WATCHER 등 2) 검사 백신 프로그램 VIRUSCAN, VIRUS BUSTER, VCHECK, V_CHECK, NOVIRUS, VACINE, PROGNOSYS 등 3) 치료 백신 프로그램 백신 III 프로 95, PC-시린 95, COLMBUS, CLEAN-UP, TNT 노턴 안티 바이러스, MDISK등
56
항바이러스 방법 이상적 해결책 차선책 예방, 즉 바이러스가 시스템에 들어가는 것을 허락하지 않는 것
실질적으로 예방하기 힘들다. 차선책 발견 : 감염이 발생하면 발생된 위치를 알아낸다. 확인 : 감염시킨 구체적인 바이러스를 확인 제거 : 감염된 프로그램으로부터 바이러스의 모든 흔적을 제거하고 원래 상태로 복원 만약 제거가 되지 않는다면 감염된 프로그램을 버리고 깨끗한 버전 을 재로드
57
항바이러스 방법 항바이러스 소프트웨어의 구분 제1세대 : 단순 스캐너 제2세데 : 휴리스틱 스캐너
알려진 바이러스의 발견에 한정 프로그램 길이에 대한 기록을 유지하고 길이의 변화를 찾음 제2세데 : 휴리스틱 스캐너 휴리스틱 규칙들을 사용 바이러스와 연관되는 코드 단편들을 찾음 다형태 바이러스에서 이용된 암호화 루프의 시작을 찾고 암호화 키를 찾음 바이러스 복호화한 뒤 감염을 제거하고 프로그램을 복구 무결성 검사 점검값이 각 프로그램에 추가 암호화된 해쉬 함수를 사용할 수도 있다.
58
항바이러스 방법 항바이러스 소프트웨어의 구분(계속) 제3세대 : 활동 트랩 제4세대 : 통합적 방어
감염된 프로그램의 구조보다는 행동에 의해 바이러스를 구별하는 메모리 상주 프로그램 다양한 바이러스의 폭넓은 종류에 대한 감염 형태나 휴리스틱을 개발하는 것이 필요하지 않은 장점을 가짐 제4세대 : 통합적 방어 다양한 항바이러스 기술들로 구성된 패키지 스캐닝과 활동 트랩 요소들을 포함 바이러스의 능력을 제한하는 액세스 제어 능력을 가짐
59
Section 03 웜 웜의 등장 1999년 다른 사람의 이메일 주소를 수집하고 스스로 전달되는 형태의 인터넷 웜이 출현하면서 일반인에게 웜이라는 용어가 알려지기 시작. 웜 이메일에 첨부 파일 형태로 첨부되어 확산되거나, 운영체제나 프로그램의 보안 취약점을 이용하여 스스로 침투하는 것이 일반적이나, 현재는 채팅 프로그램, P2P 파일 공유 프로그램, 이메일 관련 스크립트 기능, 네트워크 공유 기능 등의 허점을 이용하여 확산하고 증식하는 경우도 있어 피해와 부작용의 범위/크기가 계속 커지고 있음.
60
바이러스와 침입자의 특징을 모두 가짐 벌레의 목적 벌레에 대한 네트워크의 취약성 바이러스처럼 자기 복제
잠복 단계, 증식 단계, 격발 단계, 실행 단계 수행될 때마다 불법적인 행위 발각되지 않기 위해 자신의 존재를 위장 벌레의 목적 침입자와 마찬가지로 시스템에 침투하는 것 네트워크를 통해 다른 컴퓨터에 자기 복제품을 침투 벌레에 대한 네트워크의 취약성 네트워크를 통하여 여러 호스트들에게 자신을 번식시킬 수 있는 기능을 가졌다는 점
61
대응책 벌레 특징 --- NIST(National Institute of Standards and Technology)
벌레는 자신을 복제하기 위하여 운영체제 또는 시스템 관리상의 결함을 이용 모든 네트워크의 정지를 초래 해결방안 액세스 제어 사용자의 신원확인과 인증은 벌레가 증식하는 것을 막아준다. 침입발견 방화벽 단일 LAN이나 인터넷은 방화벽 시스템에 의하여 보호될 수 있다.
62
MASS Mailer형 웜 소개 증상 종류 최근 발생한 웜 중 약 40%가 MASS Mailer 형에 해당.
제목이 없거나 특정 제목으로 전송되는 메일을 읽었을 때 감염. 치료하지 않으면 시스템에 계속 기생하면서 시스템 내부에서 메일 주소를 수집해 계속 메일을 보냄. 증상 메일로 전파되며, 감염된 시스템이 많으면 SMTP 서버(TCP 25번 포트)의 네트워크 트래픽이 증가함. 베이글은 웜 파일을 실행할 때‘Can't find a viewer associated with the file’과 같은 가짜 오류 메시지를 출력. 넷스카이는 윈도우 시스템 디렉토리 밑에 CSRSS.exe를 만듬. 변형된 종류에 따라 시스템에 임의의 파일을 생성. 확인되지 않은 메일을 열어볼 때 확산. 종류 베이글(Bagle), 넷스카이(Netsky), 두마루(Dumaru), 소빅(Sobig) 등
63
시스템 공격형 웜 소개 운영체제 고유의 취약점을 이용해 내부 정보를 파괴하거나, 컴퓨터를 사용할 수 없는 상태로 만들거나, 외부의 공격자가 시스템 내부에 접속할 수 있도록 백도어를 설치. 증상 전파할 때 과다한 TCP/135,445 트래픽이 발생. winnt, winnt/system32 폴더에 SVCHOST.EXE 등의 파일을 설치. 공격 성공 후 UDP/5599 등의 특정 포트를 열어 외부 시스템과 통신. 시스템 파일 삭제, 정보 유출(게임CD 시리얼 키 등)이 가능. 종류 아고봇(Agobot), 블래스터(Blaster.worm), 웰치아(Welchia) 등
64
네트워크 공격형 소개 증상 종류 Syn Flooding, Smurf와 같은 DoS 공격을 수행
네트워크가 마비되거나, 급속도로 느려짐. 네트워크 장비가 비정상적으로 동작. 종류 져봇(Zerbo), 클레즈(Klez) 등
65
Section 04 기타 악성 코드- 백도어와 트로이 목마
사용자가 의도하지 않은 코드를 정상적인 프로그램에 삽입한 프로그램 백도어 운영체제나 프로그램을 생성할 때 정상적인 인증 과정을 거치지 않고, 운영체제나 프로그램 등에 접근할 수 있도록 만든 일종의 통로. Administrative hook이나 트랩 도어(Trap Door)라고도 부름.
66
인터넷 악성 코드 증상 악성 코드를 예방법 인터넷 익스플로러의 시작 페이지가 계속 다른 곳으로 변경됨.
인터넷 속도가 느려지거나 끊김. 시스템의 비정상적인 작동으로 운영체제가 사용 불능의 상태가 됨. 사용자가 의도하지 않은 코드를 정상적인 프로그램에 삽입한 프로그램 악성 코드를 예방법 익스플로러의 [도구]-[보안]-[사용자 지정수준] 메뉴를 클릭→ [보안 설정] 창에서 각 사항을‘확인’으로 설정 해당 프로그램이 인터넷에서 자동으로 설치되는 것을 막고 사용자가 확인할 수 있음.
67
스파이웨어 스파이 웨어 자신이 설치된 시스템의 정보를 원격지의 특정한 서버에 주기적으로 보내는 프로그램.
자신이 설치된 시스템의 정보를 원격지의 특정한 서버에 주기적으로 보내는 프로그램. 사용자가 주로 방문하는 사이트, 검색어 등 취향을 파악하기 위한 것도 있었으나, 패스워드 등과 같은 특정 정보를 원격지에 보냄.
68
요약 악성 코드(Malicious Code) 악성 코드(프로그램)의 종류
수많은 프로그램 코드 중에서 사용자에게 피해를 입히거나 악의적인 동작을 하는 코드를 말한다. 악성 코드(프로그램)의 종류 바이러스 사용자 컴퓨터(네트워크로 공유된 컴퓨터 포함)내에서 사용자 몰래 프로그램이나 실행 가능한 부분을 변형해 자신 또는 자신의 변형을 복사하는 프로그램이다. 가장 큰 특성은 복제와 감염이다. 다른 네트워크의 컴퓨터로 스스로 전파되지는 않는다. 웜 인터넷 또는 네트워크를 통해서 컴퓨터에서 컴퓨터로 전파되는 프로그램이다. 다른 컴퓨터의 취약점을 이용하여 스스로 전파되거나 메일로 전파된다. 백도어와 트로이 목마 바이러스나 웜처럼 컴퓨터에 직접적인 피해는 입히지 않으나 다른 악의적인 공격자가 컴퓨터에 침투해 컴퓨터를 조작하도록 하는 프로그램이다. 고의적으로 만들어졌다는 점에서 프로그래머의 실수인 버그와는 다르며, 자기 자신을 다른 파일에 복사하지 않는다는 점에서 컴퓨터 바이러스와 구별된다.
69
요약 악성 프로그램으로 인해 발생할 수 있는 증상 바이러스의 종류
시스템 관련 : 시스템 설정 정보 변경, 파일시스템 파괴, CMOS 정보 파괴, 특정 프로그램 자동 실행, 시스템 종료 등 네트워크 관련 : 대량 메일 발송, 네트워크 속도 저하 등 하드 디스크 및 파일 관련 : 백도어 및 웜을 위한 백업 파일 생성, 파일 삭제 등 특이 증상 : 특정음 발생, 이상 화면 출력, 메시지 상자 출력 등 바이러스의 종류 1세대 원시형 바이러스 부트 바이러스 : MBR과 함께 PC 메모리에 저장되고, 부팅 후에 사용되는 모든 프로그램에 감염시킨다. 파일 바이러스 : 바이러스에 감염된 실행 파일이 실행될 때 바이러스 코드를 실행한다. 바이러스는 프로그램을 덮어쓰는 경우, 프로그램 앞부분에 실행 코드를 붙이는 경우, 프로그램의 뒷부분에 바이러스 코드를 붙이는 경우가 있다. 2세대 암호형 바이러스 : 바이러스 코드를 암호화한다. 3세대 은폐형 바이러스 : 바이러스가 활동할 때까지 일정 기간 동안 잠복기를 가지도록 제작되었다.
Similar presentations