본문 바로가기
정보보안/시스템보안

클라이언트 보안 악성 소프트웨어 1/2

by 피갓자 2025. 2. 7.

클라이언트 보안 악성 소프트웨어
클라이언트 보안 악성 소프트웨어

악성 소프트웨어 개념

  • 개발자가 의도적으로 사용자가 원하지 않는 기능을 컴퓨터 프로그램에 포함하거나 프로그램 자체의 오류로 인하여 사용자가 원하지 않는 시스템 충돌, 프로그램 중단, 개인 정보 수집, 네트워크 포트 개방 등의 결과가 발생하는 것
  • 컴퓨터 프로그램이 의도적 또는 비의도적으로 실행되면서 기밀성, 가용성, 무결성 등의 보안 속성을 침해할 때 해당 프로그램은 해로운 프로그램으로 간주
  • 특히 의도적으로 컴퓨터의 보안 속성을 침해할 목적으로 작성된 프로그램을 악성 프로그램이라 함

악성 소프트웨어 분류

독립형과 기생형

  • 악성 소프트웨어는 두 개의 범주로 나눌 수 있음. 호스트 프로그램이 필요한 것과 필요하지 않은 것
  • 전자의 경우 기생적(Parasitic)이라고 하는데 프로그램 단편으로 다른 실제 응용 프로그램이나 유틸리티나 시스템 프로그램 없이 독립적으로 존재할 수 없음(예 : 바이러스, 논리폭탄, 백도어)
  • 후자에 속하는 악성 소프트웨어는 자체적으로 구동될 수 있는 프로그램으로 운영체제에 의해 스케줄 되어 구동될 수 있음(예 : 웜, 좀비 프로그램)

자가 복제 여부

  • 악성코드는 자기 복제 여부에 따라 바이러스성 악성코드와 비바이러스성 악성코드로 나뉨. 바이러스성 악성코드에는 웜과 바이러스가 있으며 비바이러스성 악성코드에는 트로이목마와 백도어 등이 있음
  • 웜은 자기 복제를 한다는 측면에서 바이러스와 공통점을 가짐. 하지만 바이러스와 달리 숙주 파일 없이 자체 실행 코드를 이용해 네트워크를 통하여 자기 자신을 복제해 전파하며 다른 프로그램을 감염시키지 않음
  • 바이러스는 정상적인 프로그램이나 데이터를 파괴할 목적으로 시스템 부트, 메모리, 파일 영역 등에 기생하다가 다른 프로그램을 감염시킴

바이러스(Virus)

  • 다른 프로그램을 변형시키도록 하여 “감염(Infect)”시키는 프로그램 단편이며, 실제로 자신을 변형시켜 실행할 수 있는 형태이기도 함
  • 변형이란 원래 프로그램에 루틴을 주입해서 바이러스 프로그램의 복제를 만들어내는 걸 말하는데, 이것이 다른 콘텐츠를 감염시킴
  • 자신을 완벽하게 복제할 수 있는 명령코드를 가지고 있음. 전형적으로 컴퓨터상의 프로그램이나 실행 콘텐츠의 전송자 속에 내장됨

세대별 분류

제1세대 원시형 바이러스(Primitive Virus) : 실력이 뛰어나지 않은 프로그래머가 만들어 프로그램 구조가 단순하고 분석이 상대적으로 쉬움. 코드의 변형이나 변화 없이 고정된 크기를 가지며, 주로 기억장소에 상주해서 부트 영역이나 파일을 감염시킴

제2세대 암호화 바이러스(Encryption Virus) : 백신 프로그램이 진달할 수 없도록 바이러스 프로그램의 일부 또는 대부분을 암호화시켜 저장. 실행 시작점 부분에 위치하는 암호해독 데이터는 항상 일정함

제3세대 은폐형 바이러스(Stealth Virus) : 기억장소에 존재하면서 감염된 파일의 길이가 증가하지 않은 것처럼 보이게 하며, 백신 프로그램이 감염된 부분을 읽으려고 할 때 감염되기 전의 내용을 보여줘 바이러스가 없는 것처럼 백신 프로그램이나 사용자를 속임

제4세대 갑옷형 바이러스(Armour Virus) : 백신 프로그램 제작자에게 공격의 화살을 돌려 백신 프로그램으로부터 숨기기보다는 여러 단계의 암호화와 다양한 기법을 동원하여 바이러스 분석을 어렵게 하고 백신 프로그램 개발을 지연시킴

제5세대 매크로 바이러스(Macro Virus) : 매크로 기능이 있는 MS사 오피스 제품군 이외에 비지오(Visio), 오토캐드 등 VBS(Visual Basic Script)를 지원하는 다양한 프로그램에서 활동하기 때문에 현재 등장하고 있는 바이러스 중에서 가장 높은 비중을 차지하고 있음

감염 대상별 분류

부트 바이러스

  • 부트 영역에 감염되는 바이러스(플로피 디스크/하드 디스크) 감염 후 윈도우 환경에서는 치료가 어려우므로 도스 부팅 후 치료 필요
  • Brain 바이러스, Michelangelo 바이러스, Monkey 바이러스, Anti-CMOS 바이러스, WYX 바이러스 등

파일 바이러스

  • 일반적으로 실행할 수 있는 프로그램 파일(.com, .exe 등)에 감염되는 바이러스이며, 윈도우에서는 다양한 형태의 실행 파일 존재, 다양한 형태의 파일에 감염
  • 도스용 파일 바이러스, 윈도우용 파일 바이러스, 매크로 바이러스

부트/파일 바이러스

  • 부트 영역 및 파일에 모두 감염되는 바이러스
  • 나타스 바이러스, 침입자 바이러스, 데킬라 바이러스 등

매크로 바이러스

  • 응용 프로그램에서 지원하는 매크로 기능을 이용해서 자신을 복제하는 능력을 가진 바이러스
  • 플랫폼과 무관하게 사용되어 Windows, MacOS, Linux에서도 피해를 당할 수 있음
  • 대부분의 바이러스는 문서를 감염시키고 코드의 실행 부분은 감염시키지 않음
  • 쉽게 퍼짐. 가장 보편적인 방법은 전자메일
  • 실행 파일(.com, .exe)을 다룰 때보다 주의를 덜 하므로 피해가 더 큼
  • Adobe사의 PDF 문서는 JS(Java Script) 같은 다양한 형태의 스크립트를 포함할 수 있음
  • 데이터 파일 중에 명령어를 실행시키는 MS 워드나 엑셀 등에 붙어서 그 파일이 열릴 때 실행됨. 매우 흔한 바이러스이지만 사용자는 데이터 파일은 바이러스에 의해 감염되지 않는다고 생각함

바이러스 방지책

안티 바이러스 방법

  • 바이러스 위협에 대한 해결책은 예방
  • 예방을 하면 바이러스 공격의 성공률을 줄일 수 있지만, 일반적으로 이 목적을 달성하는 것은 불가능
  • 탐지(Detection) : 감염되면 바이러스가 있는지 판단하고 위치를 파악
  • 식별(Identification) : 탐지되면 프로그램을 감염시킨 특정 바이러스를 식별
  • 제거(Removal) : 식별하면 더 이상 퍼지지 않도록 모든 감염된 시스템에서 바이러스 제거

안티 바이러스 필터링 방법(Antivirus Filtering Method)

  • 바이러스를 검출하기 위해 패턴 기반 바이러스 검사(Signature-based Virus Scanning) 방법과 행동 기반 바이러스 검사(Behavioral Virus Scanning)라는 방법이 사용됨
  • 패턴 기반 바이러스 검사 : 특정 바이러스만이 가진 유일한 형태의 패턴을 찾아내는 방법. 이런 패턴은 실행할 수 있는 코드(Executable Code)의 경우에는 이진 스트링으로 표현되고, 스크립트 등의 언어로 된 바이러스에서는 명령어의 나열로 나타남. 현재까지 대부분의 안티 바이러스 프로그램이 채택하고 있는 방법
  • 행동 기반 바이러스 검사 : 바이러스가 수행 중에 어떤 행동을 보이는지를 추적하는 방법으로 패턴 기반에서 탐지 불가능했던 새로운 바이러스와 웜에 대한 대처 능력을 가질 수 있음

바이러스 예방

  • 신뢰성 있는 업체에서 구입한 상업용 소프트웨어 사용
  • 안전하다고 생각될 때만 첨부파일 열기
  • 바이러스 스캐너를 이용하여 정기적 검사, 바이러스 스캐너 업데이트
  • Windows Script Host, ActiveX, VBScript, JavaScript는 비활성화
  • 업무를 심하게 방해하지 않는 수준에서 악성코드에 대응하는 보안 정책 수립 적용