사상 리더

AI로 생성된 코드는 여기 남아 있습니다. 그 결과 우리는 더 안전하지 않을까요?

mm
Unite.AI를 Google의 선호 소스에 추가

2025年的 코딩은 코드 조각을 고생하거나 디버깅에 많은 시간을 보내는 것이 아닙니다. 그것은 완전히 다른 분위기입니다. AI로 생성된 코드는 미래의 제품에서 코드 대부분을 차지할 것이며, 현대 개발자에게 필수적인 도구가 되었습니다. “바이브 코딩”이라고 불리는 코드 생성 도구인 Github Copilot, Amazon CodeWhisperer, Chat GPT를 사용하는 것은 빌드 시간을 줄이고 효율성을 높이는 데 있어 규칙이 아닌 예외가 될 것입니다. 그러나 AI로 생성된 코드의 편리함은 더 어두운 위협을 가질까요? 생성적 AI는 보안 아키텍처의 취약성을 증가시키는지, 아니면 개발자가 안전하게 “바이브 코딩”할 수 있는 방법이 있을까요?

“AI로 생성된 코드의 취약성으로 인한 보안 사고는 오늘날 가장 논의되지 않는 주제 중 하나입니다.” DeepSource의 창립자 Sanket Saurav는 말했다. “まだ Copilot 또는 Chat GPT와 같은 플랫폼에서 생성된 코드 중에는 인간의 검토를 받지 못하는 코드가 많으며, 영향을 받는 회사에 대한 보안 위반은 치명적일 수 있습니다.”

코드 품질과 보안을 위한 정적 분석을 사용하는 오픈 소스 플랫폼의 개발자인 Saurav는 2020년 솔라윈즈 해킹과 같은 “종말 사건”을 예로 들며, AI로 생성된 코드를 사용할 때 적절한 보안 가드레일을 설치하지 않으면 회사들이 직면할 수 있는 위협을 언급했습니다. “정적 분석은 불안정한 코드 패턴과 나쁨 코딩 관행을 식별하는 것을 가능하게 합니다.” Saurav는 말했다.

라이브러리를 통해 공격받다

AI로 생성된 코드에 대한 보안 위협은 창의적인 형태를 취할 수 있으며 라이브러리에 대한 공격이 될 수 있습니다. 프로그래밍에서 라이브러리는 개발자가 시간을 절약하기 위해 사용하는 유용한 재사용 가능한 코드입니다.

라이브러리는 일반적인 프로그래밍 작업을 해결하는 데 도움을 주며, 개발자가 코드를 처음부터 작성하지 않도록 합니다.

라이브러리에 대한 한 가지 위협은 “환각”으로 알려져 있으며, AI로 생성된 코드가 가상 라이브러리를 사용하여 취약성을 표시할 수 있습니다. 라이브러리를 직접 공격하여 데이터베이스에 침투할 수 있는 최근의 공격은 “slopsquatting”으로 알려져 있습니다.

이러한 위협에 직면하여 개발자는 더 많은 주의가 필요할 수 있습니다. Université du Québec en Outaouais의 Rafael Khoury 교수는 AI로 생성된 코드의 보안에 대한 최근 개발을密切히 지켜보았으며, 새로운 기술이 코드의 안전성을 향상시킬 것이라고 믿고 있습니다.

Khoury는 2023년 논문에서, 추가적인 정보나 컨텍스트 없이 ChatGPT에 코드를 생성하도록 요청한 결과를 조사했습니다. 이는 안전하지 않은 코드로 이어졌습니다. 그러나 Khoury는 앞으로의 길에 대해 낙관적입니다. “그 이후로 많은 연구가 진행 중이며, LLM을 사용하는 전략이 더好的 결과를 가져올 수 있을 것입니다.” Khoury는 “보안은 더 좋아지고 있지만, 아직 직접적인 프롬프트에 안전한 코드를 얻을 수 있는 상태는 아닙니다.”라고 덧붙였습니다.

Khoury는 유망한 연구를 설명했습니다. 여기서 코드를 생성한 다음, 코드를 취약성 분석 도구에 보냈습니다. 이 도구는 Finding Line Anomalies with Generative AI (FLAG)라고 불리는 방법을 사용했습니다.

“이러한 도구는 개발자가 코드의 24번째 줄에 취약성을 식별할 수 있도록 FLAG를 보낼 수 있습니다. 개발자는 이 정보를 LLM에 다시 보내고 문제를 해결하도록 요청할 수 있습니다.” Khoury는 말했다.

Khoury는 이 반복적인 과정은 취약한 코드를 수정하는 데 중요할 수 있다고 제안했습니다. “이 연구는 5회의 반복으로 취약성을 0으로 줄일 수 있다고 제안합니다.”

그러나 FLAG 방법에는 여전히 문제가 있습니다. 특히, 거짓 양성과 거짓 음성의 위험을 증가시킬 수 있으며, LLM이 생성할 수 있는 코드의 길이에도 제한이 있습니다. 코드 조각을 결합하는 과정은 또 다른 위험을 추가할 수 있습니다.

인간을 루프에 유지하다

“바이브 코딩”의 일부 플레이어는 코드를 분할하고, 인간이 코드베이스의 가장 중요한 편집에서 중심에 있도록 하는 것을 추천합니다. “코드를 작성할 때, 커밋을 생각하세요.” Windsurf의 제품 엔지니어링 책임자 Kevin Hou는 작은 조각으로 나누는 것을 권장했습니다.

“큰 프로젝트를 작은 조각으로 나누세요. 각 조각은 커밋이나 풀 리퀘스트가 될 수 있습니다. 에이전트가 작은 규모의 코드를 빌드하도록 하세요. 이것은 코드 출력이 잘 테스트되고 잘 이해된다는 것을 보장할 수 있습니다.” Hou는 추가했습니다.

작성 시점에, Windsurf는 이전 이름인 Codeium을 통해 50억 줄이 넘는 AI로 생성된 코드에 접근했습니다. Hou는 개발자가 프로세스를 인식하고 있는지에 대한 가장 중요한 질문에 답하고 있다고 말했다.

“AI는 많은 파일에 걸쳐 많은 수정을 할 수 있으므로, 개발자가 실제로 무엇이 진행되고 있는지 이해하고 검토하는지 어떻게 보장할 수 있을까요?” Hou는 질문을 던지며, Windsurf의 UX에大量으로 투자하여 “AI가 하는 일과 완전히 동기화되도록 유지하고, 인간을 루프에 유지하기 위한直感적인 방법”을 제공했다고 덧붙였습니다.

그этому, “바이브 코딩”이 더 대중화됨에 따라, 인간은 루프에서 더 주의해야 합니다. “환각”이나 “slopsquatting”과 같은 취약성은 실제이며, 해결책도 실제입니다.

정적 분석, 반복적인 개선 방법, FLAG, 그리고 세심한 UX 디자인과 같은 새로운 도구는 보안과 속도가 상호 배타적이지 않음을 보여줍니다.

개발자를 참여시키고, 정보를 제공하고, 통제하도록 유지하는 것이 핵심입니다. 올바른 가드레일과 “신뢰하지만 검증한다”는 마음가짐으로, AI 지원 코딩은 혁신적이고 책임감 있게 될 수 있습니다.

Arjun Harindranath은 콜롬비아 메데린에 기반을 둔 프리랜스 저널리스트로서 글로벌 관객을 대상으로 분쟁, 이주 및 기술에 관한 이야기를 다룬다. 이전에는 Al Jazeera, TechCrunch, The Next Web, 그리고 뉴욕 타임즈에 기사를 실었다.