은행 시스템은 AI 기반 공격에 대비되어 있지 않다
요약
핀테크 기업의 실제 보안 사고 사례를 통해 현재 금융 시스템의 취약성을 분석합니다. 기존의 사기 탐지 시스템과 정부의 취소 메커니즘이 AI 기반의 정교한 공격과 사회 공학적 수법을 막기에 역부족임을 경고합니다.
핵심 포인트
- 자격 증명 유출 및 사회 공학적 공격이 주요 위협임
- 기존 금융 사기 방지 메커니즘의 느린 대응 속도 문제
- 일반적인 사기 탐지 시스템은 특정 비즈니스 패턴을 반영하지 못함
- AI를 활용한 자율적 취약점 탐색 공격의 등장 가능성
지난 두 달 동안 제가 근무하는 핀테크 회사에서 세 번의 보안 사고를 경험했습니다.
어떤 회사는인지, 정확히 얼마가 관련되었는지, 어떤 파트너들이 실패했는지는 말씀드리지 않겠습니다. 하지만 저는 불길 한가운데에 있었던 사람으로서 무슨 일이 일어났는지, 그리고 그것이 저에게 무엇을 생각하게 했는지 솔직하게 공유하고자 합니다.
중소 규모의 핀테크 회사들 사이에는 조용한 패턴이 있습니다. 엔지니어링은 빠르게 성장하고, 제품은 좋으며, 개발자들은 숙련되어 있고, 보안은 계속해서 나중으로 미뤄집니다. 이는 태만함 때문이라기보다는, 무시하는 비용이 실제로 문제가 되는 날까지는 추상적으로 느껴지기 때문입니다.
실제 공격이 발생하는 방식
해커가 검은 터미널에서 필사적으로 타이핑하며 비밀번호를 시도하는 인기 있는 이미지가 있습니다. 현실은 훨씬 덜 영화 같고, 훨씬 더 불안합니다.
제가 경험한 세 건의 사고 중 어느 것도 무차별 대입 공격(brute force)을 수반하지 않았습니다.
그중 한 번은 저희 파트너사에서 자격 증명 데이터베이스가 유출되었습니다. 공격자는 이미 집 열쇠 사본을 가지고 와서, 침입할 필요조차 없었습니다. 그들은 우리가 막기 전에 상당한 금액의 돈을 계좌 간에 이동시키는 데 성공했습니다.
또 다른 경우에는 순수한 사회 공학(social engineering)이었습니다. 공격자가 어떻게든 고객의 자격 증명을 얻었고, 로그인하여 거래용 PIN 번호가 없다는 것을 깨달았습니다. 그리고 클라이언트인 척하는 지원 티켓을 열었으며, 신분증을 들고 있는 사진까지 보냈습니다. 저희 지원팀은 그 요청을 처리했습니다. 사용된 전화번호는 기록된 것과 달랐지만, 아무도 알아차리지 못했습니다.
어떤 시스템에서든 가장 취약한 고리는 항상 인간입니다. 세상 최고의 암호화 기술이라 할지라도 누군가 잘못된 전화를 받으면 소용이 없습니다.
현재의 방어책으로는 충분하지 않은 이유
각 사고 이후, 우리는 올바른 질문을 던졌습니다. 무엇이 실패했는가? 무엇이 이를 예방할 수 있었을까?
우리는 몇 가지 불편한 결론에 도달했습니다.
정부의 취소 메커니즘은 이러한 유형의 공격에 효과가 없다. 브라질에는 사기 거래를 추적하고 되돌리는 특별한 메커니즘이 있습니다. 이론적으로는 금융 시스템의 사기 방지 방패입니다. 하지만 실제로는 조치하는 데 며칠, 몇 주, 때로는 몇 달이 걸립니다. 유능한 공격자는 도난당한 잔액을 수십 개의 대포통장(mule accounts)에 분산시키고, 이 계좌들이 다른 곳으로 전달하고, 또 다른 곳으로 전달하게 만듭니다. 몇 시간 안에 흔적은 거의 추적이 불가능해집니다. 우리는 돈을 회수할 진정한 희망보다는 절차상의 이유로 요청서를 제출했습니다.파트너사의 사기 탐지 시스템이 너무 일반적이다. 저희 은행 파트너는 한 사건에서 거래된 금액의 약 절반을 차단했습니다. 도움이 되었고 감사하지만, 차단되지 않은 나머지 절반만으로도 실제 피해를 입히기에 충분했습니다. 문제는 파트너사의 무능함이 아닙니다. 수천 명의 다양한 고객에게 서비스를 제공하도록 구축된 사기 시스템은 경향적으로 보수적이고 일반적이라는 것입니다. 그 시스템은 귀하 비즈니스의 특정한 거래 패턴을 알지 못합니다.예를 들어, 콘도미니엄(Condominiums) 같은 곳은 매우 예측 가능한 금융 행동을 합니다. 결제는 매월 특정 기간에 기업 계좌로, 역사적인 패턴을 따르는 금액으로 이루어집니다. 업무 시간 외에 개인에게 전송되는, 해당 계좌의 역사적 금액보다 많은 이체액은 도메인 지식이 있는 사람에게는 명백히 의심스럽습니다. 하지만 일반적인 사기 시스템에게는 그저 또 하나의 거래일 뿐입니다.## AI를 통해 무엇이 달라지는가**최근 주요 AI 연구소들은 소프트웨어 시스템의 취약점을 자율적으로 찾아낼 수 있는 모델을 개발하고 있다고 발표했습니다. 이러한 발언에 대한 시장의 관심은 명백하며, FOMO(놓치는 것에 대한 두려움) 매매가 있지만, 여기에는 진정한 사실도 담겨 있습니다.**인간 공격자에게는 한계가 있습니다. 그들은 잠을 잡니다. 실수를 합니다. 그리고 유한한 기술 지식을 가지고 있습니다. 시스템을 분석하고, 공격 표면(attack surfaces)을 식별하고, 가설을 테스트하는 데 시간이 필요합니다.**AI 기반 공격자는 그러한 제한이 전혀 없습니다.
악용(exploitation)의 속도는 한 자릿수만큼 변화할 것입니다. 오늘날 수일이 걸리던 수동 분석 작업이 자동화된 스캐닝을 통해 몇 분 만에 끝날 수 있습니다. 그리고 노출되는 시스템들, IP 유효성 검사가 없는 API, 인터넷에서 여전히 실행 중인 잊힌 오래된 엔드포인트, 한 번도 교체되지 않은 자격 증명 등은 보안팀이 대응할 수 있는 속도보다 훨씬 빠르게 발견될 것입니다.
저는 먼 미래를 추측하는 것이 아닙니다. 새로운 변수 하나가 추가된 현재를 설명하고 있습니다.
지금 당장 할 수 있는 것들
제가 이것을 작성하는 것은 패닉을 유발하기 위함이 아닙니다. 가장 효과적인 방어책들은 비교적 구현하기 간단한데, 대부분의 회사들이 아직 이를 실행하지 않았기 때문에 이 글을 쓰는 것입니다.
오래 지속되는 노출 자격 증명을 제거하세요. 운영(Production) 자격 증명은 개발자 머신의 .env 파일에 존재하거나 Kubernetes 파드에서 환경 변수로 주입되어서는 안 됩니다. 이는 런타임 시 비밀 관리자(secrets manager, AWS Secrets Manager, GCP Secret Manager, HashiCorp Vault 등)로부터 가져와야 합니다. 오버헤드는 작습니다. 얻는 이득은 엄청납니다.
B2B API에 상호 TLS (mTLS)를 추가하세요. 파트너들이 통합하는 API가 있다면, mTLS가 적절한 장기적 해결책입니다. 양쪽 모두 인증서(certificate)를 제시하므로, 페이로드 내용과 관계없이 전송 계층(transport layer)에서 연결이 인증됩니다. IP 허용 목록 지정(IP allowlisting)은 유효한 빠른 승리(quick win)이지만 대체재가 될 수 없습니다. IP는 순환하고, VPN이 존재하며, 클라우드 네이티브 아키텍처는 안정적인 IP 범위를 점점 희소하게 만듭니다. mTLS는 그러한 약점이 없습니다.
간단하더라도 자체 사기 탐지 시스템을 구축하세요. 귀하는 어떤 파트너보다도 자신의 도메인 거래 행동(transactional behavior)을 잘 알고 있습니다. 과거 패턴, 시간대, 수혜자 유형, 금액 등을 기반으로 한 기본적인 규칙만으로도 대부분의 명백한 이상 징후를 포착할 수 있습니다.
자격 증명(Credential) 순환을 구현하세요. 만료되지 않는 자격 증명은 당신이 모르는 사이에 수년 전에 유출되었을 가능성이 있는 자격 증명입니다. 주기적인 순환 과정, 심지어 반자동 방식이라도 과거 침해 사고의 영향을 급격히 줄일 수 있습니다.
퇴사 직원들의 접근 권한을 감사하세요. 당연하게 들릴 수 있습니다. 대부분의 기업이 체계적으로 수행하지 않습니다. 퇴사 절차(offboarding process)에서 필수 단계로 만드세요.
지원팀을 위한 보안 프로토콜을 정의하세요. 소셜 엔지니어링은 지원팀이 고객이 실제로 누구인지 확인하는 것보다 고객의 문제를 해결하는 것을 우선시하기 때문에 효과를 발휘합니다. 팀이 추가적인 검증 없이 변경할 수 있는 것과 없는 것을 문서화하고, 그 검증 절차가 무엇인지 명시하세요. 체크리스트는 화려하지 않지만, 우리에게 수만 달러의 손실을 입혔던 허점을 막아줍니다.
수동적으로가 아닌 능동적으로 모니터링하세요. 로그는 읽히기 위해 존재하는 것입니다. 고객이 불만을 제기해서 사건을 발견하고 있다면, 이미 늦은 것입니다. 이상 징후를 사건으로 만들기 전에 포착하는 경고(alerts), 대시보드, 그리고 가능하다면 자동화에 투자하세요.
제가 멈출 수 없는 질문
제가 직면했던 공격자가 자신들 측에 AI를 가지고 있었다면 어떤 일이 벌어졌을지 생각해 보았습니다. 대규모 피싱(phishing) 목적이 아니라, 우리 API를 인증되지 않은 엔드포인트(unauthenticated endpoints)로 체계적으로 스캔하는 용도였습니다. 우리의 라우트(routes)를 대상으로 페이로드 변형을 테스트하는 용도였습니다. 내부 구조를 드러내는 오류 응답 패턴을 식별하는 용도였습니다. 수 주에 걸친 수동 분석으로 하던 일을 몇 분 만에 처리할 수 있었을 것입니다.
솔직히 말하자면: 저희가 버틸 수 있었을지 모르겠습니다.
그리고 이것이 우리에게 사실이라면, 지난 두 달 동안 보안에 전념했던 모든 노력에도 불구하고, 오늘날 운영되는 대부분의 핀테크 기업들에게도 해당됩니다.
판도가 바뀌고 있습니다. 질문은 당신이 공격받을 것인지가 아닙니다. 그것이 일어났을 때 준비되어 있느냐입니다.
만약 비슷한 경험을 하셨거나 다른 관점을 가지고 계시다면, 댓글로 들려주시면 좋겠습니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기