AI 공동 프로그래머는 아마도 PlatoBlockchain Data Intelligence가 우려했던 것만큼 많은 버그를 생성하지 않을 것입니다. 수직 검색. 일체 포함.

AI 공동 프로그래머는 아마도 두려움만큼 많은 버그를 생성하지 않을 것입니다

GitHub Copilot과 같은 차세대 코드 완성 도구를 지원하는 기계 학습 모델은 소프트웨어 개발자가 보안을 저하시키지 않으면서 더 많은 기능의 코드를 작성하는 데 도움이 될 수 있습니다.

이는 뉴욕 대학교 컴퓨터 과학자 그룹이 실시한 58명 규모의 소규모 설문조사의 잠정적인 결과입니다.

In 종이 ArXiv를 통해 배포된 Gustavo Sandoval, Hammond Pearce, Teo Nys, Ramesh Karri, Brendan Dolan-Gavitt 및 Siddharth Garg는 LLM(대형 언어 모델)의 도움으로 생성된 소스 코드의 보안을 테스트에 적용한 방법을 설명합니다.

OpenAI GPT 제품군과 같은 LLM은 방대한 양의 공개 텍스트 데이터 또는 GPT의 자손이자 GitHub Copilot의 기초인 OpenAI의 Codex의 경우 공개 소스 코드에 대해 교육을 받았습니다. 따라서 그들은 "가비지 인, 가비지 아웃"이라는 격언을 보여주는 인간 프로그래머가 과거에 저지른 오류를 재현할 수 있습니다. 이러한 도구가 역류하여 프로젝트에 내용을 삽입할 개발자에게 나쁜 코드를 제안할 것이라는 두려움이 있었습니다.

게다가 코드 보안은 상황에 따라 달라질 수 있습니다. 격리된 상태에서 안전한 코드는 다른 소프트웨어와 함께 특정 순서로 실행될 때 안전하지 않을 수 있습니다. 따라서 이러한 자동 완성 도구는 자체적으로는 문제가 없지만 다른 코드와 연결되어 있고 이제 공격에 취약하거나 그냥 깨져 있는 코드 제안을 제공할 수 있습니다. 즉, 이러한 도구가 실제로 인간이 프로그래밍을 더 나쁘게 만들지는 않을 수도 있다는 것이 밝혀졌습니다.

어떤 의미에서 연구원들은 스스로 불을 끄고 있었습니다. 약 XNUMX년 전 같은 컴퓨터 과학자 두 명이 "키보드에서 잠을 자?"라는 제목의 논문에 기고했습니다. GitHub Copilot의 코드 기여 보안 평가.” 발견한 그 작품 에 대한 40 퍼센트 Copilot의 출력 중 잠재적으로 악용 가능한 약점이 포함되었습니다(CWE).

"두 논문의 차이점은 'Asleep at the Keyboard'가 완전히 자동화된 코드 생성(루프에 사람이 없음)을 보고 있었고 비교할 사람이 없었기 때문에 어떻게 Copilot의 보안은 사람이 작성한 코드의 보안과 비교됩니다.”라고 두 논문의 공동 저자이자 NYU Tandon의 컴퓨터 과학 및 엔지니어링 부서 조교수인 Brendan Dolan-Gavitt가 말했습니다. 등록.

“사용자 연구 논문은 사용자의 절반이 Codex(Copilot을 구동하는 모델)의 도움을 받고 나머지 절반이 코드를 직접 작성하도록 하여 누락된 부분을 직접 해결하려고 합니다. 그러나 그것은 또한 '키보드에서 잠자기'보다 좁습니다. 우리는 하나의 작업과 하나의 언어(C로 연결 목록 작성)만 살펴보았습니다.”

최신 보고서 "대규모 언어 모델 코드 도우미의 보안 의미: 사용자 연구"에서 약간 다양한 NYU 연구원은 이전 작업이 Copilot과 같은 LLM 기반 도구의 사용을 현실적으로 모델링하는 데 실패했음을 인정합니다.

"첫째, 이 연구에서는 전체 코드가 LLM에 의해 자동으로 생성된다고 가정합니다(이를 자동 조종 모드라고 함)"라고 boffins는 논문에서 설명합니다.

“실제로 코드 완성 LLM은 개발자가 수락, 편집 또는 거부를 선택할 수 있도록 제안합니다. 즉, 자동화 편향에 취약한 프로그래머는 버그가 있는 완성을 순진하게 받아들일 수 있지만 다른 개발자는 버그를 수정하는 데 절약한 시간을 사용하여 버그가 적은 코드를 생성할 수 있습니다.”

둘째, 그들은 LLM이 버그가 있는 코드를 생성하는 것으로 나타났지만 인간도 그렇게 한다는 것을 관찰했습니다. LLM 교육 데이터의 버그는 사람에게서 나왔습니다.

따라서 LLM 생성 코드의 버그를 자체적으로 평가하기보다는 기계 학습 모델의 지원을 받는 인간 개발자가 생성한 코드가 자체적으로 작동하는 프로그래밍으로 생성된 코드와 어떻게 다른지 비교하기 시작했습니다.

NYU 컴퓨터 과학자들은 소프트웨어 개발 과정에 있는 학부 및 대학원생 58명의 설문 조사 참가자를 모집하여 제안 없이 작업하는 통제 그룹과 OpenAI를 사용하여 구축된 맞춤형 제안 시스템에 액세스할 수 있는 지원 그룹으로 나누었습니다. 코덱스 API. 그들은 또한 Codex 모델을 사용하여 주어진 프로그래밍 문제에 대한 30개의 솔루션을 비교 지점으로 만들었습니다. 이 Autopilot 그룹은 주로 두 번째 제어 그룹으로 기능했습니다.

Assisted 그룹과 Control 그룹 모두 Google 및 Stack Overflow와 같은 웹 리소스를 참조할 수 있었지만 다른 사람에게 도움을 요청할 수는 없었습니다. 오픈 소스로 구축된 웹 기반 컨테이너 내에서 Visual Studio Code로 작업 아누비스.

"개발자가 실수로 취약한 디자인 패턴을 C로 표현하기 쉽기 때문에" 그리고 사용된 C 컴파일러 툴체인이 동일한 수준의 툴체인으로 오류를 검사하지 않기 때문에 참가자들은 C 프로그래밍 언어를 사용하여 쇼핑 목록 프로그램을 완료하도록 요청받았습니다. Go 및 Rust와 같은 현대 언어도 마찬가지입니다.

연구원들이 Control 및 Assistant 그룹에서 생성된 코드를 수동으로 분석했을 때 이전 작업과 달리 AI 코드 제안이 전반적인 상황을 악화시키지 않는다는 것을 발견했습니다.

깔끔해보이지만 디테일이 살아있다

“[우리는] Codex 지원이 보안 버그 발생률을 증가시킨다는 증거를 찾지 못했습니다. "반대로 Codex 지원으로 CWE/LoC[코드 라인]이 감소한다는 증거가 있습니다."

NYU Tandon의 엔지니어링 부서 부교수이자 사이버 보안 연구원인 Siddharth Garg는 전화 인터뷰에서 "통계적으로 확신을 갖고 결론을 내리기는 어렵습니다. 등록.

많은 통계적 확신으로 이것을 결론짓기는 어렵습니다.

그럼에도 불구하고 그는 "데이터에 따르면 Copilot 사용자가 크게 나빠지지 않았다는 것을 알 수 있습니다."라고 말했습니다.

Dolan-Gavitt도 결과에 대해 마찬가지로 신중합니다.

"현재 사용자 연구 결과에 대한 분석은 통계적으로 유의한 차이를 발견하지 못했습니다. 우리는 여전히 이것을 정성적으로 분석하고 있으므로, 특히 소규모 연구(총 58명의 사용자)이고 사용자들은 전문 개발자가 아니라 모두 학생이었다”고 말했다.

"그래도 이러한 사용자의 경우 이 작업에서 AI 지원이 보안에 미치는 영향은 크지 않았을 것입니다. 매우 큰 영향을 미쳤다면 두 그룹 간에 더 큰 차이를 관찰했을 것입니다. 우리는 지금 그것을 정확하게 만들기 위해 조금 더 통계적 분석을 하고 있습니다.”

그 외에도 몇 가지 다른 통찰력이 나타났습니다. 하나는 보조 그룹 참가자가 더 많은 코드 라인을 생성하고 과제에서 더 많은 기능을 완료하여 더 생산적이라는 것입니다.

Garg는 "Assisted 그룹의 사용자는 더 많은 기능 테스트를 통과하고 더 많은 기능 코드를 생성했습니다."라고 말하면서 이러한 종류의 결과는 보조 코딩 도구를 찾고 있는 회사가 이를 배포할지 여부를 결정하는 데 도움이 될 수 있다고 덧붙였습니다.

또 다른 하나는 연구원들이 제어, 보조 및 자동 조종 장치 그룹에서 생성된 출력을 구별할 수 있다는 것입니다. 우려 교육 환경에서의 AI 파워 부정 행위에 대해.

boffins는 또한 AI 도구가 사용자 오류의 맥락에서 고려되어야 함을 발견했습니다. "사용자는 버그를 포함할 수 있는 프롬프트를 제공하고, '완성된' 프로그램에서 끝나는 버그가 있는 프롬프트를 수락하고, 나중에 제거되는 버그를 수락합니다."라고 이 문서는 말합니다. "경우에 따라 사용자는 모델이 제안한 것보다 더 많은 버그를 갖게 됩니다!"

이 라인을 따라 추가 작업을 기대합니다. ®

타임 스탬프 :

더보기 등록