우선 내가 지금 진행하는 프로젝트기 때문에 자세한 내용은 생략하고
간단한 개념만 좀 적어본다
악성코드를 탐지하는 방법은 크게 두 가지로 구분이 된다.
백신도 위의 방법을 사용함.
시그니처 기반 탐지
- 파일의 시그니처를 보고 판단함
- 해당 파일만 식별할 수 있도록 시그니쳐를 확실하게 작성하면 오탐율이 없음
휴리스틱 기반 탐지
- 파일의 패턴, 행위 등을 보고 판단함
- 패턴 행위로 추측하는 것이기 때문에 오탐율이 높음
그래서 백신같은 경우 시그니처 기반으로 탐지해서 악성코드 찝어내고
휴리스틱 기반으로 위험도를 알려줌 그래서 백신우회할 때 탐지하는 시그니쳐 우회해주면 우회가 되는게
그 원리임...
다시 본론으로 돌아가서 yara는 시그니처 기반 탐지 오픈소스 도구임
얘는 rule이라는 것을 작성하는데
rule이 뭐냐?
악성코드를 식별해주는 규칙들을 작성하는 것임
그래서 그 규칙에 맞으면 악성코드라고 판별해줌
비유해서 예를들면
룰 - string = "해킹툴"
악성코드에 "해킹툴"이라는 문자열이 있으면 악성코드라고 판단하는 거임
대부분 보안 공부하는 사람은 사용법만 알기 때문에 어떻게 돌아가는지는 잘 모름
단순히 "룰을 작성해서 악성코드를 탐지하는 도구"라고만 알고있음
나 같은 경우 gpu에 올리기 위해서 yara를 전부 분석하고 있음
알아야 될 지식은
- 컴파일러
- 자료구조
- 알고리즘
- C언어
- GPGPU(CUDA)
- 컴퓨터구조
- 운영체제
이렇게 됨...컴파일러가 왜 필요한가 궁금하겠지만
yara에 사용하는 rule같은 경우 yara 자체가 만든 컴파일러로 rule을 컴파일해서 만듬
컴파일된 룰은 YARA라는 식별자를 가진 바이너리 파일로 컴파일되고 나중에 비교수행함
그러니깐 아둔말 듣고 자료구조 알고리즘 공부 안하면 땔감 되는거임
짤은 yara가 자체 컴파일러를 통해 rule을 컴파일 하는 부분임
함수 겉에 부분만 가져온거라 간단해 보이지만 내부로 들어가면 존나 깊음
어쨋든 지금 나는 이것을 gpu에 올리고 있고
대략 3000개의 코어로 병렬처리해서 속도를 올릴 생각임
프로젝트 진행도는 30%정도 진행됨 8월 내로 완성될 듯
9월부터는 다시 스프링 공부해야됨
다 만들면 논문으로 공개 될 예정임
랜섬가드 개발자 입니다. 만들지말고 랜섬가드 쓰세요. 윈도우 디펜더 프로그램에 최상 궁합으로 맞춰 개발한 백신입니다. 이제 사용자도 제법 됩니다. ㅋ
https://ransomguard.net
ㄴ 랜섬가드 들고 악성코드 회사 취업하면 되겄네요
악성코드 회사가 어딧음?
안랩, 이스트소프트 등등 있잖아
AV 보유 기업이나 악성코드 분석회사
참고로 백신 프로그램은 단순히 남의 코드 보고 만들수 있는게 아니에요.
저는 외국에 있어서 >_ <..
ㄴclamav 는 폼이냐
암튼 파일시스템에 대한 빠삭한 지식과 단순한 시그니쳐 검색 보다는 언제 어디서 어떻게 프로세스를 막고 탐지하느냐가 관건 이죠.
이미 직장이 있어서...
근데 YARA는 오픈 백신인가요?
ㄴ백신이라기 보다 시그니처 패턴매칭 도구라니깐
ㅇㅇ