코드 삽입 방지 ‘정제’ 취약 등 보안 결함, ‘바이브 코딩’ 위험
다양한 취약점 유형에 일관되지 않은 성능, 항목 따라 극명한 대조
암호화 알고리즘 및 SQL 삽입 취약점 회피 기능은 양호
XSS 및 로그 삽입 취약점 회피율, 13.5%와 12%로 매우 저조
[애플경제 엄정원 기자] AI코딩이 빠르게 확산되고 있지만, 절반 가까운 AI모델은 심각한 보안상 결함을 보이고 있는 것으로 나타났다. 사실상 AI모델을 활용한 AI코딩은 그다지 적절하지 않은 셈이다.
특히 미국과 주요국의 100개가 넘는 주요 AI 모델을 코딩 작업에 테스트한 결과 이런 현상이 나타나 심각성을 더하고 있다.
크고 작은 AI 모델 모두가 이른바 ‘크로스 사이트 스크립팅(CSSS)’ 오류를 유발함으로써 안전한 자바(Java) 생성에 심각한 어려움을 겪는 것으로 나타났다.
앱 보안업체 베라코드(Veracode)에 따르면 AI로 생성된 코드의 55%만이 이렇다할 사이버 보안 취약점이 없는 것으로 나타났다. 이번 테스트에선 AI 모델의 안전한 코드 생성 능력을 측정하기 위해 기존 함수를 가져온 다음, 코드의 일부에 대해 완성된 코드의 형태를 설명하는 주석으로 대체했다. 그 결과 전체 모델의 45%에서 생성된 코드에 알려진 보안 결함이 포함된 사실이 발견되었다. 다만 “소형 모델과 가장 큰 모델 간의 보안 역량 차이는 크지 않았다”는 설명이다.
100개 이상의 LLM, 80가지 개별 코딩에 적용
전체 SW개발자들의 80%가 ‘바이브코딩’을 활용한다는 스택 오버플로우의 조사 결과를 감안하면, 이는 매우 우려할 만한 현상이다. 소프트웨어 개발자들이 코드를 빠르게 생성하기 위해 대규모 언어 모델(LLM) 출력에 크게 의존하는 ‘바이브 코딩’의 위험성을 부각시켰다. 베라코드의 테스트 과정에선 다양한 공급업체나, 코딩 전용 모델과 범용 모델이 포함된 애플리케이션을 망라하며, 100개 이상의 LLM을 80가지의 개별 코딩 작업에 적용했다.
또 여러 ‘올바른’ 방식으로 코딩할 수 있는 섹션과, 알려진 소프트웨어 취약점, 또는 '공통 취약점 목록(CWE)'을 포함했다. 이를 바탕으로 최소 한 가지 방식으로 코딩할 수 있는 섹션을 의도적으로 사용했다.
이같은 CWE에는 SQL 삽입, 크로스 사이트 스크립팅(XSS), 암호화 알고리즘 해킹, 로그 삽입 공격에 사용할 수 있는 취약점이 포함되었다. 각 취약점은 OWASP(Open Worldwide Application Security Project)의 상위 10대 취약점 목록에 포함되어 있는 것들이다.
이번에 데스트한 AI모델들은 다양한 취약점 유형에 걸쳐 일관되지 않은 성능을 보였다. 조사 항목에 따라 극명한 대조를 보이기도 했다. 암호화 알고리즘 및 SQL 삽입 취약점을 회피하는 보안 통과율은 각각 85.6%와 80.4%였다. 반면에 XSS 및 로그 삽입 취약점 회피율은 각각 평균 13.5%와 12%로 매우 저조했다.
또한 LLM은 시간이 지남에 따라 SQL 삽입이나, 암호화 알고리즘 취약점 회피 능력은 향상되었다. 반면에 XSS 및 로그 삽입 취약점 회피 능력은 저하되는 것으로 나타났다. 이에 “시간이 지남에 따라 테스트된 LLM의 보안 개선 효과가 정체되고 있다”는 결론이다.
‘AI 코드 프롬프트’ 축소, 최소한 맥락 측정
실험 과정에서 AI 코드 프롬프트를 의도적으로 줄임으로써 최소한의 맥락에서 모델이 어떻게 반응하는지를 살펴본 점도 특징이다. 그 결과 기업들이 코드 생성에 보안을 강화한다고 해도, LLM은 여전히 오류에 취약하다는 지적이다. 즉 “어떤 변수에 대한 ‘정제’가 필요한지를 식별하지 못하는 오류를 범한다”는 것이다. 여기서 ‘정제’는 코드 삽입 공격을 방지하기 위한 필수 단계다. 다만 “맥락 범위가 넓은 경우는 그 결과가 불확실하다”고 했다. 즉, 모델이 정보를 정확하게 파악하는 데 필요한 상세한 프로시저 간 데이터 흐름에 대한 분석 여부는 알 수 없다는 얘기다.
LLM은 파이썬, C#, 자바스크립트, 자바 등 다양한 프로그래밍 언어에서 테스트되었다. 그 결과 LLM이 자바를 안전하게 생성하는 데 가장 취약하며, 언어에서 평균 28.5%의 점수를 기록했다.
그럼에도 AI 생성 코드가 이같은 우려를 낳고 있지만, 도입률은 여전히 증가하고 있다. AI 도구는 현재 코드 생성에 널리 사용되고 있다. 지난 주 스택 오버플로 조사 결과에 따르면 소프트웨어 개발자의 절대 다수가 AI를 사용, 코드를 더 빠르게 생성한다. 하지만 스택 오버플로 역시 “개발자들이 AI 코드의 품질에 대해 여전히 불신하고 있다”고 강조했다. 응답자의 4분의 3이 “AI 출력을 신뢰하지 않는다”고 했고, 3분의 2가 AI 코드 사용에 대한 보안 우려를 표명했다.
이런 우려에도 불구하고, 빅테크 등 주요 기업들은 여전히 AI 코드를 계속 활용하고 있다. 알파벳 CEO 순다르 피차이는 “작년에 구글 내부 코드의 25%가 AI로 생성되었다”고 했다. 마이크로소프트 CEO 사티아 나델라도 최근 자사 코드의 최대 20~30%가 AI로 작성되었다고 밝혔다. 나델라는 다만 “AI로 생성된 파이썬 코드를 빠르게 도입한 반면, C++는 도입이 더 어렵다”고 지적했다.
또 마이크로소프트의 CTO인 케빈 스콧도 비즈니스 인사이더에 “2030년까지 코드의 95%가 AI로 생성될 것”이라고 예측하며, AI코딩의 장애물은 극복할 수 있을 것이라고 낙관했다. 이에 많은 전문가들은 “‘베라코드’의 조사 결과를 참고하되, AI를 사용하여 코드베이스를 변경하고 추가함으로써 얻는 이점을 신중하게 비교 검토해야 할 것”이라는 의견이다.
