모든 소프트웨어에는 보안 취약점이 존재합니다. 소프트웨어의 안전성을 확보하기 위해 이를 찾아내서 패치하는 반복적인 과정을 거치는데요. 보안 취약점을 찾기 위한 테스트 기법 중 하나인 ‘AI퍼징’에 대해 알아보겠습니다.
퍼징(Fuzzing)은 소프트웨어의 취약점을 테스트하는 기법 중 하나입니다. 소프트웨어에 입력값을 무작위로 대입해보고, 그 과정에서 발생하는 에러나 충돌을 모니터링해서 보안의 허점을 찾아내는 방식인데요. 실제로 소스 코드를 분석해서 찾아낼 수 있는 버그보다 퍼징을 통해 찾아낼 수 있는 버그가 많아 보안 전문가들 사이에서는 꽤 효과적인 테스트 방식으로 꼽힙니다.
퍼징을 할 때 다양한 변수를 입력하는 과정에서 수동 설정이 필요한 경우도 있는데요. 가능한 모든 경우의 수를 입력하는 것은 매우 오랜 시간과 막대한 비용이 들기 때문에 거의 불가능하다고 볼 수 있습니다. 이런 점 때문에 퍼징은 ‘바보 과학(Dumb Science)’이라고 불리기도 합니다.
전통적인 퍼징 방식이 AI(인공지능)를 만나면 이야기가 달라집니다. AI퍼징은 애플리케이션 혹은 시스템의 보안 취약점을 찾기 위해 머신러닝(Machine Learning)과 유사한 기술을 사용하는데요. 머신러닝이란 인공지능의 한 분야로, 컴퓨터가 주어진 데이터에서 스스로 패턴을 분석해 의미 있는 정보를 찾아내는 기술을 뜻합니다.
이로 인해 퍼징을 할 때 테스트 사례 생성이 용이해지면서 효율적인 맞춤 방식이 가능해졌고, 기존 방식으로는 발견할 수 없는 취약점까지도 좀 더 빨리 찾아낼 수 있는 가능성이 열렸습니다.
하지만 더욱 효율적인 보안을 위해 인공지능을 접목시킨 퍼징 기법은 호주의 기술 컨설팅 업체인 ‘라이트사이즈 테크놀로지(Rightsize Technology)’가 선정한 2019년 10대 보안 위협 가운데 하나로 꼽히기도 했습니다. AI퍼징을 통해 보안 취약점을 발견하기는 쉬워졌지만, 이는 곧 보안 취약점을 파악해 패치되기 전 공격하는 ‘제로데이(Zero Day) 공격’ 통로가 쉽게 열린다는 뜻이기도 한데요. 이처럼 새로운 기술의 활용도가 높아졌다는 것은 곧 악용의 우려가 높아졌다는 의미이기도 합니다.
잠재적 보안 취약점을 찾기 위한 퍼징 기법은 인공지능을 만나 점점 고도화될 전망인데요. 관심을 가지고 지켜볼 필요가 있겠습니다.
기간 설정