| 머신러닝 알고리즘은 태생적으로 데이터 노출이라는 리스크를 동반한다 | 2022.02.09 |
머신러닝은 데이터로 만들어지고, 데이터를 받아들이고, 데이터를 처리하는 기술이다. 처음부터 끝까지 데이터다. 그러니 데이터가 노출된다는 위험에서 자유로울 수가 없다. 여러 가지 해결책들이 제안되고 있지만 아직 완전한 건 없다.
[보안뉴스 문정후 기자] 머신러닝을 실제로 활용하는 면에 있어서 가장 힘든 점 중 하나는 ‘데이터 관리’다. 우리가 흔히 말하는 머신러닝에서 ‘머신’은 수많은 데이터로 조직되고 구성되는 것을 말하니, 사실 데이터에 대한 고민은 당연히 수반되는 것이라고 볼 수 있다. 게다가 데이터는 수많은 보안 사고의 중심에 서있는 핵심 요소 중 핵심 요소다. 머신러닝의 전체 생애주기를 생각해보면 데이터 관리가 얼마나 중요한지 확연히 깨닫게 된다. 이에 관하여 간략하게, 하지만 보다 상세하게 짚어보자면 다음과 같다. ![]() [이미지 = utoimage] 훈련에 사용되는 데이터 이제는 머신러닝이 제대로 작동하기 위해서 알고리즘에 데이터를 주입해 훈련을 시켜야 한다는 사실을 누구나 알고 있다. 간단한 항목 분류나 예측 행위를 위해서 머신러닝은 다양한 데이터를 흡수해야 한다. 하지만 아무 데이터나 주입하면 안 된다. 머신러닝 알고리즘들을 처음 만들 때 데이터 웨어하우스에 저장된 데이터를 사용하는 것이 보통인데, 여기에는 사업적인 기밀이나 사생활 관련 정보가 다수 포함되어 있다. 예를 들어 머신러닝을 기반으로 대출과 관련된 기능을 발휘하는 알고리즘을 구축한다고 하자. 사용자에게 필요한 건 지금 돈을 빌려가려는 사람이 과연 돈을 돌려줄 것인가를 정확히 예측하는 기능이다. 그래서 그 동안 은행들이 쌓아온 대출 관련 이력과 데이터를 알고리즘에 넣어 훈련을 시킬 수밖에 없게 된다. 당연하지만 이 대출 관련 이력에는 연봉 정보, 회사 및 이력 정보, 인종, 성별, 나이, 생년월일, 사회 보장 번호 등 각종 민감 정보가 포함되어 있다. 대출 심사가 언제 들어갔고, 어떤 과정을 거쳤으며, 이자율은 얼마였고, 언제 상환되었는지 역시 민감한 정보로 분류된다. 데이터 보안 담당자의 입장에서는 절대 외부로 흘려보내지 않을 정보들이다. 이런 데이터를 보호하면서도 안전하게 활용하도록 하는 것이 머신러닝 분야의 가장 힘들고 어려운 점이다. 훈련하고 실험하고 평가하기 위한 데이터셋들을 구축하는 건 절대로 간단하지 않은 일이며, 어떻게 하더라도 리스크를 수반한다. 그렇다면 이미 훈련된 머신러닝 알고리즘을 사면 괜찮지 않을까? 위에서도 말했지만 이미 ‘머신’이라는 말 자체가 데이터가 가득 포함된 존재를 뜻한다. 그러므로 이미 훈련을 마친 머신러닝이라고 하더라도 기존 데이터를 얼마든지 뱉어낼 위험을 가지고 있다. 예를 들어 위에서 언급한 대출용 인공지능 알고리즘이 미리 데이터 웨어하우스에서 모든 훈련을 마쳤다고 상정해보자. 그리고 실제 은행에 도착해서는 클라우드 내에서 운영이 된다고 하자. 이럴 경우 이 알고리즘을 (아마도) 비싼 값에 구매한 은행 측에서는 이를 한 지점에서만 사용하려고 하지 않을 것이다. 클라우드를 통해 지역 내 혹은 전국 모든 지점에서 활용이 가능하도록 만들 가능성이 크다. 이 경우 알고리즘은 각종 오작동 및 악용에 노출될 수밖에 없게 된다. 알고리즘을 통한 데이터 노출은 반드시 생각해야 할 가능성이다. 운영에 사용되는 데이터 그런데 고려해야 할 것이 여기서 끝나는 게 아니다. 위의 대출용 알고리즘을 다시 한 번 생각해 보자. 이 알고리즘을 현장에 내보내 대출 업무 담당자로 기용하기 시작했다. 그럴 때 이 알고리즘은 다음과 같이 작동한다. 1) 새로운 상황 정보들이 수집되고, 2) 이 정보들을 바탕으로 요청문(쿼리)이 만들어지는데 3) 이 요청문은 처음 알고리즘을 구축했을 때 사용되었던 표현들과 같은 형식을 가지고 있다. 4) 이 요청문들은 이를 ‘입력값’으로 인식하는 모델에 주입되며, 5) 이를 바탕으로 예측이나 항목 분류와 같은 작업이 완료된다. 이를 좀 더 상세히 풀어보면 다음과 같다. 1) 한 은행 지점의 대출 담당자가 대출 신청서를 입력한다. 2) 이 정보들은 그 자체로 머신러닝 알고리즘을 학습시키는 데이터가 되기도 하고, 머신러닝 알고리즘을 거쳐 대출 심사 결과를 이끌어내기도 한다. 3) 이 데이터 내에는 기업 기밀과 사생활 정보가 포함되어 있다. 4) 이런 신청서가 수만~수십만 장, 많게는 수백만 장까지 접수된다. 5) 민감한 데이터는 계속해서 축적된다. 은행에 대출을 신청하는 사람은 항상 북적인다. 그런 걸 감안하면 위 알고리즘 내에 쌓일 데이터가 얼마나 많을지도 충분히 상상할 수 있다. 즉 원래부터 많은 데이터 위에서 완성되었던 알고리즘인데, 실제 사용 환경 내에서도 어마어마한 데이터가 계속해서 쌓인다는 것이다. 머신러닝 알고리즘도 결국 앱 형태로 제공되는데, 그렇다는 건 이 앱에 무궁무진한 데이터 노출 위기가 동반된다는 뜻이 된다. 분석가들은 이렇게 ‘운영 단계’에서 쌓이는 데이터야말로 심각한 위기에 노출된다고 말할 정도니, 머신러닝을 사들여와 운영하는 부분에 있어서도 걱정거리가 제법 된다고 볼 수 있다. 데이터 노출도 낮추기 결국 머신러닝 알고리즘은 태생적으로 데이터 유출이라는 유형의 위험에 노출되어 있다고 볼 수 있다. 그렇다면 우리는 어떻게 이런 부분을 보완해야 할까? 전문가들은 여러 가지 방법을 제안한다. 가장 간단한 건 머신러닝 알고리즘으로 가는 요청문 자체를 암호화 하는 것이다. 알고리즘에 의해 처리될 때에만 복호화를 하고 나머지 단계에서는 전부 암호화 처리 하는 것을 말한다. 하지만 이런 방법은 머신러닝 환경에 따라 적용이 될 수도 있고 안 될 수도 있다. 구글의 빅쿼리(BigQuery)의 경우, 이런 식의 암호화/복호화를 지원한다. 그 다음으로 제안되는 방법은 요청문 필드의 표현 방식을 이리 저리 변경시키는 것으로, 인공지능의 결정 프로세스를 구성하는 정보의 최초 형태를 감출 수 있다는 장점을 가지고 있다. 심지어 그 정확도에도 아무런 손상을 주지 않는다. 하지만 이를 잘 구현하려면 인공지능이 어떤 식으로 결론을 도출하는지에 대한 통찰을 어느 정도는 겸비해야 한다. 프로토피아(Protopia)라는 인공지능이 이러한 방법론을 도입하고 있으며, 사실 필자도 이 작업에 참여하는 중이다. 어떤 모델이 어떤 해결책을 제시하든, 아직은 실험 단계다. 인공지능이라는 기술 자체가 그러하기 때문이다. 중요한 건 이 머신러닝이라는 것이 구축 단계에서나 운영되는 단계에서나 많은 데이터를 필요로 하고, 그렇기 때문에 온갖 데이터 노출과 침해에 취약할 수밖에 없다는 것을 인지하는 것이다. 특히 머신러닝 앱을 운영하면서 발생하는 위험률이, 원래 머신러닝이 가지고 있는 그것보다 높다는 걸 기억해야 한다. 결국 머신러닝을 개발하는 특수한 IT 전문가들만이 데이터에 가해지는 위협을 다루는 것이 아니라 사용하는 사람들 편에서도 기억하고 조심해야 할 부분이 명확하다는 뜻이다. 글 : 개리 맥그로우(Gary McGraw), 창립자, Berryville Institute of Machine Learning [국제부 문정후 기자(globoan@boannews.com)] <저작권자: 보안뉴스(www.boannews.com) 무단전재-재배포금지> |
|
|
|