블로그

COVID-19 접촉자 추적: 보안 코딩의 현주소는?

July 8, 2020
피터 단히욱

이 글은 원래 DevOps Digest에 게재되었습니다. 업데이트를 거쳐 이곳에 다시 게시합니다.

"전례 없는 시기"라는 말에 이제는 다들 조금 지치셨을 겁니다. 하지만 지금은 정말 전례 없는 시기가 맞습니다. 작년 말까지만 해도 우리가 전 세계를 파괴하는 팬데믹을 물리치기 위해 모든 역량을 쏟아부으며 사투를 벌이게 될 줄 누가 상상이나 했을까요? 당시에는 거의 웃어넘길 일이었고, 현실이라기보다는 넷플릭스의 새로운 SF 시리즈처럼 느껴졌을 것입니다. 코로나19는 우리의 사회생활, 경제, 고용 안정성은 물론 정치적 우선순위까지 완전히 바꿔놓았습니다.

코로나19에 대한 대응책 중 하나는 기술을 활용하는 것이었으며, 많은 국가가 접촉자 추적 앱을 도입했습니다. 호주는 싱가포르의 '트레이스투게더(TraceTogether)'를 모델로 한 '코로나세이프(COVIDSafe)'를 운영 중입니다. 홍콩, 대만, 중국, 한국, 이스라엘, 독일 등도 접촉자 추적 기술을 구현했거나 도입을 앞두고 있습니다. 유럽에서 가장 큰 타격을 입은 영국은 수만 명의 사망자와 높은 감염률을 기록했으며, 앱 출시를 앞두고 있습니다. 미국 역시 많은 인명 피해를 입으며 큰 타격을 받았고 기술 도입을 추진 중이지만, 주별로 접촉자 추적 방식을 달리하고 있어 상황이 매우 복잡합니다.

중국이나 대만처럼 국가 통제가 강한 국가를 제외하면, 이러한 앱의 사용은 자발적이며 시민들이 스스로 앱을 다운로드하고 사용해야 합니다. 도입률은 국가마다 차이가 있는데, 예를 들어 싱가포르의 트레이스투게더 앱은 도입률이 25%에 그쳐 목적을 달성하기에는 역부족이었습니다.

접촉자 추적 앱의 취지는 타당합니다. 이 기술이 제대로 작동한다면 감염병 확산을 막는 데 필수적인 요소인 감염 확산 지역을 신속하게 파악하고 포괄적인 검사를 수행할 수 있을 것입니다. 하지만 '정부'와 '추적'이라는 단어가 주는 느낌이 그리 달갑지만은 않기에, 사람들이 앱 설치가 자신에게 어떤 의미일지 신중하게 고민하는 것은 당연한 일입니다.

그렇다면 사용자들이 가장 우려하는 점은 무엇일까요? 온라인상의 반응을 살펴보면 다음과 같은 불안 요소들이 있습니다.

  • 정부가 수집된 데이터를 책임감 있게 사용할지에 대한 불신
  • 사이버 공격으로부터 개인정보가 얼마나 잘 보호될지에 대한 우려
  • 실제로 어떤 데이터가 수집되고, 어디에 저장되며, 누구와 공유되는지에 대한 불투명성
  • ... 그리고 개발자나 기술 전문가들 사이에서는 앱이 얼마나 견고하게 구축되었는지에 대한 의문입니다.

앱을 급하게 개발할 때는 항상 걱정이 따르기 마련인데, 이번 접촉자 추적 앱들은 기록적인 시간 내에 출시되어야 했습니다. 이는 개발자, 보안 담당자, 정부 기관 모두에게 악몽과도 같은 일입니다.

그렇다면 이러한 불신은 타당한 반응일까요? 코로나19 접촉자 추적 앱과 최종 사용자 안전을 평가할 때 무엇을 우선순위에 두어야 할까요? 보안 전문가로서 제 본능은 당연히 프로그램의 사이버 보안 요소, 즉 우리 모두가 (선의로) 설치하도록 권장받는 앱의 코드베이스가 얼마나 안전한지를 파고드는 것입니다.

많은 앱이 서로 복제된 형태이며, 동일한 문제점을 공유하고 있습니다.

호주의 코로나세이프 앱은 기본적으로 오픈트레이스(OpenTrace)를 기반으로 하며, 이는 싱가포르의 트레이스투게더 소프트웨어도 마찬가지입니다. 문제는 트레이스투게더에서 여러 가지 결함이 보고되었고 도입률도 저조했다는 점입니다. 전체 인구의 25%만이 앱을 사용했는데, 이는 효과를 거두기 위해 필요한 75%에 훨씬 못 미치는 수치입니다. 특히 iOS 환경에서의 전반적인 성능 문제와 배터리 소모가 빠르다는 불만이 제기되었습니다. 코로나세이프 역시 iOS 버전에서 잠재적인 UX 결함이 있어, 데이터를 제대로 기록하려면 휴대폰 잠금을 해제하고 앱을 항상 실행 상태로 두어야 합니다.

위와 같은 문제들도 성가시지만, 더 시급한 문제는 블루투스 취약점이 만연해 있으며 트레이스투게더와 호주의 코로나세이프 모두 이에 취약하다는 점입니다. 5월 14일, NIST는 코로나세이프에 서비스 거부(DoS) 취약점이 있다고 보고했습니다. 이 취약점을 이용하면 공격자가 블루투스 핸드셰이크 거리 내에 있을 경우 원격으로 앱을 강제 종료시킬 수 있습니다. 이는 조직적인 공격을 통해 인구 밀집 지역에서 접촉자 추적 기능을 마비시킬 수 있음을 의미하며, 이는 보안 연구원 리처드 넬슨이 상세히 설명한 바 있습니다. 이 문제는 코로나세이프, 트레이스투게더, 폴란드의 프로테고(ProteGO), 캐나다의 AB트레이스투게더에 영향을 미치는 것으로 알려져 있으며, 모두 오픈트레이스의 결함 있는 manuData.subdata 호출에서 비롯된 것입니다.

블루투스 기능과 관련하여 전반적인 개인정보 및 보안 문제도 존재합니다. 이 기술이 고유 ID(TempID)를 통해 인간의 이동 경로를 추적하고 의미 있는 데이터를 수집하는 데 사용된다는 사실은 공격자들이 취약점을 찾으려는 관심을 높일 수밖에 없습니다. 따라서 정확히 어떤 데이터가 수집되고, 어디에 저장되며, 얼마나 오래 보관되는지 면밀히 검토해야 합니다.

일부 앱에서는 이미 복잡한 취약점을 야기하는 단순한 오류의 징후가 나타나고 있습니다.

호주의 소프트웨어 엔지니어 제프리 헌틀리(Geoffrey Huntley)는 코로나세이프의 소스 코드를 연구해 왔으며, 안타깝게도 최종 사용자인 우리에게 제대로 알려지지 않은 문제들이 존재합니다.

한 가지 심각한 사례는 공격자가 기기를 장기간 추적할 수 있게 만드는 개인정보 침해 논리 오류였습니다. 이는 취약한 사용자들에게 엄청난 위험을 초래할 뿐만 아니라 앱 자체의 개인정보 처리방침을 위반하는 것입니다.

이러한 논리적 취약점들은 5월 14일부로 패치되었지만, 더 시급한 문제는 헌틀리 씨가 이를 보고한 후 17일 동안이나 패치되지 않은 채 방치되었다는 점입니다. 그와 보안 커뮤니티의 다른 회원들은 코로나세이프 앱과 관련된 CVE를 이곳에서 추적하고 있습니다.

헌틀리가 패치 이후 지적한 한 가지는, 이번 수정 조치조차 무능함의 징후를 보인다는 점입니다. 그는 공개 로그에서 결함이 있는 캐시를 단순히 삭제하는 것이 훨씬 더 확실한 해결책임에도 불구하고, 패치에 새로운 로직을 추가하는 방식을 택했다고 언급했습니다. 두 방법 모두 작동은 하지만, 실제 적용된 해결책은 세련미가 부족하며, 이는 이처럼 중요한 애플리케이션에서 우려되는 부분입니다.

사회 구성원들이 자신의 시간과 전문 지식을 들여 소스 코드를 면밀히 검토하고 문제를 찾아내고 있지만, 애초에 코드가 오픈 소스로 공개되었다면 훨씬 수월했을 작업이 더 어렵게 진행되고 있습니다. 현재 28개의 앱은 여전히 보안 연구원들에게 비공개 상태입니다.

보안 코딩은 여전히 마지막 단계에서 우리를 발목 잡고 있습니다.

과중한 업무에 시달리는 개발자들의 상황과 팬데믹 상황에서 생명을 구하는 앱을 급히 만들어야 했던 매우 이례적인 상황은 충분히 이해합니다. 하지만 위 사례는 공공 코드베이스에서 발생하는 몇 가지 간단한 취약점이 수백만 명의 사용자에게 심각한 문제를 야기할 수 있음을 보여줍니다.

대부분의 사람들은 좋은 시민으로서 앱을 지원하고, 모두가 접촉자 추적을 통해 이 끔찍한 바이러스의 확산을 통제할 수 있는 최선의 기회를 갖길 원할 것입니다. 저 또한 이를 달성하는 데 도움이 되는 기술을 지지하지만, 이번 일은 전 세계 개발자들에게 내재된 보안 코딩 원칙의 전반적인 부재를 여실히 드러냈습니다.

소프트웨어를 빠르게 개발해야 하는 상황에서 실수는 예상치 못한 일이 아닙니다. 하지만 로직 결함, 잘못된 구성, 코드 삽입 오류와 같은 일반적인 보안 취약점은 자원봉사 화이트 해커들이 코드베이스를 분석하기 전에, 코드를 작성하는 단계에서 예방할 수 있어야 합니다.

그런데 이는 개발자들의 잘못이 아닙니다. 그들은 대학 교육 과정에서 보안 코딩에 대한 기술을 거의 배우지 못하며, 실무에서도 핵심성과지표(KPI)는 항상 기능 구현과 개발 속도에 맞춰져 있습니다. 보안은 개발이 끝난 뒤 다른 누군가가 처리할 몫으로 여겨지죠. 우리는 빠른 속도로 보안 코딩을 수행하는 최종 단계에 도달해야 합니다. 지금 당장 앱 개발 부서의 문화를 근본적으로 바꾸기는 어렵겠지만, 디지털 위험 영역이 확대되고 있다는 점을 상기해야 합니다. 개발자들에게 도구와 지식을 제공하여 보안 모범 사례에 대한 책임을 공유하게 한다면, 그들은 변화를 이끌어낼 가장 중요한 위치에 있습니다.

이 앱을 다운로드해도 안전할까요?

보안 전문가인 제 결론은 이렇습니다. 앱의 이점이 문제점보다 큽니다. 위에서 언급한 취약점들이 소프트웨어에 존재했거나 현재 존재하는 것은 이상적이지 않지만, 이것이 악용될 가능성은 최악의 시나리오일 뿐입니다. 현재 접촉자 추적은 전 세계 의료진이 바이러스 확산을 통제하고, 병원 입원 환자 수를 줄이며, 서로의 안전을 지키는 데 도움을 주는 필수적인 요소입니다.

이는 소프트웨어 빌드 시 보안 모범 사례를 기본적으로 적용하기까지 아직 갈 길이 멀다는 점을 보여주며, 대중이 정보에 입각한 결정을 내릴 수 있도록 필요한 정보를 제공하는 것이 중요합니다.

저와 제 가족은 계속해서 이 앱을 사용할 예정입니다. 물론 우리 모두가 그래야 하듯, 안드로이드 보안 패치를 최신 상태로 유지하며 경계를 늦추지 않을 것입니다.

태그라인

배포 전 AI 기반 개발 거버넌스 확보

AI 기반 위험을 측정하고, 커밋 시점에 보안 코딩 정책을 적용하며, SDLC 전반에 걸쳐 안전한 소프트웨어 제공 속도를 높이세요.

데모 예약하기
리소스 라이브러리

더 많은 블로그 살펴보기

보안 코딩, AI 거버넌스, 소프트웨어 리스크 관리에 관한 전문가 콘텐츠를 확인해 보세요.

전체 보기
사례 연구
필터 라벨
div 블록 내부의 텍스트입니다.

Supercharged Security Awareness: How Tournaments are Inspiring Developers at Erste Group

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse varius enim in eros elementum tristique. Duis cursus, mi quis viverra ornare, eros dolor interdum nulla, ut commodo diam libero vitae erat. Aenean faucibus nibh et justo cursus id rutrum lorem imperdiet. Nunc ut sem vitae risus tristique posuere.

더 알아보기
사례 연구
필터 라벨
div 블록 내부의 텍스트입니다.

Security as culture: How Blue Prism cultivates world-class secure developers

Learn how Blue Prism, the global leader in intelligent automation for the enterprise, used Secure Code Warrior's agile learning platform to create a security-first culture with their developers, achieve their business goals, and ship secure code at speed

더 알아보기
사례 연구
필터 라벨
div 블록 내부의 텍스트입니다.

하나의 보안 문화: Sage는 어떻게 챔피언 프로그램을 구축했는가

Sage가 유연하고 관계 중심적인 접근 방식을 통해 보안을 강화하고, 200명 이상의 보안 챔피언을 양성하며 실질적인 위험 감소를 달성한 사례를 확인해 보세요.

더 알아보기
블로그
필터 라벨
div 블록 내부의 텍스트입니다.

2026년 사이버 보안 인식의 달: 기업 방어의 핵심, AI 보안 이해하기

주요 AI 기업 대부분이 안전 가이드라인이 마련될 때까지 AI 개발 속도를 전 세계적으로 늦춰야 한다고 공개적으로 촉구하는 시점에 이르렀지만, 사실 심각한 보안 문제는 이미 현실화되었습니다. 이로 인해 AI 도입에 따른 금전적 비용과 위험 부담이 계속 쌓이면서 수많은 보안 책임자와 경영진이 절박한 상황에 놓였습니다.

더 알아보기
블로그
필터 라벨
div 블록 내부의 텍스트입니다.

인에이블러 8: 프로그램 브랜딩

성공적인 보안 코딩 프로그램을 위해서는 훌륭한 콘텐츠 그 이상의 것이 필요합니다. 인에이블러 8에서는 브랜딩을 통해 참여를 누구나 선망하는 위상 중심의 경험으로 바꾸는 방법을 알아봅니다.

더 알아보기
블로그
필터 라벨
div 블록 내부의 텍스트입니다.

이제 모든 직원이 AI 사이버 보안의 최전선에 있습니다

엔터프라이즈 기술 환경은 너무 늦기 전까지는 아무도 예상하지 못한 속도로 변화하고 있습니다. 우리는 공식적으로 사람이 직접 작성한 코드와 기본적인 코파일럿 지원의 시대를 지나 '에이전트 기반 개발 수명 주기(ADLC)'의 시대로 진입했습니다. 자율형 AI 에이전트는 여러 기능 전반에 걸쳐 전례 없는 효율성을 약속하지만, 동시에 완전히 새로운 차원의 보안 및 규제 위험을 야기합니다.

더 알아보기

배포 전 AI 기반 개발 보안 확보

소프트웨어 개발 수명 주기 전반에서 개발자 리스크를 파악하고, 정책을 시행하며, 취약점을 예방하세요.

데모 예약하기
항목이 없습니다.