2023년, 데이터 추출 분야 스타트업인 리워크드(Reworkd)의 개발팀은 촉박한 기한에 쫓기는 상황이었다. 플랫폼 수익화에 대한 투자자들의 압박을 받으면서 넥스트js에서 파이썬/패스트API로 모든 것을 마이그레이션하는 일까지 해야 했다. 팀은 작업 속도를 높이기 위해 일부 작업을 챗GPT로 처리했다. AI가 생성한 코드가 얼핏 잘 작동하는 것으로 보이자, 이들은 코드를 운영 환경에 바로 집어넣고 작업을 마무리했다.
리워크드 공동 창업자 아심 슈레스타는 블로그에서 “다음 날 아침 일어나 보니 사용자 불만에 대한 지메일 알림이 40개 이상 와 있었다. 밤사이 모든 부분이 망가진 것 같았다. 구독을 하지 못한 사람들이 메일을 보낸 것”이라고 전했다.
AI가 생성한 코드의 56번 라인에 있는 버그 하나로 인해 구독 과정에서 고유 ID 충돌이 발생했다. 회사가 문제를 파악하고 수정하기까지는 5일이 걸렸다. 슈레스타는 “그 버그, 즉 챗GPT의 실수 하나로 인해 1만 달러 이상 손해를 봤다”라고 썼다.
리워크드는 이런 실수를 공개적으로 밝혔지만 이와 유사한 사고 상당수는 공개되지 않고 넘어간다. CISO는 이런 사실을 비공개적으로 파악하는 경우가 많다. 취약성을 유발하고 운영을 중단시키거나 데이터 무결성을 손상시키는 코드 완성 툴로 인한 보안 문제는 금융 기관, 의료 시스템, 전자상거래 플랫폼을 불문하고 발생해 왔다. AI가 생성한 코드, 환각에 따른 라이브러리 이름, 또는 추적 및 검증되지 않는 서드파티 종속 항목 도입과 관련한 위험이 많다.
베라코드(Veracode)의 최고 기술 책임자인 젠스 웨슬링은 “AI 생성 코드에 대한 의존도 증가, 오픈소스 라이브러리의 급격한 성장, 이런 시스템의 본질적인 복잡성이라는 ‘퍼펙트 스톰’에 직면한 상황이다. 보안 위험 증대는 당연한 결과”라고 말했다.
챗GPT, 깃허브 코파일럿, 아마존 코드위스퍼러와 같은 코딩 툴은 대체로 은밀하게 사용된다. 사이버보안 업체 스닉(Snyk)이 실시한 설문조사에서는 개발자의 약 80%가 보안 정책을 무시하고 AI가 생성한 코드를 사용하는 것으로 나타났다. 이 같은 관행에 따라 사각지대가 발생하고, 그 결과로 나타나는 보안 문제와 법적 문제로 어려움을 겪는 기업이 많다.
자동화된 코딩 툴이 폭넓게 도입됨에 따라 이런 툴이 초래하는 위험은 많은 CIOS와 사이버보안 책임자의 최우선 사항이 됐다. 혁신적이고 개발 속도를 높여주는 툴이지만, 다양한 보안 문제를 일으키며, 그중 일부는 감지하기도 어렵다.
소프트웨어 패키지 파악
AI 기반 코드 완성 툴이 부상하면서 소프트웨어 개발 분야에서는 새로운 효율성과 혁신의 시대가 열렸지만, 그 발전에는 중요한 보안 위험이 수반된다. 웨슬링은 “AI가 생성한 코드는 사람이 개발한 코드와 구분 없이 섞이는 경우가 많아 보안 위험이 발생하는 지점을 파악하기가 어렵다”라고 지적했다.
자동으로 생성된 코드에 서드파티 라이브러리 또는 이른바 유령 종속성(매니페스트 파일에 명시적으로 선언되지 않은 종속성)이 포함되는 경우도 있다. 이런 보고되지 않은 소프트웨어 패키지는 스캔 중에 파악되지 않고 취약점을 숨기는 결과를 초래할 수 있다.
이 문제에 대처하는 방법 중 하나는 사용 중인 라이브러리, 취약성, 발생할 수 있는 잠재적인 법적 문제와 규정 준수 문제를 찾는 데 도움이 되는 소프트웨어 구성 분석(software composition analysis, SCA) 및 소프트웨어 공급망 보안 툴을 사용하는 것이다.
시큐어 딜리버리(Secure Delivery)의 CSO이자 공동 창업자인 그랜트 옹거스는 “겉만 훑어보는 것이 아니라 더 심층적으로 살펴보도록 적절히 설정된 SCA가 답일 수 있다”라고 말했다. 그러나 이 해결책도 완벽하지는 않다. 옹거스는 “SCA와 관련된 더 큰 문제는 호출되지 않는 라이브러리의 함수에 취약점을 포함하는 경향이 있다는 점”이라고 덧붙였다.
엔도어 랩스(Endor Labs)의 2024년 종속성 관리 보고서(2024 Dependency Management Report)에 따르면, 유령 종속성이 많은 기업에서 보고된 라이브러리 취약성의 56%가 실제로 유령 종속성에 기인하는 것으로 나타났다. 엔도어 랩스의 연구 엔지니어인 대런 메이어는 “이 점이 기업에서 점점 더 큰 과제가 될 것으로 예상된다. 툴은 규정 준수와 위험 관리를 위해 사용 중인 모든 소프트웨어 구성요소에 대한 시야를 보안 팀에 제공할 수 있어야 한다”라고 말했다.
소프트웨어 구성요소에 대한 정확한 인벤토리를 보유하는 것이 중요한 이유가 여기에 있다. 메이어는 “정확한 인벤토리가 없으면 AI 라이브러리 또는 서드파티 라이브러리에서 비롯되는 위험을 식별할 수 없고 관리는 더욱 불가능하다. 기업에서 만들고 게시하고 사용하는 소프트웨어의 일부인 AI 라이브러리를 식별할 방법이 없을 경우 규정 준수 위험에 노출된다”라고 말했다.
커뮤니티 허브가 출처인 ML 모델에 주의
개발자가 허깅 페이스(Hugging Face)와 같은 플랫폼에서 ML 모델이나 데이터 집합을 다운로드할 때도 조직은 위험에 노출된다.
조직 범죄 및 부패 신고 프로젝트(Organized Crime and Corruption Reporting Project, OCCRP)의 오픈소스 개발자인 알렉스 슈테퍼네스쿠는 “양쪽 모두에서 보안 검사를 수행한다 해도 모델이 통합될 때 활성화되는 백도어가 모델에 포함될 가능성이 있고, 이 경우 결과적으로 악성 모델을 사용한 회사의 데이터가 유출될 수 있다”라고 말했다.
제이프로그(JFrog) 보고서에 따르면 2024년 초를 기준으로 허깅 페이스 플랫폼에 호스팅된 악성 ML 모델은 100개 이상이며, 그중에는 피해 컴퓨터에서 코드를 실행할 수 있는 모델도 있다.
슈테퍼네스쿠는 깃허브 코파일럿과 같은 코드 완성 툴의 우려 사항은 환각이라면서 “LLM은 항상 주어진 프롬프트에 대해 통계적으로 가장 가능성 높은 연속된 문장을 생성한다. 따라서 예를 들어 ‘import’라는 단어 뒤에 실제 파이파이(PIPy) 패키지를 생성한다는 보장이 없다. 일부 공격자는 이를 알고 npm, 파이파이와 같은 플랫폼에 패키지 이름을 등록하고 코드 완성 툴이 제안하는 몇 가지 기능을 채워 합법적인 패키지처럼 보이게 한다”라고 말했다.
이런 패키지를 실제 애플리케이션에 가져오게 되면 피해가 발생할 수 있다.
CISO는 허깅 페이스와 같은 외부 플랫폼에서 ML 모델 또는 데이터 집합을 다운로드하고 통합하는 데 대한 규약을 마련해 이 같은 위험에 대처할 수 있다. 이 규약에는 악성 코드나 백도어를 감지하는 자동화된 스캔 툴을 구현하고 검증된 게시자의 모델만 사용하도록 허용하는 정책을 수립하거나, 격리된 환경에서 내부 테스트를 수행하는 것 등이 포함된다.
AI 코딩 툴을 통해 민감한 정보가 유출되지 않도록 방지
깃가디언(GitGuardian)의 2024년 실무자 목소리(Voice of Practitioners 2024) 설문조사에 따르면 기어의 거의 절반은 AI 시스템이 민감한 정보가 포함된 패턴을 학습하고 재생산할 수 있다는 점을 우려하고 있다. 깃가디언 보고서를 작성한 토마스 세구라는 “이런 툴은 학습 데이터를 통해 학습한 패턴을 기반으로 코드를 제안한다는 점에서 특히 우려된다. 학습 데이터에는 예를 들어 하드코딩된 자격 증명이 우발적으로 포함될 수 있다”라고 말했다.
미국에 소재한 기업은 AI 기반 코드 완성 툴을 사용하는 개발자로 인해 민감한 정보가 우발적으로 코드베이스로 유출될 가능성을 특히 우려했다.
이 문제에 뾰족한 해결책은 없지만 위험을 줄이기 위해 조직이 취할 수 있는 몇 가지 조치는 있다. 옹거스는 “데이터를 되돌려 보고하지 않는, 자체 호스팅 AI 시스템을 사용하는 방법이 있다. 또 다른 방법은 데이터를 입력할 수 없도록 하는 것”이라고 말했다.
전통적인 개발팀의 경계를 벗어난 감시 필요
소프트웨어 엔지니어 팀에서만 AI 기반 툴을 사용하는 것은 아니다. 메이어는 “상당히 많은 도입이 기업 내의 데이터 분석가, 마케팅팀, 연구원 등에 의해 주도된다”라고 말했다.
전통적으로 자체 소프트웨어를 개발한 경험이 없는 팀인 만큼 AI 라이브러리와 모델을 활용하는 간단한 툴을 직접 작성하면서 이와 관련된 위험을 인식하지 못하는 경우가 많다. 메이어는 “섀도우 엔지니어링과 애플리케이션 보안 인식 부족이 결합되면 위험은 커질 수밖에 없다”라고 덧붙였다.
이런 팀이 안전하게 작업하도록 하려면 CISO는 프로세스 초기에 팀과의 관계 형성에 나서야 한다. 또한 사이버보안 책임자는 데이터 분석가, 마케팅 전문가, 연구원을 대상으로 AI 기반 툴 및 라이브러리와 관련된 잠재적 위험을 교육하기 위한 비전통적 개발팀에 맞춤화된 교육 프로그램을 마련하는 것이 좋다.
애플리케이션 보안을 위한 리소스 확보
메이어는 “일반적으로는 소프트웨어 개발 가속화에 맞춰 보안 예산이 같이 늘어나지는 않는다. 그 격차가 AI 도입으로 인해 더 커지고 있다”라고 언급했다. 대부분 기업에서 애플리케이션 보안은 자금 부족에 시달리는 영역이지만, AI 도입과 AI 기반 코딩으로 인해 소프트웨어 개발 속도가 높아지는 만큼 이 영역에 충분한 시간과 리소스를 할당해야 한다.
메이어는 “이 격차를 해소하는 데 도움이 되는 고품질 보안 툴 포트폴리오는 더 이상 선택 사항이 아니다. 툴도 격차 해소에 중요하지만, 비전통적 개발자를 포함해 개발자와 효과적으로 협력하고 기술, 규정 준수 보안 측면에서 AI의 의미를 이해할 수 있는 애플리케이션 보안 및 제품 보안 담당자의 역할도 중요하다”라고 말했다.
일부 이해관계자는 AI 시스템을 보호하기 위한 충분한 리소스 확보를 중대한 투자가 아닌 선택적 비용으로 보고 주저할 수 있다. 메이어는 “AI 도입은 많은 기업에서 의견 충돌을 일으키는 주제다. 도입에 적극적인 팀이 있는가 하면 강력히 반대하는 의견도 있다. 이 같은 갈등은 CISO와 비즈니스 정보 보안 책임자(BISO)에게 풀어야 할 숙제가 될 수 있다”라고 말했다.
장단점을 모두 알고 있는 CISO라면 위험을 효과적으로 관리하기 위한 통제 수단을 마련하려고 할 수 있지만, 적절한 설명이 없을 경우 기업의 혁신을 저해한다는 인상을 줄 수 있다. 세구라는 “AI 툴의 생산성 이점과 견고한 보안 관행 사이에서 균형을 잡는 포괄적인 전략을 수립해야 한다”라고 조언했다.
AI 기반 오픈소스 라이브러리에 주의
AI로 인한 코드 작성 방식의 변화에 직면한 업계는 AI가 제공하는 기회 수용과 AI가 초래하는 위험 완화 사이에서 줄타기를 하는 중이다. 옹거스는 이런 패러다임의 변화에는 다양한 우려가 따른다면서 “가장 큰 문제는 두 가지 극단적인 경우, 즉 결함이 있는 AI에 지나치게 의존하거나 AI를 아예 무시하는 것”이라고 말했다.
현재 사용 가능한 오픈소스 라이브러리만 500만 개 이상이고, 향후 10년 동안 5억 개가 추가로 나오고 이 중 상당수는 AI를 기반으로 할 전망이다. 즉, 기업은 소프트웨어 생태계와 관련된 보안 위험을 관리하는 데 있어 전례 없는 과제에 직면해 있다.
웨슬링은 “이는 생소한 영역이다. 세계를 움직이는 소프트웨어의 안전과 보안, 품질을 보장하기 위해 업계 수준에서 위험에 대처해야 한다”라고 강조했다.
문제에 대처하는 방식 역시 중요하다. 현재 AI 보안을 내세우는 보안 업체의 수가 폭발적으로 늘고 있지만 이들 모두가 제대로 하는 것은 아니다. 메이어는 “결과적으로 현명한 의사 결정을 내리는 데 필요한 시야도 없고 이런 의사 결정에 따라 조치를 취하는 데 필요한 역량도 없는 상태로 남을 수 있다. 침해가 발생했다는 소식이 나온 이후에 새로운 역량을 구축하고 싶어 하는 CISO는 없을 것이다. 그 침해가 자신의 기업에서 발생한 경우라면 더욱 그럴 것”이라고 말했다.
이 같은 상황을 방지하려면 CISO는 AI 기술 못지않게 직원에 대한 투자도 중시해야 한다. 슈테퍼네스쿠는 “소프트웨어 개발 업계는 인력 교육과 지식 향상에 중점을 둬야 한다. 코드 완성 툴 구독에 비용을 지출하는 대신 직원의 지식 개발에 투자해야 한다”라고 덧붙였다.
dl-itworldkorea@foundryco.com
Andrada Fiscutean editor@itworld.co.kr
저작권자 한국IDG & ITWorld, 무단 전재 및 재배포 금지
