AI 생성 코드를 사용할 준비가 되었나요? PlatoBlockchain 데이터 인텔리전스. 수직 검색. 일체 포함.

AI 생성 코드에 대한 준비가 되었습니까?

최근 몇 달 동안 우리는 컴퓨터로 생성된 얼굴, 고양이 사진, 비디오, 에세이, 심지어 예술 작품의 품질에 놀랐습니다. 인공 지능(AI)과 기계 학습(ML)도 GitHub Copilot, Tabnine, Polycode와 같은 도구를 사용하여 소프트웨어 개발에 조용히 들어갔습니다. 다른 사람 AI 스테로이드에 기존 코드 자동 완성 기능을 추가하는 논리적인 다음 단계를 수행합니다. 그러나 고양이 사진과 달리 애플리케이션 코드의 출처, 품질 및 보안은 광범위한 영향을 미칠 수 있으며 적어도 보안에 대해서는 연구에 따르면 위험이 실제로 있는 것으로 나타났습니다.

이전에 학술 연구 GitHub Copilot은 보안 취약점이 있는 코드를 생성하는 경우가 많다는 사실을 이미 보여주었습니다. 최근 Invicti 보안 엔지니어 Kadir Arslan의 실제 분석에 따르면 안전하지 않은 코드 제안 Copilot에서는 예외가 아니라 여전히 규칙입니다. Arslan은 많은 일반적인 작업에 대한 제안이 가장 기초적이고 가장 안전하지 않은 경로를 취하는 완전한 기본만 포함하고 있으며 이를 수정하지 않고 수용하면 기능적이지만 취약한 응용 프로그램이 될 수 있다는 것을 발견했습니다.

Copilot과 같은 도구는 (설계상) 자동 완성 기능을 한 단계 더 발전시킨 것으로, 유사한 맥락에서 관련될 수 있는 코드 조각을 제안하기 위해 오픈 소스 코드에 대해 교육을 받았습니다. 이를 통해 제안의 품질과 보안이 훈련 세트의 품질 및 보안과 밀접하게 연결됩니다. 따라서 더 큰 질문은 Copilot이나 기타 특정 도구에 관한 것이 아니라 일반적으로 AI 생성 소프트웨어 코드에 관한 것입니다.

Copilot은 단지 창의 끝일 뿐이며 유사한 발전기가 앞으로 몇 년 안에 일반화될 것이라고 가정하는 것이 합리적입니다. 이는 기술 업계인 우리가 그러한 코드가 어떻게 생성되고, 어떻게 사용되며, 문제가 발생하면 누가 책임을 질지 묻기 시작해야 함을 의미합니다.

위성항법증후군

함수 정의를 조회하여 함수 이름을 완성하고 필요한 인수가 무엇인지 알려주는 기존 코드 자동 완성 기능은 엄청난 시간을 절약해 줍니다. 이러한 제안은 문서를 스스로 찾아보는 지름길일 뿐이므로 우리는 IDE가 제안하는 모든 것을 암묵적으로 신뢰하는 법을 배웠습니다. AI 기반 도구가 등장하면 그 제안이 더 이상 정확하다고 보장되지 않습니다. 하지만 여전히 친근하고 신뢰할 수 있다고 느끼므로 받아들여질 가능성이 더 높습니다.

특히 경험이 부족한 개발자의 경우, 무료 코드 블록을 얻는 편리함은 "이 코드가 내가 작성하려는 코드와 충분히 가까운가?"에서 "나에게 적합하도록 이 코드를 어떻게 조정할 수 있는가"로 사고방식을 전환하도록 장려합니다.

GitHub는 Copilot 제안이 항상 신중하게 분석, 검토 및 테스트되어야 한다고 매우 명확하게 명시하고 있지만, 인간의 본성은 하위 코드라도 때때로 프로덕션에 적용하게 되어 있습니다. 이는 도로보다 GPS를 더 많이 보면서 운전하는 것과 비슷합니다.

공급망 보안 문제

XNUMXD덴탈의 Log4j 보안 위기 최근에는 소프트웨어 공급망 보안, 특히 오픈 소스 보안이 각광을 받았습니다. 백악관 메모 안전한 소프트웨어 개발과 새로운 오픈소스 보안 개선 법안. 이러한 계획과 기타 계획을 통해 애플리케이션에 오픈 소스 코드가 있으면 곧 소프트웨어 자재 명세서(SBOM)에 작성해야 할 수 있습니다. 이는 의도적으로 특정 종속성을 포함하는 경우에만 가능합니다. SCA(소프트웨어 구성 분석) 도구도 해당 지식을 활용하여 오래되거나 취약한 오픈 소스 구성 요소를 감지하고 표시합니다.

하지만 애플리케이션에 궁극적으로 오픈 소스 훈련 세트에서 비롯된 AI 생성 코드가 포함되어 있다면 어떻게 될까요? 이론적으로 하나의 실질적인 제안이라도 기존 코드와 동일하고 있는 그대로 받아들여진다면 소프트웨어에는 오픈 소스 코드가 있을 수 있지만 SBOM에는 없을 수 있습니다. 이로 인해 코드가 안전하지 않은 것으로 판명되어 위반이 발생하는 경우 책임을 질 가능성은 말할 것도 없고 규정 준수 문제가 발생할 수 있습니다. SCA는 자신의 코드에서 취약점이 아닌 취약한 종속성만 찾을 수 있으므로 도움이 되지 않습니다. .

라이선스 및 귀속의 함정

계속해서 생각해보면, 오픈 소스 코드를 사용하려면 라이선스 조건을 준수해야 합니다. 특정 오픈 소스 라이선스에 따라 최소한 저작자 표시를 제공하거나 때로는 자신의 코드를 오픈 소스로 출시해야 합니다. 일부 라이센스는 상업적 사용을 완전히 금지합니다. 라이센스가 무엇이든 코드의 출처와 라이센스 방법을 알아야 합니다.

다시 말하지만, 애플리케이션에 기존 오픈 소스 코드와 동일한 AI 생성 코드가 있다면 어떻게 될까요? 감사를 받은 경우 필수 속성 없이 코드를 사용하고 있는 것으로 확인됩니까? 아니면 규정을 준수하기 위해 일부 상용 코드를 오픈 소스해야 합니까? 아마도 현재 도구로는 아직 현실적인 위험이 아닐 수도 있지만, 이는 10년 후가 아니라 오늘날 우리 모두가 물어봐야 할 질문입니다. (그리고 명확히 말하면 GitHub Copilot에는 공급망 위험을 최소화하기 위해 기존 코드와 일치하는 제안을 차단하는 선택적 필터가 있습니다.)

더 깊은 보안 영향

보안으로 돌아가서, AI/ML 모델은 훈련 세트만큼 좋거나 나쁩니다. 우리는 과거에 그것을 본 적이 있습니다 - 예를 들어 다음과 같은 경우 인종 편견을 보여주는 얼굴 인식 알고리즘 훈련받은 데이터 때문이다. 따라서 코드 생성기가 보안을 고려하지 않고 자주 제안을 생성한다는 연구 결과가 있다면 이것이 학습 세트(즉, 공개적으로 사용 가능한 코드)와 같다고 추론할 수 있습니다. 그리고 안전하지 않은 AI 생성 코드가 해당 코드 베이스로 다시 피드백되면 어떻게 될까요? 제안이 안전할 수 있나요?

보안 질문은 여기서 끝나지 않습니다. AI 기반 코드 생성기가 인기를 얻고 새로운 코드의 의미 있는 비율을 차지하기 시작하면 누군가가 이를 공격하려고 시도할 가능성이 높습니다. 학습 세트를 중독시켜 AI 이미지 인식을 속이는 것은 이미 가능합니다. 조만간, 악의적인 행위자는 해당 코드가 제안으로 나타나고 결국 프로덕션 애플리케이션에 들어가 쉽게 공격받을 수 있기를 바라면서 공개 저장소에 고유하게 취약한 코드를 넣으려고 시도할 것입니다.

그리고 단일 문화는 어떻습니까? 출처가 무엇이든 여러 애플리케이션이 매우 취약한 동일한 제안을 사용하게 되면 취약성 확산 또는 AI 관련 취약성을 살펴볼 수 있습니다.

AI를 주시하다

이러한 시나리오 중 일부는 오늘날 터무니없는 것처럼 보일 수 있지만 모두 기술 업계에서 논의해야 할 사항입니다. 다시 말하지만, GitHub Copilot은 현재 선두를 달리고 있기 때문에 주목을 받고 있으며 GitHub는 AI 생성 제안의 주의 사항에 대해 명확한 경고를 제공합니다. 휴대폰의 자동 완성이나 위성 내비게이션의 경로 제안과 마찬가지로 이는 우리의 삶을 더 쉽게 만들어 주는 힌트일 뿐이며, 이를 사용하거나 떠나는 것은 우리에게 달려 있습니다.

개발 효율성을 기하급수적으로 향상시킬 수 있는 잠재력을 갖춘 AI 기반 코드 생성기는 소프트웨어 세계의 영구적인 일부가 될 가능성이 높습니다. 그러나 애플리케이션 보안 측면에서 이는 프로덕션에 허용되기 전에 엄격한 보안 테스트를 통과해야 하는 잠재적으로 취약한 코드의 또 다른 소스입니다. 우리는 취약점(및 잠재적으로 확인되지 않은 종속성)을 자사 코드에 직접 삽입할 수 있는 새로운 방법을 찾고 있습니다. 따라서 테스트할 때까지 AI로 강화된 코드베이스를 신뢰할 수 없는 코드베이스로 취급하는 것이 합리적입니다. 즉, 가능한 한 자주 모든 것을 테스트하는 것을 의미합니다. 할 수 있다.

Copilot과 같이 상대적으로 투명한 ML 솔루션조차도 보안 문제는 말할 것도 없고 이미 법적, 윤리적 문제를 제기하고 있습니다. 하지만 어느 날 일부 새로운 도구가 완벽하게 작동하고 보안 테스트를 통과하는 코드를 생성하기 시작한다고 상상해 보십시오. 한 가지 작은 세부 사항만 제외됩니다. 작동 방식을 아는 사람은 아무도 없습니다. 그때는 당황할 때입니다.

타임 스탬프 :

더보기 어두운 독서