악성 소프트웨어 및 보안 위협 공격 종류

2025. 12. 25. 23:20·IT Dictionary/정보보안산업기사
반응형
구분 컴퓨터 바이러스 트로이목마 웜
자기 복제 없음 없음 매우 강함
형태 파일이나 부트섹트 등
감염 대상 필요
유틸리티 안에 코드 형태로 삽입 독자적으로 존재
전파 경로 사용자가 감염된 파일을 옮김 사용자가 내려 받음 네트워크를 통해 스스로 전파
주요 증상 시스템 및 파일 손상 PC 성능 저하, 좀비 PC 네트워크 성능 저하

1. 바이러스(Virus)

  • 다른 프로그램을 변형시켜 감염(Infect) 시키는 프로그램 단편이며, 자신을 변형시켜 실행 가능한 형태
  • 파일 사이즈 증가, 갱신 타임스탬프 변경, 저장장치 잔여공간이 단시간 내에 변경, 디스크 접근횟수 증가 등 현상 발생
  • 변형이란 원래 프로그램에 루틴을 주입하여 바이러스 프로그램의 복제를 만들어냄
  • 일시적 바이러스, 상주 바이러스와 구분됨
  • 1세대 원시형 바이러스(Primitive Virus)
    • 프로그램 구조가 단순하고 분석이 쉬운 바이러스
    • 변형이나 변화 없이 고정된 크기를 가지며, 기억장소에 상주하며 루트 영역이나 파일을 감염
  • 2세대 암호화 바이러스(Encryption Virus)
    • 프로그램의 일부 또는 대부분을 암호화시켜 저장함
    • 실행 시작점 부분에 위치하는 암호해독 데이터는 항상 일정함
  • 3세대 은폐형 바이러스(Stealth Virus)
    • 기억장소에 존재하면서 감염된 파일의 길이가 증가하지 않은 것처럼 보이게 함
    • 백신 프로그램에게 감염되기 전의 내용을 보여줘 바이러스를 은폐함
  • 4세대 갑옷형 바이러스(Armour Virus)
    • 여러 단계의 암호화와 다양한 기법을 동원하여 바이러스 분석을 어렵게 함
  • 5세대 메크로 바이러스(Macro Virus)
    • MS 워드나 엑셀 등에 붙어서 그 파일이 열릴 때 실행됨 
    • 플랫폼과 무관하게 사용되며, 문서를 감염시키고 코드의 실행부분은 감염되지 않음
    • 전자메일 등을 통해 쉽게 퍼짐
    • PDF 문서는 자바스크립트 같은 다양한 형태에 스크립트를 포함시킬 수 있어 취약할 수도 있음

 

2. 바이러스 방지책

  • 안티 바이러스 방법
    • 탐지(Detection) : 감염되면 바이러스가 있는지 판단하고 위치를 파악
    • 식별(Identification) : 탐지되면 프로그램을 감염시킨 특정 바이러스를 식별
    • 제거(Removal) : 바이러스를 모든 감염된 시스템에서 제거하여 2차 피해 방지
  • 안티 바이러스 필터링 방법(Antivirus Filtering Method)
    • 시그니쳐 탐지(Signature Scanning) : 바이러스만 가진 특별 시그니쳐 식별, 이진 스트링, 명령어의 나열로 나타냄
    • 행위 기반 탐지(Behavioral Virus Scanning) : 바이러스가 수행 중에 어떤 행동을 보이는지 추적하는 방

 

3. 웜(Worm)

  • 자신의 복제본을 네트워크를 통해 전송, 하나의 컴퓨터에 도착하면 바로 복제를 하고 확산
  • 다른 시스템에 직접적인 영향을 끼치지 않는다는 점에서 트로이목마와 구분
  • 다른 프로그램에 기생하지 않는다는 점에서 바이러스와 구분
  • 공격자가 시스템의 접근 권한을 확보하기 위해 버퍼 오버프로우, 포맷 스트링 등 시스템의 취약점을 이용
  • 시스템의 권한이 확보되면, 좀비 및 봇 프로그램을 다운로드 등을 하여 웜을 설치함

 

4. 웜 방지책

  • 네트워크 기반 웜 방어
    • 웜 모니터링 소프트웨어를 이용해 방어
    • 진입 모니터(Ingress Monitors) : 엔터프라이즈 네트워크와 인터넷 사이의 경계에 위치하며 진입 필터링 착수
    • 진출 모니터(Ingress Monitors) : 나가는 트래픽에서 스캐닝의 흔적이나 기타 의심스런 행동을 모니터링

 

5. 트로이목마(Trojan Horse)

  • 자신의 실체를 드러내지 않으며 다른 프로그램의 한 유형인 것처럼 활동하는 프로그램
  • 원격 조정, 패스워드 가로채기, 키보드 입력 가로채기, 시스템 및 데이터 파일 파괴 등을 시도
  • 패치 파일, 상용 SW 등으로 가장하여 설치를 유도해 침투하는 악성 소프트웨어
  • 프로그램이 실행되는 순간, 시스템은 공격자에게 시스템을 통제할 수 있는 권한이 부여됨
  • 스파이웨어(Spyware)
    • 민감한 정보를 수집하여 원격지의 특정한 서버에 보내는 프로그램
    • 어떤 사람이나 조직에 관한 정보를 수집하는 데 도움을 주는 기술을 뜻함

 

6. 트로이목마 방지책

  • 신뢰할 수 없는 파일을 설치하지 않음
  • 안티 트로이목마 도구 사용 및 최신 상태의 시스템 유지

 

7. 쿠키 및 세션 보안 취약점

  • XSS(Cross-Site-Scripting)
    • 사용자의 컴퓨터에서 실행되는 자바스크립트를 직접 실행하여 공격 
    • "document.cookie" 라는 명령어로 쿠키값을 얻어 공격함
  • 스니핑(Sniffing) 을 이용한 공격
    • 쿠기 값을 암호화하지 않고 전송한다면 네트워크 스니픙을 통해 쿠키 값 탈취 가능
  • HTTP 세션 하이재킹(Session ID Hijacking)
    • 매번 동일한 세션을 사용하거나 세션 타임아웃을 너무 길게 설정한 경우 등 사용
    • 공격자가 다른 사용자의 세션을 재사용하여 해당 사용자의 권한을 탈취하는 취약점

 

8. 버퍼 오버플로우(Buffer Overflow, Buffer Overrun)

  • 프로세스 메모리 구조 및 스택 프레임
    • https://jaebins.tistory.com/3 (참조)

  • 버퍼 또는 데이터 저장 역에 할당된 용량보다 많은 입력을 주어 다른 정보를 변경하는 공격
  • 공격자는 해당 공격으로 시스템을 중지시키거나 스택 버퍼에 실행 코드를 주입하여 시스템에 제어를 가짐
  •  

9. 스택 버퍼 오버플로우(Stack Buffer Overflow)

  • 주로 SetUID가 설정된 루트 권한의 프로그램을 공격 대상으로 함
  • 스택 반환주소 버퍼를 오버플로우 시켜 반환 주소를 임의의 공격 코드로 덮어씌움 으로써 루트 권한을 얻음
  • 경곗값 체크와 파리미터 체크를 통해 방지하고, 최소 권한으로 프로그램 실행

 

10. 힙 오버플로우(Heap Overflow)

  • 힙에 요청되는 메모리는 레코드의 연결리스트와 같은 동적 데이터 구조를 위해 사용됨
  • 만약 이런 레코드가 오버플로우에 취약한 버퍼를 가지고 있다면 연속된 메모리가 손상될 수 있음
  • 할당된 공간이 함수에 대한 포인터를 갖고 있다면 공격자는 이 주소를 변경하여 겹쳐 쓴 버퍼에 셸코드를 가르킬 수 있음

 

11. 버퍼 오버 플로우 공격 대응책

  • 컴파일 시간 방어
    • 프로그램을 컴파일할 때 검사하여 버퍼 오버플로우를 방지하거나 발견
    • 가장 기본적인 방법은 Java, ADA, Python과 같이 현대화 된 프로그래밍 언어를 사용하는 것
    • C나 C++과 같이 메모리 접근에 높은 자유도를 가진 프로그래밍 언어는 할당왼 버퍼의 크기를 초과하지 않도록 해야함
    • 스택 보호 매커니즘(Stack Guard)
      • 함수의 진입(entry)과 종료(exit) 코드를 조사하고 함수의 스택 프레임에 손상이 있는지를 검사
      • gcc 컴파일러의 확장 버전으로 추가적인 함수 진입과 종료 코드를 삽입
      • 호출 ret 앞에 canary(밀고자) 값을 주입하고, 종료 ret 앞에 cannary 값 변조 여부를 확인
    • 스택 쉴드(Stack Shield)
      • 함수 시작 시 복귀 주소를 Global RET 라는 특수 스택에 저장해 두었다가 함수 종료 시 비교
  • 실행 시간 방어
    • 대부분의 컴파일 시간 기법은 기존의 프로그램을 다시 컴파일 해야함
    • 실행 시점 대응책은 실행가능 주소 보호 기법과 주소 공간 임의화 기법(ASLR), NOP sled을 포함
    • 실행가능 주소 보호 기법은 실행 코드가 메모리상의 특정 위치에서만 실행되게함
    • 주소 공간 임의화 기법은 스택 버퍼가 위치하는 주소 공간을 메모리 내에서 임의적으로 배치하여 예측할 수 없게함
    • NOP sled
      • NOP(No Operation)는 아무 기능도 수행하지 않는 명령어를 의미하며, 빈 공간을 채우는 용도로 사용, 0x90
      • 스택 버퍼의 맨 끝 부분에 셸 코드를 위치시켜 버퍼의 앞부분에 의도적으로 NOP를 채움
      • NOP로 인해 정확한 주소를 알기 어렵게 함

 

12. 포맷 스트링 공격(Format String Attack)

  • printf와 같은 포맷 스트링을 사용하는 함수를 사용하는 경우, 입출력 함수의 포맷 문자열로 그대로 사용할 때 발생하는 취약점
  • 공격자는 포맷 문자열을 이용하여 취약한 프로세스를 공격하거나 메모리 내용을 읽거나 쓸 수 있음 →프로세스 권한 취득
  • 예를 들어 %s 로 출력해야 할 변수를 %x와 같은 다른 포맷 스트링을 지정하여 RET 영역으로 이동 후 악성코드 실행
  • 대응책
    • %n이나 %hn과 같은 포맷 스트링을 변경할 수 있는 구조로 프로그램을 쓰지 않음

 

13. 레이스 컨디션 공격(Race Condition Attack)

  • 레이스 컨디션 : 둘 이상의 프로세스나 스레드가 공용자원에 동시에 접근할 때 접근하는 순서에 따라 비정상적인 결과가 발생
  • 실행되는 프로세스에서 만들어지는 임시 파일을 중간에 끼어들어 악의적인 프로그램으로 심볼릭 링크하는 행위
  • 파일의 소유자가 root이고 SetUID 비트를 가져야 하는 과정이 있어야 한다는 조건이 있음
  • lsof 명령어로 특정 파일에 접근하는 프로세스 목록들을 확인할 수 있음
  • 대응책
    • 임시 파일에 접근하기 전에 심볼릭 링크 설정 여부 및 권한 검사
    • umask를 최하 022 정도로 유지하며 임시로 생성한 파일이 공격자에 의해 악의적으로 삭제되지 않도록 함

 

14. 백도어(Back Door)

  • 시스템의 보안이 제거된 비밀통로로, 접근 편의를 위해 만들어 놓은 통로
  • 백 오피리스라는 악의적인 목적으로 만들어진 통로도 있으며, 트로이목마 바이러스로 분류
  • 대응책
    • 현재 동작 중인 프로세스 확인, 웜/바이러스나 백도어가 가장 애용하는 것은 Csrss와 Svchost 프로세스
    • H-IDS(호스트 기반 IDS)을 사용하여 의심스러온 포트의 활동을 탐지
    •  

 

15. 기타 공격

  • 익스플로잇(Exploit) : CSRF 공격, XSS 공격, BOF 공격과 같이 취약점을 이용하는 공격
  • Hoax : 남을 속이거나 장난을 목적으로 퍼트리는 가짜 바이러스
  • 논리 폭탄(Logic Bomb) : 특정한 사건이 발생하면 프로그램이나 일련의 코드를 실행하는 것
  • 루트킷(Rootkit) : 시스템 침입 후 루트 수준의 접근 허락을 얻기 위해 사용하는 해커 도구 모음
  • 지능형 지속 위협(APT) : 특정 대상을 겨냥해 다양한 공격 기법을 이용해 장기간 지속적으로 공격하는 것
  • 스피어 피싱(Spear Phishing) : 목표지향적인 피싱 공격으로, APT 공격의 초기 단계
  • 드라이브-바이-다운로드 : 사용자도 모르게 악성SW를 설치하는 기법, 웹브라우저(Plugin)의 취약점을 이용
  • 워터링 홀(Water Hole) : 공격 대상이 주로 방문하는 웹사이트의 제로데이 취약점을 이용하여 대상을 공격
반응형

'IT Dictionary > 정보보안산업기사' 카테고리의 다른 글

윈도우 및 리눅스 로그 관리  (0) 2025.12.23
유닉스 서버 보안(Unix Server Security)  (0) 2025.12.16
윈도우 서버 보안(Windows Server Security)  (0) 2025.12.14
보안 운영체제(Secure OS)  (0) 2025.12.04
접근통제 보안위협 및 대응책  (0) 2025.12.02
'IT Dictionary/정보보안산업기사' 카테고리의 다른 글
  • 윈도우 및 리눅스 로그 관리
  • 유닉스 서버 보안(Unix Server Security)
  • 윈도우 서버 보안(Windows Server Security)
  • 보안 운영체제(Secure OS)
MutJangE
MutJangE
즐거운 인생
  • MutJangE
    MutJangE
    MutJangE
  • 전체
    오늘
    어제
    • 분류 전체보기 (87)
      • IT Dictionary (59)
        • Hardware (3)
        • Software (9)
        • Data Structure (0)
        • Algorithm (1)
        • Database (7)
        • Network (10)
        • Linux (1)
        • Tool's Guide (1)
        • 정보보안산업기사 (24)
        • CTF & 보안 (3)
      • 일상 (9)
        • 배포중인 웹 서비스 (0)
        • CERT병 (7)
        • 토익 (0)
      • 프로그래밍 (19)
        • Java (1)
        • C# (6)
        • Unity (7)
        • React (4)
        • React native (1)
  • 블로그 메뉴

    • 링크

    • 공지사항

    • 인기 글

    • 태그

    • 최근 댓글

    • 최근 글

    • hELLO· Designed By정상우.v4.10.5
    MutJangE
    악성 소프트웨어 및 보안 위협 공격 종류
    상단으로

    티스토리툴바