본문 바로가기
개인 공부/Machine Learning

[머신 러닝] 0. 인공지능과 보안?

by 아메리카노와떡볶이 2022. 10. 15.
728x90
EP 0. 개요

개요


올해 초에 캡스톤 프로젝트에서 인스타 스팸 계정에 대한 classification model 을 구현했었습니다.

해당 프로젝트를 진행할 때 일정이 타이트했어서 머신러닝에 대한 기초적인 공부를 스킵했었는데.. 늦었지만 지금이라도 시작해보고자 합니다. 

 

머신러닝에 대한 전반적인 기초 지식들을 학습하고, 보안을 공부하는 입장으로써 이러한 머신러닝,딥러닝같은 인공지능 기술이 보안에 어떻게 활용될 수 있을지를 공부하고자 합니다.

 

* 제가 이해한대로 작성된 글이기 때문에 틀린 내용이 있을 수 있습니다.

 

인공지능을 이용한 보안?


먼저 일반적인 보안 시스템에 대해서 생각해봅시다. 일반적으로 방어관점의 보안 시스템은 어떤 시스템의 연결점에서 감시하는 역할을 합니다.

 

예를 들어 IDS의 경우 내부 네트워크와 외부 인터넷 사이의 연결점에서 IP/포트를 기반으로 연결을 감시합니다.

그럼 인공지능 보안 시스템은 무엇이 다른걸까요?

바로 보호하는 방식이 다릅니다.

기존 보안 시스템은 자체 개발한 로직(알고리즘)을 통해 위협을 판별한다면

인공지능 기반 보안 시스템은 수학적,통계적 모델링 함수를 기반으로 위협을 판별합니다.

"""
기존시스템
"""
if 특성1 == 악성:
   malware
else :
   normal

if 특성2 == 악성 and CheckSth():
   malware
else :
   normal
"""
인공지능 기반 시스템
"""

특성 1 + 특성 2 + 특성 3 + 특성 4

-> 수학적 모델

그럼 인공지능이 보안 시스템에 활용되는 구체적인 사례를 알아봅시다.

 

인공지능을 활용한 침해사고 분석

침해사고분석이라 함은 조직의 시스템 또는 자원에 대한 악성 공격을 빠르게 탐지하고

사고원인 분석과 후속조치까지 하는 전반적인 과정을 말한다.

이때 인공지능을 이용하면 이상징후탐지를 통해 효과적으로 공격차단을 할 수 있다.

이상징후탐지는 부서 내부 네트워크에서 일반적으로 관찰되는 흐름을 벗어난 데이터 흐름을 탐지하는 것으로, 수학적이고 통계적인 모델링을 활용하는 인공지능 솔루션이 효과적인 방법이 될 수 있다.

 

인공지능을 활용한 보안관제

방대한 양의 로그를 분석가들이 모두 다루는 것은 매우 시간적,비용적으로 비효율적일 수 밖에 없다.

때문에 인공지능을 이용해서 실제 위협이 될만한 정보만 선별해서 전달한다면, 분석가는 효율적으로 일할 수 있다.

ex) 로직으로 랜섬웨어를 식별하기 위해, 파일관련 API와 암호화 관련 API를 사용했을때 로그를 전달하도록 했다고 하자. 하지만 파일관련 API와 암호화 관련 API를 사용했다고 해서 랜섬웨어라고 단정지을 수는 없다.

기존에는 이러한 룰셋을 이용해서 위협 로그를 판단했다면, 인공지능은 네트워크 트래픽 정보와 단발 시스템의 실제 API 호출 정보를 종합적으로 분석해서 실제 공격과 관련성이 높은 로그만 전달하게 되는 것이다.

 

정보보안의 특수성과 인공지능 보안이 고려해야할 부분


1.정보보안의 목표는 “완벽한” 공격 차단에 있지 않다, “빠르고 정확한” 탐지와 대처가 중요하다

2.보안시스템의 기능은 예측가능해야한다. 여기서 예측가능해야한다는 말은 예를 들어 특정 IP를 차단하는 방화벽이 동작하는 시스템이라면, 특정 IP는 반드시 차단해야한다. 즉 50% 확률로 차단 같은 확률이 들어가면 안되고 해당 기능이 100% 수행되어야한다는 말

3.과거의 데이터가 미래를 말하지 않는다.

4.결국 사람이다. 보안 요구사항, 정책 설정, 업데이트 등 결국 보안시스템을 어떻게 운용할지는 사람이 결정해야한다.

 

따라서 위와 같은 특수성을 고려했을 때 인공지능 보안이 고려해야할 점이 생긴다.

먼저 2번 예측가능해야한다 는 성질을 고려했을 때, 인공지능의 치명적인 약점이 드러난다.

아까도 말했듯이, 머신러닝은 통계와 밀접한 관련이 있다. 즉 과거 데이터의 통계를 통해 미래를 예측하고자 하는 것이기때문에 확률이 존재하게 된다.

 

저희 보안 시스템은 AI기반으로 99% 정확도로 공격을 판별합니다.

이러한 문구는 매력적일 수 없다. 1%의 불확실성이 있기 때문이다.

하지만 이러한 불확실성을 어떻게 발전시켜나가는지에 따라 앞으로 인공지능 보안의 미래가 달려있다.

최근의 사이버 공격은 점점 진화해가며, 제로데이 취약점 등 새로운 공격이 발생하고 있다.

때문에 기존에 존재하는 공격을 탐지하는 로직으로 보안을 확보하기엔 한계가 있다.

 

따라서 지속적으로 모델의 탐지기능을 개선시키기 위해, 많은 데이터와 공격 특징들을 지속적으로 확보하는 것이 필요하다.

 

머신러닝이란?


머신러닝은 간단히 데이터를 통해 패턴을 파악하고 → 예측하여 → 상황을 판단하는 것이라고 할 수 있습니다.

 

머신러닝에 대해서 검색해보면 여러 사전적인 정의를 확인할 수 있습니다.

 

머신러닝은 인공지능(AI)의 하위 집합입니다. 학습과 개선을 위해 명시적으로 컴퓨터를 프로그래밍하는 대신, 컴퓨터가 데이터학습하고 경험을 통해 개선하도록 훈련하는 데 중점을 둡니다.
머신러닝에서 알고리즘은 대규모 데이터 세트에서 패턴과 상관관계를 찾고 분석을 토대로 최적의 의사결정과 예측을 수행하도록 훈련됩니다. 머신러닝 애플리케이션은 적용을 통해 개선되며 이용 가능한 데이터가 증가할수록 더 정확해집니다. 

 

머신러닝은 사람이 지식을 학습하듯이 컴퓨터에도 데이터를 제공하여 학습하게 함으로써 새로운 지식을 얻어내는 방법을 의미한다. 인공지능을 학습시키고 더욱 똑똑하게 만드는 방법이다. 인공지능에게 데이터를 많이 학습시킬 수록 정확한 결과를 얻어낼 수 있다.

 

표현은 다르나 공통적으로 머신러닝을 정의할 때 필수적인 요소가 있습니다. 바로 데이터학습(훈련)입니다.

데이터는 알겠는데.. 학습? 무엇을 학습시킨다는 걸까요? 바로 모델입니다. 

제가 이해한 머신러닝은 "데이터로 모델을 학습시키고 모델을 통해 문제를 해결하는 것" 입니다.

따라서 머신러닝에서 중요한 것은 문제를 해결하기 위한 데이터의 양과 품질 , 학습 방법 등입니다.

 

여기서 학습방법은 크게 세가지가 존재합니다. 지도학습, 비지도 학습, 강화학습으로 각각은 목적이 다릅니다.

학습방법은 문제를 해결하기 위한 것이니, 각각은 해결해야하는 문제 상황이 다르겠죠?

 

지도학습


먼저 지도학습은 정답이 있는 문제를 해결할 때 사용하는 학습 방식입니다. 즉 정답이 정해져있는 데이터를 가지고 모델을 학습시켜서, 예측 또는 추측하는 방식을 말합니다.

 

예를 들면 스팸이메일을 탐지하기 위해 모델을 학습시킨다고 생각해봅시다.

스팸이메일은 제목, 본문 내용, 보내는 사람, 시간 등 다양한 특성을 가지고 있을 것입니다.

이때 스팸이메일은 1, 정상 이메일은 0 으로 맞춰진 데이터를 가지고, 모델을 학습시키는 것입니다.

 

그 후 학습된 모델은 정체모를 이메일이 왔을 때, 자신이 학습한 데이터를 기반으로 해당 이메일이 스팸일지 아닐지 추측하는 것입니다.

 

이러한 지도학습에는 대표적으로 분류(classification)회귀(regression)이 있습니다.

 

분류(classification)

방금 위에서 예시로 든 스팸이메일은 대표적인 분류학습의 예시입니다.

데이터를 특정 라벨값으로 분류(예측)하는 작업으로 스팸이메일의 경우는 스팸이거나 아니거나 하는 이진분류에 해당되고

어떤 데이터에 대해 여러 값 중 하나로 분류할 수 도 있습니다. ex) 고양이 강아지 토끼

 

다중분류의 경우 비지도 학습에 군집화(clustering)와 헷갈릴 수 있는데 가장 큰 차이는 정답이 있는지 없는지입니다. 

고양이 강아지 토끼에 대한 정답이 있는 데이터로 모델을 학습시키고, 임의의 동물에 대해 3가지 중 하나로 분류하는 것은 지도학습 중 분류에 해당하고

 

무작위 동물 데이터를 가지고 비슷한 특성을 가진 것들 끼리 군집화를 했는데, 그 결과가 고양이 강아지 토끼로 그룹이 생성되었다면 군집화라고 할 수 있습니다.

 

회귀(regression)

회귀는 연속된 값을 예측하는 것이라고 할 수 있습니다. 

예를 들어 지난 시험에서 학생의 공부시간과 성적 데이터가 있을때, 이를 토대로 다음 시험에서 공부시간에 따른 성적을 예측하는 것입니다.

 

즉 어떤 데이터들의 특징을 토대로 값을 예측하는 작업이라고 할 수 있습니다.

분류와 대표적인 차이점은 결과 값이 실수이며, 연속성을 갖는다는 점입니다.

 

지도학습 알고리즘 종류

  • K-Nearest Neibors (k-최근접 이웃, KNN)
  • Linear Regression (선형 회귀)
  • Logistic Regression (로지스틱 회귀)
  • SVM (Support Vector Machines)
  • Decision Tree (의사결정 나무)
  • Random Forest (랜덤 포레스트)
  • Neural Networks (신경망)

각 알고리즘에 대해서는 나중에 포스팅에서 상세하게 다뤄보겠습니다.

 

 

비지도학습


비지도학습은 지도학습과 달리 정답,오답이 정해져있지 않은 데이터를 자동으로 구집하여 규칙을 스스로 발견하게 하는 방식입니다. 즉 x에 대한 레이블이 없는 훈련데이터를 이용하여, 데이터들의 특성과, 특징을 파악하고자 하는 것입니다.

 

예를 들어 고양이, 강아지, 토끼, 새 에 대한 비지도 학습을 생각해봅시다.

위의 동물들에 대한 feature(특징)에 날 수 있는지 여부를 넣었다면 고양이,강아지,토끼 // 새 이렇게 묶일 수 있고

feature(다리 수)로 묶는다면 고양이,강아지//토끼,새 이렇게 묶일 수 있습니다.

 

즉 비지도학습 결과를 보고 데이터들이 그룹화된 feature를 파악하고자 하는 것 입니다. 

 

비지도 학습은 대표적으로 군집화(clustering), 차원축소, 연관 규칙학습이 있습니다.

 

 

군집화(clustering)

데이터들의 특성을 고려해 데이터 집단(클러스터)을 정의하고 데이터 집단의 대표할 수 있는 중심점을 찾는 것으로 데이터 마이닝의 한 방법입니다.

* 클러스터 : 비슷한 특성을 가진 데이터들의 집단 

차원축소

정보 손실을 최소화 하면서 데이터를 간소화 하는 방법입니다.
ex. 중고차의 가격을 예측할때, 주행거리와 연식은 매우 상관있는 관계.

 

이를 "마모 정도"를 나타내는 하나의 특성으로 합침으로써 데이터의 차원을 축소할 수 있다. (이를 특성 추출 이라고 한다.)

 

연관 규칙학습

데이터의 특성 간의 흥미로운 관계를 찾아내는 학습입니다.
"맥주를 사면서 함께 기저귀를 산다" 라는 특이한 연관관계를 밝혀내면서 다방면으로 활용 가능하다.

 

 

강화학습


실패와 성공의 과정을 반복하며 학습해나가는 방식입니다. ex)딥러닝

대표적으로 알파고, 자율주행, 로봇제어 등이 있습니다.

 

한동안 중점적으로 다룰 것은 지도학습과 비지도학습이기때문에 이 부분은 나중에 보충하도록 하겠습니다.

 

 

 

 

 

 

 

 

 

728x90

'개인 공부 > Machine Learning' 카테고리의 다른 글

[머신러닝] 1. 머신러닝 프로세스  (0) 2022.10.20

댓글