01
AI 생성 코드와 보안
인공지능기초 · 학기말 발표
AI가 만든 코드,
그대로 믿어도 될까?
생성 속도보다 중요한 것은 잘못된 입력과 권한을 알아보는 힘입니다.
오늘의 핵심AI는 답을 제안한다.
안전은 사람이 확인한다.
안전은 사람이 확인한다.
이해요구검증
슬라이드 1 / 29: 코드는 빨라졌다. 검토는 따라왔는가?
인공지능기초 · 학기말 발표
생성 속도보다 중요한 것은 잘못된 입력과 권한을 알아보는 힘입니다.
기능이 동작하는지만 확인합니다.
입력, 시간, 사용자 권한까지 확인합니다.
기능 테스트만 통과한 코드는 아직 완성된 코드가 아닙니다.
빨라진 부분은 작성입니다. 서비스 규칙을 이해하고 위험을 찾는 일은 그대로 남습니다.
다음 줄을 이어 씀
요청을 코드로 바꿈
기존 동작을 바꿈
확인용 코드를 만듦
AI 제안이 들어간 순간부터 사람의 검토 대상입니다.
“예매 화면을 만들어줘”
비슷한 코드 모양을 찾음
안전 여부와 별개로 완성
자연스러운 코드와 서비스 규칙에 맞는 코드는 같지 않습니다.
“콘서트 예매 기능을 만들어줘.”
화면과 버튼은 생기지만 마감과 권한 규칙이 비어 있습니다.
“마감 시각과 권한을 서버에서 확인해줘.”
어디에서 무엇을 검사할지 기준이 생깁니다.
예전에 많이 쓰였지만 지금은 위험한 코드를 다시 제안할 수 있습니다.
예매 마감과 관계자 범위는 프로젝트마다 다릅니다.
누가 어떤 정보에 접근해도 되는지 따로 알려줘야 합니다.
여러 AI 코딩 도구가 만든 결과를 언어별로 확인했습니다.
도구 이름보다 중요한 질문은 하나입니다.
“이 코드가 우리 서비스 규칙을 지키는가?”입력은 끝까지 ‘글자 데이터’로만 다뤄야 합니다.
입력과 데이터베이스 명령을 섞지 않습니다.
예매번호처럼 정해진 형식만 받습니다.
잘못된 입력을 억지로 처리하지 않습니다.
사용자의 신원을 확인합니다.
기능과 정보마다 허용 범위를 확인합니다.
로그인한 일반 회원도 관계자 전용 예매에는 들어가면 안 됩니다.
정상적인 로그인에도 쓰입니다. 안의 승인 값을 서버 확인 없이 믿는 것이 문제입니다.
화면 상태에는 편하지만 관계자 권한을 증명할 수는 없습니다.
서버가 확인하지 않은 채 신뢰한 클라이언트 권한 값
편리함과 함께 신뢰해야 할 범위도 넓어집니다.
이름이 비슷한 가짜가 아닌지 확인
공식 출처와 최근 변경 확인
공개된 보안 문제 확인
예상하지 않은 변경 방지
여러 단계를 스스로 이어서 실행하는 AI
읽기와 수정
프로그램 실행
정보 전송
한 번의 잘못된 판단이 여러 행동으로 이어질 수 있습니다.
프로젝트 전체 대신 작업 폴더만 허용
삭제·배포·외부 전송은 사람에게 질문
나중에 원인과 변경 내용을 확인
제공된 설명을 바탕으로 디미고 가상 서비스에서 같은 설계 문제를 재현했습니다.
브라우저 안의 가짜 데이터만 쓰는 재현 화면입니다. 시작 상태는 예매 기간 종료 · 좌석 선택 불가입니다.
서버가 마감 시각을 확인하면 직접 주소로 들어가도 거절해야 합니다.
브라우저가 사이트에 보내는 작은 메모
document.cookie='dimigo_partner_access=approved; path=/'좌석 화면 열기 ↗현재 탭을 여는 동안 브라우저가 보관하는 값
document.cookie='dimigo_partner_access=; Max-Age=0; path=/'sessionStorage.setItem('dimigo_booking_access','approved')두 시연이 다음 확인에 영향을 주지 않도록 브라우저의 임시 승인 값을 지웁니다.
document.cookie='dimigo_partner_access=; Max-Age=0; path=/'sessionStorage.removeItem('dimigo_booking_access')사용자가 바꿀 수 있음
서버에 묻지 않음
예매 규칙 우회
서버의 마감 시각 확인 · 관계자 신원 확인 · 요청마다 권한 확인
실제 운영 서비스에 권장하는 구조입니다. 브라우저 화면이 아니라 서버가 접근 여부를 판단합니다.
예매 기간 안인가?
서버가 발급하고 확인했는가?
이 공연에 허용된 사람인가?
“예매 종료 시각과 관계자 권한을 서버에서 매 요청마다 확인해줘.
쿠키와 브라우저 저장값만으로 접근을 허용하지 마.
허용되는 경우와 거절되는 경우의 테스트도 함께 작성해줘.”
요구를 쓸 수 있으려면 어떤 값이 바뀔 수 있고 어디에서 막아야 하는지 먼저 알아야 합니다.
정상적으로 허용
항상 거절
결과는 계속 거절
서버 확인 후 허용
같은 규칙 적용
지식이 있어야
개발할 수 있다.
기초가 없으면
AI로 개발할 수 없다.
보안 요구를 지시하려면디미고 사례 다시 보기 ↗
취약점이 어디서 왜 생기는지 먼저 알아야 한다.