(사진=AI 생성 이미지)
|

‘모두의창업’ API로 암호키 유출…보안업계가 짚은 경로는

정부의 창업 지원 플랫폼 ‘모두의창업’에서는 암호화된 비공개 정보와 이를 풀 수 있는 암호키가 일부 애플리케이션 프로그래밍 인터페이스(API)를 통해 함께 유출됐다. 중소벤처기업부는 지난달 31일 국가정보원과 진행한 합동조사 결과를 발표하며, 일부 API에 비공개 정보와 암호키가 함께 포함된 것이 유출 사고의 원인이라고 설명했다.

API는 웹사이트 화면과 서버가 데이터를 주고받는 통로다. 이번 사고에서는 합격자 5000명의 이메일 주소와 심사평, 200자 이내 창업 아이디어 요약본이 API를 통해 외부로 나갔다. 해당 정보는 암호화돼 있었지만, 암호화된 정보를 원래 상태로 되돌릴 수 있는 암호키도 함께 유출돼 복호화가 가능했다. 문은 잠갔지만 열쇠가 외부에 유출된 셈이다.

중기부는 “암호키가 비공개 정보와 함께 API 안에 있었고 소스코드 형태로 올라와 있었다”고 설명했다. 다만 키가 API 응답에 직접 포함됐는지, 프론트엔드 코드나 설정파일 등을 통해 노출됐는지도 구체적으로 밝히지 않았다.

API와 암호화 전문 보안업체들은 공개된 조사 결과만으로는 모두의창업의 설계 구조와 구현 방식을 특정하기는 어렵다고 전제했다. 다만 암호문과 이를 풀 수 있는 키가 함께 노출되는 일반적인 원인으로 API 응답 설계 방식과 암호키 관리 문제를 꼽았다.

암호화했지만 키도 함께 노출

암호화는 정보를 알아볼 수 없는 형태로 바꾸는 기술이다. 암호키는 암호화된 정보를 다시 원래 상태로 되돌릴 때 사용한다. 암호화된 정보만 유출됐다면 키를 확보하지 못한 외부인은 내용을 확인하기 어렵다.

중기부가 발표한 암호키가 어떤 종류인지는 확인되지 않았다. 하나의 키로 몇 명의 어떤 정보까지 복호화할 수 있었는지도 공개하지 않았다.

API 보안 전문기업 소프트프릭 관계자는 “암호화 연산이 이뤄졌다면 암호화를 전혀 적용하지 않았다고 단정하기는 어렵다”며 “다만 암호문과 실제 복호화 키가 같은 경로로 노출됐다면 해당 상황에서는 암호화의 보호 효과가 사실상 사라진 것으로 봐야 한다”고 말했다.

암호기술 전문기업 펜타시큐리티도 암호화를 적용했더라도 키를 데이터와 분리해 관리하지 않으면 보호 효과가 사라질 수 있다고 설명했다.

암호키가 노출되는 일반적인 경로는?

소프트프릭은 서버 내부에서만 사용해야 할 정보가 API 응답에 포함되면 암호문과 키가 함께 외부로 나갈 수 있다고도 설명했다.

가능한 구조 가운데 하나는 데이터베이스(DB)와 연결된 내부 객체를 별도의 가공 없이 API 응답으로 내보내는 경우다. 서버 내부 객체에는 화면에 필요한 정보뿐 아니라 내부 식별자와 암호문, 키 관련 정보가 함께 들어 있을 수 있다.

소프트프릭은 외부에 제공할 항목만 골라 API 응답을 만들어야 한다고 설명했다. 내부 객체를 그대로 보내면 화면에 표시되지 않는 정보도 API 응답에 포함돼 외부로 전달될 수 있다.

프론트엔드에서 정보를 복호화하는 구조도 가능한 경로로 꼽았다. 서버가 브라우저에 암호문과 실제 키를 함께 보내고 자바스크립트가 이를 풀도록 설계하는 방식이다.

브라우저가 전달받은 정보로 암호문을 풀 수 있다면 외부에서 만든 자동화 프로그램도 같은 작업을 할 수 있다. 소프트프릭 관계자는 이를 “잠긴 상자와 열쇠를 같은 택배 상자에 넣어 보내는 것과 비슷하다”고 설명했다.

펜타시큐리티는 암호키를 애플리케이션 코드나 설정파일, 데이터베이스에 고정값으로 입력하는 경우도 있다고 설명했다. 이를 ‘하드코딩’이라고 한다. 별도 키관리 체계가 없는 경우, 애플리케이션 서버에서 암·복호화를 처리하는 구조에서도 데이터와 키가 함께 노출될 수 있다는 분석이다.

키 교체 넘어 기존 데이터도 재암호화해야

펜타시큐리티는 암호키를 데이터베이스와 애플리케이션에서 물리적·논리적으로 분리해 관리해야 한다고 설명했다. 별도의 키관리시스템(KMS)에 키를 보관하고 애플리케이션은 필요한 시점에만 키를 사용해야 한다는 것이다.

키관리시스템은 키의 생성과 보관, 사용권한, 교체, 폐기 기록을 관리한다. 펜타시큐리티는 애플리케이션 내부에 키를 계속 저장하지 않는 구조가 필요하다고 짚었다.

소프트프릭은 키 관리와 별개로 API 권한검사와 응답 정보 통제도 필요하다고 설명했다. 서버가 데이터를 복호화한 뒤 권한이 없는 이용자에게 결과를 반환하면 키가 직접 노출되지 않아도 정보가 유출될 가능성이 있기 때문이다.

소프트프릭 관계자는 “서버는 요청한 이용자가 해당 정보를 볼 권한이 있는지를 확인해야 한다. API가 반환하는 정보도 서비스에 필요한 범위로 줄여야 한다”고 강조했다.

펜타시큐리티는 암호키가 외부로 나갔다면 키 폐기와 재발급만으로 대응이 끝나지 않는다고 짚었다. 해당 키로 암호화한 기존 데이터를 새 키로 다시 암호화하고, 키 접근 기록을 분석해 유출 범위를 확인해야 한다는 것이다. 아울러 API와 서버, 내부 저장소의 접근권한도 다시 점검해야 한다고 덧붙였다. 사고 규모를 판단하려면 유출된 키의 종류와 저장 위치, 하나의 키가 적용된 데이터 범위도 같이 확인해야 한다는 설명이다.

한편 중기부는 이번 사고를 계기로 플랫폼 보안 구조를 대폭 손질했다고 밝혔다. 플랫폼 전반의 API를 다시 점검해 외부로 전달하는 정보를 최소화하고 사용하지 않는 기능을 삭제했으며, DB에는 새로운 암호화 솔루션을 도입했다. 또한 접근 통제 체계도 보완했다. 중기부는 이번 보안 조치와 별도로 개인정보보호위원회 조사와 경찰 수사가 마무리되는 대로 추가로 설명할 계획이다.

글. 바이라인네트워크
<곽중희 기자>god8889@byline.network

일간 바이라인 구독하기

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다


The reCAPTCHA verification period has expired. Please reload the page.