블로그

LLM: 안전한 코딩을 위한 (불)완벽한 인간적 접근 방식일까?

February 1, 2024
피터 단히욱
어두운 환경에서 녹색과 보라색 코드 줄이 수직으로 흐르는 노트북 화면.

이 기사의 일부 내용은 Dark Reading에 게재되었으며, 업데이트를 거쳐 이곳에 다시 게시되었습니다.

‍

최신 AI 도구들이 세상을 뒤흔들며 처음 주목받기 시작했을 때부터, 개발자와 코딩에 관심 있는 사람들은 버튼 하나만 누르면 코드를 생성할 수 있는 이 도구들을 사용해 왔습니다. 보안 전문가들은 곧바로 이 도구가 생성하는 코드가 품질이 낮고 취약하다는 점을 지적했습니다. 보안 의식이 부족한 이들의 손에 들어가면, 보안이 취약한 앱과 웹 개발물이 쏟아져 나와 아무것도 모르는 소비자들에게 피해를 줄 수 있기 때문입니다.

게다가 보안 지식을 악용하려는 이들도 있습니다. 놀라운 AI 기술이 등장할 때마다, 그 기술을 악의적인 목적으로 사용하는 사례가 뒤따릅니다. 피싱, 딥페이크 사기 영상, 악성 코드 제작, 일반적인 스크립트 키디의 장난 등 이러한 파괴적인 활동들이 더 낮은 진입 장벽으로 훨씬 빠르게 이루어지고 있습니다.

이 도구가 혁명적이라거나, 적어도 "평범한" 인간의 기술보다 뛰어나다고 치켜세우는 클릭베이트성 기사들이 넘쳐납니다. LLM 기반 AI 기술이 소프트웨어 개발을 넘어 업무의 여러 측면에 접근하는 방식을 변화시킬 것이라는 점은 피할 수 없는 흐름으로 보이지만, 우리는 잠시 멈춰 서서 헤드라인 너머에 숨겨진 위험을 고려해야 합니다.

코딩 동반자로서 AI가 가진 결함은 어쩌면 가장 "인간적인" 특성일지도 모릅니다.

잘못된 코딩 패턴이 주된 해결책으로 자리 잡고 있습니다

수십 년간 축적된 코드와 지식 베이스를 학습한 ChatGPT가 경이롭고 신비로운 능력을 보여주면서도, 사람들이 코드를 다룰 때 겪는 흔한 함정에 똑같이 빠진다는 것은 놀라운 일이 아닙니다. 잘못된 코딩 패턴이 기본값처럼 사용되고 있으며, 올바른 질문과 프롬프트 엔지니어링을 통해 안전한 코딩 예제를 생성하려면 여전히 보안 의식을 갖춘 사용자의 통제가 필요합니다.

그렇다 하더라도 제공된 코드 조각이 보안 관점에서 정확하고 기능적이라는 보장은 없습니다. 이 기술은 환각 현상을 일으키기 쉬우며, Mike Shema가 발견한 것처럼 특정 JSON 작업을 요청했을 때 존재하지 않는 라이브러리를 지어내기도 합니다. 이는 위협 행위자들이 ChatGPT가 자신 있게 추천한 가짜 라이브러리를 악성 코드로 위장하여 배포하는 '환각 스쿼팅(hallucination squatting)'으로 이어질 수 있습니다.

결국 우리는 개발자들에게 충분한 보안 의식을 기대하지 않았고, 업계 차원에서도 보안 코드를 기본적으로 작성할 수 있도록 적절히 준비시키지 못했다는 현실을 직시해야 합니다. 이는 ChatGPT에 입력된 방대한 학습 데이터에 고스란히 반영되어 있으며, 초기에는 결과물에서도 보안 측면의 부족함이 드러날 수밖에 없습니다. 개발자들은 보안 버그를 식별하고 직접 수정하거나, 더 나은 결과를 위해 더 정교한 프롬프트를 설계할 수 있어야 합니다.

스탠퍼드 대학교 연구진이 수행한 대규모 사용자 연구는 사용자가 보안 관련 기능을 해결하기 위해 AI 코딩 도우미와 어떻게 상호작용하는지를 조사했으며, 이 연구의 관찰 결과는 이러한 견해를 뒷받침합니다.

“AI 도우미를 사용한 참가자들이 대다수의 프로그래밍 작업에서 보안 취약점을 도입할 가능성이 더 높았음에도 불구하고, 대조군에 비해 자신이 작성한 보안 취약한 답변을 안전하다고 평가할 가능성이 더 높았다.”

이는 AI 코딩 도구의 결과물이 항상 본질적으로 안전할 것이라는 기본적 신뢰가 깔려 있음을 보여주지만, 실제로는 그렇지 않습니다.


이러한 문제와 앞으로 닥칠 AI 기반의 위협들을 고려할 때, 개발자들은 그 어느 때보다 보안 기술을 연마하고 코드의 출처와 상관없이 코드 품질의 기준을 높여야 합니다.

데이터 유출 사고로 가는 길은 좋은 의도로 포장되어 있습니다

개발자들이 점점 더 많은 책임과 촉박한 마감 기한, 그리고 회사의 혁신을 짊어지고 있는 상황에서 AI 코딩 동반자가 인기를 끄는 것은 놀라운 일이 아닙니다. 하지만 아무리 좋은 의도로 사용하더라도, AI 코딩 시 실행 가능한 보안 의식이 결여되어 있다면 필연적으로 심각한 보안 문제를 초래할 것입니다. AI/ML 도구를 사용하는 모든 개발자는 더 많은 코드를 생성하게 될 것이며, 그 보안 위험 수준은 개발자의 숙련도에 따라 달라질 것입니다. 조직은 훈련받지 않은 인력이 코드를 더 빠르게 생성할 수는 있지만, 동시에 기술적 보안 부채를 쌓는 속도도 빨라진다는 점을 명확히 인식해야 합니다.

2023년 4월에 진행한 ChatGPT 예비 테스트에서도 치명적인 결과를 초래할 수 있는 매우 기본적인 실수들이 발견되었습니다. MySQL 데이터베이스를 사용하는 PHP 로그인 루틴을 작성하도록 요청했을 때, 기능적인 코드는 빠르게 생성되었습니다. 하지만 비밀번호를 데이터베이스에 평문으로 저장하고, 데이터베이스 연결 자격 증명을 코드에 그대로 노출하며, SQL 인젝션이 발생할 수 있는 코딩 패턴을 사용하는 등 기본값이 매우 위험했습니다(입력 매개변수에 대한 필터링과 데이터베이스 오류 출력은 어느 정도 수행했지만 말입니다). 어떤 기준으로 보아도 초보적인 실수들입니다:
‍

ChatGPT의 권장 사항이 항상 안전한 것은 아니며, 경우에 따라서는 위험할 수 있습니다.

‍
추가적인 프롬프팅을 통해 실수를 수정할 수는 있었지만, 이를 바로잡으려면 상당한 보안 지식이 필요합니다. 이러한 도구를 검증 없이 광범위하게 사용하는 것은 프로젝트에 주니어 개발자들을 무작정 투입하는 것과 다를 바 없으며, 만약 이 코드가 민감한 인프라를 구축하거나 개인 정보를 처리하는 데 사용된다면 이는 시한폭탄을 안고 있는 것과 같습니다.

물론 주니어 개발자들이 시간이 지나면서 실력을 쌓아가는 것처럼, AI/ML 기능도 점차 개선될 것입니다. 1년 후에는 지금처럼 명백하고 단순한 보안 실수는 하지 않을지도 모릅니다. 하지만 그렇게 되면 AI가 생성할 수 있는 더 심각하고 숨겨진, 복잡한 보안 오류를 찾아내기 위해 훨씬 더 높은 수준의 보안 기술이 요구될 것입니다.

우리는 여전히 보안 취약점을 발견하고 해결할 준비가 부족하며, AI는 이러한 격차를 더욱 벌리고 있습니다

수년 동안 '시프트 레프트(shifting left)'에 대한 논의가 많았지만, 여전히 대다수 조직의 개발자들은 실질적인 보안 지식이 크게 부족한 실정입니다. 우리는 이들이 올바른 방향으로 나아갈 수 있도록 적합한 도구와 교육을 제공하는 데 더 힘써야 합니다.

현재 우리는 익숙한 보안 버그조차 제대로 대비하지 못하고 있습니다. 하물며 프롬프트 인젝션이나 할루시네이션 스쿼팅처럼 걷잡을 수 없이 확산될 새로운 AI 기반 공격 벡터는 말할 것도 없습니다. AI 코딩 도구는 개발자에게 필수적인 미래의 무기이지만, 이러한 생산성 도구를 안전하게 다루기 위한 교육은 지금 당장 이루어져야 합니다.

‍

Advertisement urging developers to download for security skills in AI development tools by Secure Code Warrior.
더 자세한 내용이 궁금하신가요? 최신 백서를 다운로드하세요.
태그라인

배포 전 AI 기반 개발 거버넌스 확보

AI 기반 위험을 측정하고, 커밋 시점에 보안 코딩 정책을 적용하며, SDLC 전반에 걸쳐 안전한 소프트웨어 제공 속도를 높이세요.

데모 예약하기
리소스 라이브러리

더 많은 블로그 살펴보기

보안 코딩, AI 거버넌스, 소프트웨어 리스크 관리에 관한 전문가 콘텐츠를 확인해 보세요.

전체 보기
사례 연구
필터 라벨
div 블록 내부의 텍스트입니다.

Supercharged Security Awareness: How Tournaments are Inspiring Developers at Erste Group

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse varius enim in eros elementum tristique. Duis cursus, mi quis viverra ornare, eros dolor interdum nulla, ut commodo diam libero vitae erat. Aenean faucibus nibh et justo cursus id rutrum lorem imperdiet. Nunc ut sem vitae risus tristique posuere.

더 알아보기
사례 연구
필터 라벨
div 블록 내부의 텍스트입니다.

Security as culture: How Blue Prism cultivates world-class secure developers

Learn how Blue Prism, the global leader in intelligent automation for the enterprise, used Secure Code Warrior's agile learning platform to create a security-first culture with their developers, achieve their business goals, and ship secure code at speed

더 알아보기
사례 연구
필터 라벨
div 블록 내부의 텍스트입니다.

하나의 보안 문화: Sage는 어떻게 챔피언 프로그램을 구축했는가

Sage가 유연하고 관계 중심적인 접근 방식을 통해 보안을 강화하고, 200명 이상의 보안 챔피언을 양성하며 실질적인 위험 감소를 달성한 사례를 확인해 보세요.

더 알아보기
블로그
필터 라벨
div 블록 내부의 텍스트입니다.

2026년 사이버 보안 인식의 달: 기업 방어의 핵심, AI 보안 이해하기

주요 AI 기업 대부분이 안전 가이드라인이 마련될 때까지 AI 개발 속도를 전 세계적으로 늦춰야 한다고 공개적으로 촉구하는 시점에 이르렀지만, 사실 심각한 보안 문제는 이미 현실화되었습니다. 이로 인해 AI 도입에 따른 금전적 비용과 위험 부담이 계속 쌓이면서 수많은 보안 책임자와 경영진이 절박한 상황에 놓였습니다.

더 알아보기
블로그
필터 라벨
div 블록 내부의 텍스트입니다.

인에이블러 8: 프로그램 브랜딩

성공적인 보안 코딩 프로그램을 위해서는 훌륭한 콘텐츠 그 이상의 것이 필요합니다. 인에이블러 8에서는 브랜딩을 통해 참여를 누구나 선망하는 위상 중심의 경험으로 바꾸는 방법을 알아봅니다.

더 알아보기
블로그
필터 라벨
div 블록 내부의 텍스트입니다.

이제 모든 직원이 AI 사이버 보안의 최전선에 있습니다

엔터프라이즈 기술 환경은 너무 늦기 전까지는 아무도 예상하지 못한 속도로 변화하고 있습니다. 우리는 공식적으로 사람이 직접 작성한 코드와 기본적인 코파일럿 지원의 시대를 지나 '에이전트 기반 개발 수명 주기(ADLC)'의 시대로 진입했습니다. 자율형 AI 에이전트는 여러 기능 전반에 걸쳐 전례 없는 효율성을 약속하지만, 동시에 완전히 새로운 차원의 보안 및 규제 위험을 야기합니다.

더 알아보기

배포 전 AI 기반 개발 보안 확보

소프트웨어 개발 수명 주기 전반에서 개발자 리스크를 파악하고, 정책을 시행하며, 취약점을 예방하세요.

데모 예약하기
항목이 없습니다.