보안 시나리오는 해당 분야에 특화된 데이터셋 바탕으로 마련해야
[보안뉴스= 김주원 사이버보안 분야 칼럼리스트] 인공지능(AI)의 진화는 최근 들어 빠르게 이루어지고 있으며, 심지어 인공지능이 인간을 뛰어넘는 분야마저 생겼다. 이미지 인식, 자연어 처리, 데이터 분석 분야 등이 이에 해당된다. 심지어 지난 8월 18일 인공지능 시스템이 F-16 전투기의 교관 조종사와 가상 공중전을 벌여 승리하기도 했다. 그렇듯 인공지능은 어느덧 우리 생활에 깊숙이 파고들었다.

[이미지=utoimage]
필자는 중국의 한 테마파크에 놀러간 적이 있다. 한국 테마파크에서는 바코드가 새겨진 팔찌를 채워주지만, 중국 테마파크에서는 얼굴인식으로 놀이기구를 탈 수 있게 했다. 최근 코로나 사태로 인해 비대면·비접촉 문화가 빠르게 확산된 덕분이라고 안내해주신 분에게서 들었다. 중국에서는 은행의 현금인출기(ATM)에서도 얼굴 인증으로 현금을 인출할 수 있다. 많이 쓰이는 인공지능 번역기를 보라. 한영·영한은 물론 지구상의 모든 언어를 번역해주고 있다. 자율주행자동차는 승객이 원하는 목적지까지 고속으로 달리면서도 안전하게 모셔다준다. 인공지능이 주는 혜택 덕분에 인간이 더욱 편리하게 살 수 있게 된 것이다.
그러자 기업들도 기존에 구축된 자사의 시스템과 제품을 개선하기 위해 인공지능 시스템 도입을 검토하기 시작했다. 이로써 기업의 시스템과 제품의 운영 환경이 좋아지고 경제성도 높아질 수 있다. 하지만 상당히 불행한 경우도 발생한다. 예를 들어, 인공지능 시스템을 자율주행자동차·에너지·헬스케어 등과 같은 분야와 연계해 제품 개발·사업화를 하는 과정에서 보안 설계를 잘못하거나 운용상의 취약점 때문에 더 큰 손실이 발생할 수 있는 것이다. 그러므로 우리는 보안 적용이 매우 중요하다는 사실을 명심해야 한다.
인공지능 시스템은 크게 4단계의 프로세스를 가지고 있다. 인식(perception), 학습(learning), 판단(decisions), 행동(action) 등이 그것이다. 일반적으로 인공지능 시스템은 서버와 몇 개의 클라이언트 정도가 아니라, 수많은 부품들과 소자들로 구성되어 있다. 예를 들어, 자동차는 약 2만 개 이상의 부품으로 구성되어 있다.
기존 자동차는 내연기관에서 발생한 동력이 바퀴를 움직이고, 핸들로 방향을 제어한다. 그런데 자율주행 자동차는 전기에너지로 작동하는 카메라들과 센서들이 종합적으로 이미지를 판단하고, 데이터베이스에 담긴 지리정보와 비교하면서 승객이 원하는 곳까지 스스로 안전하게 주행한다. 즉, 카메라와 각종 센서가 모은 정보를 자동차의 인공지능 시스템이 분석하여 계속 달릴지, 교차로에서 정지할지 등을 종합적으로 판단하고 이를 실행하는 것이다. 그런데 만약 자율주행 자동차의 카메라가 오작동하거나 센서에 이상이 발생하면 어떻게 될까? 결국 잘못된 정보를 제공받은 인공지능 시스템이 돌발 사고를 일으킬 것이다. 물론 인공지능 시스템이 말을 할 수 있다면 “난 학습된 대로 판단했을 뿐입니다”라고 변명할 것이다.
사실 기존에는 부품과 소자의 품질만 바라봤다. 그리고 시스템이 복잡할수록 더 많은 부품들과 소자들이 들어간다. 이러한 부품들과 소자들은 독립적으로 작동할 수는 있지만, 대개는 상호 작용한다. 예를 들어, 엔진을 제어하는 소자는 정차하는 동안 운전자가 브레이크를 밟으면 연비를 줄이기 위해 엔진에 들어가는 연료의 밸브를 스스로 닫는다. 이렇듯 서로의 상태 관련 정보를 주고받으면서 작업을 수행한다. 이러한 부품과 소자에는 각자의 정보를 처리하는 CPU가 내장되어 있다. CPU는 인공지능 시스템이 아니라, 입력이 들어오면 입력 상태에 맞춰 출력하는 시스템이다. CPU가 내장된 덕분에 부품들과 소자들은 인간의 팔·다리·위·심장처럼 자신의 역할에만 충실할 수 있다.
그런데 인간이 다리를 다치거나 위에서 음식을 소화하지 못하면 어떻게 할까? 심장이 갑자기 불규칙하게 뛰기 시작하면 어떻게 할까? 인간의 뇌는 이러한 상황을 인식하고서 병원으로 가 다리에 깁스를 하거나 약국에 가서 소화제를 사먹는다. 하지만 악성 종양처럼 조용히 찾아오는 질병은 인간도 예방하거나 인지하지 못한다. 처음에는 운동 부족 때문이거나 스트레스 탓으로 인식하고 무시하거나 임시방편으로 아무 약이나 먹을 뿐이다. 상황이 더욱 심각해진 뒤에야 병원을 찾는다.
인공지능 시스템도 비슷하다. 이상이 발생하면 그제야 대책을 마련하고 응급 처방을 하거나, 관리자(인간)에게 경고 메시지를 보내어 대책을 세우게 한다. 그래서 해커가 인공지능 시스템의 이와 같은 약점을 파악한 뒤 조용히, 그리고 지속적으로 접근한다면 결국 인공지능 시스템은 이상 현상을 ‘정상’이라고 판단할 것이고, 결국 시스템 전체가 마비될 것이다.
인공지능 시스템을 구성하는 부품마다 취약성이 존재한다. 신뢰성 있는 고가의 부품을 사용하면 이런 일이 적겠지만, 예산이 발목을 잡다 보니 “아, 기준만 충족시키면 되지 않겠는가?” 라는 생각에 저렴한 부품을 선택하기 때문이다. 이렇듯 저렴한 부품은 CPU의 성능과 메모리 등 자체 리소스가 부족해 다양한 조건과 예외사항에 대처할 수 있도록 프로그래밍 할 수 없다.
예를 들어, 인공지능 시스템은 이론적으로 학습․훈련을 통해 사이버공격에 대처할 수 있는 능력을 향상시켜야 한다. 즉, 사이버공격을 당했다는 판단이 든다면 시스템 전체를 보호하기 위해 각 부품들이 안전 모드에서 작동하도록 조치해야 한다. 하지만 이는 각 부품으로부터 입력된 다양한 정보․신호가 ‘정상적’이라는 가정 하에 이루어진다. 만일 부품의 일부가 고장이 나거나, 장애가 발생하거나, 사이버공격 때문에 해커에 의해 원격 조작을 당하는 상황이라면 인공지능 시스템은 명확한 판단을 정상적으로 수행할 수 없다. 입력된 신호가 잡음인지, 아니면 사이버공격에 의한 것인지를 판단하려면 여러 종합적 데이터가 필요하기 때문이다. 이는 훈련으로 학습해야 한다. 그런데 이러한 데이터셋을 충분히 확보하기가 어렵다.
인공지능 설계자들 중 대부분은 인공지능 시스템 자체의 내부 알고리즘에 대한 사이버공격에 대비할 뿐이다. 그러나 필자가 보기에는 인공지능 시스템을 구성하는 소자와 부품의 안전성에 대한 고민도 해야 한다. 이런 생각을 해보자. 인간이 왜 수명을 다하는가? 대개는 병에 걸리거나 재해로 인해 신체 일부가 손실되거나 기능 저하가 일어나기 때문이다. 즉, 인공지능 시스템의 소자와 부품의 문제가 인공지능 시스템 전체의 활성화에 큰 걸림돌이 될 수 있는 것이다. 이는 인공지능 시스템의 소자와 부품 관련 보안 측면도 세심하게 다루어야 하는 이유이기도 하다.
이렇듯 인공지능 시스템은 인공지능, 그리고 이를 구성하는 소자들과 부품들 전체를 가지고 판단해야 한다. 더군다나 인공지능 시스템은 사회 전체에 심각한 피해를 발생시킬 수 있다는 점을 고려하여 보안에 대해 철저히 주의해야 한다.
결론적으로 인공지능 시스템을 구성하는 소자와 부품에 대한 검증을 수행해야 한다. 검증 방법으로는 단일 소자에 대해 독립적으로 하는 방법과, 인공지능 시스템에 부품으로 연동시키는 방법이 있다. 일단, 단일 소자에 대한 세부 명세서를 작성해야 한다. 그리고 사이버공격에 대비하기 위해 다양한 조건을 나열하고, 이에 대한 대책도 정리한다. 만약 사이버공격이 발생한다면 이러한 세부 내용을 확인하면서 원인을 분석하고 추적도 할 수 있다. 이러한 절차는 기존 부품 설명서에 사이버보안 부분을 추가로 반영하면 되니까 작업량은 많지 않다.
하지만 인공지능 시스템에 도입되는 부품이면 구조학적으로 여러 조건을 살펴봐야 한다. 예를 들어, 기술적으로 연동하는 데 문제가 없는지, 전체적으로 취약 요인이 발생했는지를 살펴야 한다. 사실 인공지능 시스템은 매우 복잡하게 구성되므로 이러한 구성을 면밀하게 분석하기는 매우 어렵다. 따라서 인공지능 시스템의 설계자와 보안 전문가가 협업하여 이러한 보안상의 취약성에 대해 전반적으로 진단·분석하여 보안 대책을 마련해야 할 것이다. 또한, 모범사례를 정리하고 표준화 작업을 수행하며, 진단 도구를 만들고, 시스템이 놓일 수 있다고 생각되는 상황의 원인과 대책에 대한 작업 지침서도 만들어야 한다.
이러한 작업은 결국 이론뿐만 아니라 인간의 경험으로 이루어진다. 그러니 각자가 가지고 있는 것 중에서 최선의 사례를 도입하고, 다른 인공지능 시스템의 문제점도 참고한다. 서로 정보를 공유하고, 필요하다면 과감히 기존 작업을 버리고서 새롭게 설계해야 할 것이다. 이러한 보안 명세서 작성과 검증은 인공지능 시스템의 성능을 높이는 것은 물론 시스템이 보안 문제에 대한 걱정 없이 유연하게 작동할 수 있도록 도와줄 것이다. 어쩌면 이러한 작업이 인공지능 시스템을 구축하는 것보다 더 많은 노력을 요구할 것이다. 하지만 인공지능 시스템을 도입·운영하는 기업은 안심하고 해당 시스템을 신뢰할 수 있을 것이다.
다음으로 인공지능 시스템을 도입하는 이들이 가장 먼저 궁금해 하는 사항은, “인공지능이 판단하거나 결론내린 걸 신뢰할 수 있는가?”이다. 즉, 이들이 갖고 있는 인공지능 시스템에 대한 신뢰도는 낮은 편이라고 할 수 있다. 특히, 민감한 사안이나 주요 쟁점 사항과 관련해서는 더더욱 그럴 것이다. 물론 적중하면 인공지능 시스템에 대한 신뢰도는 높아지겠지만, “현재의 예측이 적중했더라도 다음 예측도 적중하리라고 보장할 수는 없다”는 의심도 여전하기에 신뢰도는 높아지지 않는다.
인공지능 시스템에 의한 의사 결정의 핵심은 계획(Planning), 추론(Reasoning), 지식 표현(Knowledge Representation) 등의 과정에서 신뢰를 얻는 것이다. 결국 인공지능 시스템의 의사 결정에 대해 설명할 수 있어야 하고, 아울러 인공지능 시스템의 의사결정 과정에 대한 전체적인 이력 추적도 할 수 있어야 한다. 또한, 인공지능 시스템의 의사결정을 위한 충분한 데이터를 확보하는 것과는 별도로, 인공지능 시스템의 추론 능력을 높이기 위한 훈련용 데이터도 필요하다.
인공지능 시스템의 의사 결정은 결국 하나의 알고리즘으로 이루어진다. 이 알고리즘은 관련 분야 전문가들이 “공정하고 객관적이며, 검증이 가능하다”고 인정해야 하는 것이다. 예를 들어, 여러 질문을 받은 인공지능 시스템이 자신이 가지고 있는 데이터를 기반으로 예측한 결과가 왜 그런 결과를 제시했는지를 명확하게 설명할 수 있어야 한다. 그리고 그러한 결과가 결정 과정에서 사이버보안 관련 위협도 거쳤음을 보여줘야 할 것이다.
최근 인공지능 시스템의 학습에는 딥러닝 알고리즘이 사용된다. 하지만 인공지능 시스템 개발자들 중 대부분은 딥러닝 알고리즘에 대한 내부 분석을 생략하면서 그냥 호출해 사용하고 있다. 이러다 보니, 인공지능 시스템이 학습 과정에서 어떤 데이터를 사용했는지, 그리고 어떻게 의사결정을 했는지에 대한 설명이 명확하지 않은 경우가 발생한다. 이 말인 즉, 인공지능 시스템이 학습하는 과정에서 데이터의 처리와 학습 방법 모두를 확인한 뒤, 이상이 없다는 것을 설명해줄 수 있어야 한다는 것이다. 이와 함께 인공지능 시스템의 학습 과정에서 해당 인공지능 시스템이 어떤 영향을 받고 있는지에 대한 이력 추적 관리가 계속 이루어져야 한다. 물론 이러한 절차를 수행하는 과정에서 인공지능 시스템의 성능을 약화시키면 안 된다. 인공지능 시스템이 불확실한 상황을 겪었을 때, 어떻게 의사 결정을 수행했는지에 대한 정보를 확보하고 차후에 들여다볼 수 있도록 해야 한다.
인공지능 시스템의 의사 결정은 매우 민감한 사항이다. 특히 인공지능 시스템의 보안 취약점이 계속 증가하고 있으므로 인공지능 시스템이 학습하는 데이터가 주어진 환경을 제대로 표현하지 못할 수도 있다. 따라서 테스트 환경에서는 고려되지 않았던 데이터를 줬을 때 취약성이 발생할 수 있다. 그러니 데이터를 지속적으로 확보하고, 이를 토대로 학습시키면서 어떤 의사 결정을 진행하는지에 대해 잘 살펴봐야 한다. 아울러 일부 환경·영역에 대해서만 학습시켜서는 안 된다. 예를 들어, 자율주행 자동차는 전방 이미지를 받아서 학습하지만 별도로 후방 이미지도 받아서 학습한다. 이러면 전방 이미지와 후방 이미지를 합쳤을 때 혼란으로 인하여 오작동이 일어날 수 있다.
사실 교통사고나 잘못된 이정표 같은 돌발 상황, 그리고 기후 변화나 도로 공사 등 예측 불가능한 사건이 발생한 경우에 대한 데이터도 확보하기가 어렵다. 지난번 테슬라의 자율주행 자동차 사고의 예에서 보듯이, 흰색 트럭을 햇빛으로 착각해 인명사고가 발생할 수도 있다. 그러니 개발 과정에서 이렇듯 다양한 데이터셋(Dataset)을 확보하고 학습시켜야 한다. 인공지능 시스템의 의사 결정에 필요한 가장 중요한 요소는 결국 경험이다. 인간은 오랜 세월을 거치면서 경험으로 직관력을 얻었다. 인공지능 시스템도 다양한 데이터셋으로 직관력을 확보할 수 있게 해주어야 한다. 하지만 이렇게 확보된 데이터를 해커도 가지고 있다면 어떻게 될까? 그리고 해커가 이러한 데이터셋에 접근하여 데이터를 변조·가공해 인공지능 시스템이 잘못 판단하게 하면 어떻게 될까? 그리고 해커가 인공지능 시스템을 확보한 설계자보다 더 많은 데이터셋을 가지고 있으면 어떻게 될까?
인공지능 시스템을 활성화시키려면 해당 시스템을 안전하게 적용해볼 수 있는 테스트베드와 데이터셋을 만들어야 한다. 예를 들어, 자율주행 자동차·헬스케어·에너지 등 인공지능 시스템이 활용될 분야에서는 반드시 보안 위협을 측정하고, 이를 완화할 수 있는 실험을 실시․평가해야 한다. 이를 위해 관련 진단 도구를 개발하고 보안 시나리오도 마련해야 한다. 이러한 보안 시나리오는 해당 분야에 특화된 데이터셋으로 마련해야 하는 바, 그렇다면 실제와 유사한 샌드박스 환경을 구축·운영해야 한다. 이로써 인공지능 시스템의 능력을 평가하고, 해당 시스템이 위협으로부터 얼마나 유연하고 강건하게 유지될 수 있는지를 분석해야 한다. 결국 인공지능 시스템이 신뢰를 얻게 하려면 의사결정에 필요한 데이터셋을 안전하게 관리·운용하는 것을 우선해야 할 것이다.
[글_ 김주원 사이버보안 분야 칼럼리스트]
<저작권자: 보안뉴스(www.boannews.com) 무단전재-재배포금지>