본문 바로가기
IT

스터디그룹 프로젝트 - 화이트리스트 기반 안티 바이러스 프로그램 2차 완성

by %? 2022. 3. 15.

전체샷(화이트리스트 DB, 검사 안 된 파일 목록 DB, 바이러스 검출 후 삭제된 파일

 

화이트리스트 DB(파일 전체 경로, SHA256 값)

 

검사 안 된 파일 목록 DB(파일 전체 경로, SHA256 값)

 

VirusTotal API를 이용한 검사 확인 및 개수

 

경로 입력 후 하위 폴더 검색 비활성화 및 화이트리스트 DB에 데이터 저장 및 VirusTotal API를 이용하여 검사하는 화면

 

(1) 경로 입력 후 하위 폴더 검색 활성화 및 화이트리스트 DB에 존재하는 파일은 따로 표기와 DB에 저장 안 하는 화면(하단 줄)
(2) 경로 입력 후 하위 폴더 검색 활성화 및 VirusTotal API를 이용하여 검사했을 때 검사가 안 된 파일이랑 바이러스 검출 후 DB에서 삭제 및 파일 삭제하는 화면


1. (요약)경로 입력 후 하위 폴더 검색 비활성화 후 나오는 결과 &

초기 실행 결과

 

insert-> D:\Develop\ICT\TEST

search low? => 1.yes 2.no 2
.
..
Dir ->D:\Develop\ICT\TEST\1
Dir ->D:\Develop\ICT\TEST\2
Dir ->D:\Develop\ICT\TEST\3
Dir ->D:\Develop\ICT\TEST\4
Dir ->D:\Develop\ICT\TEST\5

File->D:\Develop\ICT\TEST\6.txt

185f8db32271fe25f561a6fc938b2e264306ec304eda518007d1764826381969

Save SHA256 to WhiteList

-------------------------------------------------


Dir ->D:\Develop\ICT\TEST\Virus

File->D:\Develop\ICT\TEST\vtapi2.py

41bf2433096bbd1c6bf975546cac3454ad1a843b2ced138735caa09b3c5fbc7a

Save SHA256 to WhiteList

-------------------------------------------------


========== Virus Total Loading ==========
=========================================
sha256 : 185f8db32271fe25f561a6fc938b2e264306ec304eda518007d1764826381969
=========================================
ViRobot             : None
AhnLab-V3           : None
ALYac               : None


========== Virus Total Loading ==========
=========================================
sha256 : 41bf2433096bbd1c6bf975546cac3454ad1a843b2ced138735caa09b3c5fbc7a
=========================================
ALYac               : None
ViRobot             : None
AhnLab-V3           : None

========== clear ==========

계속하려면 아무 키나 누르십시오 . . .


2. (요약)경로 입력 후 하위 폴더 검색 활성화 후 결과 &

화이트리스트 DB에 이미 존재하는 파일에 대한 결과 &

VirusTotal API 검사 결과가 없는 파일에 대한 결과 &

VirusTotal API 검사 후 바이러스 검출된 파일에 대한 결과

 

insert-> D:\Develop\ICT\TEST

search low? => 1.yes 2.no 1
.
..
Dir ->D:\Develop\ICT\TEST\1
.
..

File->D:\Develop\ICT\TEST\1\TEST1.txt

e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855

Save SHA256 to WhiteList

-------------------------------------------------

Dir ->D:\Develop\ICT\TEST\2
.
..

File->D:\Develop\ICT\TEST\2\TEST2.txt

d6ec6898de87ddac6e5b3611708a7aa1c2d298293349cc1a6c299a1db7149d38

Save SHA256 to WhiteList


Dir ->D:\Develop\ICT\TEST\Virus
.
..

File->D:\Develop\ICT\TEST\Virus\rdpwrap.dll

798af20db39280f90a1d35f2ac2c1d62124d1f5218a2a0fa29d87a13340bd3e4

Save SHA256 to WhiteList

-------------------------------------------------


File->D:\Develop\ICT\TEST\vtapi2.py

41bf2433096bbd1c6bf975546cac3454ad1a843b2ced138735caa09b3c5fbc7a

Already exsit in WhiteList

-------------------------------------------------


========== Virus Total Loading ==========
=========================================
sha256 : e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855
=========================================
ALYac               : None
ViRobot             : None
AhnLab-V3           : None

========== Virus Total Loading ==========
=========================================
sha256 : d6ec6898de87ddac6e5b3611708a7aa1c2d298293349cc1a6c299a1db7149d38
=========================================
nProtect            : None
ViRobot             : None
AhnLab-V3           : None
ALYac               : None

========== Virus Total Loading ==========
=========================================
sha256 : 15e2b0d3c33891ebb0f1ef609ec419420c20e320ce94c65fbc8c3312448eb225
=========================================
ALYac               : None
ViRobot             : None
AhnLab-V3           : None

========== Virus Total Loading ==========
=========================================
!!!!!!!!!! Sorry, No Match !!!!!!!!!!
=========================================

========== Virus Total Loading ==========
=========================================
!!!!!!!!!! Sorry, No Match !!!!!!!!!!
=========================================

========== Virus Total Loading ==========
=========================================
sha256 : 798af20db39280f90a1d35f2ac2c1d62124d1f5218a2a0fa29d87a13340bd3e4
=========================================
ViRobot             : None
AhnLab-V3           : Unwanted/Win.Rdpwrap.C2410573

Delete '798af20db39280f90a1d35f2ac2c1d62124d1f5218a2a0fa29d87a13340bd3e4' because it has virus

========== clear ==========

계속하려면 아무 키나 누르십시오 . . .


[결과 정리]

 

1. 특정 경로를 입력하여

하위 폴더에 대한 검색 유무 요청 후

결과에 따라 실행

 

2. 각 파일에 대한 SHA256 값 계산 후

화이트리스트 DB(WhiteList.db)에 등록 후 결과 출력

 

3. 화이트리스트 DB에 계산한 SHA256이 이미 존재할 시

DB에 등록하지 않고 존재한다는 문자열 출력

 

4. VirusTotal API에 SHA256을 검사가 안 될 시

별도 DB(NoFind.db)에 등록 후

화이트리스트 DB에서 삭제 후 결과 출력

 

5. VirusTotal API에 SHA256을 검사했을 시

바이러스가 하나 이상 검출되면

화이트리스트 DB에서 삭제 및 파일 삭제 후 결과 출력


[수정할 부분]

 

1. 바이러스 검출 시 삭제가 아닌 파일명(확장자) 변경 후 로그 생성

2. Windows.h가 아닌 다른 헤더나 라이브러리 사용으로 다른 OS에서도 작동하도록 변경(리눅스 및 맥OS)


[사용한 언어 및 기능들 참고]

 

스터디그룹 프로젝트 - 화이트리스트 안티 바이러스 프로그램 1차 완성 :: RE_ATMOSPHERE (tistory.com)

 

스터디그룹 프로젝트 - 화이트리스트 안티 바이러스 프로그램 1차 완성

[사용한 언어] C++ MYSQL Python [구현된 기능] 1. 원하는 경로 입력시 해당 경로에 존재하는 파일 목록 열거 2. 각 파일에 대한 SHA256 값 계산 3. 파일의 경로, SHA256 값 DB에 저장 4. VirusTotal API를 사용..

re-atmosphere.tistory.com


흐아.. 대학교 2학년 때 시작했던 프로젝트가 드디어 완성되었네요...

 

전체적으로 보자면 하려고 했던 핵심 기능들만 거의 모두 구현 완료지만

설치 마법사나 GUI나 집단지성 투표 같은 부분은 혼자할 게 못 될 거 같으니... 슬슬 마무리 지어도 될 것 같습니다.

 

이 프로젝트 진행에 관한 결과를 블로그에 계속 작성하는 이유가

원래 이 블로그가 스터디그룹에서 공부한 부분을 기록 및 추후에 도움이 되기 위해서 만들었기 때문입니다.

그리고 '내가 이런 걸 하고 있다'라는 걸 이 게시물들을 볼 누군가에게 어필을 하고 싶은 마음도 있습니다.

 

 

스터디그룹을 했을 때 구현되었던 기능은

 

1. 경로 입력 후 하위 폴더 검색 유무 요청 및 파일 목록 열거

2. 해당 파일에 대한 메모리 매핑 파일 실행

3. DB 테이블 생성

 

이 3가지가 모두였습니다.

그 이후로는 혼자서 시간 날 때 틈틈히 구글링과 디버깅으로 결과를 보고 수정하면서 구현하였네요.

 

 

핵심 기능들은 거의 다 구현되었지만 그래도 아쉬운 부분은

 

1. DB파일(.db)에 대한 SHA256 계산 불가능(이상한 값 출력)

2. 바이러스 검출된 동일한 파일이 여러 경로에 존재할 시 모두 삭제 미구현

3. Free Public API로 인해 1분당 4개의 파일 제한이 있어 검사 속도가 느림

 

이 정도 될 거 같습니다.

 

 

해당 프로그램은 파이썬이 설치되지 않은 흔히 일반적으로 사용하는 컴퓨터에서도 실행되는지 확인 후

VirusTotal API를 개별 API를 입력 받도록 수정한 뒤에 배포를 할까 합니다.

안 그럼 한 분만이라도 겹치면 검사를 아예 못 해서.....

 

소스코드 같은 경우에는 저처럼 공부겸 참고할 겸 볼 사람들을 위해 깃허브에 올릴까 했지만

저 혼자한 건 아니기에 올리진 못 할 거 같네요.

만약 특정 기능 코드가 궁금하시면 댓글로 말씀해주세요!!

알림 확인 후 제가 구현한 부분이면 답글로 말씀드리겠습니다(_ _)