Shine's dev log
[논문] Attacking Graph-based Classification via Manipulating the Graph Structure 본문
[논문] Attacking Graph-based Classification via Manipulating the Graph Structure
dong1 2024. 2. 5. 04:02Binghui Wang and Neil Zhenqiang Gong, "Attacking Graph-based Classification via Manipulating the Graph Structure", CCS '19
0. Abstract
본 논문에서는 그래프 기반의 classification 모델을 대상으로 공격을 한다. 그리고 제목에서 알 수 있듯이 공격은 그래프의 구조를 변경 (즉, edge의 연결구조를 변경) 함으로써 수행한다.
이전의 이미지 도메인에서 자주 활용되던 adversarial attack을 그래프 도메인에 적용시킨 초기 논문 중 하나로, 개인적으로 굉장히 좋아하는 논문이기도해서 간단하게 정리해보겠다...
1. Introduction
그래프 기반의 classification 모델은 malware detection, 소셜 네트워크에서의 fake (Sybil) user detection 등에 자주 사용된다. 그 중에서도 특히 일부 노드의 레이블 정보와 그래프 구조만을 가지고 classification을 수행하는 (1) collective classification, 딥러닝을 이용하는 (2) GNN 방식이 주로 사용되고 있다.
본 논문에서는 가장 유명한 collective classification 방식 중 하나인 LinLBP (Linearized Loopy Belief Propagation) 방식의 기법을 대상으로 공격을 진행하고, 공격된 그래프를 GNN 모델에도 transfer attack 하는식으로 진행한다.
2. Background
본 절에서는 앞서 말한 대표적인 collective classification 방식 중 하나인 LinLBP 기반의 classfication 모델에 대하여 설명하겠다.
우선 그래프의 구조가 주어져있다고 가정해보자 (node + edge).
그리고 방어자는 전체 노드 중 일부 노드의 레이블을 알고 있다고 가정해보자. 예를 들어 소셜 네트워크에서 정상 계정과 허위 계정을 분류하고자 할 때, 방어자가 전체 수많은 노드 중에서 확실한 정상 계정 100개와 확실한 허위 계정 100개를 알고 있다고 가정해보겠다.
그렇다면, 아래 [그림 1]과 같이 해당 노드에 prior score를 할당해준다. 일반적으로 theta 값은 0.5를 많이 할당하므로, 위의 예시에 따르게 되면, 확실히 알고있는 정상 노드에는 +0.5점을, 그리고 확실히 알고있는 허위 노드에는 -0.5점을, 나머지 대부분의 노드에는 0점을 부여하게 되는 것이다.
이제 부여한 prior score 를 기반으로 propagation을 진행한다. 아래 [그림 2] 와 같이 propagation을 진행하게 되는데, 저기서 q가 앞서 할당한 prior score 벡터이고, A가 그래프의 연결관계를 나타내는 adjacency matrix, W는 그냥 가중치 matrix인데 무시해도 된다.
수식은 복잡해보이지만, 결국 부여한 prior score 를 인접한 노드들이 나눠먹는 형식으로 돌아가게 된다. 예를들면, 확실히 알고있는 허위 노드 근처에 있는 노드들은 높은 양(+)의 점수를 얻게 되고, 정상 노드 근처에 있는 노드들은 낮은 음(-)의 점수를 얻게 된다.
이렇게 propagation을 여러번 반복하게 되고, 최종적으로 얻는 점수가 posterior score 이며, 이 값이 양수이면 최종적으로 허위노드, 음수이면 최종적으로 정상노드로 판단하는 것이다.
다양한 collective classification 방식들도 기본적으로 1) prior score 계산, 2) posterior score 계산 두 단계를 거친다. 이러한 collective classification 방식들이 유용한 이유는 기본적으로 허위 계정은 허위계정끼리, 정상 계정은 정상계정끼리 연결관계를 가진다는 가정에서 출발한 것이다.
3. Attack Design
그렇다면 지금부터 본격적으로 이 논문에서 어떻게 LinLBP 방식을 대상으로 공격했는지 알아보자.
우선, 공격자의 목표는 그래프에서 일부 노드의 classification 결과를 positive(허위계정) 에서 negative(정상계정)으로 바꾸는 것이다. 이렇게 함으로써 공격자는 방어자의 방어를 우회할 수 있다. 여기서 공격자가 목표로 삼는 노드를 target nodes라고 한다.
이제 공격자의 목표를 수식으로 나타내보면, 아래 [그림 3]과 같다. (참고로 v를 target nodes로 나타낸다.)
우선 C 행렬은 임의의 노드 u, v 사이의 edge 를 조작할 때 드는 cost 이고, B 행렬은 original graph와 manipulate 하려는 graph 사이의 변화를 나타낸다.
예를들어, original graph에서 노드 u와 v 사이에 엣지가 존재하고 B_u,v 의 값이 1이라면, 공격자는 해당 엣지를 제거하려고 한다. 반대로 original graph에서 노드 u와 v 사이에 엣지가 존재하지 않고 B_u,v 의 값이 1이라면, 공격자는 해당 엣지를 새로 연결하려고 하는 것이다.
결국 행렬 B와 C를 element-wise 곱하게 되면, 공격하는데 드는 총 cost 를 나타내고, 공격자는 이를 최소화 하려고 하므로 objective function에서 min 을 적용한 것이다.
추가로, 공격이 성공하려면 target nodes들에 대해서 positive -> negative 로 변해야 하므로, FNR = 1이라는 제한조건 이 붙는다.
마지막으로, 공격자는 target node당 공격에 필요한 edge 조작개수를 K로 제한시켰고, 이를 마지막 제한조건으로 붙여놓았다.
[그림 3]의 수식에서 볼 수 있듯이 여러가지 제한 조건이 있으므로, 해당 수식을 바로 푸는 것은 불가능하다. 따라서 [그림 3]의 수식을 [그림 4]의 수식으로 풀어쓸 수 있다.
이렇게 함으로써 FNR=1 의 제한조건을 주번째 항에 lagrangian multiplier 를 추가하여 붙여주었고, collective classification 의 propagation에 활용되는 iteration을 변수 t를 활용하여 나타낼 수 있다.
전체적으로 [그림 4]의 수식을 해석해보면, 공격자는 공격에 필요한 총 cost 를 최소화하려고 하고 (첫번째 항) 동시에 공격 성공률을 최대로 높히려고 한다 (두번째 항).
따라서 만약 lambda의 값이 커지만, 공격성공률에 집중을 하게 되므로 공격에 필요한 총 cost가 늘어나고, lambda 의 값이 작아지만, 공격에 필요한 총 cost는 최소화되지만, 공격 성공률은 조금 낮아지게 될 것이다.
이제 해당 [그림 4]의 수식을 PGD 기반의 공격으로 풀어내면 최종적으로 그래프 구조의 변화를 나타내는 B 행렬을 구할 수 있다.
조금 더 자세한 풀이는 논문을 참조하길 바란다..
4. Evaluation
이제 해당 공격이 실제로 통하는지 알아보자. 저자들은 [그림 5]와 같이 총 4개의 데이터셋에 대해서 공격을 수행했다.
공격 결과는 [그림 6]과 같다. 표에 있는 RAND, CC, CLOSE 는 target node를 선택하는 방법이고, Equal, Uniform, Categorical은 cost matrix에 값을 할당시키는 방법을 의미한다. (그닥 중요한건 아니므로 설명하지 않고 넘어가겠다.)
전체적인 공격 성공률을 보면 (FNR column), 대부분의 경우에서 공격 성공률 90% 내외를 달성하였고, 유일하게 Facebook dataset에서 RAND 일 경우에만 공격성공률이 60%대를 나타내었다.
이는 실제로 앞서 소개한 공격이 효과적이었음을 나타낸다.
또 한가지 특징은 # Add / # Del column에서 볼 수 있듯이, 공격자는 대부분 공격할 때 엣지를 추가하는 경향이 있고, 공격에 엣지를 제거하는 경향은 비교적 낮다는 것이다.
앞서 Intro에서 설명했듯이 graph classification에는 1) collective classification과 2) GNN 방식이 있다. 지금까지 설명한 공격은 collective classification을 가정하고 한 공격이다.
공격 과정에서 optimization problem을 풀 떄, GNN을 대상으로 풀면 너무 연산이 복잡해 거의 불가능하므로, 저자들은 우선 collective classification 을 대상으로 한 공격된 그래프를 가지고 GNN으로 classification을 적용하는, 일명 transfer attack을 수행해보았다.
그 결과 [그림 7]에서 볼 수 있듯이 GCN을 포함한 다양한 GNN classification 모델에서 대부분 50%를 넘는 비교적 높은 공격 성공률을 보인 것을 확인할 수 있다.
게다가, [그림 8]에서 볼 수 있듯이 대표적인 GNN 대상 공격인 Nettack에 비해서도 높은 공격 성공률과, 압도적으로 짧은 공격 시간을 달성하였다.
5. 마치며
논문에서는 오늘 내가 소개한 내용보다 훨씬 많은 내용들이 들어있다. 개인적으로 좋아하는 연구자들이고, 좋아하는 논문이라서 다들 꼭 읽어보는걸 추천한다.
'논문' 카테고리의 다른 글
[논문] IDSGAN: Generative Adversarial Networks for Attack Generation against Intrusion Detection (0) | 2022.03.21 |
---|---|
[논문] Modeling Tabular Data using Conditional GAN (0) | 2022.03.13 |
[논문] Generative Adversarial Nets (0) | 2022.02.08 |
[논문] Detecting Credential Spearphishing Attacks in Enterprise Settings (0) | 2021.12.14 |
[논문] RiskTeller: Predicting the Risk of Cyber Incidents (0) | 2021.11.30 |