심층 분석: AI 코딩 어시스턴트가 생성하는 취약점 탐색하기

게시일: 2023년 12월 11일
by Laura Verheyde
사례 연구

심층 분석: AI 코딩 어시스턴트가 생성하는 취약점 탐색하기

게시일: 2023년 12월 11일
by Laura Verheyde
리소스 보기
리소스 보기

거의 모든 업종에서 AI 기술에 대한 집착이 계속되고 있습니다. 일부에서는 소프트웨어 개발의 신속한 기능 생성에 대한 해답으로 찬사를 보내기도 하지만, 이러한 속도 향상에는 도구 자체의 컨텍스트 인식 부족으로 인해 심각한 보안 버그가 코드베이스에 침투할 가능성이 있고, 생산성을 높이고 까다로운 개발 시나리오에 대한 답을 생성하기 위해 도구에 의존하는 개발자의 보안 기술 수준이 낮다는 대가가 따릅니다. 

대규모 언어 모델(LLM) 기술은 보조 도구의 획기적인 변화를 의미하며, 안전하게 사용한다면 많은 소프트웨어 엔지니어가 갈망하는 페어 프로그래밍의 동반자가 될 수 있습니다. 그러나 AI 개발 도구를 무분별하게 사용하면 해로운 영향을 미칠 수 있다는 사실이 빠르게 입증되고 있으며, 스탠퍼드 대학교의 2023년 연구에 따르면 AI 어시스턴트에 의존하면 결과물이 안전하다는 신뢰가 높아질 뿐 아니라 전반적으로 버그가 많고 안전하지 않은 코드가 만들어질 가능성이 높다고 합니다.

완벽한 인공 지능 기술을 향한 경쟁이 계속됨에 따라 이러한 도구가 계속 개선될 것이라고 가정하는 것은 타당하지만, 바이든 행정부의 새로운 행정 명령과 EU의 인공 지능법을 포함한 수많은 권고 사항으로 인해 어떤 경우에도 이러한 도구를 사용하는 것은 까다로운 길이 될 수 있습니다. 개발자는 AI 도구의 결과물에 대한 코드 수준의 보안 기술, 인식, 비판적 사고를 연마함으로써 유리한 고지를 선점할 수 있으며, 이를 통해 더 높은 수준의 엔지니어가 될 수 있습니다.

AI 코딩 어시스턴트는 어떻게 취약점을 유발하나요? 새로운 공개 미션을 플레이하고 를 플레이하고 직접 확인해 보세요!

예시: 'ChatterGPT'의 크로스 사이트 스크립팅(XSS)

새로운 공개 미션은 2023년 11월 말에 생성된 실제 코드 스니펫을 활용하며, 대중적인 LLM의 익숙한 인터페이스를 보여줍니다. 사용자는 이 코드 조각을 해석하고 의도된 목적에 맞게 사용될 경우 잠재적인 보안 함정이 있는지 조사할 수 있습니다.

"p HTML 요소의 내용을 변경하는 자바스크립트 함수를 작성할 수 있나요?"라는 프롬프트에 따라 해당 함수를 통해 콘텐츠가 전달되는 코드 블록을 성실하게 생성하지만 모든 것이 보이는 것과는 다릅니다.

아직 챌린지를 플레이하지 않으셨나요? 아직 안 하셨다면 계속 읽기 전에 지금 도전해 보세요.

... 자, 이제 완료했으니 문제의 코드가 크로스 사이트 스크립팅(XSS)에 취약하다는 것을 알 수 있습니다. 

XSS는 웹 브라우저의 핵심 기능을 조작함으로써 가능합니다. 신뢰할 수 없는 입력이 페이지의 출력으로 렌더링되지만 실행 가능하고 안전한 코드로 잘못 해석될 때 발생할 수 있습니다. 공격자는 입력 매개변수 내에 악성 스니펫(HTML 태그, 자바스크립트 등)을 삽입할 수 있으며, 이 스니펫은 브라우저로 다시 반환될 때 데이터로 표시되는 대신 실행됩니다.

소프트웨어 개발에서 안전하게 AI 코딩 어시스턴트 사용하기

최근 현업 개발팀을 대상으로 실시한 설문조사에 따르면 거의 모든 팀(96%)이 워크플로에서 AI 어시스턴트를 사용하기 시작했으며, 80%는 보안 정책을 우회하여 툴킷에 AI 어시스턴트를 계속 사용하고 있는 것으로 나타났습니다. 또한 절반 이상이 생성형 AI 도구가 일반적으로 안전하지 않은 코드를 생성한다는 사실을 인정했지만, 그렇다고 해서 도입이 늦춰지지는 않았습니다.

소프트웨어 개발 프로세스의 새로운 시대에는 이러한 도구의 사용을 막거나 금지하는 것은 효과가 없을 것입니다. 대신 조직은 개발팀이 보안이나 코드 품질을 희생하지 않고도 효율성과 생산성 향상을 활용할 수 있도록 지원해야 합니다. 이를 위해서는 보안 코딩 모범 사례에 대한 정밀한 교육이 필요하며, 특히 AI 어시스턴트 코드 출력의 잠재적 위협을 평가할 때 보안 우선 사고방식을 가지고 행동할 수 있도록 비판적 사고 능력을 확장할 수 있는 기회를 제공해야 합니다. 

추가 읽기

일반적인 XSS에 대해서는 종합 가이드를 참조하세요.

안전한 코드를 작성하고 위험을 완화하는 방법에 대해 자세히 알아보고 싶으신가요? XSS 인젝션 챌린지를 무료로 체험해 보세요.

더 많은 무료 코딩 가이드라인에 관심이 있다면 보안 코딩 모범 사례를 파악하는 데 도움이 되는 Secure Code Coach를 확인하세요.

자세히 알아보고 싶으신가요? 최신 백서를 다운로드하세요.
리소스 보기
리소스 보기

Mission: 'ChatterGPT'의 크로스 사이트 스크립팅(XSS)

AI 코딩 어시스턴트는 어떻게 취약점을 유발할까요? 새로운 공개 미션을 플레이하고 직접 확인해 보세요! 이 미션은 인기 있는 LLM의 익숙한 인터페이스를 보여주며, 2023년 11월 말에 생성된 실제 코드 조각을 활용합니다. 사용자는 이 코드 조각을 해석하고 의도된 목적대로 사용될 경우 잠재적인 보안 함정이 있는지 조사할 수 있습니다.

미션 도전하기
저자

로라 베르헤이드

Laura Verheyde는 Secure Code Warrior 의 소프트웨어 개발자로서 취약점을 연구하고 Missions 및 코딩 연구소의 콘텐츠를 제작하는 데 주력하고 있습니다.

더 알고 싶으신가요?

블로그에서 최신 보안 코딩 인사이트에 대해 자세히 알아보세요.

Atlassian의 광범위한 리소스 라이브러리는 안전한 코딩 숙련도를 확보하기 위한 인적 접근 방식을 강화하는 것을 목표로 합니다.

블로그 보기
더 알고 싶으신가요?

개발자 중심 보안에 대한 최신 연구 보기

광범위한 리소스 라이브러리에는 개발자 중심의 보안 코딩을 시작하는 데 도움이 되는 백서부터 웨비나까지 유용한 리소스가 가득합니다. 지금 살펴보세요.

리소스 허브

심층 분석: AI 코딩 어시스턴트가 생성하는 취약점 탐색하기

게시일: 2023년 12월 11일
로라 베르헤이데

거의 모든 업종에서 AI 기술에 대한 집착이 계속되고 있습니다. 일부에서는 소프트웨어 개발의 신속한 기능 생성에 대한 해답으로 찬사를 보내기도 하지만, 이러한 속도 향상에는 도구 자체의 컨텍스트 인식 부족으로 인해 심각한 보안 버그가 코드베이스에 침투할 가능성이 있고, 생산성을 높이고 까다로운 개발 시나리오에 대한 답을 생성하기 위해 도구에 의존하는 개발자의 보안 기술 수준이 낮다는 대가가 따릅니다. 

대규모 언어 모델(LLM) 기술은 보조 도구의 획기적인 변화를 의미하며, 안전하게 사용한다면 많은 소프트웨어 엔지니어가 갈망하는 페어 프로그래밍의 동반자가 될 수 있습니다. 그러나 AI 개발 도구를 무분별하게 사용하면 해로운 영향을 미칠 수 있다는 사실이 빠르게 입증되고 있으며, 스탠퍼드 대학교의 2023년 연구에 따르면 AI 어시스턴트에 의존하면 결과물이 안전하다는 신뢰가 높아질 뿐 아니라 전반적으로 버그가 많고 안전하지 않은 코드가 만들어질 가능성이 높다고 합니다.

완벽한 인공 지능 기술을 향한 경쟁이 계속됨에 따라 이러한 도구가 계속 개선될 것이라고 가정하는 것은 타당하지만, 바이든 행정부의 새로운 행정 명령과 EU의 인공 지능법을 포함한 수많은 권고 사항으로 인해 어떤 경우에도 이러한 도구를 사용하는 것은 까다로운 길이 될 수 있습니다. 개발자는 AI 도구의 결과물에 대한 코드 수준의 보안 기술, 인식, 비판적 사고를 연마함으로써 유리한 고지를 선점할 수 있으며, 이를 통해 더 높은 수준의 엔지니어가 될 수 있습니다.

AI 코딩 어시스턴트는 어떻게 취약점을 유발하나요? 새로운 공개 미션을 플레이하고 를 플레이하고 직접 확인해 보세요!

예시: 'ChatterGPT'의 크로스 사이트 스크립팅(XSS)

새로운 공개 미션은 2023년 11월 말에 생성된 실제 코드 스니펫을 활용하며, 대중적인 LLM의 익숙한 인터페이스를 보여줍니다. 사용자는 이 코드 조각을 해석하고 의도된 목적에 맞게 사용될 경우 잠재적인 보안 함정이 있는지 조사할 수 있습니다.

"p HTML 요소의 내용을 변경하는 자바스크립트 함수를 작성할 수 있나요?"라는 프롬프트에 따라 해당 함수를 통해 콘텐츠가 전달되는 코드 블록을 성실하게 생성하지만 모든 것이 보이는 것과는 다릅니다.

아직 챌린지를 플레이하지 않으셨나요? 아직 안 하셨다면 계속 읽기 전에 지금 도전해 보세요.

... 자, 이제 완료했으니 문제의 코드가 크로스 사이트 스크립팅(XSS)에 취약하다는 것을 알 수 있습니다. 

XSS는 웹 브라우저의 핵심 기능을 조작함으로써 가능합니다. 신뢰할 수 없는 입력이 페이지의 출력으로 렌더링되지만 실행 가능하고 안전한 코드로 잘못 해석될 때 발생할 수 있습니다. 공격자는 입력 매개변수 내에 악성 스니펫(HTML 태그, 자바스크립트 등)을 삽입할 수 있으며, 이 스니펫은 브라우저로 다시 반환될 때 데이터로 표시되는 대신 실행됩니다.

소프트웨어 개발에서 안전하게 AI 코딩 어시스턴트 사용하기

최근 현업 개발팀을 대상으로 실시한 설문조사에 따르면 거의 모든 팀(96%)이 워크플로에서 AI 어시스턴트를 사용하기 시작했으며, 80%는 보안 정책을 우회하여 툴킷에 AI 어시스턴트를 계속 사용하고 있는 것으로 나타났습니다. 또한 절반 이상이 생성형 AI 도구가 일반적으로 안전하지 않은 코드를 생성한다는 사실을 인정했지만, 그렇다고 해서 도입이 늦춰지지는 않았습니다.

소프트웨어 개발 프로세스의 새로운 시대에는 이러한 도구의 사용을 막거나 금지하는 것은 효과가 없을 것입니다. 대신 조직은 개발팀이 보안이나 코드 품질을 희생하지 않고도 효율성과 생산성 향상을 활용할 수 있도록 지원해야 합니다. 이를 위해서는 보안 코딩 모범 사례에 대한 정밀한 교육이 필요하며, 특히 AI 어시스턴트 코드 출력의 잠재적 위협을 평가할 때 보안 우선 사고방식을 가지고 행동할 수 있도록 비판적 사고 능력을 확장할 수 있는 기회를 제공해야 합니다. 

추가 읽기

일반적인 XSS에 대해서는 종합 가이드를 참조하세요.

안전한 코드를 작성하고 위험을 완화하는 방법에 대해 자세히 알아보고 싶으신가요? XSS 인젝션 챌린지를 무료로 체험해 보세요.

더 많은 무료 코딩 가이드라인에 관심이 있다면 보안 코딩 모범 사례를 파악하는 데 도움이 되는 Secure Code Coach를 확인하세요.

자세히 알아보고 싶으신가요? 최신 백서를 다운로드하세요.

우리는 당신에게 우리의 제품 및 / 또는 관련 보안 코딩 주제에 대한 정보를 보낼 수있는 귀하의 허가를 바랍니다. 우리는 항상 최대한의주의를 기울여 귀하의 개인 정보를 취급 할 것이며 마케팅 목적으로 다른 회사에 판매하지 않을 것입니다.

전송
양식을 제출하려면 '분석' 쿠키를 활성화하세요. 완료되면 언제든지 다시 비활성화할 수 있습니다.