신한은행에서 약 2만5천 명의 개인정보가 유출됐습니다.
뚫린 곳은 우리가 쓰는 일반 인터넷뱅킹이 아니라 대출모집인이 사용하는 별도 서비스였다고 합니다.
본인 확인 절차를 우회해서 이름, 전화번호, 연소득, 대출한도 같은 정보에 접근했고 일부 주민등록번호와 CI도 유출됐습니다.
이번 사건에서 눈에 들어온 건 공격 서버에서 AI를 이용한 자율 침투 도구의 흔적이 발견됐다는 점입니다.
아직 이 도구가 실제 공격에 사용됐다고 확정된 건 아닙니다.
그래도 바이브코딩으로 서비스를 만드는 입장에서는 남의 이야기 같지가 않습니다.
요즘 AI로 로그인 붙이는 거 정말 쉽습니다.
"구글 로그인 붙여줘."
"관리자 페이지 만들어줘."
"회원만 볼 수 있게 해줘."
몇 마디 하면 금방 만들어집니다.
문제는 화면에서 로그인이 되는 것과 실제로 안전한 건 완전히 다른 이야기라는 겁니다.
로그인했는지만 확인하고 끝내면 안 되고,
서버에서도 매 요청마다 인증과 권한을 확인해야 합니다.
특히 관리자 API나 개인정보를 조회하는 API는 URL을 직접 호출하거나 ID 하나 바꿨다고 다른 사람 데이터가 나오면 안 됩니다.
AI가 코드를 만들어줬다고 이 부분까지 제대로 되어 있다고 생각하면 더 위험합니다.
앞으로는 공격하는 쪽도 AI를 씁니다.
사람이라면 굳이 작은 바이브코딩 서비스까지 찾아와서 하나씩 뒤져보지 않을 수도 있습니다.
AI 에이전트는 다릅니다.
24시간 자동으로 돌아다니면서 취약한 서버를 찾는다면 서비스가 크고 작은 건 별로 중요하지 않습니다.
바이브코딩으로 개발 속도가 몇 배 빨라진 만큼 보안까지 몇 배 빨라진 건 아닙니다.
특히 인증, 권한, 개인정보 처리.
여기만큼은 AI가 만들어준 코드 그대로 믿고 넘어가면 안 됩니다.
바이브코딩으로 서비스 운영 중이라면 이것만이라도 한번 확인해보세요.
☑️ 로그인 안 한 상태에서 API를 직접 호출해도 데이터가 나오지 않는지
☑️ 다른 사람의 user ID나 게시물 ID로 바꿔 요청했을 때 데이터가 보이지 않는지
☑️ 일반 사용자 계정으로 관리자 API를 호출할 수 없는지
☑️ 관리자 페이지 주소만 숨겨놓고 보안이 끝난 건 아닌지
☑️ 인증과 권한 체크를 프론트에서만 하고 있지 않은지
☑️ Supabase/Firebase 같은 DB의 접근 정책이 전체 허용으로 되어 있지 않은지
☑️ API 키나 DB 비밀번호가 프론트 코드나 GitHub에 노출되어 있지 않은지
☑️ 비밀번호 찾기나 인증 링크를 다른 사람이 악용할 수 없는지
☑️ 탈퇴한 사용자나 만료된 세션으로 계속 API 호출이 가능한지
☑️ 꼭 필요하지 않은 개인정보까지 저장하고 있지는 않은지
하나라도 잘 모르겠다면 AI한테
"내 프로젝트의 인증, 권한, API, DB 접근 정책을 보안 관점에서 전부 점검해줘."
라고 시켜서 확인해보는 것도 좋습니다.
다만 마지막 판단까지 AI한테 맡기지는 마세요.
앗 틀린게 신한이에용? 아이구 젠장 거기밖에 안쓰는뎅