Can AI Write Compliant Code, and to What Extent? Evaluating SOC 2 Compliance of Claude Fable 5, Claude Opus 4.8, and Claude Opus 5 Across Four Use Cases
본 연구는 네 가지 유스케이스에 걸쳐 세 가지 프런티어 AI 모델의 SOC 2 준수 여부를 평가하며, 자발적인 코드 생성은 종종 치명적인 취약점을 포함하고 핵심 보안 통제를 놓치는 경우가 많으나, SOC 2 표준을 참조하는 단 한 문장을 추가하는 것만으로도 준수율이 86~100%로 크게 향상되고 안전하지 않은 구조가 제거되는 반면, 이는 모델의 즉각적인 작업 개념 범위를 벗어난 통제 항목을 해결하는 데는 실패하며 자동화된 패턴 매칭 점수 방식 대신 의미론적 검증을 선호해야 한다는 점을 강조한다는 것을 밝혀냈다.
원본 논문은 CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/) 라이선스로 제공됩니다. 이것은 아래 논문에 대한 AI 생성 설명입니다. 저자가 작성하거나 승인한 것이 아닙니다. 기술적 정확성을 위해서는 원본 논문을 참조하세요. 전체 면책 조항 읽기
보이지 않는 안전망
당신이 집을 지어줄 아주 똑똑하고 지칠 줄 모르는 견습공을 고용했다고 상상해 보세요. 이 견습공인 인공지능은 인간 팀보다 더 빠르게 설계도를 작성하고, 콘크리트를 섞고, 창문을 설치할 수 있습니다. 하지만 여기 함정이 있습니다. 이 견습공은 건축 법규에 대해 한 번도 들어본 적이 없습니다. 이 AI는 보기 좋고 제대로 서 있는 집을 만드는 법은 알지만, 연기 감지기를 설치하거나, 뒷문을 잠그거나, 지진에 대비해 기초를 보강하는 것을 잊어버릴 수도 있습니다. 소프트웨어의 세계에서도 팀들이 AI에게 코드를 작성하라고 요청할 때 정확히 이런 일이 일으로 벌어집니다. 코드는 작동하지만, 데이터를 해커로부터 안전하게 지키기 위해 필요한 '보이지 않는 안전 규칙'이 빠져 있을 수 있습니다.
이 논문은 컴퓨터 과학의 특정 분야인 **컴플라이언스(compliance)**를 깊이 있게 다룹니다. 이는 단순히 "규칙을 따르는 것"을 뜻하는 멋진 말입니다. 구체적으로, 연구진들은 기업들이 고객 데이터를 보호하고 있음을 증명하기 위해 사용하는 규칙 세트인 SOC 2를 조사했습니다. 그들은 두 가지를 알고 싶었습니다. 만약 당신이 안전에 대해 언급하지 않고 AI에게 코드를 쓰라고 한다면, AI가 의도치 않게 규칙을 따르게 될까요? 그리고 단 한 문장, "이것은 SOC 2 표준을 준야해야 합니다"라는 말을 추가하는 것만으로 모든 문제가 해결될까요? 이것은 마치 이렇게 묻는 것과 같습니다. "요리사에게 샌드위치를 만들라고 했을 때, 요리사가 손을 씻는 것을 기억할까요? 그리고 내가 '위생 규정'이라고 속삭이면, 요리사가 갑자기 장갑을 끼는 것을 기억할까요?"
위대한 AI 코드 테스트
답을 찾기 위해, Vanta의 연구진들은 강력한 AI(Claude Fable 5, Claude Opus 4.8, Claude Opus 5라고 명명됨)의 세 가지 버전을 요리 경연 대회의 참가자처럼 취급하며 거대하고 통제된 실험을 설정했습니다. 그들은 각 AI에게 네 가지 서로 다른 "레시피"를 코딩하도록 주었습니다: 클라우드 스토리지를 관리하는 도구, 로그인 시스템, 데이터베이스 설정, 그리고 파일 업로드 핸들러입니다.
연구진은 모든 레시피에 대해 테스트를 두 번 실시했습니다. 첫 번째 라운드에서는 "파일을 업로드하는 도구를 작성하라"와 같은 중립적인 프롬프트를 주었습니다. 두 번째 라운드에서는 동일한 프롬프트에 딱 한 문장을 추가했습니다: "이 데이터는 민감하며 SOC 2 표준을 준수해야 합니다."
연구진은 엄격한 검사관 역할을 수행했습니다. 그들은 단순히 코드가 작동하는지 확인하기 위해 실행해 본 것이 아니라, 모든 줄을 하나하나 체크리스트와 대조하여 검사했습니다. 그들은 암호화(도둑이 읽을 수 없도록 데이터를 암호화하는 것), 액세스 제어(적절한 사람만 파일에 접근할 수 있도록 하는 것), 로깅(누가 무엇을 했는지 기록하는 것)과 같은 항목들을 확인했습니다.
발견된 사실: "마법의 문장"과 사각지대
결과는 놀라운 희소식과 매우 중요한 경고가 섞여 있었습니다.
1. "마법의 문장"은 놀라운 효과를 발휘한다 (하지만 전부는 아니다)
안전 지침 없이 코드를 작성하도록 요청받았을 때, AI는 복불복이었습니다. 작업에 따라 코드는 47%에서 88% 사이의 확률로 규칙을 따랐습니다. 비밀번호 보호와 같은 기초적인 것에는 능숙했지만, 클라우드 스토리지 버킷을 폐쇄하는 것과 같이 지루하고 눈에 보이지 않는 작업에는 형편없었습니다.
하지만 연구진이 SOC 2에 관한 단 한 문장을 추가하자, AI의 성능이 급등했습니다. 모든 테스트에서 준수율이 86%에서 100% 사이로 뛰어올랐습니다. 이 한 문장은 23~50 퍼센트 포인트의 개선 효과를 가져왔습니다. 마치 AI가 갑자기 깨어나서 "아 맞다, 헬멧을 써야지!"라고 기억해 낸 것과 같았습니다. 결정적으로, 이 문장은 오픈 디버거(open debuggers)나 인증되지 않은 다운로드(unauthenticated downloads)와 같이 연구진이 발견한 모든 불안전한 구조를 제거했습니다.
2. "관용구(Idiom)" 문제
연구는 AI가 코드를 작성하는 "일반적인 방식"의 일부인 규칙을 따른다는 것을 발견했습니다. 예를 들어, 비밀번호를 해싱(비밀번호를 훔칠 수 없도록 암호화하는 것)하는 것은 로그인 시스템을 작성하는 일반적인 방식이기 때문에 거의 항상 기억해 냈습니다. 하지만 클라우드 스토리지 버킷에 추가 잠금을 설치하거나 다요소 인증(MFA) 훅을 설정하는 것과 같이 "표준 레시피"에 포함되지 않은 것들은 잊어버렸습니다.
"마법의 문장"이 있어도, 모델의 기본 개념 밖에 있는 안정적인 제어 장치들은 여전히 누락된 상태로 남았습니다. MFA 훅, 보안 쿠키 플래그, 계정 생애주기 관리와 같은 특정 기능들은 표준을 언급한다고 해서 자동으로 추가되지 않았으며, 프롬프트에서 개별적으로 이름을 불러주어야 했습니다. 마법의 문장은 큰 그림과 숨겨진 위험을 해결해주었지만, 이름을 직접 부르지 않으면 모든 작고 구체적인 세부 사항을 채울 수는 없었습니다.
3. "보이지 않는" 위험
여기서 무서운 점이 드러납니다. 16번의 "중립적" 테스트(안전에 대해 언급하지 않은 테스트) 중 3번의 경우, AI는 겉보기에는 멀쩡해 보이지만 실제로는 위험한 코드를 작성했습니다.
- 한 AI는 "디버거(debugger)"를 열어두었는데, 이는 집에 뒷문을 열어두어 누구나 컴퓨터를 제어할 수 있게 만드는 것과 같습니다.
- 다른 두 AI는 누가 클릭하는지 확인하지 않는 다운로드 링크를 생성하여, 누구나 다른 사람의 개인 파일을 다운로드할 수 있게 했습니다.
- 또 다른 AI는 운영 환경이 아닌 곳에서 종료하려고 하면 모든 데이터를 실수로 삭제하게 되는 데이터베이스를 생성했습니다.
연구진의 첫 번째 자동 스캐너는 이러한 위험한 실수들을 모두 놓쳤습니다. 사람이 자세히 들여다본 후에야 비로소 코드가 잘못되었다는 것을 깨달을 수 있었습니다. 이는 표준 컴퓨터 스캐너가 AI 코드의 이러한 "보이지 않는" 오류를 잡아낼 만큼 똑똑하지 않다는 것을 증명합니다.
4. 모델은 크게 중요하지 않다
연구진은 가장 최신의 똑똑한 AI(Opus 5)가 훨씬 더 나을 것이라고 예상했습니다. 하지만 그 차이는 미미했습니다. "마법의 문장"(프롬프트)이 AI 모델 자체를 바꾸는 것보다 훨씬 더 큰 차이를 만들었습니다. 만약 컴플라이언스를 준수하는 코드를 얻으려 한다면, 더 새로운 AI 모델을 선택하는 것보다 단순히 규칙을 따르라고 말하는 것이 더 도움이 됩니다.
결론
이 논문은 AI가 훌륭한 건축가이지만, 안전 검사관은 아니라는 점을 가르쳐 줍니다. 만약 안전에 대해 언급하지 않고 무언가를 만들라고 한다면, AI는 집을 세우기는 하겠지만 연기 감지기나 잠금장치가 없을 수도 있습니다. 규칙을 따르라는 단 한 문장을 추가하면, AI는 갑자기 대부분의 안전 장비를 설치하고 위험한 뒷문을 제거할 것입니다.
하지만 여전히 간극은 존재합니다. AI는 이름을 직접 부르지 않는 한, 특정하고 복잡한 안전 기능(MFA나 특정 쿠키 설정 등)을 자동으로 설치하지 않습니다. 그리고 가장 중요한 것은, 컴퓨터 프로그램이 AI의 작업을 검사하도록 믿어서는 안 된다는 것입니다. AI는 단순한 스캐너가 놓칠 수 있는 교묘한 방식으로 위험한 실수를 숨길 수 있기 때문에, 반드시 사람이 면밀히 살펴봐야 합니다.
AI를 사용하여 코드를 작성하는 모든 이들에게 주는 교훈은 간단합니다: AI가 규칙을 알고 있다고 가정하지 마십시오. 당신은 규칙을 알려주어야 하며, 그 후에는 반드시 그 작업을 재검토해야 합니다. 왜냐면 완벽해 보이는 집이라도 숨겨진 트랩도어가 있을 수 있기 때문입니다.
연구 분야의 논문에 파묻히고 계신가요?
연구 키워드에 맞는 최신 논문의 일일 다이제스트를 받아보세요 — 기술 요약 포함, 당신의 언어로.