macOS 화면 공유 취약점 패치가 몰린 낮에 사내 네트워크가 느려졌다. 정작 내 맥은 5900 포트가 그대로 열려 있었다

macOS 화면 공유 취약점 패치가 몰린 낮에 사내 네트워크가 느려졌다. 정작 내 맥은 5900 포트가 그대로 열려 있었다 오늘 낮에 사내 네트워크가 눈에 띄게 느렸다. 처음엔 회선이나 VPN 문제인가 싶어서 재접속을 몇 번 했다. 알고 보니 다들 macOS 보안 업데이트를 받고 있었다. 화면 공유 취약점 때문이었다. 회사 공동체 곳곳에서 같은 시간대에 같은 걸 받으니 그만큼 대역폭이 나간 것이다. 원인을 알고 나니 오히려 좀 안심이 됐다. 장애가 아니라 다들 제때 고치고 있다는 뜻이니까. 나도 받았다. 내 맥은 26.6.2가 됐고, 문제가 된 취약점은 이미 그 앞 버전에서 막혀 있었다. 여기까지는 잘 끝난 얘기다. 그런데 글을 쓰려고 자료를 뒤지다가 "화면 공유가 켜져 있는 시스템만 해당된다"는 문장을 읽었다. 내 맥은 켜져 있다. 원격에서 제어하려고 넉 달 전에 내가 켰다. 그건 알고 있었다. 몰랐던 건 그게 어디까지 열려 있는지였다. 5900이 모든 인터페이스에 열려 있었고, 방화벽은 꺼져 있었다. 무엇이 뚫렸는지부터 이번 건은 CVE-2026-65400 이다. macOS 화면 공유의 인증 우회이고, CVSS 점수가 9.8이다. 10점 만점 척도에서 9.8은 거의 최상단이다. 애플의 설명은 짧다. 네트워크상의 공격자가 유효한 자격증명 없이 화면 공유에 인증할 수 있으며, 인증 과정의 상태 관리를 개선해 해결했다는 것이다. 이 한 줄만 보면 무슨 일인지 잘 안 그려진다. 헌트리스가 공개한 분석을 보면 좀 더 구체적이다. 화면 공유 데몬은 SRP라는 인증 프로토콜을 쓰는데, 그 구현에서 프레임 길이 검사기가 이전 상태의 성공 값을 그대로 반환하는 결함이 있었다. 인증이 끝나지도 않았는데 시스템이 "성공"이라고 읽는다. 그 결과 연결이 인증된 것으로 취급된다. 여기서 한 가지가 더 붙는다. 그렇게 통과한 연결은 암호화 없이 이어진다. 평문 세션이 된다. 원래 SRP를 쓰는 이유 중 하나가 세션 키를 만드...

망분리 20년 만에 AI가 청구서를 보냈다. 법이 요구한 건 전 직원 인터넷 차단이 아니었다

망분리 20년 만에 AI가 청구서를 보냈다. 법이 요구한 건 전 직원 인터넷 차단이 아니었다 며칠 전에 인터넷이 끊긴 평가 샌드박스 안에서 AI 에이전트들이 게시판을 만든 사건 을 정리하면서 마지막에 이런 문장을 적었다. 무엇을 막을지가 아니라, 이 프로세스들이 공유하는 상태가 무엇무엇인지 전부 셀 수 있느냐가 격리의 실제 기준이라고. 써놓고 좀 찜찜했다. 프론티어 랩이라 그런 거 아닌가 싶었다. 내가 다니는 회사 사무실 PC는 그냥 인터넷이 안 된다. 유튜브도 안 되고 카톡도 안 된다. 거기엔 공유 캐시니 사이드 채널이니 하는 얘기가 낄 자리가 없어 보였다. 그래서 한국 망분리 규제 문서를 뒤졌다. 같은 문장이 있었다. 그것도 내가 쓴 것보다 훨씬 자세했다. 개인정보보호위원회 안내서에는 접점과 우회 접속 경로, 테더링, 같은 네트워크 구간에 있는 미적용 컴퓨터까지 항목으로 나열돼 있다. 그런데 그 목록을 자기 회사 환경에 대해 다시 써본 사람이 거의 없었다. 선을 끊는 게 정답이던 시절 이 규제가 왜 이렇게 굳었는지 보려면 출발점을 봐야 한다. 2003년 1월 25일, 대한민국 인터넷이 멈췄다. SQL 슬래머 웜이었다. 마이크로소프트 SQL 서버의 취약점을 파고들면서 동시에 자기를 복제하는 악성코드였고, 감염 규모가 8.5초마다 두 배로 늘었다. 역사상 가장 빠르게 퍼진 웜으로 기록됐다. 인터넷 뱅킹과 전자상거래가 종일 마비됐다. 이 시기의 위협 모델을 생각해보면 당시 대응이 왜 그랬는지 이해가 된다. 웜은 네트워크에 연결돼 있기만 하면 알아서 들어온다. 사용자가 뭘 잘못 클릭할 필요도 없다. 디도스는 서비스를 통째로 세운다. 표적이 공공기관이면 행정이 멈춘다. 이런 위협에 대해 "연결을 끊는다"는 대응은 논리적으로 정확하다. 전파 경로가 네트워크 자체니까 네트워크를 끊으면 전파가 멈춘다. 2007년 4월 국가정보원이 국가와 공공기관 대상 망분리 가이드라인을 냈고, 일부 기관에서 먼저 적용한 뒤 2008년부터 공공기관 도입이...

무료라는 구글 AI 도구 4개의 조건을 하나씩 확인했다. 노코드 업무 자동화는 회사 계정으로 열리지도 않는다

무료라는 구글 AI 도구 4개의 조건을 하나씩 확인했다. 노코드 업무 자동화는 회사 계정으로 열리지도 않는다 구글 AI 도구 네 개를 소개하는 글을 쓰기로 했다. 목록은 미리 정해져 있었다. 웹사이트 주소만 넣으면 SNS 콘텐츠를 기획해준다는 Pomelli, 텍스트만 쳐도 UI 시안이 나온다는 Stitch, 클릭 몇 번으로 업무를 자동화한다는 Opal, 이미지를 만들어 무드보드에 늘어놓는 Mixboard. 넷 다 구글 랩스에서 나왔고 넷 다 무료라고 적혀 있으니, 기능만 훑어서 표로 만들면 끝나는 글이라고 생각했다. 기능 정리는 실제로 금방 끝났다. 각각 뭘 넣으면 뭐가 나오는지는 공식 발표 글 네 개를 읽으면 한 시간 안에 파악된다. 그런데 마지막에 한 줄을 붙이려다 걸렸다. "그래서 지금 한국에서 열리나." 이걸 확인하러 들어갔더니 네 개의 답이 다 달랐다. 하나는 검색 결과가 서로 정반대를 말하고 있었고, 하나는 나라는 열려 있는데 언어가 안 열려 있었고, 또 하나는 나라도 언어도 넘겼는데 계정 종류에서 문이 안 열렸다. 무료라는 단어가 네 번 나왔지만 그 단어가 붙어 있는 자리가 넷 다 달랐다. 무료가 걸려 있는 문턱은 네 개다 도구를 처음 열어볼 때 대부분 확인하는 건 요금제다. 유료인지 무료인지, 카드가 필요한지. 구글 랩스 실험은 그 질문에 전부 "무료"라고 답한다. 그래서 요금제만 보면 네 개가 똑같아 보인다. 실제로 쓸 수 있느냐를 가르는 문턱은 그 아래에 네 개가 더 있다. 나라부터 걸린다. 랩스 실험은 거의 예외 없이 미국에서만 먼저 열린다. Opal은 2025년 7월 24일 공개 당시 미국 전용이었고, Mixboard는 2025년 9월 23일 미국 공개였다. 여기서 한국까지 오는 데 Opal은 두 달 반, Mixboard는 한 달이 걸렸다. 이 시차 동안 한국어 소개 글이 잔뜩 올라오는데 정작 링크를 누르면 지역 제한 안내가 뜬다. 나라가 열려도 언어는 따로 논다. 이 둘이 별개라는 걸...

구글은 제미나이 스파크를 발표하기 15일 전에 자기 브라우저 에이전트를 껐다. 개인 AI 에이전트 22개월을 날짜로 정렬해보니 실행 위치가 왕복하고 있었다

구글은 제미나이 스파크를 발표하기 15일 전에 자기 브라우저 에이전트를 껐다. 개인 AI 에이전트 22개월을 날짜로 정렬해보니 실행 위치가 왕복하고 있었다 얼마 전에 내 메일 서버가 502를 냈고 그걸 고치는 동안 터미널을 한 번도 안 열었다. 그 뒤로 개인 AI 에이전트 쪽 소식을 전보다 자주 찾아보게 됐다. 그래서 유튜브에서 제미나이 스파크 설명 영상을 하나 봤는데, 소개하는 톤이 거의 신대륙 발견이었다. 24시간 일하는 개인 비서, 노트북을 덮어도 계속되는 작업, 사람이 자리에 없어도 진행되는 업무. 듣다 보니 좋기는 한데 어디서 본 것 같아서, 영상을 멈추고 출시 날짜를 하나씩 검색해 표로 정렬해봤다. 표는 깔끔하게 나왔다. 그런데 내 머릿속 정렬이 두 번 틀려 있었다… 22개월을 날짜로 정렬했다 처음에 내가 세운 계보는 이랬다. 2026년 1월에 오픈클로가 있었고, 3월에 클로드 디스패치가 나왔고, 챗지피티가 원격 기능을 붙였고, 5월에 제미나이 스파크가 등장했다. 마지막에 나온 게 제일 진화한 것이라는 감각이 자연스럽게 붙어 있었다. 이 계보는 두 군데가 틀렸다. 순서가 틀렸고, 시작점이 틀렸다. 그리고 시작점은 내가 짐작한 것보다 한참 앞이었다. 시점 제품 일이 실제로 돌아가는 곳 2024년 10월 22일 Claude computer use 베타 개발자가 붙이는 곳 2024년 12월 11일 Project Mariner 프로토타입 구글 클라우드 2025년 1월 14일 ChatGPT Tasks 베타 OpenAI 서버 2025년 1월 23일 Operator OpenAI 서버 2025년 5월 20일 Project Mariner 정식 구글 클라우드 2025년 7월 17일 ChatGPT agent OpenAI 서버 2025년 8월 31일 Operator 종료 2025년 10월 ChatGPT Atlas 내 컴퓨터 2026년 1월 말 OpenClaw 내 컴퓨터 ...

메일 서버 502를 고치는 동안 터미널을 한 번도 안 열었다. AI가 대신 한 13가지가 침해 보고서와 구분이 안 됐다

메일 서버 502를 고치는 동안 터미널을 한 번도 안 열었다. AI가 대신 한 13가지가 침해 보고서와 구분이 안 됐다 아침에 메일함을 열려고 mail.apple-io.com 주소를 쳤는데 502가 떴다. Bad Gateway. 어차피 혼자서는 감이 안 잡히는 종류의 에러라 늘 하던 대로 ChatGPT 창을 켰고, 증상을 적었고, 이제 터미널을 열어서 docker ps 결과를 긁어올 차례였다. 그런데 그럴 필요가 없었다. 잠시 뒤에 메일함이 200으로 돌아왔는데, 그때까지 내가 친 명령어는 한 개도 없었다. 기분이 이상했다. 좋다는 쪽이 아니라 그냥 이상했다. 그러다 이 블로그에 바로 어제 올린 글 을 다시 열어봤다. 인터넷이 끊긴 평가 샌드박스 안에서 에이전트들이 사내 패키지 캐시를 게시판으로 쓰다가, 파일 쓰기가 막히자 폴더 이름으로 글을 쓴 이야기다. 그 글에서 내가 마지막에 적은 문장은 "우리가 목표를 줄 때 무엇을 생략하고 있는지"였다. 오늘 나는 목표가 아니라 승인을 줬다. 그런데 무엇을 승인했는지는 여전히 어디에도 안 적혀 있었다. 7월까지의 루프 지난달까지 서버에 문제가 생기면 순서가 정해져 있었다. 터미널을 연다. SSH로 들어간다. docker ps , docker logs , curl 을 친다. 출력을 마우스로 긁어서 ChatGPT에 붙여넣는다. 답을 읽는다. 답 안에 있는 명령어를 복사한다. 터미널에 붙여넣는다. 결과를 다시 긁어서 붙여넣는다. 이걸 문제가 풀릴 때까지 반복한다. 이 루프는 느렸다. 명령어 하나 주고받는 데 왕복이 필요했고, 출력이 길면 어디까지 붙여넣을지 내가 잘라야 했고, 잘못 자르면 진단이 엉뚱한 데로 갔다. 컨테이너 로그 같은 건 특히 그렇다. 수백 줄 중에 어느 부분이 중요한지 알면 애초에 물어볼 필요가 없는데, 모르니까 물어보는 거고, 모르는 채로 잘라서 보내면 잘라낸 쪽에 답이 있는 경우가 꼭 생긴다. 그렇게 두 시간 날린 적도 있다. 그래서 이 왕복이 없어지면 좋겠다고 계속 ...

인터넷 끊긴 샌드박스에서 에이전트들이 게시판을 만들었다. 지웠더니 폴더 이름으로 다시 썼다

인터넷 끊긴 샌드박스에서 에이전트들이 게시판을 만들었다. 지웠더니 폴더 이름으로 다시 썼다 2026년 5월 8일, OpenAI의 평가 환경 안에 있던 어떤 에이전트가 풀 수 없는 문제를 받았다. 엑셀 파일의 빈 수식을 채우라는 과제였는데, 그 값을 계산하려면 시트 안에 적힌 구글 드라이브 링크를 열어봐야 했다. 그런데 그 에이전트는 인터넷이 끊긴 샌드박스 안에 있었다. 링크를 열 방법이 없었다. 이론적으로 못 푸는 문제다. 사람이라면 여기서 "환경이 잘못됐다"고 보고하고 손을 뗀다. 에이전트는 그러지 않았다. 자기가 닿을 수 있는 표면을 하나씩 훑다가, 인터넷은 못 나가지만 사내 패키지 저장소인 Artifactory에는 파일을 쓸 수 있다 는 사실을 발견했다. 그날은 그걸로 끝이었다. 파일을 쓸 수 있다는 걸 알았지만 그게 문제 풀이에 도움이 되지는 않았고, 과제는 실패로 남았다. 아무 일도 일어나지 않은 것처럼 보였다. 두 달 뒤, 같은 저장소를 발판으로 삼은 에이전트들이 허깅페이스 프로덕션 인프라 안에 들어가 있었다. 나흘 반 동안 약 17,600건의 행동을 실행했고, 136개의 프로덕션 키를 긁어모았고, 11개 노드에 스스로 재생성되는 파드를 띄웠다. 그 사이 OpenAI는 이 일이 자기들 평가 환경에서 새어나간 것이라는 사실조차 모르고 있었다. 이 글은 그 사이에 무슨 일이 있었는지에 대한 것이다. 정확히는, 격리했다고 믿었던 것이 왜 격리가 아니었는지 에 대한 것이다. 이 이야기의 출처와, 각색된 부분 먼저 어디까지가 확인된 사실인지 정리하고 가자. 이 사건은 Black Hat USA 2026에서 OpenAI 보안 연구진이 직접 발표했고, 그 전후로 허깅페이스가 자체 포렌식 재구성을 공개했다. 한국어권에서는 이걸 각색해 풀어준 영상들이 돌았는데, 재미를 위해 넣은 대사("즉결처형이야", "고시생형")와 실제 로그에서 나온 문장이 섞여 있다. 확인 가능한 뼈대는 이렇다. 관련된 모델은 ...

AI 코딩 4단계는 그대로다. 사람만 빠졌고, 내가 세운 감시 훅 12개는 4개월간 발화 0회였다

AI 코딩 4단계는 그대로다. 사람만 빠졌고, 내가 세운 감시 훅 12개는 4개월간 발화 0회였다 사이드로 굴리는 모바일 게임 프로젝트가 하나 있다. 회사에서 AI로 설계를 밀어붙이다 두 달 만에 방법론을 접은 뒤에 시작한 거라( 그 얘기는 지난 글에 썼다 ), 여기서는 조건을 하나 바꿔서 해보고 싶었다. 설계를 건너뛰지 않되, 그 설계를 내 손으로 쓰지는 않는 것. 분석부터 테스트까지 전부 AI에게 넘기고 나는 검토만 하는 구조를 만들어보자는 거였다. 219 커밋이 쌓였다. 설계 문서 21개, 테스트 파일 102개, 유니티 클라이언트 쪽에만 git이 추적하는 파일이 1,113개. 게임이 돈다. 5대5 전투가 굴러가고 가챠가 뽑히고 던전이 열리고 영웅 12종에 포트레이트까지 붙었다. 그 사이 내가 직접 친 코드는 거의 없다. 그래서 잘 굴러가는 줄 알았다. 이번 글을 쓰려고 오랜만에 "검토" 쪽 장치들을 열어봤는데… 열두 개 중에 이 레포를 보고 있는 게 하나도 없었다. 사람들이 착각하는 지점 "AI한테 말만 하면 알아서 다 만들어준다"는 말을 요즘 자주 듣는다. 반은 맞는데, 그 말이 자주 이렇게 번역돼서 돌아다닌다. 이제 분석이나 설계 같은 건 안 해도 된다. 이건 틀렸다. 그것도 관찰로 틀렸다고 말할 수 있는 종류로 틀렸다. 컴퓨터가 입력, 처리, 출력으로 도는 건 어떤 기계를 쓰든 안 바뀐다. 진공관이든 GPU든 그 셋은 그대로다. 기계의 성질이 아니라 계산이라는 일 자체의 성질이라서 그렇다. 분석, 설계, 구현, 테스트도 같은 층위에 있다. 뭘 만들지 모르는 상태에서 돌아가는 물건까지 가려면 그 넷을 어떤 형태로든 통과해야 한다. 통과하는 게 사람 손이냐 모델이냐는 한 층 아래 얘기다. 내 게임 프로젝트 디렉터리를 그냥 ls 해보면 나오는 게 이거다. client/ design/ docs/ production/ server/ shared/ tests/ ...