← 최신 논문
💻 computer science

How Secure is Code Generated by ChatGPT?

이 논문은 ChatGPT 가 생성한 코드가 잠재적 취약점을 인지하고 있음에도 불구하고 특정 공격에 충분히 견고하지 않을 수 있음을 실험을 통해 규명하고, 프롬프트를 통한 보안 개선 가능성 및 윤리적 측면을 논의합니다.

원저자: Raphaël Khoury, Anderson R. Avila, Jacob Brunelle, Baba Mamadou Camara

게시일 2026-04-09
📖 3 분 읽기☕ 가벼운 읽기

원저자: Raphaël Khoury, Anderson R. Avila, Jacob Brunelle, Baba Mamadou Camara

원본 논문은 CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/) 라이선스로 제공됩니다. 이것은 아래 논문에 대한 AI 생성 설명입니다. 저자가 작성하거나 승인한 것이 아닙니다. 기술적 정확성을 위해서는 원본 논문을 참조하세요. 전체 면책 조항 읽기

🍳 1. 실험의 시작: "요리사에게 요리를 시켰다"

연구진들은 ChatGPT 를 마치 신입 요리사처럼 대했습니다.

  • 상황: "이 재료를 써서 맛있는 스테이크 (프로그램) 를 만들어줘."라고 요청했습니다.
  • 조건: "보안 (위생) 에 신경 써서 만들어줘"라고 특별히 지시하지 않았습니다. 그냥 "요리해 줘"라고만 했죠.
  • 결과: 요리사가 만든 스테이크를 보니, 위생 기준에 미치지 못하는 경우가 많았습니다.

🔍 2. 실험 결과: "보안 구멍이 숭숭 뚫려 있다"

ChatGPT 가 만든 21 개 프로그램 중, 처음부터 안전했던 것은 **5 개 (약 24%)**뿐이었습니다. 나머지 16 개는 심각한 보안 구멍이 있었습니다.

  • 비유: 마치 열쇠가 문고리에 꽂혀 있는 집이나, 창문이 열려 있는 금고를 만든 것과 비슷합니다.
  • 구체적인 예시:
    • SQL 인젝션 (데이터베이스 해킹): ChatGPT 가 만든 코드는 사용자의 입력을 그대로 데이터베이스에 넣어서, 해커가 "나를 관리자야!"라고 속이면 진짜 관리자가 되어버리는 구멍이 있었습니다.
    • 메모리 손상: C/C++ 언어로 만든 프로그램 중에는, 해커가 특정 입력을 넣으면 프로그램이 붕괴되거나 악성 코드를 실행할 수 있는 구멍이 있었습니다.
    • 암호화 실수: 비밀번호를 저장할 때 암호화 없이 그대로 저장하거나, 같은 비밀번호를 여러 곳에 사용하는 실수를 저지르기도 했습니다.

🗣️ 3. 흥미로운 발견: "모르고 있다가, 물어보면 안다"

가장 재미있는 점은 ChatGPT 의 이중성입니다.

  • 초기 반응: "이 코드를 만들어줘"라고 하면, 보안 구멍이 있는 코드를 뚝딱 만들어냅니다. 마치 "위생이 중요하다는 걸 모르거나, 귀찮아서 생략한" 요리사 같습니다.
  • 질문 후 반응: 하지만 연구진이 **"이 코드가 해커에게 먹히지 않을까?"**라고 물어보면, ChatGPT 는 순간적으로 깨닫습니다. "아! 제가 실수했네요. 해커가 이 부분을 공격할 수 있군요."라고 인정하고, 정확한 해결책을 설명해 줍니다.
  • 수정 후: 연구진이 "그럼 안전한 버전으로 다시 만들어줘"라고 하면, 대부분의 경우 안전한 코드를 만들어냈습니다.

핵심 메시지: ChatGPT 는 보안을 '알고' 있지만, 스스로 '생각해서' 적용하지는 않습니다. 사용자가 "안전하게 만들어줘"라고 명시적으로 요청해야만 안전한 코드를 줍니다.

⚠️ 4. 위험한 상황: "초보자를 위한 함정"

이 연구는 초보 개발자학생들에게 큰 위험이 될 수 있음을 경고합니다.

  • 비유: 만약 초보자가 ChatGPT 가 만든 코드를 그대로 복사해서 웹사이트를 만든다면? 그 웹사이트는 해커에게 문을 활짝 열어둔 상태가 됩니다.
  • 문제점: ChatGPT 는 해킹을 위한 악성 코드는 만들어주지 못하게 막혀 있지만, 실수로 만들어지는 취약한 코드는 막아주지 않습니다. 오히려 "이건 위험하니까 고쳐야 해요"라고 말해주지만, 코드를 고쳐주는 건 사용자의 몫입니다.
  • 윤리적 딜레마: ChatGPT 는 "해킹 코드는 못 만들어줘"라고 거절하지만, "해킹당하기 쉬운 코드는 만들어줘"라는 모순을 보입니다.

💡 5. 결론: "훌륭한 조교지만, 아직 독립은 못 한다"

연구진은 다음과 같이 결론 내립니다.

  1. ChatGPT 는 아직 완벽한 개발자가 아닙니다. 보안 전문가가 아닌 초보자가 ChatGPT 에게 맡긴 코드는 보안 사고의 온상이 될 수 있습니다.
  2. 교육 도구로는 훌륭합니다. "왜 이 코드가 위험한지?", "어떻게 고쳐야 안전한지?"를 물어보면 ChatGPT 는 훌륭한 선생님처럼 설명해 줍니다.
  3. 사용법: ChatGPT 를 사용할 때는 **"무조건 믿지 말고, 항상 검증하라"**는 원칙이 필요합니다.
    • 코드를 받아서 바로 쓰지 말고, **"이 코드는 안전한가?"**라고 다시 물어보세요.
    • **"이 취약점을 막아줘"**라고 구체적으로 지시하세요.

📝 한 줄 요약

"ChatGPT 는 코드를 잘 짜지만, 보안은 '잊어버리는' 초보 요리사입니다. 우리가 '위생 (보안)'을 꼭 챙겨달라고 말해주지 않으면, 식중독 (해킹) 이 날 수 있으니 항상 확인해야 합니다."

연구 분야의 논문에 파묻히고 계신가요?

연구 키워드에 맞는 최신 논문의 일일 다이제스트를 받아보세요 — 기술 요약 포함, 당신의 언어로.

Digest 사용해 보기 →