| 번호 | 청구항 |
|---|---|
| 1 | 적어도 하나의 프로세서를 포함하는 컴퓨터 장치의 광고 및 추적(advertising and tracking) 탐지 방법에 있어서,상기 적어도 하나의 프로세서에 의해, GNN(Graph Neural Networks)을 이용하여 CPG(Code Property Graph)를 분류하는 단계; 및상기 적어도 하나의 프로세서에 의해, GNN 설명자(explainer)를 사용하여 CPG 분류 결과를 설명하는 단계를 포함하는 광고 및 추적 탐지 방법. |
| 2 | 제1항에 있어서,상기 분류하는 단계는,상기 CPG를 ATS(Advertising and tracking service) 또는 넌(Non)-ATS로 분류하고,상기 설명하는 단계는,ATS 분류에 기여한 CPG 노드를 강조하여 설명하는 것을 특징으로 하는 광고 및 추적 탐지 방법. |
| 3 | 제1항에 있어서,상기 분류하는 단계는,상기 GNN을 통해 상기 CPG의 노드 임베딩(node embedding)을 구하는 단계;상기 노드 임베딩을 그래프 임베딩(graph embedding)으로 변환하는 단계; 및상기 그래프 임베딩을 통해 대상 코드 중에서 광고 및 추적 행위가 구현된 코드를 분류하는 단계를 포함하는 광고 및 추적 탐지 방법. |
| 4 | 제3항에 있어서,상기 CPG의 노드 임베딩을 구하는 단계는,복수 개의 계층으로 구성된 노드 임베딩 네트워크를 통해 상기 CPG의 노드 임베딩을 구하고,상기 노드 임베딩 네트워크는 각 계층이 그래프 컨볼루션 계층으로 시작되고 마지막 계층을 제외한 나머지 계층이 상기 그래프 컨볼루션 계층에 이어 배치 정규화 계층과 활성화 계층으로 구성되는 것을 특징으로 하는 광고 및 추적 탐지 방법. |
| 5 | 제4항에 있어서,상기 그래프 임베딩으로 변환하는 단계는,상기 노드 임베딩 네트워크로부터 상기 노드 임베딩을 입력으로 수신하여 노드 차원에 걸쳐 노드 피처를 합집계(sum aggregation)함으로써 상기 노드 임베딩을 상기 그래프 임베딩으로 변환하는 것을 특징으로 하는 광고 및 추적 탐지 방법. |
| 6 | 제1항에 있어서,상기 설명하는 단계는,각 CPG의 노드를 CPG 분류 결과에서의 중요도에 따라 나열하는 단계; 및나열된 노드를 기초로 광고 및 추적 탐지에 기여한 코드 토큰을 표시하는 단계를 포함하는 광고 및 추적 탐지 방법. |
| 7 | 제1항에 있어서,상기 광고 및 추적 탐지 방법은,상기 분류하는 단계 이전에,상기 적어도 하나의 프로세서에 의해, 상기 CPG를 상기 GNN이 학습 가능한 형태로 가공하는 단계를 더 포함하는 광고 및 추적 탐지 방법. |
| 8 | 제7항에 있어서,상기 가공하는 단계는,주어진 웹 사이트 목록이 주어지면 각 웹 사이트에서 가져온 각 JS(JavaScript) 스크립트를 JS 파일로 저장하는 단계;오픈 소스 라이브러리를 통해 상기 JS 파일을 상기 CPG로 변환하는 단계; 및상기 CPG를 행렬 표현으로 변환하는 단계를 포함하는 광고 및 추적 탐지 방법. |
| 9 | 제7항에 있어서,상기 가공하는 단계는,상기 CPG의 각 노드마다 피처(Feature)를 정의하는 단계를 포함하고,상기 피처는 CPG 노드의 종류, 광고 및 추적 행위에 사용되는 자바스크립트 API인 것을 특징으로 하는 광고 및 추적 탐지 방법. |
| 10 | 제7항에 있어서,상기 가공하는 단계는,주어진 JS 파일을 상기 CPG로 변환하는 단계; 및변환된 CPG에 대해 가지치기(pruning)를 수행하는 단계를 포함하는 광고 및 추적 탐지 방법. |
| 11 | 제9항에 있어서,상기 가공하는 단계는,상기 CPG에 대해 가지치기를 수행하는 단계를 더 포함하고,상기 가지치기를 수행하는 단계는,API 벡터 계산에 사용되는 내장 API(built-in API)를 호출하지 않는 JS 함수의 CPG 노드, 및 CPG의 의미(semantic)를 변경하지 않는 중간 노드(intermediate node)를 가지치기하는 것을 특징으로 하는 광고 및 추적 탐지 방법. |
| 12 | 제9항에 있어서,상기 가공하는 단계는,상기 CPG에 대해 가지치기를 수행하는 단계를 더 포함하고,상기 가지치기를 수행하는 단계는,각 노드의 서브트리(subtree)에서 모든 노드가 피처에서 정의한 API를 포함하지 않으면 서브트리의 루트(root)를 제외한 나머지 노드를 제거하는 단계를 포함하는 광고 및 추적 탐지 방법. |
| 13 | 제9항에 있어서,상기 가공하는 단계는,상기 CPG에 대해 가지치기를 수행하는 단계를 더 포함하고,상기 가지치기를 수행하는 단계는,특정 노드에 대해 동일한 토큰으로 대응되는 이웃 노드가 존재하면 해당 노드를 제거하고 이웃 노드로 대체하는 단계를 포함하는 광고 및 추적 탐지 방법. |
| 14 | 제1항 내지 제13항 중 어느 한 항의 광고 및 추적 탐지 방법을 상기 컴퓨터 장치에 실행시키기 위해 컴퓨터 판독 가능한 기록매체에 저장된 컴퓨터 프로그램. |
| 15 | 컴퓨터 장치에서 판독 가능한 명령을 실행하도록 구현되는 적어도 하나의 프로세서를 포함하고,상기 적어도 하나의 프로세서는,CPG(Code Property Graph)를 GNN(Graph Neural Networks)이 학습 가능한 형태로 가공하는 과정;상기 가공된 CPG에 대해 상기 GNN을 사용하여 광고 및 추적 행위가 구현된CPG를 분류하는 과정; 및CPG 분류 결과를 GNN 설명자(explainer)를 사용하여 설명하는 과정을 처리하는 컴퓨터 장치. |