학습된 기능 표현과 전통적인 분류기를 활용하여 탐지 정확도를 높이고, 수동 기능 엔지니어링을 줄이며, 진화하는 악성코드 위협에 효과적으로 대응하는 하이브리드 안드로이드 악성코드 탐지 프레임워크가 제안됩니다.
Research Article
학습된 기능 표현과 전통적인 분류기를 활용하여 탐지 정확도를 높이고, 수동 기능 엔지니어링을 줄이며, 진화하는 악성코드 위협에 효과적으로 대응하는 하이브리드 안드로이드 악성코드 탐지 프레임워크가 제안됩니다.
악성코드 보안 인텔리전스는 애플리케이션과 그 메타데이터를 분석하여 잠재적 보안 위협을 식별하는 것을 포함합니다. 애플리케이션 프로그래밍 인터페이스(API) 호출은 악성코드를 탐지하는 데 유용한 정보원으로 작용합니다. 악성코드 분석에서 기능 공간을 줄이면 위협 식별의 효율성이 향상됩니다. 이 연구는 안드로이드 악성코드 탐지의 정밀도를 높이기 위해 가장 중요한 API 호출 기능을 식별하고자 합니다. 세 가지 군집 지능 기반 최적화 기법인 반딧불이 최적화, 뻐꾸기 탐색 최적화, 개미 군체 최적화가 자동 인코더와 함께 사용되어 가장 중요한 특징을 추출합니다. 이러한 자연에서 영감을 받은 래퍼 기반 방법을 평가하기 위해, K-최근접 이웃(KNN), 랜덤 포레스트(RF), 지지 벡터 기계(SVM), 의사결정 트리(DT), 선형 회귀(LR) 등 인기 있는 기계 학습 분류기가 사용됩니다. 더 나아가, 하이브리드 인공 신경 분류기는 악성코드 분류 성능을 향상시키는 것으로 나타났습니다. 제안된 방법의 효과는 100가지 API 호출 기능 중 7가지만 사용했을 때 98.87%의 정확도를 보여주는 실험 결과로 입증됩니다.
가장 인기 있는 모바일 운영체제는 리눅스를 기반으로 한 안드로이드로, 전 세계 시장 점유율은 72.55%입니다. 엄격한 법률과 저작권의 적용을 받는 다른 운영체제와 달리, 안드로이드는 전 세계 개발자들의 기여를 환영하는 오픈 소스 플랫폼입니다. 하지만 사용자 기반이 많기 때문에 바이러스 공격이 자주 발생한다. 악성코드는 컴퓨터 시스템 운영을 방해하거나 개인 정보를 악용하기 위해 의도된 악성 소프트웨어를 일컫는 용어입니다. 안드로이드 생태계에서 악성코드 침투의 가장 일반적인 방법은 애플리케이션 다운로드입니다. 신뢰할 수 있는 출처에서 얻은 애플리케이션은 일반적으로 안전하지만, 검증되지 않았거나 악성 플랫폼에서 다운로드된 애플리케이션에는 해로운 소프트웨어가 포함될 수 있습니다. 사이버 범죄자들은 종종 기기의 보안 취약점을 악용하여 악성코드를 배포해 기기의 무결성을 위협합니다2.
사용자 수가 계속 증가함에 따라 사이버 공격자가 접근할 수 있는 귀중한 데이터의 양도 증가하고 있습니다. 공격자는 이를 악용하여 공식 모바일 애플리케이션 마켓플레이스에 악성 애플리케이션을 배포할 수 있습니다. 한 번 아무것도 모르는 사용자가 앱을 설치하면, 의도치 않게 공격자에게 기기 접근 권한을 부여하게 됩니다. 이러한 위협이 점점 더 확산됨에 따라, 고급 악성코드 탐지 기법은 수많은 악성 애플리케이션을 막기 위해 필수적입니다 3,4,5. 안드로이드 악성코드 6,7을 예측하기 위해 여러 기존 기술이 개발되었습니다. 하지만 이러한 접근법은 주로 애플리케이션 코드 내에 내장된 디지털 흔적을 식별하는 서명 기반 탐지에 의존합니다. 소프트웨어의 안드로이드 패키지 키트(APK)에서 추출한 이 서명들은 알려진 적대적 패턴 데이터베이스와 대조됩니다. 이 방법은 이미 보고된 악성코드를 탐지하는 데는 성공적이지만, 아직 데이터베이스에 추가되지 않은 새로운 위협을 인식하지 못합니다. 8
악성코드가 계속 발전함에 따라 악성코드의 확산이 증가함에 따라, 시간과 컴퓨팅 자원을 최적화하면서 다양한 유형의 악성코드9를 정확히 탐지할 수 있는 솔루션을 개발하는 것이 매우 중요합니다. 안드로이드 스마트폰에서 악성코드 탐지를 개선하기 위해 많은 작업이 이루어졌습니다. 기존의 서명 기반 탐지 기법은 APK 파일의 서명과 데이터베이스에 저장된 악성 서명을 일치시킵니다. 하지만 이 방법은 아직 발견되지 않은 악성코드에는 효과가 없으며, 이는 더 정교한 탐지 시스템의 필요성을 강조합니다.10, 11, 12.
이 글이 시험하고자 하는 가설은 다음과 같습니다: 의심스러운 API 호출을 식별하여 무해하거나 악의적인 안드로이드 애플리케이션의 분류 정확도를 높이는 것. 자동 인코더와 인공 신경망을 통합한 하이브리드 분류 모델을 개발 및 구현하는 것. 근접 최적 해를 발견하기 위해 페널티를 도입하여 학습 과정을 향상시키는 군집 지능 최적화의 목적함수를 공식화합니다. 여러 성능 지표를 검토하고 안드로이드 악성코드 예측에 최적의 방법을 선택합니다.
관련 연구
안드로이드 플랫폼의 광범위한 사용으로 인해 악성코드의 다양성과 양이 눈에 띄게 증가했으며, 이에 따라 연구자들은 효율적인 탐지 및 예방 기법을 개발하게 되었습니다.13, 14, 15. 통계 연구를 통해 데커드와 라술자데건16은 안드로이드 악성코드 탐지에서 불균형 데이터셋 문제를 해결했습니다. 데이터를 전처리하고 균형을 맞추기 위해 합성 소수자 과잉표집기법(SMOTE), 과소표본추출, 순위 조정 기법을 사용했습니다. KNN, SVM, 반복 이분법 3(ID3) 분류기를 사용하여 SMOTE 접근법을 KNN분류기 16과 결합했을 때 98.69%의 정확도를 달성했습니다.
안드로이드 악성코드 식별을 위한 용어 주파수-역문서 빈도(TF-IDF) 사용은 Priya와 Visalakshi17 이 다른 연구에서 조사했습니다. 그들은 허가 등급을 부여하는 권한을 부여하는 장치를 만들었고, 이후 인공 신경망을 사용해 등급을 분류했습니다. 이 방법은 기존 시스템보다 94.22%의 정확도로 우수한 성능을 보였습니다. 또한, 선형 회귀를 기반으로 안드로이드 악성코드 분류 성능을 향상시키기 위해 Yildiz 등에 의해 특징 선택 방법이 고안되었습니다. 이 방법들은 훈련 시간을 단축하고 정확도를 96.1% 향상시켰습니다. 안드로이드 악성코드 탐지의 정확성과 효율성을 높이기 위해, 이 연구는 기능 선택과 불균형한 데이터셋 같은 문제 해결의 중요성을 강조합니다.
Al Sarahh 등이 제시한 모델에서 재귀적 특징 선택(RFS)과 앙상블 분류기가 사용되어 안드로이드 악성코드 탐지를 개선했습니다. 이 방법에서는 LightGBM 알고리즘을 사용하여 RFS가 식별한 가장 관련 있는 특징들을 분류합니다. 실험 결과는 모델이 99.5%의 분류 정확도로 효과적임을 보여주었다. 안드로이드 악성코드 분류를 위해 Ding 등은 합성곱 신경망(CNN)을 사용하는 딥러닝 아키텍처도 제안 했습니다. 이 과정에서 안드로이드 APK에서 바이트코드 파일을 추출하여 2차원 바이트코드 행렬로 변환합니다. 이 행렬들은 CNN 모델을 학습시키는 데 사용되었으며, 실험에서 95.1%의 정확도를 달성했습니다. 이 연구는 딥러닝 모델과 특징 선택 기법이 앙상블 분류기와 결합되어 안드로이드 악성코드 탐지 시스템의 정확도를 높일 수 있음을 강조합니다.
딥러닝 기법을 활용해 엘라얀과 무스타파21 은 최신 안드로이드 시스템에서 기존 악성코드 탐지 방법의 한계를 극복했습니다. 그들은 악성 앱과 무해한 앱을 구분하기 위해 게이트 리커널 유닛(GRU)을 사용해 98.2%의 정확도를 달성하며 기존 기법을 능가했습니다. 분석 계층 프로세스(AHP)는 Arif 등이 제안한 위험 기반 퍼지 모바일 바이러스 탐지 기법에도 통합되었습니다.22. 악성코드 식별 외에도, 이들의 시스템은 위험 수준을 평가하여 매우 낮음, 낮음, 중간, 높은 네 가지 그룹으로 나눕니다. 이 철저한 기법을 통해 전체 정확도는 90.54%에 달했습니다. 퍼지 AHP 프레임워크와 GRU 기반 딥러닝 모델 같은 정교한 머신러닝 기법이 안드로이드 악성코드 탐지 시스템의 정밀도와 회복력성을 향상시키는 데 효과적임을 이 연구들에서 입증했습니다.
서명 기반 접근법의 단점을 극복하기 위해 Mercaldo와 Santone23 은 오디오 신호 처리 기법을 사용하여 애플리케이션 실행 파일에서 수치 정보를 추출하여 오디오 파일로 변환했습니다. 신경망 분류기를 사용한 이 연구법은 95.2%의 탐지 정확도를 기록했습니다. 복잡한 특징 공학의 어려움을 극복하기 위해 Zhang 등은 텍스트 분류 기법을 활용하는 자동 프레임워크인 TC-Droid를 제시했습니다 . 96.6%의 정확도를 가진 이 방법은 합성곱 신경망을 사용하여 응용 분석 보고서의 텍스트 시퀀스를 분석합니다.
Imtiaz 등은 93.4%의 정확도로 DeepAMD를 발표했 는데, 이는 안드로이드 악성코드의 효과적인 분류와 조기 탐지를 위한 인공 신경망 기반 기법입니다. Firdaus 등은 안드로이드 악성코드 탐지에서 정적 분석을 위한 유전적 검색 기반 특징 선택 기법을 개발했습니다 . 95%의 정확도로 기능성 트리는 테스트에서 다른 머신러닝 분류기보다 더 우수한 성능을 보였습니다. Delta_IDF라는 특징 선택 방법은 Peynirci 등에 의해 제시되었습니다. APK 파일 내 문자열 발생 횟수를 바탕으로 역(逆) 문서 빈도 값을 계산합니다. 다른 알고리즘과 비교했을 때, 그들의 실험은 고무적인 결과를 낳았습니다.
Shi 등은 합성곱층과 조밀층의 강점을 결합해 특징 추출과 분류를 위한 강력한 탐지 정확도를 입증한 하이브리드 CNN-DNN 프레임워크를 제안 했습니다. 마찬가지로, Shu 등은 CNN 기반 안드로이드 악성코드 탐지 방법에 대한 종합 설문조사를 제공하며, API 및 opcode 시퀀스 내 공간 의존성을 포착하는 데 있어 이들의 강점을 강조했습니다. 사물인터넷(IoT) 맥락에서 Naeem 등은 악성코드 분류를 위한 딥 컨볼루션 네트워크의 스택 앙상블을 개발하여 이기종 IoT 위협 환경 전반에서 견고성을 향상시켰습니다. 최근에는 Shu와 Dong31 이 LG-PN을 도입했는데, 이는 전형적인 네트워크에서 국소-글로벌 융합 접근법으로, 이전에 볼 수 없었던 안드로이드 악성코드 탐지를 향상시키기 위한 것입니다. 이 방법들은 눈에 띄는 성공을 거두었지만, 주로 깊은 컨볼루션 아키텍처에 의존하며 상당한 계산 자원을 요구합니다. 반면, 본 연구는 군집 지능과 자동인코더 기반 특징 선택을 통합하여 차원성을 줄이고 효율성을 높여, 심층 CNN 기반 솔루션에 대한 보완적이고 경량화된 대안을 제공합니다.
이전 여러 연구들은 API 호출 기반 안드로이드 악성코드 탐지에 초점을 맞추었는데, API 시퀀스는 악성 활동의 강력한 행동 지표입니다. 예를 들어, Karbab 등은 API 메서드 호출 시퀀스에 대한 딥러닝을 이용해 악성 애플리케이션을 식별할 것을 제안했으며, API 사용의 시간적 패턴이 악성코드와 무해한 앱을 효과적으로 구분할 수 있음을 입증했습니다. 마찬가지로 Muzaffar 등은 API 호출 특징에 관한 다양한 머신러닝 모델을 평가하며 , 탐지 성능 향상에 있어 특징 선택과 표현의 중요성을 강조했습니다. 이러한 연구들은 API 수준의 기능의 유용성을 강조하지만, 대부분은 깊은 시퀀스 모델이나 수작업으로 만든 특징 공학에 의존하며, 이는 계산 비용이 많이 들거나 일반화가 덜할 수 있습니다. 반면, 본 연구는 군집 지능 알고리즘과 자동인코더를 결합해 API 특징 차원성을 자동으로 감소시키고, 하이브리드 인공 신경 분류기를 사용하여 탐지 성능을 향상시켰습니다. 이로 인해 우리의 접근법은 고차원 API 호출 데이터의 문제를 직접 해결하는 가볍지만 효과적인 대안으로 자리매김합니다.
인공 신경망(ANN)의 통합을 통해 본 연구에서 제안된 방법론은 안드로이드 악성코드 탐지 및 분류를 향상시키는 것을 목표로 합니다. 첫째, 자동 인코더는 래퍼 기반 기능 선택 기법에 사용되어 위험한 앱과 무해한 앱을 구분하는 가장 중요한 특성을 찾습니다. 안드로이드 악성코드 분류의 효과를 높이기 위해, ANN과 유도 분류기를 결합한 독특한 인공 신경 분류기가 평가됩니다.
Access restricted. Please log in or start a trial to view this content.
자동 인코더를 이용한 래퍼 기반 기능 선택 방식은 그림 1에 나타난 안드로이드 악성코드 탐지 제안 아키텍처에 사용됩니다. 데이터셋은 70:30 학습 및 테스트 하위 집합으로 나뉩니다. 분류와 기능 선택은 악성코드 분석 과정에서 두 가지 주요 단계입니다.
기능 선택(FS): 이 단계는 Cuckoo Search Optimization(CSO), Ant Lion Optimization(ALO), Firefly Optimization(FO)과 같은 군집 지능 기반 알고리즘을 사용하여 최적의 특징 하위 집합(정의 1 참조)을 반복적으로 탐색하는 것입니다. 그 후 자동 인코더가 선택한 특징을 처리하여 들어오는 데이터의 압축된 표현을 생성합니다. 귀납 접근법은 자동 인코더의 출력을 이용해 이러한 특징들이 위험한 앱과 무해한 앱을 얼마나 잘 구분하는지 평가합니다. 후속 사례의 정밀한 분류를 가능하게 하기 위해, 귀납 알고리즘은 특징 공간을 클래스 라벨 집합에 매핑하여 분류기를 만듭니다.
분류: 제안된 인공 신경 분류기와 잘 알려진 유도 방법을 사용하여 특징 선택 단계에서 축소된 기능 세트를 이 단계에서 평가하여 안드로이드 악성코드를 얼마나 효과적으로 탐지할 수 있는지 평가합니다.
정교한 분류 방식을 사용하고 가장 유익한 기능에 집중함으로써 이 방법론은 안드로이드 악성코드 탐지의 정확성과 효율성을 향상시키고자 합니다.
특징 선택
머신러닝에서 중요한 단계는 특징 선택으로, 모델 구축에 가장 신뢰할 수 있고 관련성이 높으며 중복되지 않는 특징을 결정하는 것을 포함합니다. 데이터셋의 크기와 복잡성이 계속 증가함에 따라 특징 집합을 체계적으로 줄이는 것이 더욱 중요해집니다. 특징 선택의 주요 목표는 계산 비용을 줄이면서 모델 성능을 극대화하는 것입니다. 반복적이고 불필요한 특징을 제거하여 모델에 가장 중요한 변수에 집중할 수 있게 합니다. 중요한 특징을 식별하기 위해 머신러닝 알고리즘에 의존하는 대신, 모델 학습 전에 특징 선택의 이점은 다음과 같습니다:
단순화된 모델: 입력 변수 수를 줄이면 해석과 이해가 더 쉽고 직관적인 모델이 만들어집니다.
분산 감소: 필수 특징에 집중함으로써 특징 선택은 모델 분산을 줄여 과적합을 줄이고 새로운 데이터에 대한 일반화를 강화합니다.
훈련 시간 단축: 더 작은 기능 집합은 계산 부담을 줄여 모델 학습 및 평가 속도를 높입니다.
차원성 저주 완화: 고차원 데이터는 복잡성 증가와 과적합 등의 문제를 야기할 수 있습니다; 특징 선택은 특징 공간을 가장 유익한 변수로 제한함으로써 이러한 문제를 해결합니다.
특징 선택의 정의 1
유도기 I와 라벨이 붙은 인스턴스 공간 위에 분포 D를 가지고 특징 (x1,x 2,x 3,... ,xn)을 포함하는 데이터셋 D를 생각해 보세요. 분류기 C=I(D)의 정확도를 최적화하는 특징 부분집합은 최적 특징 부분집합 Xopt로 알려져 있습니다.
비지도 기능 선택에서 래퍼 기반 접근법은 모델 성능을 향상시키는 최적의 특징 조합을 식별하는 것을 목표로 합니다. 탐욕스러운 알고리즘을 통해 체계적으로 특징을 추가하거나 제거함으로써, 이러한 방법들은 다양한 모델을 평가하여 모델 개발에 가장 영향력 있는 특징을 선정합니다. 이 과정은 그림 2에 나타난다.
특징 선택을 위해 Firefly Optimization(FO), Cuckoo Search Optimization(CSO), Ant Lion Optimization(ALO)과 같은 군집 지능 알고리즘이 사용되어 기존의 탐욕 전술을 능가합니다. 적합도 평가 단계에서 선택된 목적 함수는 이러한 알고리즘의 효과에 상당한 영향을 미칩니다. 선택된 특징의 양과 각 반복 종료 시 모델의 오차는 반복 래퍼 기반 특징 선택 절차에서 고려되어 선택된 특징의 적합성을 평가합니다. 식(1)은 이 평가를 형식화합니다.
(1)
학습 알고리즘이 적합도 평가 중 발생한 오류에 대한 페널티는 이 방정식에서 τ로 나타내며, 여기서 τ ∈ [0,1]이다. 선택된 특징 부분집합의 길이는 변수 l로 표시되며, 특징의 총 수는 변수 u로 표현된다.
자동 인코더
입력 데이터의 압축된 표현을 학습하는 데 특화된 신경망을 오토인코더라고 합니다. 인코더와 디코더가 이 두 가지의 주요 구성 요소입니다. 디코더가 이 압축된 형태에서 원본 입력을 복구하려고 하는 동안, 인코더는 입력 데이터를 처리하여 잠재 공간 표현으로 압축합니다. 기계 학습 모델 학습은 인코더가 훈련을 마친 후 처리되지 않은 데이터에서 가치 있는 특징을 추출할 수 있기 때문에 더 쉬워집니다.
제안된 오토인코더 아키텍처( 그림 3에 나타난 것처럼)는 N개의 노드가 있는 입력 계층과 N*2, N개의 노드를 각각 포함하는 두 개의 숨겨진 계층으로 구성된 인코더를 특징으로 합니다. N/2개의 노드가 있는 두 번째 숨겨진 층이 잠재 공간이라고 불립니다. [N, N*2] 노드의 두 개의 숨겨진 계층을 가진 디코더는 이 구조를 복제하여 N개의 노드로 이루어진 출력 계층으로 끝납니다.
각 숨겨진 계층 뒤에는 학습 과정을 가속화하고 안정화하기 위해 배치 정규화가 이어지며, 모든 계층은 LeakyReLU 활성화 기능을 사용하여 사라지는 그라디언트 문제를 처리합니다. 식(2)은 LeakyReLU 활성화 함수의 수학적 정의를 제공합니다:
(2)
여기서 hθ(x)는 식(3)을 사용하여 얻어집니다.
(3)
여기서 xi=(x1,x 2,...,xn)는 노드의 입력값을 나타내고, wi=(w1,w 2,...,wn)는 이 노드들과 연관된 가중치를 나타냅니다. 학습 과정 중에는 가중치가 [0,1] 범위 내에서 무작위로 할당된 후 조정됩니다. 매개변수가 원점을 통과하지 못하도록 각 층에 바이어스 항이 추가됩니다. 식(4)은 임계값을 정의하며, 식(3)에서 얻은 출력이 임계치를 초과하면 노드가 트리거됩니다.
(4)
개미 사자 래퍼 기반 특징 선택 최적화(ALWFSO)
개미사자의 자연스러운 포식 행동을 모델링하는 개미사자 옵티마이저(ALO)는 세예드 알리 미르잘릴리(34)에 의해 처음 발표되었습니다. 이 최적화 알고리즘은 초기 매개변수 값과 상관없이 최적 해를 효율적으로 식별합니다. ALO는 빠른 수렴을 보이며 정수 및 이산 제약 조건을 효과적으로 관리합니다. 먹잇감 포획, 덫 만들기, 개미 포획, 무작위 개미 이동, 덫 수리 등이 ALO의 사냥 과정을 구성하는 단계들입니다.
Ant Lion Optimizer(ALO) 알고리즘의 맥락에서 개미는 해의 공간에서 무작위 탐색을 수행하는 후보 해를 나타내며, 개미사자는 적합도에 따라 개미의 움직임에 영향을 미치는 덫이나 가이드에 해당합니다. 이 이중 개체군은 개미를 포획하는 개미사자의 자연스러운 포식 행동을 모델링합니다. 처음에는 개미와 개미사자의 개체 수가 무작위로 초기화됩니다. 개미마다 룰렛 휠 선택 메커니즘을 사용해 개미마다 개미를 선택하고, 이후 무작위 보행 과정을 거칩니다(알고리즘-1에 나타난 것처럼). 식(5)은 이 걷기가 어떻게 정규화되는지 설명합니다.
(5)
처음에는 개미와 개미사자 개체군이 무작위로 생성됩니다. 룰렛 휠 메커니즘을 사용해 모든 개미마다 개미사자를 선택하여, 미리 정해진 공식으로 정규화되는 무작위 보행이 가능합니다. 이 과정은 개미의 움직임이 개미사자의 위치에 영향을 받도록 하여 자연스러운 사냥 과정을 효과적으로 시뮬레이션합니다. 이 상호작용에 따라 각 개미의 위치가 업데이트되어 최적의 해로 탐색을 안내합니다.
아키텍처 덕분에 ALO 알고리즘은 복잡한 탐색 공간을 효과적으로 탐색할 수 있어 다양한 최적화 문제를 해결하는 강력한 도구가 됩니다. 각 반복이 끝날 때마다 모든 개미의 적합도를 평가합니다. 알고리즘-1에서 보듯, 개미가 상대보다 더 적합하면 개미사자가 개미로 교체됩니다. 이 경우
는 반복 t에서 i번째 개미의 위치를 나타내며; I는 비율이다;
반복 t에서 J번째 개미사자의 위치를 나타내며;
는 반복 t에서 무작위 보행을 위한 엘리트이며, 룰렛 휠에 의해 선택된다; 그리고
는 반복 t에서의 앤트라이언의 무작위 보행이며, 이 역시 룰렛 휠에 의해 결정된다. 각 사이클이 완료되면, 통합 래퍼 분류기로 확인된 전역 최적 해가 반환됩니다.
알고리즘 1: ALWFSO
목적함수를 정의하라: f(x):x=(x1,x 2,...,xd)
개미와 개미사자 집단의 무작위 초기화
개미와 개미사자 적합도 계산
최고의 개미사자를 선택하고 그들이 엘리트라고 가정하세요.
종료 조건이 충족될 때까지 반복 또는 f(x):x=(x1,x 2,...,xd)
각 개미-개미사자 선택: 룰렛 휠 선택 메커니즘을 사용해 개미의 움직임에 영향을 줄 개미사자를 확률적으로 선택하세요
X(t) = [0,cum_sum(2r(t1) - 1),cum_sum(2r(t2) - 1),...,cum_sum(2r(tn)-1)]


개미 루프의 끝
적합도 평가: 모든 개미의 새로운 위치를 바탕으로 적합도 값을 재계산합니다.
개미가 뛰어난 체력을 보인다면 개미사자를 개미로 교체하세요
개미사자가 더 건강해지면,

끝
뻐꾹 탐색 래퍼 기반 특징 선택 최적화(CSWFSO)
일부 뻐꾸기 종의 산란 기생 행동에서 영감을 받아, Xin-She Yang과 Susah Deb35 는 2009년에 뻐꾸기 탐색 알고리즘을 만들었습니다. 이 과정에서는 모든 뻐꾸기가 무작위로 선택한 둥지에 알을 낳습니다. 미래 세대는 최고의 알이 있는 둥지를 물려받을 것입니다. 숙주 새가 외계 알을 발견할 확률은 0이며, 접근 가능한 숙주 둥지의 수도 제한적입니다.
알고리즘 2: CSWFSO
목적함수를 정의하라: f(x):x = (x1,x 2,...,xd)
무작위로 n개의 호스트 네스트로 구성된 초기 개체군을 생성하며, 각 둥지는 후보 해x i (i=1,2,3,...,n)에 대응합니다
이 과정은 중단 조건이 충족되거나 (t무작위로 선택된 뻐꾸기의 경우, 레비 플라이트를 사용하여 새로운 후보 해를 생성합니다

새로 생성된 해의 적합도를 계산하라. [ 최대화를 위해 Fi α f(xi)]
집단 n에서 무작위로 숙주 둥지 j를 선택한다
만약 (Fi >Fj)이라면 j는 새로운 해로 대체된다
끝나는 경우
더 나쁜 그물 일부를 (pa) 비율로 포기하세요
새로운 둥지는 버려진 분수(pa)에 지어집니다. 
최고의 해결책이나 네스트를 따로 두세요.
순위를 매기면서 현재 이용 가능한 최고의 네스트나 솔루션을 선택하세요.
다음 세대는 현재 이용 가능한 최고의 솔루션을 물려받았습니다.
끝
처음에는 모든 네스트가 무작위로 초기화됩니다. 반복이 진행됨에 따라 각 뻐꾸기는 알고리즘 2에 설명된 대로 레비 비행을 통해 해 공간 내에서 자신의 위치를 수정합니다. 스텝 크기는 ∝만큼 조정되며, 시그모이드 연산을 통해 쿠쿠 탐색 최적화(CSO)에서 생성된 연속 값들을 이진 형식으로 변환합니다. 이는 식(6)과 (7)에 나타난 것입니다.
(6)
(7)
알고리즘 2에서 보듯,
와
는 무작위로 선택된 네스트이고 δ ∈ [0,1]입니다. 각 반복이 끝날 때마다 일부 네스트는 포기되고 새로운 후보 해로 새로고침됩니다.
뻐꾸기 새의 번식 기생에서 영감을 받은 뻐꾸기 검색 최적화(CSO) 알고리즘은 특징선택 작업에 유용한 도구로 입증되었습니다. 이 기법은 래퍼 기반 CSO 기능 선택 맥락에서 가능한 해결책을 나타내는 네스트 집단을 초기화하는 것부터 시작합니다. 이 둥지들의 적합도를 평가하기 위해 미리 설정된 목적 함수가 사용됩니다. 적합도 평가를 사용하여 알고리즘은 각 반복에서 최적해, 즉 전역 최적(global best)을 결정합니다. 해의 공간을 더 잘 탐색하기 위해, 완두콩으로 표현되는 둥지 일부를 제거하고 CSO 프로토콜에 따라 새로운 것으로 대체합니다. 임베디드 래퍼 분류기는 모든 반복이 완료된 후 알고리즘이 전역적으로 최적의 답을 산출한다는 것을 확인합니다.
Firefly 래퍼 기반 기능 선택 최적화(FWFSO)
알고리즘 3: FWFSO
목적함수를 정의한다: f(x):x = (x1,x 2,...,xd)
n마리의 반딧불이로 구성된 초기 무리를 생성하는데, 각 반딧불이는 해가 xi(i = 1,2,3,...,n)를 나타냅니다.
목적 함수의 값을 바탕으로 각 반딧불이의 빛 세기 I를 결정합니다
빛 흡수 계수 γ를 정의하세요
이 작업을 멈추는 조건이 충족되거나 (t < MaxGeneration) 달성될 때까지 반복합니다.
각 반딧불이 i (∀ i=1,2,3,... ,n)
모든 반딧불이 J에 대해 (∀ j=1,2,3,... ,i)
Ii 와 Ij 의 밝은 강도를 얻으세요
만약내가 < 나는j


그렇지 않으면
반딧불이를 무작위로 움직여 탐색 공간을 탐험하세요
끝나는 경우
매력도는 거리에 따라 감소합니다. 
업데이트된 솔루션을 평가하고 반딧불이의 세기를 그에 맞게 조정하세요
끝
끝
반딧불이를 빛의 강도에 따라 순위를 매기고, 가장 밝은 개체를 현재 최선의 해답으로 정하세요
George Lindfield와 John Penny가36번 도입한 Firefly 최적화 알고리즘은 반딧불이의 자연스러운 행동을 모방하여 다른 반딧불이를 끌어당깁니다. 이 알고리즘에서 반딧불이의 매력도는 밝기와 비례하며, 두 반딧불이 사이의 거리는 매력도에 반비례합니다. 더 밝은 반딧불이가 근처에 없으면 반딧불이는 무작위로 움직입니다.
두 마리의 반딧불이는 밝기에 따라 서로 끌리며; 덜 밝은 반딧불이는 더 밝은 반딧불이로 끌리기 마련이죠. 더 밝은 반딧불이가 없을 때는 무작위 이동이 사용됩니다. β0이 아름다움을 나타내며, 두 반딧불이 사이의 거리 r=0을 사용해 그들의 매력도를 계산한다. 반딧불이 j와 k 사이의 rjk 분리는 다음과 같이 계산된다:
여기서 rji와 rki는 각각 반딧불이 jth와 kth의 i번째 차원의 공간 성분을 주목하며, n은 차원 수를 나타낸다. 반딧불이가 다른 반딧불이를 향해 움직이는 것은 반딧불이 사이의 끌림 정도에 의해 결정됩니다:
. 이 방정식에서 rj는 반딧불이 j의 현재 위치이며, γ는 빛입니다. 라나드는 0에서 1 사이의 난수이며, α는 돌연변이율, 흡수 계수입니다. 더 이상 밝은 반딧불이가 없으면, 반딧불이는 αα에 따라 무작위로 움직입니다. 각 반복 후, 임베디드 래퍼 분류기는 전역 최소 해를 검증한 후 반환합니다.
분류기
구조화된 데이터셋과 비구조화된 데이터셋 모두 이산적인 그룹 또는 클래스로 나누어 분류할 수 있습니다. 목표는 신선한 데이터 포인트의 속성을 사용하여 해당 데이터 포인트의 클래스나 라벨을 예측하는 것입니다. 이 절차는 입력 변수에서 이산 출력 변수로 매핑 함수를 근사하여 신선한 데이터가 속하는 범주를 결정합니다.
무작위 숲, 의사결정 트리, K-최근이웃, 로지스틱 회귀, 지원 벡터 기계 등이 제안된 안드로이드 악성코드 탐지 솔루션 평가에 사용되는 귀납 또는 분류 알고리즘 중 하나입니다. 더 나아가, 이 연구는 전통적인 유도 알고리즘과 인공 신경망을 결합한 혁신적인 하이브리드 분류기인 인공 신경 분류기를 제시합니다.
인공 신경 분류기
제안된 인공 신경 분류기(ANC) 설계는 유도 분류기와 인공 신경망(ANN)을 결합한 것으로, 그림 4에서 확인할 수 있습니다. 이 아키텍처에 따르면, ANN은 입력 특징 간의 패턴과 상관관계를 식별하도록 교육됩니다. 유도 분류기는 ANN이 학습한 정보를 활용하여 악성 소프트웨어와 안전한 소프트웨어를 구분하는 정밀도를 높입니다.
광범위한 테스트 후, ANC 내부의 ANN은 M개의 노드를 가진 3개의 완전히 연결된 숨겨진 계층으로 구성되었으며, N개의 노드가 있는 입력 계층 다음에 배치되었습니다. M/2 노드가 있는 완전 연결된 숨겨진 계층 뒤에 유도 분류기와 연결된 출력 계층이 있습니다. 식(8)은 숨겨진 층의 노드 수를 결정합니다:
(8)
여기서 M은 숨겨진 층의 노드 수를, N은 입력 특징의 수를, α는 2에서 10 사이의 매개변수입니다. 활성화 함수(식(9)에 나타난 것처럼)는 출력이 지정된 임계값을 초과할 때 뉴런이 활성화되는지 여부를 결정하는 데 중요한 역할을 합니다.
(9)
여기서 hθ(x)는 식(3)에 따라 계산된다. ANC는 Adam 옵티마이저를 활용해 네트워크 가중치와 학습률을 조정합니다. 아담에서는 각 가중 ωij에 대한 첫 번째 모멘트 추정
과 두 번째 모멘트 추정
치의 붕괴율을 각각 β1과 β2로 표기한다. N을 학습률이라고 하자. 아담의 업데이트 규칙은 식(10)과 (11)에 나와 있습니다:
(10)
(11)
편향 보정된 1차 및 2차 모멘트 추정치와
는 식(12)과 (13)를 사용하여 계산됩니다:
(12)
(13)
이 계산들은 최적화 도구가 각 가중치에 대해 적절한 학습률을 유지하도록 보장하여 ANC의 효율적이고 효과적인 훈련을 촉진합니다.
신경망 내 각 연결에 대한 가중치 업데이트 규칙은 식(14)에 의해 정의됩니다:
(14)
신경망 가중치를 업데이트한 후, 예측된 출력과 실제 출력 간의 차이를 측정하는 손실 함수를 사용하여 성능을 평가합니다. 이 모델에서는 방정식 (15)에 정의된 평균 절대 오차(MAE)를 이 목적을 위해 사용한다.
(15)
이 맥락에서 yi 는 실제 출력을 나타내고,
예측된 출력을 나타내며, n은 총 출력 인스턴스 수를 나타냅니다. 신경망이 정해진 에포크 기간 동안 훈련된 후, 특징 공간에서 학습된 표현은 귀납 분류기로 전달되어 악성코드와 무해한 소프트웨어를 구분합니다.
제안된 인공 신경 분류기(ANC)는 인공 신경망(ANN)의 특징 학습 기능과 랜덤 포레스트, 의사결정 트리 같은 전통적인 귀납 분류기의 의사결정 강점을 결합한 하이브리드 프레임워크로 기능합니다. 이 설계에서 ANN은 먼저 자동 인코더에서 얻은 선택된 특징을 처리하여 입력 속성 간의 복잡한 패턴과 상관관계를 학습합니다. 학습된 표현은 귀납 분류기에 전달되어, 안드로이드 애플리케이션을 무해한지 악의적으로 최종 분류합니다. 이렇게 ANC는 래퍼 역할을 하며, 깊은 특징 임베딩으로 기존 분류기를 강화하면서도 해석 가능성을 유지합니다. 이 하이브리드 메커니즘은 ANC가 ANN의 고수준 특징 추상화와 기존 머신러닝 분류기의 견고한 의사결정을 모두 활용할 수 있게 하여 탐지 정확도와 일반화를 향상시킵니다.
실험 장치
실험 환경에는 i5 프로세서(2.30 GHz, 8GB RAM, 2TB 하드 드라이브)를 탑재한 64비트 윈도우 10 운영체제가 사용되었습니다. 프로그래밍 언어로는 Python 3.7이 사용되었고, Jupyter 플랫폼은 머신러닝과 딥러닝 패키지를 가능하게 하도록 구축되었습니다.
IEEE Dataport는 실험의 API 호출 시퀀스 데이터를 제공했으며, 여기에는 43,876개의 시퀀스가 포함되어 있었는데, 이 중 42,797개는 악성코드, 1,079개는 굿웨어로 분류되었습니다. 검증에는 Virus Total이 사용되었고, 데이터 수집에는 Cuckoo Sandbox 환경이 사용되었습니다. 표 1은 API 호출 시퀀스에 대한 포괄적인 설명을 제공합니다.
Access restricted. Please log in or start a trial to view this content.
제안된 안드로이드 악성코드 탐지 시스템에는 평균제곱오차(MSE), 평균제곱근(RMSE), 정밀도, 리콜, F1 점수, 정확도와 같은 여러 성능 지표가 사용되어 분류 정확도를 평가합니다. 다음은 이 조치들에 대한 정의입니다.


Access restricted. Please log in or start a trial to view this content.
안드로이드 악성코드 위협이 증가하고 있으며, 적들은 점점 더 정교한 회피 기법을 사용하고 있습니다. 안드로이드 기반 모바일 시스템과 애플리케이션은 스마트 시티와 산업 환경에서 중요한 역할을 합니다. 특히 이러한 중요한 영역에서 이러한 시스템의 보안을 보장하기 위해서는 강력한 악성코드 탐지 메커니즘이 필요합니다. 최근 머신러닝 기반의 악성코드 탐지 연구가큰 주목을 받고 있습니다. 하지만 많은 기존 방법은 특징 분석 및 시뮬레이션 경험을 바탕으로 선택하는 노동 집약적인 특징 공학17에 의존합니다. 따라서 특징 선택과 탐지 성능의 지속적인 발전이 필수적입니다.
본 연구는 특징 선택 최적화를 위한 오토인코더 기반 차원 감소 접근법을 탐구합니다. 특징 패턴을 조사하기 위해 전체 특징 집합을 먼저 오토인코더를 사용해 처리합니다. 가장 중요한 특징...
Access restricted. Please log in or start a trial to view this content.
이해 충돌이나 외부 영향은 이 연구 결과에 영향을 미치지 않았습니다. 제시된 모든 방법, 결과 및 해석은 독창적이고 편견이 없습니다
이 작업을 지원해 주신 가이드와 KLU께 진심으로 감사드립니다. 그들의 지도, 피드백, 격려는 이 프로젝트 개발 전반에 걸쳐 매우 소중했습니다.
Access restricted. Please log in or start a trial to view this content.
| Name | Company | Catalog Number | Comments |
|---|---|---|---|
| 아나콘다 내비게이터 | 아나콘다 주식회사 | 내비게이터-2023 | |
| 구글 콜랩 | 구글 LLC | 해당 없음 | |
| 주피터 노트북 | 프로젝트 주피터 | 해당 없음 | |
| 파이썬 | 파이썬 소프트웨어 재단 | >=3.9 | |
| 파이토치 | 페이스북 AI 연구 | >=2.0 | |
| Scikit-learn | 커뮤니티 주도 | >=1.0 | |
| 텐서플로우 | 구글 브레인 | >=2.8 | |
| 윈도우 운영체제 | 마이크로소프트 코퍼레이션 | 11 |
Access restricted. Please log in or start a trial to view this content.
Request permission to reuse the text or figures of this JoVE article
Request Permission