금융권 해킹 사고의 '약한 고리'로 응용프로그램 인터페이스(API)가 지목된다. 당초 내부망에서만 사용하던 업무시스템을 개발자 등 임직원과 대출모집인 등 외부에서도 이용할 수 있도록 API 등을 활용해 개발·전환하는 과정에서 허점이 발생했다는 진단이다. 내부 사용을 전제로 만들어진 프로그램을 외부에서도 쓸 수 있도록 바꾸면서 인증과 접근통제를 충분히 강화하지 못한 일부 API를 공격자가 찾아낸 것이다.
5일 금융권에 따르면 이번 사고는 내부망에서만 사용하던 업무 시스템을 외부에서도 이용할 수 있도록 API로 연결하는 과정에서 생긴 보안 허점에서 비롯된 것으로 파악됐다. 내부용 프로그램을 외부에 연결하면서 인증체계를 충분히 강화하지 못한 것이다.
실제 KB국민·신한·하나·BNK부산은행 등에서 해킹이 발생한 것으로 추정되는 대출모집인 전용 시스템, 직원용 업무 지원 시스템 등은 일반 고객이 이용하는 홈페이지와는 성격이 다르다. 직원 등 권한을 부여받은 사람만 아이디 등을 통해 외부에서 접속하는 별도의 시스템이다. 외부에서도 필요한 정보를 조회하거나 업무를 처리할 수 있도록 내부 시스템과 API로 연결돼 있다.
API는 서로 다른 프로그램이 정해진 방식으로 데이터와 기능을 주고받도록 하는 연결 통로다. 외부 업무지원 시스템에서 특정 정보를 요청하면 API가 내부 프로그램에 요청을 전달하고 결과를 받아오는 식이다.
문제는 금융사의 업무지원 시스템 대다수가 애초 외부 접속이나 API를 통하는 방식으로 만들어지지 않았다는 점이다. 과거 금융사들은 중요 업무 시스템을 회사 내부망에서만 사용했다. 그러나 코로나19 이후 재택근무가 확산되면서 가상사설망(VPN)을 통해 외부에서도 내부망에 접속하는 방식이 늘었다. 임직원이나 대출모집인 등이 편리하게 업무를 처리할 수 있도록 기존 내부 업무 시스템의 일부 기능을 API 방식으로 외부에서도 이용하도록 연결하는 과정에서 보안 허점이 생긴 것이다.
상대적으로 보안 투자 규모가 큰 대형은행이 피해가 컸던 것도 외부 접점이 상대적으로 많았기 때문이다. 대형은행일수록 임직원뿐 아니라 대출모집인과 외주업체 등 다양한 인력이 외부에서 업무시스템에 접근하고, 이들을 위한 업무지원 프로그램도 다수 운영한다. 또 고객을 대상으로 하는 부수적인 금융서비스에 따른 개발 수요와 프로그램도 많은 편이다. 이번 공격에서 공격자는 금융사의 외부 접점을 광범위하게 탐색한 뒤 취약한 API를 찾아낸 것으로 추정된다.
금융사가 자신들이 보유한 정보기술(IT) 자산을 완전히 파악하지 못하고 있다는 점도 피해를 키운 원인으로 지목된다. 여기서 IT 자산은 금융사가 어떤 서비스를 운영하는지, 해당 서비스가 어떤 API와 연결돼 있는지, 누가 접근할 수 있는지 등을 통칭하는 개념이다.
일선 사업부서나 개발자가 업무 필요에 따라 프로그램을 만들고 외부 접점을 추가하면서 보안부서가 모든 시스템의 존재와 구성까지 파악하지 못하는 경우가 있는 것으로 전해졌다. 어떤 시스템이 존재하는지 몰라 새로운 취약점이 알려져도 해당 취약점을 가진 프로그램이 자사에 있는지 여부조차 즉시 찾아내 보완하기 어렵다는 뜻이다.
금융권 보안 관련 고위 관계자는 "이번 사고는 API의 보안과 인증이 탄탄하다고 믿고 내부에서 쓰던 프로그램을 외부에서 대거 접근하도록 허용하면서 발생한 것으로 추정된다"라며 "대형 금융회사조차 자신들이 보유한 IT 자산 중 약 40%는 대내외적으로 누가 사용하고 있는지 등 정보를 보안부서가 제대로 파악하지 못하는 경우가 많다"고 말했다.