Security || AI

1. 데이터 분류하기 with Pandas, os 본문

프로젝트/RL_Malware

1. 데이터 분류하기 with Pandas, os

보안&인공지능 2021. 2. 14. 01:33

1. 환경

칼리리눅스 64bit, python 3.8.5(추가 모듈: pandas)

2. label.csv 분석하기

악성파일 7000개, 정상파일 3000개의 정상 여부를 저장하는 csv파일이다.

악성코드의 경우 라벨이 1이고, 정상 파일인 경우 0으로 표현되어있다.

label.csv

pandas로 파일을 불러올 때 첫 행이 각 열의 정보를 대표하는 이름으로 들어와 파일 하나가 누락되는 문제가 발생하였다. 이를 해결하기 위해,  맨 위에 file_name과 flag라는 행을 추가하여 파일 이름과 파일 종류 여부를 판단하는 변수를 추가하였다.

변수 추가

3. 파일 분류하는 코드 짜기

import pandas as pd
import os

data = pd.read_csv('./label.csv')

path = ['BENI_PATH', 'MAL_PATH']
for i in range(10000):
	name = 'train_set/'+data.loc[i, 'file_name']+'.vir'
	flag = int(data.loc[i, 'flag'])
	payload = "mv "+name+" "+path[flag]
	os.system(payload)
	#print(name, flag)

csv에서 0이면 정상파일, 1이면 악성파일이다. 그러므로, path라는 리스트에 0번째에는 정상파일이 저장될 경로를 저장하고, 1이면 악성파일이 저장될 경로를 저장하였다.

그 다음, 총 1만개의 파일을 분류하기 위해 10000번 반복하며 파이썬의 os모듈을 활용하여 mv를 통해 파일을 분류하여 주었다.

 

Pandas의 loc을 사용하여 i번째 인덱스의 file_name을 통해 file_name 열의 파일 이름을 가져왔다.

또한, i번째의 flag를 사용하여 flag 열의 정상 파일 여부인지를 가져왔다.

 

그 다음, 작성된 payload를 os.system()을 통해 분류하였다.

반응형