TeamH4C_ProjectH4C/세미나

[TeamH4C_부엉이 세미나] 머신러닝과 보안위협

P4P3R_H 2021. 1. 16. 21:40

안녕하세요! Hak2입니다.

TeamH4C에서 진행하는 ProjectH4C 3기를 참여하면서 블로그를 시작하게 되었습니다.

첫 게시물로 1월 15일 (금) 21:00시부터 TeamH4C에서 진행한 제1회 해킹하는 부엉이들 웹 세미나(온라인 학술회)에서 들었던 내용을 순서대로 올리겠습니다. 이번 게시물은 개인 공부를 위해 정리한 게시물입니다. 두 번째 게시물이 세미나 과제 게시물이 되겠습니다.

세미나의 주제에는 Newbie를 위한 3가지의 주제와 심화된 주제 3가지로 나뉘어 진행되었습니다.

저는 그중 Newbie를 위한 3가지 주제들을 다루겠습니다.

 

첫 번째의 세미나 주제로 [머신러닝과 보안 위협, 그리고 수학]이라는 내용을 들었습니다.

세미나에서 들은 내용을 크게 아래 두 가지의 주제로 정리하였습니다.

- 머신러닝의 이해

- 머신러닝의 보안 위협

 

머신러닝의 이해

머신러닝은 학습을 통해 스스로 규칙성을 찾아내고 작성하는 프로그램이라고 정의되어있습니다.

일반적으로 프로그램은 무엇인가를 명령을 하면 이루어지는 형식이지만 이제부터의 프로그램의 방향은 자동으로 원하는 것을 실행해주는 작동방식으로 변화될 것으로 생각하시면 됩니다.

○ 딥러닝 VS 머신러닝

딥러닝과 머신러닝의 차이점이 없다고 생각하시는 분들도 계시는데 딥러닝과 머신러닝에는 가장 큰 차이점이 있습니다.

딥러닝은 분류에 사용되는 데이터를 스스로 학습하는 반면 머신러닝은 데이터를 직접 학습해줘야 한다는 것입니다.

둘의 차이점은 분명하게 있지만 비슷한 부분이 많아 서로의 영역을 배우고자 할 때는 보다 쉽게 학습이 가능하다는 장점이 있습니다.

 머신러닝의 프로그래밍

머신러닝은 학습의 기준에 따라 선택하는 결과가 다르게 표시가 될 것입니다. 예로 아래의 그림과 같습니다.

이렇듯 아주 미세한 작은 차이로 완전히 다른 결과로 나타내어 정확한 데이터를 추출하기 위해서는 더 많은 이미지와 정보가 필요할 것입니다. 머신러닝에서의 좋은 결과를 기대하기 위해서는 최대한 적은 오류를 내도록 하는 공식을 기준으로 삼고, 나온 오류들은 비정상적인 값으로 처리를 하는 과정을 거쳐야 합니다.

 머신러닝의 학습방법

머신러닝의 학습방법으로는 지도 학습, 강화 학습, 자율학습 3가지가 있습니다.

지도 학습은 주입식 교육이라고 생각하시면 편합니다. 훈련 데이터에서 하나의 함수를 유추해내기 위한 기계학습의 한 방법으로 강화 학습이나 자율학습보다는 답이 확실하게 정해져 있는 편입니다.

지도 학습에서의 목표는 회기 분석과 분류로 나뉘는데 세미나에서는 회기 분석을 다뤄 회기 분석에 대하여 밑에 그림으로 간단하게 표현하겠습니다. 회기의 대표 알고리즘으로는 선형 회기, 로지스틱 회기, 의사결정 트리가 있습니다.

선형 회기는 가장 간단한 알고리즘인데 선의 모양으로 개수가 정해져 회기 한다 하여 선형 회기입니다. 로지스틱은 범주형 데이터를 사용할 때이고, 결정 트리는 의사결정의 문제가 있을 때 사용한다고 이해하였습니다.

머신러닝의 학습방법 2번째는 강화 학습입니다. 강화 학습은 판단력 강화라는 것을 떠올리면 되는데 현재 상태를 인식하여 선택 가능한 행동 중 이익을 최대화하는 행동을 선택하는 방법입니다.

사람이 게임을 할 때, 생각을 하며 앞에 보이는 상태를 주기적으로 관찰을 하여 머리에 정보가 들어오면 판단하여 행동하게 되는 그런 변화에 따른 게임의 보상의 변화가 강화 학습이라 생각하시면 됩니다. 계속되는 경험을 통해 스스로 수련하여 더 좋은 선택을 하게 만드는 방법입니다.

마지막으로 자율학습입니다. 자율학습은 적응이라는 것에 비유되며, 정확한 지시나 규칙성은 갖지 않고 어떤 것인지 분류하는 것입니다. 다른 것들과는 달리 사전 정보 없이 목표치가 주어지지 않고 분류하는 것이기에 프로그램의 규칙성을 스스로 만들어 데이터의 주요 특징을 요약하는 방법입니다.

자율학습에는 군집화, 이상 탐지, 연상 등이 있는데 군집화는 비슷한 것의 데이터끼리 묶는 작업을 말하고, 이상 탐지는 분류된 데이터 중 가장 이외의 값을 추출하는 것을 말합니다. 마지막으로 연상은 무엇을 해야 하니 무엇을 하기 위한 데이터를 찾아야 된다와 같은 과정을 말합니다.

 

머신러닝의 보안 위협

머신러닝에서 발생하는 공격의 주요 포인트 3가지로는 영향, 한정성, 보안 침해가 있습니다.

영향 - 공격자가 프로그램의 값을 입력하거나 어떤 데이터를 의도적으로 오류가 발생하도록 하는 것을 말합니다.

한정성 - 예측 또는 분류에 지장이 가도록 공격하는 것입니다. 분류를 하는 공식이 비정상적인 결과를 내는 쪽을 공격하는 방식입니다.

보안침해 - 머신러닝 자체가 가진 보안적인 시스템의 허점을 파고드는 방식입니다. 머신러닝의 대부분은 상업성을 가지는데 이러한 점을 이용하여 무결성, 가용성에 오류를 주어 공격하는 방식입니다.

이 3가지 위협을 통해 영향을 미치는 것에는 다음과 같이 있습니다.

영향에서는 인과적 공격과 탐색적 공격입니다. 인과적 공격은 훈련 데이터와 훈련 단계의 파라미터를 변경하여 적대적 행위자가 훈련 프로세스에 영향을 미치려고 시도하는 공격입니다. 탐색적 공격으로는 머신러닝 시스템과의 사후 훈련 단계 상호작용에 대부분의 기반을 가집니다. 훈련한 데이터셋에 영향을 미치는 것이 아니라 모델이 실수한 공간을 찾는 적대적 기법입니다. 잘못 판단한 부분을 찾기 위해 무작위의 값을 넣어 오류를 찾아내기도 합니다.

한정성 부분에서는 표적 공격과 무차별 공격이 있습니다. 표적 공격은 정확한 목표가 있어 특정을 하여 공격을 하는 목적이 있는 공격입니다. 무차별 공격은 무작위로 보내 오분류로 인한 취약성을 공격 시도하는 것입니다.

보안 침해에서는 무결성 공격, 가용성 공격이 있는데 이 두 가지는 공격을 당하게 되면 상업성과 서비스에 큰 차질이 생겨 제일 큰 문제라고 생각이 듭니다. 무결성 공격은 언제나 같은 서비스를 제공하는 것에 영향을 주어 공격을 하는 것입니다. 보안 탐지기가 공격을 발견할 수 있는 능력에 공격을 하여 탐지할 수 있었던 영역을 탐지 못하게 하는 것입니다. 가용성 공격은 참의 비율을 줄이고 거짓의 비율을 높여 시스템의 유효성을 저하시키는 데에 목적을 두고 있습니다.

이상으로 머신러닝을 주제로 한 세미나 발표의 내용 정리를 하였습니다.

첫 블로그라 부족했지만 읽어주셔서 감사합니다ㅎㅎ