초기 감염 형태는 의심되지 않는 사용자들로부터 프로그램, 디스크파일, USB 스틱을 상호 교환하는 것에 의하여 컴퓨터에서 컴퓨터로 전염
프로그램에 바이러스가 침투되면 프로그램은 제한되었던 행위들을 실행 할 수 있음
호스트 프로그램이 운영될 시 몰래 실행
특유의 운영 체제와 하드웨어
특유 운영체제와 하드웨어의 세부 사항과 약점 이용
전파: 손상된 내용- 바이러스
바이러스의 구성요소
감염 메커니즘
바이러스가 퍼지거나 전파하는 수단으로서 감염 벡터로 표현
트리거
logic bomb 공격
페이로드가 활성화하거나 전달될 때를 결정하는 이벤트/조건
페이로드
바이러스를 수행하는 부분
손상을 포함할 수 있음
많은 악성코드의 형태는 각 부분에 하나 이상의 변형을 포함
바이러스의 수행 4단계
1. 휴지 단계
바이러스는 활성화되지 않음
모든 바이러스가 휴지단계를 거치는 것은 아님
2. 전파 단계
바이러스는 자신을 복제하여 다른 프로그램 또는 디스크 상의 시스템 영역에 삽입
바이러스는 탐지를 피하기 위하여 변형되어 복제된 바이러스는 복제 이전의 바이러스와 같지 않을 수 있음
감염된 프로그램은 바이러스의 복제를 실행하고 다시 전파 단계로 들어감
3. 트리거 단계
바이러스는 의도한 기능을 수행하도록 설정
휴지 단계에서처럼 다양한 시스템 사건(날짜, 다른 프로그램이나 파일의 생성, 디스크 용량의 초과 등)에 의하여 활성화
바이러스가 자기 자신을 복제하는 경우도 하나의 사건으로 포함
4. 실행 단게
바이러스 내의 의도한 기능이 수행
단순히 스크린에 메시지(광고)를 실행하는 등 시스템에 무해할 수도 있고 데이터 파일과 프로그램 등을 파괴하는 것과 같이 손상을 입힐 수도 있음
실행 가능한 바이러스 구조
전통적인 기계 실행 코드 바이러스는 어떤 실행 프로그램의 열에 또는 뒤에 붙여 질 수 있거나 다른 형태로 끼워질 수 있음
감염된 프로그램이 적용될 떄, 첫 번째로 바이러스 코드가 실행되고 그 다음 원래 프로그램의 코드가 실행
코드의 첫 번째 줄은 바이러스에 의해 잠재적인 피해 프로그램이 이미 그 바이러스에 감염되었는지 안 되었는지 결정하기 위해 사용되는 특별한 표시
바이러스는 우선적으로 감염되지 않은 실행 파일을 찾고 그 파일을 감염시킴
요구되는 트리거 조건이 만족된다면 바이러스는 페이로드를 실행
바이러스 로직 예
단순 바이러스
program V
1234567;
procedure attach-to-program;
begin
repeat
file := get-random-program;
until first-program-line ≠ 1234567;
prepend V to file;
end;
procedure execute-payload;
begin
(* perform payload actions *)
end;
procedure trigger-condition;
begin
(* return true if trigger condition is true *)
end;
begin (* main action block *)
attach-to-program;
if trigger-condition then execute-payload;
goto main;
end;
압축 바이러스
program CV
1234567;
procedure attach-to-program;
begin
repeat
file := get-random-program;
until first-program-line ≠ 1234567;
compress file; (* t₁ *)
prepend CV to file; (* t₂ *)
end;
begin (* main action block *)
attach-to-program;
uncompress rest of this file into tempfile; (* t₃ *)
execute tempfile; (* t₄ *)
end;
바이러스 동작 예
![[Pasted image 20241125222537.png]
전제 조건
프로그램은 시간 t0에서 시작
은 바이러스 에 감염된 프로그램
는 에 감염되지 않은 깨끗한 프로그램
감염된 (=)이 실행될 때 다음의 단계를 수행
감염되지 않은 파일 P2에 대하여 바이러스는 원래의 프로그램보다 바이러스 크기만큼 짧은 P2’파일을 만들기 위해 압축