카테고리 없음

머신러닝을 활용한 악성코드 분석 - 속성 생성

criling 2022. 1. 25. 23:52

속성 생성

속성 추출 및 속성 공학은 원시 데이터를 해석해 배포의 성격을 가장 잘 나타내는 데이터 자료를 생성하는 프로세스이며 실행 가능한 바이너리보다 분석하기가 더 복잡하지도 않고 보안 전문가에게 더 적합한 데이터 형식도 없습니다.

 

머신 러닝에서 데이터 수집 및 속성 공학은 매우 중요합니다.

 

데이터 과학자 및 머신러닝 엔지니어가 데이터 수집 방법 및 프로세스에 거의 영향을 미치지 못하는 위치에 있는 경우가 있습니다.

 

이런 상황은 매우 좋지 않은데 머신 러닝 및 데이터 과학에서 가장 큰 돌파구 및 개선 사항은 원시 데이터의 품질 향상에서 비롯된 것이므로 고급 알고리즘을 사용하거나 더 나은 시스템을 설계하는 데에서 오는 것이 아니기 때문입니다.

 

작업이 무엇이든 간에 정리되지 않은 원시 데이터로부터 좋은 결과를 얻기 위해 필요한 정보를 추출하는 것이 중요합니다.

 

머신 러닝 알고리즘이 잘 수행되지 않는다면 알고리즘의 단점보다는 데이터 품질이 좋은지 좋지 않은지 여부를 향상 고려해야 합니다.

 

머신 러닝 시스템을 구축하는 프로세스의 속도를 높이기 위해 데이터 수집을 위한 유연하고 효율적인 아키텍처를 설계하는 것이 중요합니다.

 

데이터를 수집할 가치가 있는지 없는지 결정하거나 데이터를 어떻게 수집할 것인가에 대한 가장 좋은 방법에 대한 선행 연구를 하기 위해 상당한 투자를 할 수 있어야 합니다.

 

머신러닝을 위해 데이터를 수집할 때 고려해야 할 중요한 사항을 살펴보겠습니다.

 

 

데이터 수집

도메인 지식의 중요성

도메인 지식은 데이터의 중요한 부분을 학습하는 알고리즘을 돕기 위해 수집할 중요한 속성을 매우 신속하게 식별하는 데 도움이 됩니다.

 

확장 가능한 데이터 수집 프로세스

작은 데이터 샘플에서 수동으로 속성을 추출하는 것이 간단할 수 있지만, 백만 개 이상의 샘플이 있을 경우 상황이 상당히 복잡해집니다.

 

작업을 확장해야 하기 전에 데이터 수집 프로세스의 자동화에 대하 고려해야만 합니다.

 

도메인 지식과 데이터 탐색 기능을 함께 사용하면 작업에 필요한 가장 중요한 속성만 자동으로 수집하는 데 집중할 수 있는 방법을 고안할 수 있습니다.

 

 

검증과 편향

동물 이미지 분류 시스템이 전반적인 정확도는 높지만 새 카테고리에 대해 일관되게 나쁜 결과를 얻는 경우 원시 데이터의 선택된 속성이 다른 동물을 더 잘 식별할 수 있게 편향됐거나 휴식 중인 새의 이미지 혹은 비행 중인 새의 이미지로만수집된 데이터를 구성했기 때문입니다.

 

악성코드 데이터셋은 악성코드 샘플들이 시간 경과에 따라 굉장히 빨리 변할 수 있기 때문에 데이터의 부패 문제에 직면합니다.

 

예를 들어 1월에 수집된 악성코드의 샘플은 3월에 수집된 샘플을 대표하지 않을 수 있습니다.

 

이는 민첩한 악성코드 개발자가 시그니처 기반 탐지를 피하기 위함 때문입니다.

 

보안 데이터셋은 악성 샘플과 정상 샘플을 동등하게 수집하기 어려울 수 있기 때문에 클래스 불균형 문제에 자주 직면합니다.

 

반복 실험

프로세스 중 특정 시점에서 나쁜 결과가 나오면 과학적으로 상황에 접근해 제어된 실험의 실패한 인스턴스를 분석해야 합니다.

 

과학자가 실험 변수를 변경하고 실험을 다시 시작하는 것처럼 실패의 가장 큰 원인에 대해 숙련된 추측을 하고 다시 시도해야 합니다.

 

 

 

 

 

 

 

 

참고

"머신 러닝을 활용한 컴퓨터 보안, 클라렌스 치오, 데이비드 프리먼, 에이콘"

"Machine Learning and Security by Clarence Chio and David Freeman(O'Reilly). Copyright 2018 Clarence Chio and Davide Freeman, 978-1491-97990-7"