허황된 얘기는 5%가 되었다
페이스북 한 줄로 지워진 코스피 5%, NHS에 풀린 외부 admin, 27일에 예정된 EU의 새 법안, 20분 만에 들킨 84개 패키지 — 같은 화요일에 도착한 분배의 청구서들.

오늘 한국에서는 페이스북 글 하나가 코스피를 5% 지웠어요. 영국에서는 NHS가 외부 회사 직원들에게 식별 가능한 환자 데이터 admin 권한을 주기로 했다는 보도가 나왔고요. EU는 5월 27일에 미국 클라우드를 묶을 새 법안을 꺼내려 하고 있고, 같은 시간 npm 생태계에서는 42개 TanStack 패키지가 84개 악성 버전으로 덮여 있었어요.
따로따로 보면 서로 관계없는 사건들 같은데, 줄을 세워보면 결국 같은 질문이 보여요. AI 시대에 만들어진 부와 권한, 그리고 그걸 굴리는 시스템의 신뢰는 — 누구의 손에 있어야 하나요?
페이스북 한 줄, 그리고 5%
오늘 코스피는 장 초반 7999.67까지 올라가서 사상 첫 8000 돌파를 눈앞에 두고 있었어요. 그러다 장중 5% 넘게 급락했고, 종가는 -2.29%로 마감. 외국인이 5.6조 원어치 매물을 던졌어요. 같은 날 블룸버그가 한국 정부 고위 관계자를 인용해 "코스피 5% 급락의 원인은 청와대 정책실장의 'AI 국민배당금' 제안"이라고 보도했어요.
문제의 페이스북 글을 쓴 사람은 김용범 청와대 정책실장이에요. 11일 밤에 올린 글에서 그는 "AI 인프라 시대의 과실은 특정 기업만의 결과가 아니"라며, 반도체·AI 산업 호황으로 발생하는 초과이윤(초과 세수) 일부를 국민에게 환원하는 '가칭 국민배당금'을 설계해야 한다고 제안했어요. 본인도 글 안에서 "그렇게 되지 않는다면 국민배당금은 허황된 얘기가 될 것"이라고 단서를 달았는데, 시장은 그 단서까지 읽을 시간을 주지 않았어요. 사실상 반도체 횡재세 도입 예고로 받아들였고, 삼성전자와 SK하이닉스가 직격탄을 맞았어요.

청와대는 오후가 되자마자 공식 입장으로 선을 그었어요. "정책실장이 소셜미디어에 게재한 내용은 청와대 내부 논의나 검토와 무관한 개인 의견"이라는 거예요. 그러자 종가가 -2.29%까지 회복했어요. 발언 한 줄로 5%가 빠지고, 해명 한 줄로 절반이 돌아오는 장이라니. 시장이 얼마나 예민한지보다, 시그널이 시장을 움직이는 비용이 얼마나 비싸졌는지를 보여주는 사건 같아요.
야당은 빠르게 공세에 들어갔어요. 이준석은 "황금알 낳는 거위를 튀겨먹는 셈"이라며 "야인시대 우미관식 정치"라고 표현했고요. 한 커뮤니티에서는 "기레기들이 물기 딱 좋은 프레임"이라는 분석이, 다른 곳에서는 "사회주의 혁명 막으려는 척"이라는 반응이 동시에 올라왔어요. 코스피 5% 폭락이라는 사건 하나에 정반대 해석 두 개가 같은 날 만들어진 거예요.
저는 아이디어 자체를 무 자르듯 자를 생각은 없어요. 노르웨이 국부펀드 같은 모델이 한 번도 진지하게 검토된 적 없는 게 더 이상한 일이기도 하고요. 다만 "누가, 어떤 절차로, 어떤 채널을 통해 던지느냐"가 정책 설계의 절반이라는 걸 — 페이스북 글이 5%를 지운 화요일이 너무 비싸게 가르쳐줬어요.
"공공 신뢰 손실 위험" — NHS의 admin 권한
같은 시간 영국에서는 다른 결정이 조용히 진행되고 있었어요. NHS England가 자기네 데이터 플랫폼 안 National Data Integration Tenant(NDIT) 라는 모듈에 "admin" 역할을 만들어서 외부 회사 직원들에게 부여하기로 했어요. NDIT는 환자 데이터가 익명처리(pseudonymisation)되기 전 단계의 식별 가능한 데이터가 들어 있는 공간이에요. Financial Times가 5월 11일 단독 보도했고, 디지털헬스(Digital Health)와 Computing.co.uk가 후속 보도를 냈어요. 외부 직원에는 Palantir 직원도 포함되어 있어요.
Palantir는 2023년에 NHS의 Federated Data Platform(FDP) 계약을 £330M(약 4억 4,840만 달러)에 수주했어요. 입찰 과정이 평소보다 짧고 덜 투명하다는 비판으로 두 차례나 법적 도전을 받았던 그 계약이에요. 그 회사 직원들이, 환자 동의 없이, 식별 가능한 의료 데이터에 admin 권한으로 접근할 수 있게 되는 거예요.

가장 충격적인 부분은 NHS 내부에서도 이걸 알고 있었다는 점이에요. NHS 내부 보고서에서 "공공 신뢰 손실 위험(public trust risk)"을 직접 명시했고, admin 인원에 cap을 두고 시간 제한을 걸고 정기 검토를 하라는 권고가 보고서 안에 박혀 있었어요. 알면서 승인한 거예요. NHS England 측은 "외부 접근자는 정부 보안 인증을 받아야 하고, 디렉터 이상 직원의 승인을 받아야 한다"고 해명했지만, "승인 절차가 있다" 와 "무제한 접근이 풀려 있다" 는 양립할 수 있는 문장이 아니에요.
지난주에 다뤘던 NHS England의 SDLC-8 오픈소스 저장소 비공개 결정과 같은 거버넌스 줄기에서 일어나는 일이에요. 그때는 "LLM이 코드를 분석하니까 위험하다"는 명분으로 공공 코드를 비공개로 돌렸고, 이번엔 "통합 데이터 플랫폼이 필요하니까"라는 명분으로 외부 admin 권한을 풀었어요. 둘 다 명분의 방향은 다른데, 결과는 같아요. 공공이 만든 시스템에 대한 외부 접근권은 늘어나고, 시민의 시야는 좁아진다. 이걸 두 사건이 같은 줄기로 보여주고 있어요.
27일에 도착할 청구서 — EU의 응답
흥미롭게도 정확히 같은 줄기에서 EU가 정반대 방향으로 움직이고 있어요. EU 집행위원회는 5월 27일에 Tech Sovereignty Package 를 공개할 예정이에요. 그 안에는 Cloud and AI Development Act(CADA) 와 Chips Act 2.0 이 들어가요. CNBC가 사전 보도한 바에 따르면, 핵심 골자는 회원국 정부 기관이 금융·사법·의료처럼 민감한 분야의 데이터를 미국 클라우드(AWS·Microsoft·Google)로 처리하는 것을 제한한다는 거예요.
배경은 2018년 미국 CLOUD Act 예요. 미국 법원이 미국 기업에게 데이터 제출 명령을 내릴 때, 그 데이터가 유럽 데이터센터에 있어도 강제할 수 있어요. EU 입장에서는 "우리 의료 데이터가 미국 법원 영장에 노출될 수 있다" 는 게 데이터 주권의 정면 위협이에요. 그래서 CADA는 전면 금지가 아니라 데이터 민감도에 따른 티어 제한 방식으로 설계되고, 우선은 공공 부문만 대상으로 한다고 해요.
물론 발표 = 시행 은 아니에요. EU 27개국 만장일치가 필요하니까 실제 시행까지는 시간이 걸리겠죠. 그리고 EU가 그동안 띄운 '소버린 클라우드' 프로젝트 중 하나는 Thales와 Google의 합작이라는 우스운 아이러니도 있어요. 그럼에도 NHS의 admin 권한 사건이 5월 11일에 터지고, EU의 응답 법안이 5월 27일에 발표 예정이라는 — 같은 한 달 안에 양극단의 정책 흐름이 부딪치는 그림은 의미심장해요.
20분 — 누구의 알람이 먼저 울렸는가
마지막 사건은 분배가 아니라 신뢰의 문제예요. 5월 11일 19시 20분~26분 UTC, 단 6분 안에 공격자가 42개의 @tanstack/* npm 패키지에 84개의 악성 버전을 게시했어요. 설치한 사용자들의 자격증명을 빼가는 코드가 들어 있었어요.
공격은 세 단계로 사슬을 만들었어요.
pull_request_target워크플로우 — 포크에서 올라온 PR이 신뢰된 컨텍스트에서 실행되도록 잘못 설정된 워크플로우(bundle-size.yml). "Pwn Request" 라는 별명이 붙은 오래된 위험 패턴이에요.- GitHub Actions 캐시 중독 — 공격자가 PR 실행 중에 pnpm-store 디렉토리 안에 정상 워크플로우가 찾을 키로 악성 캐시를 미리 심어 둔 거예요. 본 릴리스 워크플로우가 그 캐시를 무심코 가져와서 오염됐어요.
- OIDC 토큰 추출 — 악성 코드가
/proc/*/cmdline으로 GitHub Actions 러너 워커 프로세스를 찾아내고, 메모리를 덤프해서 in-memory OIDC 토큰 을 뽑아냈어요. 자격증명을 훔치지 않고도 npm 레지스트리에 직접 인증할 수 있게 된 거예요.

가장 따끔한 한 줄은 사후 분석 끝에 있어요. "외부 연구원이 약 20분 안에 탐지했다. 내부 알람은 없었다." TanStack 팀은 외부에서 알려준 다음에야 알았어요. 영향받은 자격증명도 한두 개가 아니에요. "AWS, GCP, Kubernetes, Vault, GitHub, npm, SSH — 설치 호스트에서 도달 가능한 모든 것" 을 회전하라고 권고했어요. 한 6분의 침해가 한 달의 위험을 만들었어요.
2주 전에 비슷한 frame을 던졌던 글에서 "GitHub Actions가 가장 약한 고리"라고 썼는데, 그 frame이 정확히 한 번 더 입증된 사건이에요. pull_request_target 워크플로우가 위험하다는 건 보안 커뮤니티에서 오래 알려진(long-known) 패턴인데도, 일상적인 라이브러리에서 마저 audit되지 않은 채로 굴러가고 있었어요. 그리고 OIDC trusted-publisher binding 은 publish 단위 검토 없이 한 번 신뢰가 박히면 그대로 가요. 사슬은 가장 약한 고리가 결정한다 는 격언이 "가장 약한 고리가 어디인지 모르는 시스템에서는 사슬 전체가 약하다" 로 번역된 사건이었어요.
같은 화요일에 도착한 네 개의 청구서
오늘의 네 사건을 다시 줄을 세워보면 — 한국에서는 정부가 "AI 이익을 시민에게 돌려라" 라고 말했다가 시장이 5% 빠졌고, NHS는 "AI 이익을 외부 기업에게 더 풀자" 라고 admin 권한을 풀었고, EU는 "우리 이익은 우리 국경 안에서만" 으로 빗장을 걸려 하고 있고, TanStack은 "이익이 공격자에게 6분 만에 넘어갈 수도 있다" 는 걸 보여줬어요.
전부 같은 질문의 다른 답이에요. AI가 만든 부와 권한, 그리고 그걸 굴리는 시스템의 신뢰는 — 누구의 손에 있어야 하느냐. 정답이 있는 질문은 아니에요. 다만 오늘처럼 네 답안이 같은 화요일에 동시에 도착하면, 적어도 "답은 자명하다" 고 말할 수는 없는 시대라는 게 확실해져요.
페이스북 글 한 줄, NDIT의 admin 키, 5월 27일의 새 법안, 그리고 20분 만에 들킨 84개의 악성 패키지. 같은 화요일에 같이 도착한 청구서들이에요.