본문 바로가기
보안

정보보호개론] 13. 악성 소프트웨어

by excelnote2 2013. 5. 17.

* 컴퓨터 바이러스

악성 소프트웨어

  - 컴퓨터 바이러스, 트로이목마, , 논리폭탄, 트랩도어


컴퓨터 바이러스

  - 자기자신을 복제할 수 있는 기능

  - 시스템이나 실행파일 감염

  - 주로 어셈블리어와 C로 작성

  - 새로운 바이러스가 나오면 변형바이러스도 나옴


바이러스의 발전단계

  • 1세대 : 원시형 바이러스(예루살렘, 스톤)

    - 초기 바이러스

  • 2세대 : 암호화 바이러스(폭포,느림보)

    - 백신이 진단하기 어렵게 바이러스 프로그램을 암호화

    - 실행하는 첫부분 암호를 해독하는 부분이 항상 일정하므로 실효를 거두지 못함

  • 3세대 : 은폐형 바이러스(브레인,조쉬,512,4096)

    - 파일의 길이가 증가하지 않도록 보이게

    - 백신이 감염부분을 읽으려면 그 이전의 내용을 보여줌

  • 4세대 : 갑옷형 바이러스(고래)

    - 여러단계의 암호화와 고도의 자체 수정기법으로 바이러스 분석이 어려움

    - 다형성 바이러스 : 감염시킬 때마다 암호화를 해독하는 부분이 달라지므로, 암호화 알고리즘도 내장해야


[ IBM-PC 바이러스의 분류 ]

부트 바이러스

  - 플로피 디스크에 감염 : 브레인 바이러스, LBC II

  - 하드디스크에 감염(마스터 부트 섹터 또는 도스섹터)


파일 바이러스

  - 일반적 프로그램에 감염

  - COM, EXE, 오버레이파일, 디바이스 드라이버에 감염

 • 감염파일에 따른 분류

  - 특정파일 감염 : 르하이 바이러스

  - COM 바이러스, EXE 바이러스 등

 • 감염위치에 따른 분류

  - 기생형 바이러스

    · 원래 프로그램을 파괴하지 않고 프로그램 앞, 뒤에 바이러스 프로그램 붙임

    · 바이러스 실행 후 원래 프로그램을 실행하므로 감염사실 알지 못함

    · 예루살렘 바이러스, 어둠의 복수자 바이러스

  - 겹치기형 바이러스

    · 원래 프로그램이 있는 곳에 바이러스 겹쳐씀

  - 산란형 바이러스(AIDS II 바이러스)

    · EXE파일을 감염시키지 않고 같은 이름의 COM 파일을 만들어서 거기다 바이러스를

  - 연결형 바이러스(DIR II 바이러스 )

    · 디렉토리 영역에 저장된 프로그램의 위치를 바이러스 프로그램으로 바꿈

    · 프로그램 실행이 끝나면 다시 원래대로

 • 동작원리에 따른 분류

  - 비상주형 바이러스(대만, 비엔나 바이러스)

    · 일반적 프로그램처럼 실행 후 기억장소에서 사라짐

  - 상주형 바이러스

    · 한번 실행되면 계속 기억장소에 상주

    · 예루살렘바이러스, 어둠의 복수자 바이러스


부트/파일 바이러스

  - 부트섹터와 파일 모두에 감염

  - 침입자 바이러스, 데킬라 바이러스  


* 바이러스 백신 프로그램

바이러스 기생장소에 의한 분류

 • 겹쳐쓰기형 바이러스

   - 원래의 파일을 파괴, 덮쳐쓰기

 • 비겹쳐쓰기형 바이러스

   - 파일 뒷부분에 바이러스를 복사하고, 파일 가장 앞에 바이러스로 분기하는 명령어를 넣음

   - 분기명령을 넣기 위해 손상된 부분은 뒷부분에 넣어 바이러스 끝나고 실행되도록

 • 메모리상주형 바이러스

   - 한번 실행되면 메모리에 상주

   - 위험과 전파속도가 매우 큼

 • 호출바이러스

   - 자신을 복제하고 숨기는 방법 사용

   - 일련의 코드를 하나의 파일로 만들어 디스켓 안에 저장

   - 감염시킬 때 바이러스 호출 명령어만을 파일에 써넣는다

   - 감염된 파일은 원래 그대로고, 파일크기도 커지지 않음


바이러스의 경로

  - 불법복사, 불법 소프트웨어, 인터넷, 이메일

  - 다중사용자의 시스템 주변장치


컴퓨터 바이러스 예방대책

 • 관리적 예방대책

   - 불법복사 사용금지

   - 인터넷이나 네트워크 다운로드는 안 중요한 컴퓨터에서

   - 바이러스 진단프로그램을 정기적으로 업데이트

   - 주요자료 백업

   - 지속적 교육

 • 기술적 예방대책

   - 주기적으로 2~3개 백신 사용

   - 실행파일은 읽기전용으로

   - PC의 부팅제어기능이나 바이러스 방지기능 사용


바이러스 백신 프로그램

 • 예방용 백신 프로그램

   - 바이러스는 이미 감염된 파일은 지나가는 특성 이용

   - 메모리 구조의 인터럽트 벡터 테이블의 값 가로채 바이러스 동작 여부 확인

   - 바이러스들의 문자열을 일일이 비교

   - AND, XOR의 명령으로 해당 파일을 암호화하여 통계합계를 생성시켜 파일의 변형여부 확인

 • 진단용 백신 프로그램 (알려진 바이러스 2 + 새로운 바이러스 2)

   - 문자열 비교 방법 : 실행 가능한 모든 파일에 대해 일일이 패턴검사를 통해 감염여부 확인

   - 내부알고리즘 추적방법 : 내부알고리즘으로 특정 문자열이나 특정한 루틴의 수행 여부를 가려 진단

   - 특정 문자열의 존재확인 방법 : 바이러스 제작자들이 특정 코드 등을 심어 놓음

   - 인공지능 기법 : 바이러스들이 갖는 공통적 문자 패턴을 미리 데이터베이스화하여 진단 - 느리며, 오작동 가능성

 • 치료용 백신 프로그램

   - 비겹쳐쓰기형 바이러스

     · 전위형 바이러스 : 파일의 맨 앞쪽 바이러스 부분 삭제

     · 후위형 바이러스 : 처음 실행 부분과 레지스터의 내용을 정상적으로 복구해야 하고 원래의 파일 크기 값을 확인하여 원래의 파일 크기 값을 확인하여 감염된 파일 뒷 부분에 존재하는 바이러스 삭제

  - 겹쳐쓰기형 바이러스는 복구 불가능하므로 삭제

<!--[if !supportEmptyParas]--> <!--[endif]-->

* 기타 유형의 악성 소프트웨어

악성소프트웨어

  - 트로이목마, , 논리폭탄 등 : 정상적 파일을 감염시켜 피해를 입히는 바이러스와 달리 정상적 프로그램에 불법적 기능을 실행하는 명령어 삽입시켜 부정행위

 • 트로이목마

   - 트로이목마 배포자가 의도하는 결과를 수행하는 명령을 불법적으로 삽입한 은폐된 프로그램

   - 컴파일된 상태에서 실행되므로 원시코드 확인불가

   - 스스로 증식하지 않는다는 점에서 바이러스와 차별(확산정도다 적다)

 •

   - 초창기 형태의 악성소프트웨어

   - 기억장소에서 계속 자신을 증식, 크리스마스바이러스

   - 다른 시스템에 직접 영향을 미치지 않는다는 점에서 트로이 목마와 다르고, 다른 프로그램에 기생하지 않는 다는 점에서 바이러스와 다르다

 • 논리폭탄

   - 정상적인 프로그램에 은폐된 루틴을 삽입하여 컴퓨터에서 루틴이 정하는 논리적인 조건이 이루어지면 루틴에 삽입된 명령 실행(특정한 날 시스템 파일 전부 삭제)

 • 트랩도어

   - 프로그램의 오류를 악의적으로 사용하는 것

   - 복잡한 컴퓨터는 디버깅의 편의 등을 위해 특수한 접근 지점 마련, 이곳을 이용하는 것


○ 자바애플릿 보안

 • 자바

   - 선마이크로시스템사의 객체지향 프로그램.

   - 자바애플릿 : 자바언어로 작성된 작은 프로그램으로 멀티미디어 처리에 중점

   - 클라이언트는 서버의 자바 애플릿을 다운받아 클라이언트의 자원을 사용하여 실행

   - 서버의 자원을 사용하지 않는 분산환경 컴퓨팅을 실현

   - 그러나 많은 보안상의 취약점

 • 자바애플릿 보안

   - 실행가능 컨텐트 : 실행가능한 코드를 데이터와 함께 보낼 수 있다는 개념. 인터넷 환경에서 강력한 상호작용성

   - 컴퓨터 상에서 프로그램이 실행될 때 특정한 자원에 대한 접근을 프로그램이 직접해야 한다는 문제

   - 실행가능 컨텐트의 경우 실행되고 있는 프로그램을 신뢰할 수 없다

   - 악의적 애플릿

     · 사용자의 시스템에 치명적 피해.

     · 애플릿이 클라이언트가 위치한 지역컴퓨터의 권한으로 실행되기 때문에 시스템의 모든 데이터의 삭제 등 가능

   - 악성 애플릿

     · 사용자에게 치명적이지는 않음(웹브라어저 재실행, 시스템 재부팅)

 • 악성애플릿의 종류

   - 성가신 애플릿 : 사용자의 신경을 거스르거나 귀찮게..

   - 서비스 거부 공격 : 시스템의 모든 자원을 사용함으로 사용자가 컴퓨터를 쓰지 못하게

   - CPU 시간 훔치기 : 피해자 몰래 피해자의 CPU를 사용

   - 전자우편 위조 : 포트25를 사용하여 sendmail 데몬과 직접 대화, 피해자의 이름으로 전자우편 발송

   - 애플릿 암살자 : 다운로드되어 실행하는 모든 애플릿의 모든 쓰레드를 종료시킴으로 결과적으로 모든 애플릿을 종료

 

댓글