본문 바로가기

S-DEV/Anti-Virus

Anit-Virus - 0

728x90

• Anit-Virus 제품군은 무엇인가?

- File System Scanning

- 치료? 격리?

⇒ 컴퓨터의 바이러스 등의 악성코드를 탐지하고 방어하기 위한 유틸리티 소프트웨어이다.

*악성코드 : 정책을 위반하는 프로그램이다.

* 정책이란 운영체제 → 컴퓨터를 운영하기 위한 정책을 프로그래밍한 소프트웨어이다.

 

• 하드웨어 구조와 OS, 컴파일러 관계(HW Arch, OS, Compiler와 함께 발전하는 Anti-Virus 시스템)

- Turing Machine (메모리 기반의 컴퓨터)

> 규칙표에 따라 테이프 스트립의 기호를 조작하는 추상기계를 설명하는 계산의 수학적 모델이다.

> 모델의 단순성에도 불구하고 모든 컴퓨터 알고리즘을 구현할 수 있다. 

> Turing Machine은 컴퓨터가 수행하는 모든 데이터 조작을 제어하는 중앙 처리 장치(CPU)의 이상화된 모델이며 표준기계는 데이터를 저장하기 위해 순차적 메모리를 사용한다. → 일반적으로 순차 메모리는 기계가 읽기 및 쓰기 작업을 수행할 수 있는 무한 길이의 테이프로 표시된다.

 

- Von Neumann 구조

> 폰 노이만 컴퓨터, 폰 노이만 구조

> 컴퓨터 구조학을 열어준 최초의 범용 컴퓨터 구조

 

- CISC vs RISC 

> CISC (Complex Instruction Set Computer)

⇒ 모든 고급언어 문장들에 대해 각가 기계 명령어가 대응되도록 하는 것이다.

 복잡하고 기능이 많은 명령어로 구성된 프로세서 

 전력소모가 크고 속도가 느리고 가격이 비싸다.

트랜지스터 집적에 있어서 효율성이 떨어짐 

 

> RISC (Reduced Instruction Set Computer)

⇒ CISC의 많은 명령어 중 주로 쓰이는 것만을 추려서 하드웨어로 구현하는 것이다.

⇒ CPU의 명령어를 최소화하여 단순학 제작된 프로세서

컴파일러의 최적화가 요구됨

전력 소모가 적고 속도가 빠르고 가격이 저렴

 

- Cache System 

최신의 현대 컴퓨터 시스템은 Cache 체계를 수용한다.

> HW, SW, Network 등 모든 체계에 존재

> 현재는 n-Way Set Asscoiative Method 방식이 대다수

> Cache 정책으로 대변되는 캐시 알고리즘  

 → 컴퓨터에 저장된 정보의 캐시를 관리하기 위해 컴퓨터 프로그램 또는 하드웨어 유지 구조가 활용할 수 있는 최적화 명령 또는 알고리즘이다. 

이를 통해 발생하는 보안 취약점은 Spectre이다.

 

- Harvard Architecture 

현재 우리가 사용하고 있는 대다수의 프로세서 구조

Multi-Threading 모델을 구현할 수 있는 최소한의 CPU 구조

Heterogeneous System Architecture의 기반 

 

*Heterogeneous System Architecture 튜닝 머신을 기반으로 사용하고 있다.

* TMI

양쟈 컴퓨터는 튜닝 머신 기반으로 만들지 않았다.

> 양자 컴퓨터는 비선형적인데 한뱡향으로 동작이 되면서 되돌릴수 있기에 단방향으로 풀 수 있는 비대칭 암호를 풀 수 있다.

 

- Multi-core Architecture

Cache 시스템의 발전으로 등장

초기 슈퍼컴퓨터 - 네트워크 기반 소프트웨어 분산 구조 컴퓨터로 시작 이후 Multi-Socket 형식의 캐시 메모리 버스 기반으로 변경

반도체 집적률 향상으로 L3 캐쉬 기반 Shared Cache Memory 구조로 변형

Multi-core Architecture를 지탱하는 두 가지 기술

Network Mesh Network 기술 → Mant-Core Architecture로 발전

Cache Memory Hierarchy 기반 기술 → Heterogenous System Architecture로 발전

 

- NUMA (Non-uniform Memory Architecture)

Memory Hierarchy의 최상위 레벨

슈퍼컴퓨터가 점점 저렴해지고 있음

다양한 형태의 프로세세, 소프트웨어 구조가 사용되고 있음

네트워크 버스를 메모리 버스로서 사용할 수 있는 구조

 

- Compile (사람이 이해하는 언어를 컴퓨터가 이해할 수 있는 언어로 바꿔주는 역할)

컴파일 과정은 4가지 단계(전처리 과정 - 컴파일 과정 - 어셈블리 과정 - 링킹 과정) 로 나누어진다.

컴파일러는 Lexical Anlyzer 랑 Parser로 되어 있다. 

'S-DEV > Anti-Virus' 카테고리의 다른 글

Yara 프로젝트  (0) 2023.10.29
Flex & bison  (0) 2023.07.31
Anti-Virus - 1  (0) 2023.07.30