안녕하세요 구독자님!!
9월 28일 저녁, 신한은행 모바일 홈페이지의 작은 조회 서비스 하나가 뚫리면서 30시간 동안 고객 25,729명의 이름, 연락처, 연소득, 대출한도가 빠져나갔어요 😨

아직 정확한 침투 기법은 조사 중이라, 이번 호에서는 국회에 제출된 침해사고 보고서를 바탕으로 신한은행 개인정보 유출 사고를 살펴보도록 하겠습니다!
🚨 핵심 요약 (Key Takeaways)
9월 28~30일, 신한은행 M신한의 대출모집인용 조회 서비스가 뚫려 고객 25,729명의 연소득, 대출한도 등이 유출됐고, 은행은 공격 시작 15시간 26분 뒤에야 감지했어요. 침투 기법과 AI 사용 여부는 아직 조사 중이에요.

🔍 신한은행 유출 사고 상세 분석
Step 1. 대출모집인용 간편조회 서비스가 뭐예요?
대출모집인은 은행 대신 고객의 대출 신청을 접수해주는 외부 영업 인력이에요. 신한은행은 모바일 홈페이지 ‘M신한’에 모집인이 자기가 접수한 고객의 대출 진행 상황을 확인하는 조회 서비스를 두고 있었어요.
금융위는 10월 4일 보도참고자료에서 이번 사고의 원인으로 대출모집인·위탁업체 같은 외부인력과 임직원이 쓰는 시스템을 지목했어요. 이런 시스템에 개인신용정보가 불필요하게 보관·조회되고 있었다는 거예요. 신한은행은 이번 사고가 신한 슈퍼SOL 같은 고객용 뱅킹 앱과는 무관하다고 밝혔어요.
Step 2. 달력으로 보는 2주 📅
공격은 월요일 저녁에 시작해 수요일 0시 15분에 끝났고, 그 뒤 보도, 당국 조사, 공격 도구 분석이 2주에 걸쳐 이어졌어요.

가장 긴박했던 30시간은 국회에 제출된 침해사고 보고서에 분 단위로 남아 있어요.

이후 금감원 검사와 경찰 내사, 국정감사까지 이어졌어요.
Step 3. 그래서, 어떻게 뚫렸나요?
신한은행이 국회에 제출한 보고서와 보도를 이어 보면, 해킹은 이렇게 진행됐어요.

금융보안원은 해커가 오픈소스 AI 침투 테스트 도구 ARTEX를 활용한 흔적을 확인했다고 밝혔어요. 다만 “AI가 스스로 공격한 것이 아니라 해커가 도구로 사용한 것”이라는 설명이고, 최종 조사 결과는 아직이에요. 아래는 공격 의심 서버에서 실제로 발견된 HTML 제목이에요.
ARTEX는 2026년 7월에 공개된 중국산 오픈소스 AI 침투 테스트 도구로, 목표를 주면 에이전트가 자산 파악 → 취약점 분석 → 도구 호출을 이어가요.
CrowdStrike는 공격자 서버의 열린 디렉터리에서 ARTEX 설정 파일과 AI 코딩 에이전트 세션 기록을 찾아냈고, 피해 사례로 "금융 브로커가 쓰는 대출 진행 조회 서비스"를 언급했어요 (은행 이름은 밝히지 않았어요). 공개된 도구 구성은 이래요.
- 지휘 도구 : ARTEX (주 모델 DeepSeek v4.1-flash)
- 보조 모델 : 별도 코딩 에이전트 세션에서 GLM-5.3, Grok 4.6
- 작업 지시 : 중국어 침투 테스트 프롬프트
- 인프라 : 홍콩 기반 서버 + 프록시 IP 9개
다만 실제 공격 스크립트나 특정 CVE는 공개되지 않았어요.
참고로 신한은행은 2024년 금감원 요청으로 ‘본인인증서비스 인증 우회 취약점’을 점검 및 조치한 이력이 있어요. 그때의 취약점과 이번 경로가 같은지는 확인되지 않았어요. 인증을 구체적으로 어떻게 우회했는지는 금감원 검사와 경찰 수사에서 밝혀질 거예요.
🔬 왜 뚫렸을까요?
정확한 우회 방식은 아직 조사 중이지만, 확인된 사실만 모아도 세 군데 구멍이 보여요.
① 기술 층 — ‘인증’도 약했고 ‘인가’도 허술했다
- 별도 인증서 없이 쓰는 서비스였고, 휴대전화 본인확인 절차도 우회됐어요.
- 고객번호 같은 조회값만 바꿔 넣어도 다른 사람의 정보가 조회됐어요. ‘이 사람이 이 고객 정보를 봐도 되나’를 걸러내는 단계가 제 역할을 못 한 셈이에요.
- 한 서비스에서 얻은 고객번호가 고객연락처 조회 등 다른 서비스의 열쇠가 되면서, 작은 구멍들이 연쇄로 이어졌어요.
- 대출 진행 상황을 보는 서비스인데 주민번호·CI까지 나갔어요. 애초에 필요 이상의 정보가 조회되는 구조였던 거예요.
② 탐지 층 — 너무 늦게 알았고, IP 차단으로는 못 막았다
- 15시간 넘게 아무도 몰랐어요.
- 해외 IP를 막았지만 공격자는 8개 국가·지역의 IP를 쓰며 다른 경로로 조회를 이어갔고, 공격은 30시간 11분 만에야 끝났어요.
③ 관리 층 — 점검은 ‘통과’, 투자는 ‘최하위’
- 사전 취약점 점검에서는 문제가 나오지 않았고, 보안 평가 등급도 꾸준히 높았어요.
- 2025년 정보보호 예산 493억 원 중 317억 원(64.3%)만 썼고, 최근 5년 내내 5대 은행 중 가장 적었어요.
🛡️ 그럼, 이런 사고를 어떻게 막을 수 있을까요?
금융사·개발자 입장에서는요 👩💻
- 인증 강화 : 본인확인 결과는 서버가 검증하고, 중요 서비스에는 다중인증(MFA) 적용
- 권한 확인 : “이 요청자가 이 고객 정보를 볼 권한이 있나”를 매 요청 서버에서 확인하고, 연속 대입은 호출 제한으로 차단
- 정보 최소화 : 외부인력용 시스템에는 꼭 필요한 정보만, 불필수 외부접근은 차단
- 24시간 관제 : 연속 조회·심야 대량 호출에 실시간 경보
아래는 2번을 보여주는 일반적인 예시예요.
# ✅ 일반적인 방어 예시: 권한 확인 + 호출 제한
@app.get("/api/loan-status/<app_id>")
@login_required
@rate_limit("30/hour", key="user")
def loan_status(app_id):
app = LoanApplication.get(app_id)
if app is None or app.broker_id != current_user.broker_id:
abort(404) # 내가 접수한 건이 아니면 거부
return {"status": app.status} # 필요한 항목만구독자님 입장에서는요 🙋♀️
- 신한은행 홈페이지 ‘고객정보 유출 조회’ 메뉴나 슈퍼SOL 앱에서 내 정보 포함 여부 확인 (신고 1544-2946)
- 대출·금리 인하를 내세운 연락은 무시하고, 공식 앱·대표번호로 직접 확인
📚 보안 용어 정리
- 인증 vs 인가 : 인증은 “누구인가”를, 인가는 “그 사람이 무엇에 접근할 수 있나”를 확인하는 절차
- 에이전틱 침투 테스트 : AI 에이전트가 정찰, 취약점 탐색, 도구 실행을 스스로 이어가는 자동화 모의해킹 (예: ARTEX)
- MFA (다중인증) : 비밀번호에 휴대폰, 생체인증 같은 다른 수단을 더해 본인을 확인하는 방식
📎 더 알고 싶다면, 이 자료를 찾아보세요!
- 금융위원회 보도참고자료 : 10/2 · 10/4 · 10/14
- CrowdStrike 분석 보고서
- 신한은행 국회 제출 보고서 내용 관련 기사
점검 등급은 매년 높았지만 실제 공격은 15시간 동안 아무도 몰랐다는 사실이, 서류가 아닌 공격자의 눈으로 점검해야 하는 이유를 보여주는 것 같아요 🕵️♀️
끝까지 읽어주셔서 감사합니다. 다음 호에서 뵙겠습니다 :)
의견을 남겨주세요