AI 코드 작성으로 시간과 노력이 절약됩니다.
그런데 최근 스탠포드 대학의 컴퓨터 과학자들은 프로그래머가 AI 보조자를 사용하여 작성한 코드가 실제로 허점으로 가득 차 있다는 사실을 발견했습니다.
Github Copilot과 같은 AI 도구의 도움을 받아 코드를 작성하는 프로그래머는 혼자 작성하는 프로그래머만큼 안전하거나 정확하지 않다는 것을 발견했습니다.
"사용자가 AI 보조자를 사용하여 더 안전하지 않은 코드를 작성합니까?" 기사에서 Stanford University는 Neil Perry, Megha Srivastava, Deepak Kumar 및 Dan Boneh를 비난합니다. 최초로 대규모 사용자 설문조사를 실시했습니다.
문서 링크: https://arxiv.org/pdf/2211.03622.pdf
연구의 목표는 사용자가 AI 코드 도우미와 상호 작용하여 다양한 보안 작업을 해결하는 방법을 탐색하는 것입니다. 다른 프로그래밍 언어.
저자는 논문에서 다음과 같이 지적합니다.
우리는 일반적으로 AI 도우미를 사용하는 참가자가 AI 도우미를 사용하지 않는 참가자보다 보안 취약점, 특히 문자열 암호화 및 SQL 주입의 결과가 더 많다는 것을 발견했습니다. 동시에 AI 비서를 사용한 참가자는 자신이 보안 코드를 작성했다고 믿을 가능성이 더 높았습니다.
이전에 뉴욕 대학의 연구원들은 인공 지능 기반 프로그래밍이 다양한 조건에서의 실험에서 안전하지 않다는 것을 보여주었습니다.
2021년 8월 "키보드에서 잠들어 있나요? GitHub Copilot 코드 기여의 보안 평가"라는 논문에서 Stanford 학자들은 Copilot의 도움으로 만들어진 특정 89가지 사례에서 약 40%의 컴퓨터 프로그램이 잠재적인 보안 위험과 악용 가능한 취약점.
그러나 그들은 이전 연구는 제한된 단서 세트만 고려하고 Python, C 및 Verilog의 세 가지 프로그래밍 언어만 포함했기 때문에 범위가 제한적이라고 말했습니다.
스탠포드 학자들은 NYU의 후속 연구도 인용했는데, 그 이유는 덜 강력한 codex-cushman-001 모델이 아닌 OpenAI의 codex-davinci-002 모델에 초점을 두었기 때문입니다. 둘 다 GitHub Copilot에 있습니다. , GitHub Copilot 자체는 GPT-3 언어 모델의 미세 조정된 후손입니다.
구체적인 질문에 대해 수신 그룹의 67%만이 정답을 제시한 반면, 통제 그룹의 79%는 정답을 제시했습니다.
그림은 각 질문에 대한 정답 비율(%)을 보여줍니다. 각 열의 쌍을 이루는 값은 실험군(파란색)/대조군(녹색)에 해당합니다.
결과에 따르면 실험 그룹은 "안전하지 않은 솔루션을 제공할 가능성이 훨씬 더 높았으며(p
이 연구가 어떻게 수행되었는지 살펴 보겠습니다.
우리가 선택한 문제는 짧은 시간에 해결될 수 있으며 광범위한 잠재적인 보안 오류를 다룰 수 있습니다.
우리가 확인하고 싶은 핵심 영역은 라이브러리 사용(암호화/복호화), 사용자 제어 데이터 처리(샌드박스 디렉터리의 사용자 제공 경로, 스크립트 삽입), 일반적인 웹 취약점(SQL 삽입, 스크립트 삽입)입니다. 주입) 및 메모리 관리 및 기타 기본 문제(버퍼 오버플로, 정수 오버플로 등).
우리의 주요 목표는 다양한 프로그래밍 경험을 가진 참가자를 모집하여 보안 관련 프로그래밍 문제에 접근하는 방법을 이해하는 것입니다.
우리는 미국의 두 대형 대학에서 학부생과 대학원생을 모집했으며, 4개 회사에서 전문적으로 코딩하는 여러 과목을 모집했습니다.
아래 사진은 실험 대상자의 인구 통계 차트를 보여줍니다.
참가자들에게 프로그래밍 지식이 있는지 확인하기 위해 위에서 언급한 보안 및 프로그래밍 언어 영역을 다루는 연구 전에 짧은 사전 심사 질문을 했습니다.
연구 관리자의 컴퓨터에서 실행되는 가상 머신을 통해 참가자에게 학습 도구를 제공했습니다.
각 참가자에 대한 풍부한 로그를 생성하는 것 외에도 참가자의 동의를 받아 과정을 화면 녹화 및 오디오 녹음합니다.
참가자들이 각 질문을 완료하면 코드 작성 경험을 설명하고 몇 가지 기본 인구통계 정보를 묻는 간단한 종료 설문조사에 참여하라는 메시지가 표시됩니다.
연구 결론
마지막으로 설문조사 후 질문에 대한 참가자의 반응을 분석하는 데 사용되었으며, 여기에는 솔루션의 정확성과 안전성에 대한 믿음이 포함되었습니다. 모든 작업에 대한 보안 코드를 생성하는 능력.
그림은 문제 해결의 정확성과 안전성에 대한 피험자의 판단을 보여주며, 동의 정도를 나타내는 다양한 색상의 막대가 있습니다.
통제 그룹과 비교하여 제목이 있는 참가자 AI 도우미에 액세스한 사람은 대부분의 프로그래밍 작업에 보안 취약점을 도입할 가능성이 더 높았지만 안전하지 않은 답변을 안전하다고 평가할 가능성도 더 높았습니다.또한 AI 도우미에 대한 쿼리 생성(예: 접근성 기능 제공 또는 매개변수 조정)에 더 많은 투자를 한 참가자가 궁극적으로 안전한 솔루션을 제공할 가능성이 더 높다는 사실을 발견했습니다.
마지막으로 이 연구를 수행하기 위해 우리는 AI 기반 코드 생성 도구를 사용하여 소프트웨어를 작성하는 사람들의 결과를 탐색하도록 특별히 설계된 사용자 인터페이스를 만들었습니다.
우리는 사용자가 범용 AI 코드 도우미와 상호 작용하기 위해 선택할 수 있는 다양한 방법에 대한 추가 연구를 장려하기 위해 UI와 모든 사용자 프롬프트 및 상호 작용 데이터를 Github에 공개했습니다.
위 내용은 89번의 실험으로 오류율이 무려 40%에 달합니다! 스탠포드 최초의 대규모 조사에서 AI 코딩의 취약점 밝혀의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!