인터넷 사용자가 폭발적으로 늘어나면서 웹을 이용한 공격이 증가했다. 뿐만 아니라 기존의 방어 기법들을 우회하기 위해 공격 패턴이 다양해졌다. 전통적인 웹 방화벽은 알져지지 않은 패턴의 공격을 탐지하기 어렵다. 따라서 인공지능으로 비정상을 탐지하는 방식이 대안으로 연구되고 있다. 특히 공격에 악용되는 스크립트나 쿼리가 텍스트로 이루어져 있다는 이유로 자연어 처리 기법을 적용하는 시도가 일어나고 있다. 하지만 스크립트나 쿼리는 미등록 단어(Unknown word)가 다량 발생하기 때문에 자연어 처리와는 다른 방식의 접근이 필요하다. 본 논문에서는 BPE(Byte Pair Encoding)기법으로 웹 공격 페이로드에 자주 사용되는 토큰 집합을 추출하여 임베딩 벡터를 학습시키고, 주의 메커니즘 기반의 Bi-GRU 신경망으로 토큰의 순서와 중요도를 학습하여 웹 공격을 분류하는 모델을 제안한다. 주요 웹 공격인 SQL 삽입 공격, 크로스 사이트 스크립팅, 명령 삽입 공격에 대하여 분류 평가 결과 약 0.9990의 정확도를 얻었으며, 기존 연구에서 제안한 모델의 성능을 상회하는 결과를 도출하였다.
인터넷 사용자가 폭발적으로 늘어나면서 웹을 이용한 공격이 증가했다. 뿐만 아니라 기존의 방어 기법들을 우회하기 위해 공격 패턴이 다양해졌다. 전통적인 웹 방화벽은 알져지지 않은 패턴의 공격을 탐지하기 어렵다. 따라서 인공지능으로 비정상을 탐지하는 방식이 대안으로 연구되고 있다. 특히 공격에 악용되는 스크립트나 쿼리가 텍스트로 이루어져 있다는 이유로 자연어 처리 기법을 적용하는 시도가 일어나고 있다. 하지만 스크립트나 쿼리는 미등록 단어(Unknown word)가 다량 발생하기 때문에 자연어 처리와는 다른 방식의 접근이 필요하다. 본 논문에서는 BPE(Byte Pair Encoding)기법으로 웹 공격 페이로드에 자주 사용되는 토큰 집합을 추출하여 임베딩 벡터를 학습시키고, 주의 메커니즘 기반의 Bi-GRU 신경망으로 토큰의 순서와 중요도를 학습하여 웹 공격을 분류하는 모델을 제안한다. 주요 웹 공격인 SQL 삽입 공격, 크로스 사이트 스크립팅, 명령 삽입 공격에 대하여 분류 평가 결과 약 0.9990의 정확도를 얻었으며, 기존 연구에서 제안한 모델의 성능을 상회하는 결과를 도출하였다.
As the number of Internet users exploded, attacks on the web increased. In addition, the attack patterns have been diversified to bypass existing defense techniques. Traditional web firewalls are difficult to detect attacks of unknown patterns.Therefore, the method of detecting abnormal behavior by ...
As the number of Internet users exploded, attacks on the web increased. In addition, the attack patterns have been diversified to bypass existing defense techniques. Traditional web firewalls are difficult to detect attacks of unknown patterns.Therefore, the method of detecting abnormal behavior by artificial intelligence has been studied as an alternative. Specifically, attempts have been made to apply natural language processing techniques because the type of script or query being exploited consists of text. However, because there are many unknown words in scripts and queries, natural language processing requires a different approach. In this paper, we propose a new classification model which uses byte pair encoding (BPE) technology to learn the embedding vector, that is often used for web attack payloads, and uses an attention mechanism-based Bi-GRU neural network to extract a set of tokens that learn their order and importance. For major web attacks such as SQL injection, cross-site scripting, and command injection attacks, the accuracy of the proposed classification method is about 0.9990 and its accuracy outperforms the model suggested in the previous study.
As the number of Internet users exploded, attacks on the web increased. In addition, the attack patterns have been diversified to bypass existing defense techniques. Traditional web firewalls are difficult to detect attacks of unknown patterns.Therefore, the method of detecting abnormal behavior by artificial intelligence has been studied as an alternative. Specifically, attempts have been made to apply natural language processing techniques because the type of script or query being exploited consists of text. However, because there are many unknown words in scripts and queries, natural language processing requires a different approach. In this paper, we propose a new classification model which uses byte pair encoding (BPE) technology to learn the embedding vector, that is often used for web attack payloads, and uses an attention mechanism-based Bi-GRU neural network to extract a set of tokens that learn their order and importance. For major web attacks such as SQL injection, cross-site scripting, and command injection attacks, the accuracy of the proposed classification method is about 0.9990 and its accuracy outperforms the model suggested in the previous study.
* AI 자동 식별 결과로 적합하지 않은 문장이 있을 수 있으니, 이용에 유의하시기 바랍니다.
문제 정의
본 논문에서는 위와 같은 문제를 해결하기 위해 페이로드 임베딩 사전학습 기반의 웹 공격 분류 모델을 제안한다. 우리의 모델은 BPE[8] 기법으로 구성한 페이로드 토큰 집합을 패스트텍스트(fasttext)[9] 방식으로 학습하여 임베딩 벡터를 추출하고, 주의 메커니즘 기반의 Bi-GRU 신경망 모델에 입력하여 웹 공격 유형을 분류하였다.
본 논문에서는 이를 구현하기 위해 Bi-GRU의 출력값을 주의 계층의 입력으로 사용하여, Bi-GRU의 시간별 출력 중 중요한 정보가 있다고 판단되는 단어에 가중치를 주고 문맥 벡터를 추출하였다.
4) 시퀀셜 모델링 : 사전 학습한 임베딩 벡터를 Bi-GRU 모델에 입력하여 토큰 순서에 따른 영향도를 학습한다.
본 논문에서는 웹 공격 페이로드를 기반으로 웹 공격 유형을 분류하였다. BPE 기법으로 페이로드에 적합한 단어 집합을 추출하고, 패스트텍스트를 통해 페이로드만의 임베딩 벡터를 사전학습 하였다. 임베딩 벡터를 Bi-GRU 신경망과 주의 메커니즘을 기반으로 학습하여 웹 공격 유형을 분류하였다.
제안하는 모델의 우수성을 증명하기 위해 공격 도구로 생성한 웹 공격 페이로드 샘플로 데이터셋을 구축하고 비교 실험을 진행하였다. Bpe vocab size, word embedding deminsion, word max length 등 하이퍼파라미터를 조절하여 성능을 비교하고, 최적의 성능을 내는 파라미터 값을 추출하여 기존 연구 모델과 비교하였다. 그 결과 정확도, 정밀도, 회수율, F1점수 네가지 항목 모두에서 기존 모델보다 높은 점수를 획득하였다.
Michiaki Ito and Hitoshi Iyatomi[4]는 웹 공격 분류를 위해 임베딩 기법을 도입하였다. http요청을 구성하는 문자열 중 최초 1000개의 문자에서 128차원의 임베딩 벡터를 추출하고, CNN(Convolutional Neural Network)을 통해 2~8까지의 커널 사이즈로 자른 문자열의 분포를 학습하여 웹 공격을 분류하였다.
Saiyu Hao et al[6]은 http 요청을 입력값으로사용하였으며, 특수문자를 기준으로 토큰화를 수행하였다. word2vec 방식으로 임베딩 벡터를 추출하였고, LSTM을 양방향으로 구성하여 시퀀스를 추출하였다.
Yang et al[5]은 URL을 입력값으로 사용하여 웹 공격을 분류하였다. 공격에 사용되는 주요 키워드 96가지 목록을 기준으로 토큰을 추출 하고, 그 외의 문자열은 문자 단위로 자른 뒤 128차원의 임베딩 벡터를 추출하였다. 그 다음 2, 4사이즈 커널의 CNN을 통해 형상을 추출하고, GRU 모델으로 토큰 시퀀스에 따른 영향을 학습하였다.
공격에 사용되는 주요 키워드 96가지 목록을 기준으로 토큰을 추출 하고, 그 외의 문자열은 문자 단위로 자른 뒤 128차원의 임베딩 벡터를 추출하였다. 그 다음 2, 4사이즈 커널의 CNN을 통해 형상을 추출하고, GRU 모델으로 토큰 시퀀스에 따른 영향을 학습하였다. 이 방법은 새로운 공격 패턴이 등장하게 될 경우 키워드 목록을 새로 구성해야 하며, 해당 목록에 존재하지 않는 토큰은 분별하지 못한다는 단점이 존재한다.
5의 드롭아웃을 설정하였다. 그 외에 덴스를 거친 뒤 소프트맥스로 웹 공격 유형을 분류하였다. loss 함수는 categorical_crossentropy이며, 최적화 함수는 rmsprop, 실험 에포크는 10, 배치사이즈는 128로 설정하였다.
웹공격은 공격 유형에 따라 방어 주체의 대응 방식이 달라진다. 따라서 단순히 악성과 정상으로 분류하는 이진 분류 방식이 아닌 공격 유형을 구분하는 다중 분류 방식으로 학습하였다.
또한 피싱 공격이 아닌 웹 공격을 분류 타깃으로 하기 때문에 URL이 아닌 페이로드를 학습하였다. 웹공격은 공격 유형에 따라 방어 주체의 대응 방식이 달라진다.
본 논문에서는 웹 공격 페이로드를 기반으로 웹 공격 유형을 분류하였다. BPE 기법으로 페이로드에 적합한 단어 집합을 추출하고, 패스트텍스트를 통해 페이로드만의 임베딩 벡터를 사전학습 하였다.
본 논문에서는 입력 페이로드를 토큰화 한 다음, 각 토큰들을 사전학습한 페이로드 임베딩 벡터로 변환하여 Bi-GRU에 입력한다.
본 논문에서는 페이로드를 구성하는 문자열(이하 토큰)의 분포, 순서, 중요도 등에 따른 가중치를 학습하여, 서버를 타깃으로 하는 대표적인 웹 공격 세가지를 분류한다. 이를 구현한 모델의 개요도는 Fig.
제안하는 모델의 웹 공격 페이로드 분류 성능을 검증하기 위해 대표적인 웹 공격 3가지인 SQL 삽입 공격, 크로스 사이트 스크립팅, 명령 삽입 (command injection)에 대한 다중 분류 실험을 설계하였다. 우리는 각각을 구현하는 공격 도구 Sqlmap[21], commix[22], XSStrike[23]를 통해 공격을 생성한 뒤 페이로드를 추출하였다.
본 논문에서는 위와 같은 문제를 해결하기 위해 페이로드 임베딩 사전학습 기반의 웹 공격 분류 모델을 제안한다. 우리의 모델은 BPE[8] 기법으로 구성한 페이로드 토큰 집합을 패스트텍스트(fasttext)[9] 방식으로 학습하여 임베딩 벡터를 추출하고, 주의 메커니즘 기반의 Bi-GRU 신경망 모델에 입력하여 웹 공격 유형을 분류하였다.
이것을 분포 가정이라고 하는데, 토큰들의 분포에 따른 의미를 학습하기 위해 임베딩 모델을 구성하고 벡터를 추출하였다.
BPE 기법으로 페이로드에 적합한 단어 집합을 추출하고, 패스트텍스트를 통해 페이로드만의 임베딩 벡터를 사전학습 하였다. 임베딩 벡터를 Bi-GRU 신경망과 주의 메커니즘을 기반으로 학습하여 웹 공격 유형을 분류하였다.
제안하는 모델의 웹 공격 페이로드 분류 성능을 검증하기 위해 대표적인 웹 공격 3가지인 SQL 삽입 공격, 크로스 사이트 스크립팅, 명령 삽입 (command injection)에 대한 다중 분류 실험을 설계하였다.
Saiyu Hao etal[6]에서 제안하는 모델과의 가장 큰 차이는 주의 메커니즘을 적용했다는 것이다. 주의 메커니즘을 적용함으로써 시퀀스 중 분류에 가장 영향을 미치는 토큰에 가중치를 부여하였다.
대상 데이터
학습을 위한 최소 토큰 개수는 66개이다. 본 논문에서는 일반적으로 자연어 처리에서 사용하는 32,000 토큰을 사용하였다.
실험은 텐서플로우와 케라스를 주요 프레임워크로 사용하였고, Intel Core I7-7770, ram 32GB, gpu gtx1060 6GB 환경에서 수행하였다. 매개 변수를 조절하며 실험을 수행한 결과 주요 파라미터는 Table 3과 같이 설정하였다.
정상 샘플은 ISCX-2016-URL 데이터셋[24]에서 페이로드에 상응하는 파라미터만을 추출하여 구성하였다. 각 유형별 샘플의 개수는 Table 2와 같다.
데이터처리
제안하는 모델의 우수성을 증명하기 위해 공격 도구로 생성한 웹 공격 페이로드 샘플로 데이터셋을 구축하고 비교 실험을 진행하였다. Bpe vocab size, word embedding deminsion, word max length 등 하이퍼파라미터를 조절하여 성능을 비교하고, 최적의 성능을 내는 파라미터 값을 추출하여 기존 연구 모델과 비교하였다.
제안하는 모델의 우수성을 증명하기 위해 기존 연구에서 제안한 모델과 성능을 비교하였다. 평가 지표로는 정확도, 정밀도, 회수율, F1점수를 사용하였으며, 4가지의 유형을 구분하는 다중 분류이기 때문에 각 유형별 결과의 macro 평균으로 계산하였다.
제안하는 모델의 우수성을 증명하기 위해 기존 연구에서 제안한 모델과 성능을 비교하였다. 평가 지표로는 정확도, 정밀도, 회수율, F1점수를 사용하였으며, 4가지의 유형을 구분하는 다중 분류이기 때문에 각 유형별 결과의 macro 평균으로 계산하였다.
이론/모형
본 논문에서는 BPE 기법을 사용하여 토큰화 작업을 수행하였다[8]. BPE는 단어 분리 기법으로 문자열을 문자 단위로 쪼갠 뒤 가장 빈도수가 높은 유니그램의 쌍을 하나의 유니그램으로 묶어가는 작업을 반복하면서 사용자가 설정한 개수만큼 단어 집합을 만들어준다.
성능/효과
즉, 웹 공격 유형 구분에 필요한 토큰들 간의 분포 관계를 표현하는 주요 특징(feature)의 개수라고 볼 수 있다. 4개의 페이로드 유형을 구분하는 작업(task)은 자연어 처리 작업에 비해 적은 출력 차원이 필요할 것으로 예상되어, 1부터 200까지 차원 수를 변경하여 성능을 평가한 결과. 32차원 이상부터는 변화가 크지 않음을 확인하였다.
제안하는 모델이 accuracy precision, recall, f1-score 네가지 항목에서 모두 기존 모델보다 높은 점수를 얻었다. model B와 model C의 비교를 통해 주의 메커니즘 적용에 따른 성능 향상을 확인할 수 있었고, 미등록 단어가 많은 페이로드를 대상으로 하는 분류 작업(Task)일때, BPE 기법으로 구성한 단어 집합을 임베딩한 모델에서 가장 좋은 성능을 얻었다. 또한 loss 값이 빠르게 안정화 되는 것을 확인할 수 있었다.
Bpe vocab size, word embedding deminsion, word max length 등 하이퍼파라미터를 조절하여 성능을 비교하고, 최적의 성능을 내는 파라미터 값을 추출하여 기존 연구 모델과 비교하였다. 그 결과 정확도, 정밀도, 회수율, F1점수 네가지 항목 모두에서 기존 모델보다 높은 점수를 획득하였다. 특히 정확도는 0.
model B와 model C의 비교를 통해 주의 메커니즘 적용에 따른 성능 향상을 확인할 수 있었고, 미등록 단어가 많은 페이로드를 대상으로 하는 분류 작업(Task)일때, BPE 기법으로 구성한 단어 집합을 임베딩한 모델에서 가장 좋은 성능을 얻었다. 또한 loss 값이 빠르게 안정화 되는 것을 확인할 수 있었다.
본 논문에서 제안하는 모델은 토큰의 분포, 시퀀스, 중요도 등에 따른 가중치를 학습한다는 점에서 개념적으로 Ren at al[7]의 모델과 가장 유사하다.
Table 4는 각 모델과의 웹 공격 분류 성능을 비교한 결과 표이다. 제안하는 모델이 accuracy precision, recall, f1-score 네가지 항목에서 모두 기존 모델보다 높은 점수를 얻었다. model B와 model C의 비교를 통해 주의 메커니즘 적용에 따른 성능 향상을 확인할 수 있었고, 미등록 단어가 많은 페이로드를 대상으로 하는 분류 작업(Task)일때, BPE 기법으로 구성한 단어 집합을 임베딩한 모델에서 가장 좋은 성능을 얻었다.
하지만 토큰화 및 임베딩 과정에서 BPE 기법과 패스트텍스트 임베딩 방식으로 벡터를 표현함으로써 OOV(Out-Of-Vocabulary) 문제를 개선하여 분류 성능을 향상 시켰으며, Bi-GRU 신경망을 사용하여 학습 속도를 개선하였다.
후속연구
32차원 이상부터는 변화가 크지 않음을 확인하였다. 향후 다른 유형의 웹 공격 샘플을 추가하는 등 분류 작업(task)의 난이도에 따라 더 높은 차원으로 값을 설정할 필요가 있다.
향후 더 다양한 웹 공격 유형의 샘플을 확보하여 배치 학습이 아닌 온라인 학습 형태로 구성한다면 기존 웹 방화벽의 패턴 탐지 모듈을 대체할 수 있을 것으로 예상된다.
질의응답
핵심어
질문
논문에서 추출한 답변
주요 웹 공격은 무엇이 있나?
주요 웹 공격으로는 악의적인 SQL 쿼리(qeury)를 삽입하여 데이터베이스의 중요한 정보를 탈취하는 SQL 삽입(sql injection) 공격, 악성 스크립트를 삽입하여 본래 의도와 다른 작업을 유도하는 크로스 사이트 스크립팅(Cross-Site Scripting, XSS) 공격이 있으며, 이러한 웹 공격은 전체 사이버 공격의 56%를 차지한다[1].
공격자들은 어떤 이유로 취약한 웹 사이트를 공격하고 있나?
오늘날 우리는 정보를 얻기 위해 수많은 웹 사이트에 접속한다. 이에 따라 공격자들은 금전적인 이득, 개인 정보 탈취, 정치적인 목적 등 다양한 이유로 취약한 웹 사이트를 공격하고 있다.
웹 공격을 방어하기 위한 전통적인 방법 네 가지는 무엇인가?
웹 공격을 방어하기 위한 전통적인 방법은 크게 네가지가 있다. 첫 번째, 개발단에서부터 웹 공격에 사용되는 특수 문자 등을 제한하는 방식의 시큐어 코딩을 적용하는 방법[10, 11]. 두 번째, 패턴기반으로 생성한 공격 페이로드를 삽입하고 반응값을 비교해 취약점을 진단하는 웹 취약점 스캐너 방식[12, 13]. 세 번째, 클라이언트에서 입력한 값을 서버측에서 해석할 때 입력값을 변환하여 공격 행위 자체를 무효화시키는 방법. 마지막으로 snort[14], modsecurity[15] 등 웹 서버 앞에 설치하여 사용자의 요청 내용을 분석하고 패턴 기반으로 필터링하는 방법이 있다[16].
Hung Le, Quang Pham, Doyen Sahoo and Steven C.H. Hoi, "URLnet: Learning a URL representation with deep learning for malicious URL detection," arXiv preprint arXiv:1802.03162, Mar. 2018.
Michiaki Ito and Hitoshi Iyatomi, "Web application firewall using character-level convolutional neural network," 2018 IEEE 14th International Colloquium on Signal Processing & Its Applications, pp. 103-106, Mar. 2018.
Yang, Wenchuan, Wen Zuo, and Baojiang Cui, "Detecting malicious urls via a keyword-based convolutional gated-recurrent-unit neural network," IEEE Access 7, pp. 29891-29900, Feb. 2019.
Saiyu Hao, Jun Long and Yingchuan Yang, "BL-IDS: Detecting Web Attacks Using Bi-LSTM Model Based on Deep Learning," International Conference on Security and Privacy in New Computing Environments, pp. 551-563, Apr. 2019.
Ren, Fangli, Zhengwei Jiang, and Jian Liu, "A Bi-Directional LSTM Model with Attention for Malicious URL Detection," 2019 IEEE 4th Advanced Information Technology, Electronic and Automation Control Conference, pp. 300-305, Dec. 2019.
Sennrich, Rico, Barry Haddow, and Alexandra Birch, "Neural machine translation of rare words with subword units," arXiv preprint arXiv:1508.07909, Jun. 2016.
Armand Joulin, Edouard Grave, Piotr Bojanowski, Matthijs Douze, Herve Jegou and Tomas Mikolov, "Fasttext. zip: Compressing text classification models," arXiv preprint arXiv:1612.03651, Dec. 2016.
Vandana Dwivedi, Himanshu Yadav and Anurag Jain, "SQLAS: Tool to detect and prevent attacks in php web applications," International Journal of Security Privacy and Trust Management, vol. 4, no. 1, pp. 21-30 Feb. 2015.
Sahu, Divya Rishi, and Deepak Singh Tomar, "Analysis of web application code vulnerabilities using secure coding standards," Arabian Journal for Science and Engineering, vol. 42, no. 2, pp. 885-895, Feb. 2017.
Jason Bau, Elie Bursztein, Divij Gupta and John Mitchell, "State of the art: Automated black-box web application vulnerability testing," 2010 IEEE Symposium on Security and Privacy, pp. 332-345, May. 2010.
Priyank Bhojak, Kanu Patel, Vikram Agrawal and Vatsal Shah, "SQL Injection and XSS Vulnerability Detection in Web Application," International Journal of Advanced Research in Computer Science and Software Engineering, vol. 5, no. 12, pp. 110-115, Dec. 2015.
Roesch and Martin, "Snort: Lightweight intrusion detection for networks," Proceedings of the 13th USENIX conference on System administration, pp. 229-238, Nov. 1999.
Modsecurity, "Open Source Web Application Firewall," https://modsecurity.org/
Nilesh Khochare and B. B. Meshram, "Tool to Detect and Prevent Web Attacks," International Journal of Advanced Research in Computer Engineering & Technology, vol. 1, no. 4, pp. 375-378, 2012.
Mikhail Zolotukhin, Timo Hamalainen, Tero Kokkonen and Jarmo Siltanen, "Analysis of http requests for anomaly detection of web attacks," Proceedings of IEEE 12th International Conference on Dependable, Autonomic and Secure Computing, pp. 406-411, Aug. 2014.
Abdelhamid Makiou. Youcef Begriche and Ahmed Serhrouchni, "Improving Web Application Firewalls to detect advanced SQL injection attacks," Information Assurance and Security 2014 10th International Conference, pp. 35-40, Nov. 2014.
Zhang, Zhaoxuan, Roy George, and Khalil Shujaee, "Efficient detection of anomolous HTTP payloads in networks," SoutheastCon 2016, pp. 1-3, Mar. 2016.
Baojiang Cui, Shanshan He, Xi Yao and Peilin Shi, "Malicious URL detection with feature extraction based on machine learning," International Journal of High Performance Computing and Networking vol. 12, no. 2, pp. 166-178, Sep. 2018.
Damele, Bernardo, and M. Stampar, "Sqlmap," Online at http://sqlmap.org, 2012.
Stasinopoulos, Anastasios, Christoforos Ntantogian and Christos Xenakis, "Commix: Detecting and exploiting command injection flaws," The Black hat Europe 2015, Nov. 2015.
※ AI-Helper는 부적절한 답변을 할 수 있습니다.