본문 바로가기
IT 에 관한 잡썰

[단독] 3년간 잠입한 해커들! 온나라시스템 해킹, 10년차 개발자가 진단한 '국가적 보안 붕괴'의 결정적 이유

by 개발하는 늑대 2025. 10. 25.
728x90

이해를 돕기 위해 챗gpt로 생성한 이미지임

728x90

[단독분석] 공무원도 못 막은 3년간의 침투: 온나라시스템 해킹 사건 전말과 개발자가 본 심각한 보안 취약점

핵심 요약: 정부 전 부처의 업무를 통합 관리하는 온나라시스템 해킹 사건이 3년('22년 9월 ~ '25년 7월)간 지속된 것으로 확인되었습니다. 해커들은 공무원의 GPKI 인증서와 비밀번호를 탈취하여 합법적인 사용자처럼 G-VPN을 통해 접근했습니다. 이번 사태로 정부는 MFA(다중 인증)를 도입하는 등 대대적인 보안 강화 조치에 나섰지만, 10년 경력 개발자로서 저는 시스템 설계의 근본적인 '단일 실패점(Single Point of Failure)' 문제를 진단하고, **제로 트러스트 아키텍처** 도입의 시급성을 강조합니다.

1. 정부의 '온나라시스템'이란 무엇이며, 왜 중요한가?

'전자정부 업무관리시스템'인 온나라시스템은 대한민국 정부와 지자체의 핵심적인 업무 플랫폼입니다. 이 시스템은 단순한 이메일이나 메신저를 넘어, 문서 생산, 결재, 공유, 기록 관리에 이르는 전 행정 과정을 통합적으로 처리합니다. 개발자의 시각에서 보면, 이는 **국가 행정 데이터의 심장부**에 해당하는 대규모 엔터프라이즈급 시스템입니다.

온나라 시스템의 역할과 보안의 민감성

온나라 시스템은 행정문서의 생성부터 폐기까지의 생애주기를 관리하며, 여기에는 국가 기밀을 포함한 민감한 정보가 다수 포함되어 있습니다. 따라서 이 시스템의 보안 수준은 일반 기업을 훨씬 능가하는 최고 수준의 안정성과 무결성을 요구합니다. 이 시스템이 3년간 침투 당했다는 것은 곧, 국가 행정 기록의 기밀성 자체가 장기간 위협받았음을 의미합니다.

2. 3년간의 은밀한 침투: 온나라시스템 해킹 사건 상세 타임라인

이번 온나라시스템 해킹 사건이 더욱 충격적인 이유는 그 기간이 무려 **3년**에 달한다는 점입니다. 해커들은 2022년 9월부터 2025년 7월까지 장기간에 걸쳐 정부 업무망에 접근하며, 은밀하게 자료를 열람하고 침투 경로를 확보해 나갔습니다.

사고 타임라인 및 주요 피해 내용

  1. 2022년 9월경: 해커, 초기 침투 성공 및 공무원 인증 정보 탈취 시작.
  2. 장기간 지속: 탈취된 GPKI 인증서와 비밀번호를 이용해 G-VPN(정부 원격근무시스템)을 통해 합법적인 사용자로 위장하여 업무망에 비정기적으로 접속.
  3. 2025년 7월: 정부 기관이 뒤늦게 비정상적인 접속 정황을 포착하고 조사 착수.
  4. 조사 결과 발표: 약 650개의 공무원 인증서 유출 확인 및 장기간의 침투 사실 공개.
  5. 후속 조치: G-VPN 접속 시 행정전자서명 외에 전화 인증을 추가하는 보안 강화 조치 시행.

피해 규모는 인증서 650개 유출로 알려졌는데, 다행히 대다수가 유효 기간이 만료된 것이었지만, 유효한 인증서가 단 하나라도 악용되었다면 그 파급 효과는 가늠하기 어렵습니다. 이 사건은 단순히 숫자가 아닌 **정부 업무 신뢰도**에 큰 타격을 입혔습니다.

3. 해킹 방법론 심층 분석: GPKI와 G-VPN의 취약한 연결고리

해커들이 사용한 방식은 복잡한 제로데이 공격보다는, **신뢰 기반 시스템의 맹점**을 이용한 지능적인 접근이었습니다.

GPKI 인증서: '디지털 마스터 키'의 위험성

GPKI(Government Public Key Infrastructure)는 정부용 공인인증 시스템입니다. 이 인증서는 공무원 개개인의 신원을 확실하게 보장하며, 이 인증서가 없으면 G-VPN 접속 자체가 불가능합니다. 문제는 이 **인증서 파일 자체**가 탈취 대상이 되었다는 점입니다. 많은 정부 시스템이 인증서의 '소유'를 곧 '신뢰'로 간주하는 **단일 인증(Single-Factor Authentication)** 방식에 오랫동안 의존해 왔습니다. GPKI 인증서 파일과 비밀번호만 확보하면, 누구라도 해당 공무원인 것처럼 행세할 수 있는 구조적 취약점이 존재했습니다.

G-VPN: 원격근무 편의성이 낳은 보안 구멍

G-VPN은 공무원들이 외부에서 안전하게 업무망에 접속할 수 있도록 설계된 시스템입니다. 하지만 이는 본질적으로 '내부 망으로의 통로'를 열어주는 역할을 합니다. 해커들은 탈취한 인증서를 이용해 이 G-VPN을 통과했고, 일단 내부망에 진입하면 기존의 보안 장치들이 무력화되거나 느슨해지는 환경을 이용해 오랜 기간 침투를 이어갔습니다.

특히, **원격 접속 환경에 대한 접근 통제(Access Control)** 및 **행위 분석 로직**이 미흡했다면, 비정상적인 접근(예: 한밤중이나 주말에 접속하는 기록, 평소 접속하지 않던 지역 IP에서의 접속)을 경고하는 시스템이 작동하지 않았을 가능성이 높습니다.

4. 정부의 후속 조치와 개발자가 보는 '미봉책' 논란

사건 이후 정부는 다중 인증(MFA)의 핵심인 **전화 인증**을 G-VPN 접속 단계에 추가했습니다. 이는 긍정적인 보안 강화 조치이지만, 개발자로서 저는 이 조치가 근본적인 해결책이 될 수 없다고 생각합니다.

Multi-Factor Authentication (MFA) 도입의 의미와 한계

  • **의미:** 인증서(지식/소유) 외에 전화 인증(소유)을 추가함으로써 해커가 두 가지 요소를 동시에 탈취해야 하는 어려움을 부여했습니다. 이는 당장의 인증서 탈취 피해를 막는 데 효과적입니다.
  • **한계:** 이는 **인증 단계**의 문제만 해결할 뿐, 이미 시스템에 침투하여 활동 중인 해커의 **행위를 탐지**하거나, 시스템 내부의 잠재적인 취약점을 개선하지 못합니다. 또한, 전화 인증 방식 자체도 스미싱이나 사회 공학적 공격에 취약할 수 있습니다.

3년간 침투를 인지하지 못했다는 것은 곧 **모니터링 및 탐지 시스템의 완전한 실패**를 의미합니다. 보안은 문을 잠그는 것(인증)뿐만 아니라, 누가 문을 부수고 들어와서 무엇을 하는지 실시간으로 감시하는 것(탐지)이 중요합니다. 이 부분이 이번 사태의 가장 심각한 시스템적 결함입니다.

5. 코드하는 늑대의 IT 인사이트: 10년 개발 경력으로 진단한 3대 시스템 설계 결함

C#과 JavaScript를 주력으로 다루는 개발자로서, 저는 이번 온나라시스템 해킹 사건을 단순히 보안 소프트웨어의 문제가 아닌, **아키텍처 설계와 운영 프로세스**의 실패로 진단합니다.

  1. 결함 1: 단일 실패점(Single Point of Failure) 구조의 심화시스템이 GPKI 인증서 하나에만 지나치게 의존하도록 설계되었습니다. 이는 마치 서버의 인증 로직이 하나의 마스터 키에만 의존하는 것과 같습니다. **JWT(JSON Web Token)**와 같은 최신 인증 방식은 토큰의 유효성을 짧게 가져가고, 접근 권한을 세분화하여 단일 토큰이 탈취되더라도 시스템 전체에 미치는 영향을 최소화합니다. 레거시 시스템을 당장 바꿀 수 없다면, 최소한 인증서 유효 시간을 극도로 짧게 가져가고(단기 토큰 발급), 접근 시마다 재인증을 요구하는 로직(C#/Node.js 백엔드 로직)이 필요했습니다.
  2. 결함 2: SIEM/UEBA (로그 분석) 시스템의 부재 또는 오작동3년 동안의 침투는 **비정상적인 사용자 행위**를 분석하고 경고하는 시스템, 즉 **SIEM(Security Information and Event Management)**이나 **UEBA(User Entity Behavior Analytics)**의 부재를 의미합니다. 어떤 공무원이 한밤중에, 평소 하지 않던 문서 열람 행위를 한다면, 이는 즉각적으로 시스템 경고를 울려야 합니다. 개발 단계에서부터 모든 사용자 행위(로그인, 문서 열람, 다운로드)를 표준화된 JSON 로그 형태로 기록하고, 이를 분석 엔진에 실시간으로 공급하는 파이프라인(예: Kafka, ELK Stack)이 핵심 보안 시스템에 포함되어야 했습니다.
  3. 결함 3: 제로 트러스트(Zero Trust) 아키텍처의 부재이 시스템은 'G-VPN을 통과하면 안전하다'는 경계 기반 보안 모델(Perimeter-based Security)에 머물러 있습니다. **제로 트러스트**는 '절대 아무것도 신뢰하지 않는다(Never Trust, Always Verify)'는 원칙을 따릅니다. 즉, 내부망에 들어왔든, 원격으로 접속했든, 모든 요청에 대해 **지속적인 인증과 권한 확인**을 요구해야 합니다. 공무원 계정이더라도, 기밀 문서에 접근할 때는 추가적인 생체 인식이나 하드웨어 보안 키를 요구하는 시스템 설계 전환이 시급합니다.

우리(개발자)는 C#이나 JavaScript로 백엔드 API를 설계할 때, API 게이트웨이 레벨에서부터 접근 통제 로직을 강력하게 구현합니다. 정부 시스템 역시 이러한 **마이크로서비스 아키텍처**와 **강력한 API 보안 설계**를 채택하여, 한 부분의 실패가 전체로 확산되는 것을 막아야 합니다.

6. 결론 및 향후 전망: 신뢰 회복을 위한 시스템 재설계 로드맵

온나라시스템 해킹 사건은 정부 시스템의 레거시 보안 모델에 대한 경고입니다. 단순한 땜질식 처방이 아닌, 근본적인 시스템 아키텍처를 재설계하는 **로드맵**이 필요합니다. 핵심은 **'보안을 개발 단계부터 내재화'**하는 것입니다.

작성자: 코딩하는 늑대

면책 사항

본 콘텐츠는 2025년 10월 현재 공개된 언론 보도 및 자료를 바탕으로 작성된 정보 제공용 분석 문서이며, 기술적 분석 및 의견은 작성자(코딩하는 늑대)의 개인적인 관점입니다. 공식적인 조사 결과나 법률적 자문을 대체할 수 없으며, 시스템의 최종적인 보안 결함 및 해킹 원인은 정부의 공식 조사 결과에 따라 달라질 수 있습니다.

728x90