글

라벨이 기술과 사회인 게시물 표시

PHP2Shell 공지를 보고 점검했더니 PHP가 하나도 없었습니다

이미지
10월 21일에 PHP와 Node.js가 같은 날 보안 패치를 냈습니다. PHP 쪽은 사람들이 PHP2Shell이라고 부르고 있고, Node 쪽은 Node2Shell이라는 이름이 붙었습니다. 이름부터가 좀 무섭습니다. 뒤에 Shell이 붙으면 대개 남의 서버에서 명령을 실행할 수 있다는 뜻이니까요. 회사에서도 바로 지시가 내려왔습니다. 전 프로젝트 점검하고, 외부 IP 붙은 서버는 전수조사하라는 내용이었습니다. 회사 쪽 일은 회사 쪽대로 하고, 저는 퇴근하고 개인 프로젝트랑 예전에 알바로 했던 것들을 한번 열어 봤습니다. 그런데 열어 보고 나니 이번 글은 패치 이야기가 아니라 7년 전 이야기가 됐습니다. PHP2Shell과 Node2Shell, 둘이 같은 무게는 아닌 것 같습니다 찾아오신 분들은 아마 이게 뭔지, 내 서버가 해당되는지부터 궁금하실 것 같아서 그것부터 적습니다. PHP2Shell은 CVE 두 건입니다. CVE-2026-109618 과 CVE-2026-109619이고, 둘 다 인증 없이 원격에서 코드를 실행할 수 있는 취약점입니다. CVSS 4.0 기준 9.2점입니다. 하나는 메모리가 부족할 때 PHP가 요청 데이터를 반쯤 만든 상태에서 멈추고, 정리 단계에서 그 망가진 데이터를 멀쩡한 걸로 취급하는 문제입니다. 다른 하나는 요청이 끝난 뒤에도 그 요청이 쓰던 상태가 남아 있다가 같은 워커가 받은 다음 요청에서 다시 쓰이는 문제입니다. PHP 공식 공지 기준으로 고쳐진 버전은 8.5.12, 8.4.27, 8.3.36, 8.2.35입니다. 그보다 낮은 버전은 전부 해당됩니다. 8.1 이하는 PHP 프로젝트가 더 이상 정규 릴리스를 내지 않습니다. 대신 보안팀이 7.4, 8.0, 8.1용으로 최소한의 소스 백포트를 따로 공개해 뒀고, 배포판이나 LTS 벤더 중에도 백포트를 내는 곳이 있다고 합니다. 직접 빌드하거나 벤더 패키지를 쓰는 게 아니면 사실상 버전을 올리는 수밖에 없어 보입니다. 공지에도 설정을 바꾸는 건 부분적인 완화일 뿐이고...

PHP2Shell 공지를 보고 점검했더니 PHP가 하나도 없었습니다

이미지
10월 21일에 PHP와 Node.js가 같은 날 보안 패치를 냈습니다. PHP 쪽은 사람들이 PHP2Shell이라고 부르고 있고, Node 쪽은 Node2Shell이라는 이름이 붙었습니다. 이름부터가 좀 무섭습니다. 뒤에 Shell이 붙으면 대개 남의 서버에서 명령을 실행할 수 있다는 뜻이니까요. 회사에서도 바로 지시가 내려왔습니다. 전 프로젝트 점검하고, 외부 IP 붙은 서버는 전수조사하라는 내용이었습니다. 회사 쪽 일은 회사 쪽대로 하고, 저는 퇴근하고 개인 프로젝트랑 예전에 알바로 했던 것들을 한번 열어 봤습니다. 그런데 열어 보고 나니 이번 글은 패치 이야기가 아니라 7년 전 이야기가 됐습니다. PHP2Shell과 Node2Shell, 둘이 같은 무게는 아닌 것 같습니다 찾아오신 분들은 아마 이게 뭔지, 내 서버가 해당되는지부터 궁금하실 것 같아서 그것부터 적습니다. PHP2Shell은 CVE 두 건입니다. CVE-2026-109618 과 CVE-2026-109619이고, 둘 다 인증 없이 원격에서 코드를 실행할 수 있는 취약점입니다. CVSS 4.0 기준 9.2점입니다. 하나는 메모리가 부족할 때 PHP가 요청 데이터를 반쯤 만든 상태에서 멈추고, 정리 단계에서 그 망가진 데이터를 멀쩡한 걸로 취급하는 문제입니다. 다른 하나는 요청이 끝난 뒤에도 그 요청이 쓰던 상태가 남아 있다가 같은 워커가 받은 다음 요청에서 다시 쓰이는 문제입니다. PHP 공식 공지 기준으로 고쳐진 버전은 8.5.12, 8.4.27, 8.3.36, 8.2.35입니다. 그보다 낮은 버전은 전부 해당됩니다. 8.1 이하는 PHP 프로젝트가 더 이상 정규 릴리스를 내지 않습니다. 대신 보안팀이 7.4, 8.0, 8.1용으로 최소한의 소스 백포트를 따로 공개해 뒀고, 배포판이나 LTS 벤더 중에도 백포트를 내는 곳이 있다고 합니다. 직접 빌드하거나 벤더 패키지를 쓰는 게 아니면 사실상 버전을 올리는 수밖에 없어 보입니다. 공지에도 설정을 바꾸는 건 부분적인 완화일 뿐이고...

AdSense와 Firebase, 욕은 왜 구글이 먹을까

이미지
오늘 오전 9시 40분쯤부터 iOS 앱이 켜자마자 꺼진다는 이슈가 GitHub에 올라오기 시작했습니다. Firebase iOS SDK 저장소의 16728번 이슈 입니다. 처음 글을 쓴 사람은 업데이트를 하나도 안 냈는데 이미 배포돼 있던 빌드 네 개가 같은 시각에 한꺼번에 죽기 시작했다고 적었습니다. 앱이 켜지면 Firebase Analytics 가 서버에서 실험 설정을 받아오는데, 그 응답을 받고 1초도 안 돼서 앱이 죽는다고요. 크래시 로그까지 붙여서 설정을 롤백해 달라고 하고 있었습니다. 댓글은 금방 수백 개가 됐습니다. 다들 비슷한 말이었습니다. 우리도 아무것도 안 건드렸는데 죽는다, 몇 시 몇 분부터다, 로그가 똑같다. 중간중간 구글 뭐 하냐는 말이 섞여 있었습니다. 저도 속으로 같은 말을 했습니다. 구글 뭐 하는 거냐. 그런데 제 경우는 Firebase 때문만은 아니었습니다. 오늘 AdSense 재검토 결과도 왔거든요. 「가치가 별로 없는 콘텐츠」. 2월부터 듣고 있는 그 한 줄입니다. 2월부터 같은 한 줄 처음 거절을 받았을 때는 그냥 왜 안 되지 정도였습니다. 블로그를 막 키우던 때라 짧은 글이 많았고 글이 얇아서 그런가 보다 했습니다. 틀린 짐작은 아니었던 것 같습니다. 그때 급하게 올린 짧은 글들은 실제로 좀 부끄러웠습니다. 그래서 내렸습니다. 남은 글은 길고 사진도 있고 서로 링크도 걸려 있었습니다. 이 정도면 되겠지 하고 다시 신청했습니다. 같은 한 줄이 왔습니다. 두 번째부터는 기분이 좀 달랐습니다. 제가 뭘 놓쳤나 싶어서 사이트를 구석구석 뒤지다가 blog.apple-io.com 이라는 하위 도메인을 찾았습니다. 예전에 워드프레스를 한번 깔아보고 잊어버린 주소였는데 설치 직후 화면 그대로 검색엔진에 나오고 있었습니다. 제목에 오타가 난 채로, 「Hello world!」 글 하나만 달랑 있는 상태로요. AdSense 는 루트 도메인을 등록하면 하위 도메인까지 같이 본다고 합니다. 그걸 알고 나서는 좀 반가웠습니다. 드디어...

AI는 정말 중립적일까? - Anthropic과 autism 진단 AI가 보여준 것

이미지
같은 시기에 나온 뉴스 네 개를 나란히 보게 됐습니다. 하나는 AI가 전쟁의 판도를 바꾸고 있다는 이야기였습니다. 공습 과정에서 사람이 하는 일이 어느 쪽 버튼을 누르느냐 정도로 줄었다는 대목이 있었고, AI가 청소년의 자살이나 범죄를 돕는 사례가 늘어서 미국에서 소송이 진행 중이라는 얘기도 붙어 있었습니다. 그 끝에 우리 정부가 인공지능 윤리 원칙을 새로 내놨다는 소식이 나왔습니다. 나머지 셋은 전부 자폐 스펙트럼 이야기였습니다. 뇌 영상에서 자폐와 관련 있는 부위를 찾는 기술, 영유아가 영상을 보는 동안의 반응을 AI가 읽어서 일찍 선별하는 기술, 그리고 말수가 적은 자폐 아동과 부모 사이의 대화를 AI가 이어 주는 시스템이었습니다. 마지막 뉴스에 어머니 인터뷰가 하나 실려 있었습니다. "저한테 엄마라고 호명을 안 했거든요. 근데 이렇게 보면서 아 엄마구나, 그리고는 저한테 엄마 아빠 이렇게." 같은 기술이 한쪽에서는 사람을 죽이는 판단에 들어가 있고, 다른 쪽에서는 아이가 처음으로 엄마를 부르게 하고 있습니다. 이런 걸 보면 보통 나오는 말이 있습니다. 기술 자체에는 선악이 없고, 쓰는 사람과 기관과 국가가 방향을 정한다는 말입니다. 저도 오래 그렇게 생각했습니다. 그런데 네 개를 같이 놓고 며칠 보다 보니 그 말이 편한 쪽으로 반쯤 잘려 있는 것 같다는 생각이 들었습니다. 크란츠버그의 문장은 뒤쪽이 본론입니다 기술사학자 멜빈 크란츠버그가 남긴 문장이 있습니다. 기술 얘기가 나오면 거의 관용구처럼 쓰입니다. "기술은 선하지도 악하지도 않다. 그러나 중립적이지도 않다." 그런데 인용될 때는 대개 앞쪽 절반만 나옵니다. 선하지도 악하지도 않다는 말은 듣기 좋고, 논쟁을 거기서 끝내 주고, 무엇보다 말하는 사람을 편하게 해 줍니다. 크란츠버그가 하고 싶었던 말은 뒤쪽이었던 것 같습니다. 선악이 없다는 것과 중립이라는 것은 다른 말이라는 거죠. 그가 붙인 설명은 이렇습니다. 기술이 사회와 맞물리면 ...

AI 안전 표준기구 소식과 제 harness의 grep 한 줄

이미지
제 블로그 발행 스크립트에는 grep 한 줄이 들어 있었습니다. 글을 올리기 전에 파일을 열어서 판정: 합격 이라는 문자열이 있는지 찾는 코드였습니다. 두 달 반쯤 돌리다가 7월 말에 지웠습니다. 앤트로픽과 오픈AI, 구글이 AI 안전 표준기구를 같이 세우는 걸 논의하고 있다는 기사를 읽다가 그 한 줄이 떠올랐습니다. 한쪽은 프런티어 모델을 만드는 회사들이고 한쪽은 저 혼자 쓰는 블로그 파이프라인이라 나란히 놓기엔 좀 민망한데, 기사를 읽는 내내 그 grep 생각이 떠나지 않았습니다. 검문소와 통행증 발급처가 같았습니다 당시 이 레포에는 보안 기준선이 번호를 달고 몇 개 있었고, 그중 하나가 "게이트 불합격 글은 업로드 차단" 이었습니다. 문장만 보면 꽤 단단해 보입니다. 실제로 하는 일은 단순했습니다. 발행 스크립트가 _workspace/briefs/{slug}-ai-check.md 를 열고, 거기 판정: 합격 이 있으면 올리고 없으면 멈춥니다. 그게 전부였습니다. 그 파일은 AI 문체 검사를 맡은 에이전트가 씁니다. 글을 읽고, 검사 결과를 파일에 적고, 코드는 그 파일에서 문자열을 찾습니다. 검사받는 쪽이 통행증을 발급하고 검문소는 그 통행증이 있는지만 확인하는 모양이었습니다. 처음 걸었을 때는 기분이 좋았습니다. 파이프라인에 단단한 게 하나 생긴 것 같았고, 문서에도 불합격이면 못 나간다고 자신 있게 적어뒀습니다. 그 문장을 쓰면서 이걸로 문체 쪽은 한시름 놨다고 생각했던 게 기억납니다. 그 기분이 사라진 건 발행이 한 번 막혔을 때입니다. 원인을 찾으려고 브리프 파일을 열었는데, 적혀 있는 문장이 제가 봐도 근거가 없었습니다. 무엇을 보고 그렇게 판정했는지가 파일 어디에도 없었고 판정 한 줄만 덩그러니 있었습니다. 그러고 나니 통과한 글들 쪽이 궁금해졌습니다. 열어보니 다 비슷했습니다. 문장 모양만 조금씩 다르고 판정 줄은 전부 같은 모양이었습니다. "그럼 지금까지 이게 뭘 막은 거지" 하는 생각...

혼자 떠드는 줄 알았던 얘기를 뇌과학 교수가 하고 있었습니다

이미지
지식인사이드에서 김대식 교수와 김혜연 안무가가 나온 대담 을 봤습니다. AI가 나보다 일을 잘할 때 어떻게 할 거냐는 얘기였습니다. 보는 내내 좀 이상했습니다. 제가 몇 달 동안 여기 쓴 얘기가 거의 그대로 나왔습니다. 기업이 보안 때문에 AI를 막는 문제, 개인이 만든 자동화를 회사에 안 내놓는 문제, 잘 쓰는 사람과 못 쓰는 사람 사이가 벌어지는 문제. 대응 방향까지 비슷했습니다. 기분이 좋았습니다. 짧게요. 그다음에 좀 이상해졌는데, 2주 전에 제가 이 블로그에 이렇게 써놨기 때문입니다. 사람들이 제 말에 동의하게 된 게 아닙니다. 다른 경로로 비슷하게 생긴 문장에 도착한 겁니다. 문장이 같아도 가리키는 게 다르면 같은 얘기가 아닙니다. 봄에 만든 발표자료가 가을 되니 유행어로 돌아와 있던 얘기 를 쓰면서 적은 문장입니다. 거기서 저는 거봐 내가 맞았지라고 말할 근거가 애초에 없었다고 썼습니다. 그래놓고 2주 만에 딱 그 말이 하고 싶어진 겁니다. 그래서 반가워하고 넘어가지 않고 제가 세워둔 그 기준에 이번 걸 한번 넣어봤습니다. 문장만 같은 건지, 가리키는 것까지 같은 건지. 그놈의 보안 교수가 제일 답답해한 건 기업 보안이었습니다. 여전히 우리나라 많은 기업에서는 그놈의 보안 문제 때문에 기업에서 클로드, 제미나이, 챗지피티를 못 쓰게 한다는 거예요. 그리고 이렇게 봤습니다. 그래서 제가 항상 느끼는 게 뭐냐면 살짝 게으른 것 같아요. 교통사고를 막을 수 있는 방법이 뭐가 있을까요 하면, 현재 우리나라 방법은 운전면허증을 금지시켜 놓은 거예요. 엔비디아를 예로 들었습니다. 거기라고 비밀이 없겠느냐, 그런데 거긴 엔지니어한테 연봉의 절반만큼 토큰을 쓰라고 한다, 그러면 그쪽은 보안을 어떻게 푸는 것 같으냐고 물으면 답이 안 나온다는 겁니다. 여기까지는 저도 같은 생각입니다. 이게 답답해서 망분리 20년을 뒤져본 글 을 썼으니까요. 그런데 딱 한 단어에서 저는 생각이 달랐습니다. 게으르다. 게으른 게 아니라 계산이 맞...

AI에 불만을 쏟고 나니 할 말이 사라졌다

이미지
말을 더 잘하고 싶었습니다. 같이 일하는 사람 한 명에 대해 몇 년치가 쌓여 있었고, 언젠가는 말해야 한다고 생각했습니다. 그래서 말하기 전에 정리부터 하기로 했어요. AI 창을 열고 순서 없이 적어 내려갔습니다. 아홉 줄이 나왔습니다. 정리는 완벽했죠. 흩어져 있던 게 항목이 됐고, 뭉쳐 있던 감정이 문장 단위로 쪼개졌고, 다 적고 나니 화도 가라앉았습니다. 원하던 그대로였습니다. 그 아홉 줄을 지금까지 그 사람에게 한 줄도 말하지 않았습니다. 한참 뒤에 그 목록을 다시 열어보고서야 이유를 알았는데, 아홉 줄 전부 주어가 그 사람이었습니다. 아홉 줄 여기에 아홉 줄을 그대로 옮길까 하다가 안 옮기기로 했습니다. 저 아홉 줄은 당사자한테 못 할 말이었어요. 못 할 말을 당사자 대신 블로그에 적으면 채널만 바뀌고 하는 짓은 똑같습니다. 그리고 제가 계속 생각한 건 무슨 일이 있었느냐보다 그 문장들이 어떤 모양이었느냐였습니다. 모양만 적으면 이렇습니다. 전부 "~한 점"으로 끝났습니다. 아홉 개 모두 주어가 그 사람이었습니다. 날짜가 하나도 없어서 언제 있었던 일인지 적힌 줄이 없었고, 뭘 해달라는 문장도 하나도 없었습니다. 내용은 크게 세 덩어리였습니다. 일하는 방식에 대한 게 몇 줄, 태도로 보이는 것에 대한 게 몇 줄, 그리고 앞으로도 이럴 것 같다는 제 예측이 한 줄. 하나만 예로 들면, 몇 년 전에 제가 제안해서 진행된 일이 나중에 그 사람 아이디어로 소개된 적이 있습니다. 목록에는 이게 "내가 제안한 걸 자기 생각이었다고 말한 점"으로 적혀 있었습니다. 아홉 줄이 다 이런 어미로 끝난다고 보면 됩니다. 이건 누구한테 전하려고 쓴 문장이 아닙니다. 판결문에 가깝습니다. 아홉 줄 중에 상대가 듣고 "그래서 뭘 해달라는 거냐"고 물었을 때 답이 되는 줄이 하나도 없습니다. 전부 상태에 대한 판정이고, 판정에는 대응할 방법이 없습니다. 사람은 판정을 받으면 고치는 게 아니라 방어합니다. 그...

내 커밋 92%는 남의 데이터센터 위에 있다

이미지
빅테크가 데이터센터를 빚으로 짓는다는 얘기는 올해 초부터 계속 봤습니다. 볼 때마다 이게 제 일과 무슨 상관인지는 잘 와닿지 않아서 주식 얘기겠거니 하고 넘겼습니다. 그러다 어제 숫자 하나를 보고 좀 다르게 보여서, 제가 매일 쓰는 추론 비용이랑 그 빚이 어디서 만나는지 종이에 그려봤습니다. 네 군데쯤 나왔는데 전부 제 워크플로우 안쪽이었습니다. 그건 대충 예상했던 건데, 같이 튀어나온 게 제 의존도였습니다. 회사 레포에서 제 커밋을 월별로 세봤더니 3월엔 절반쯤이던 게 5월부터는 92%에서 안 내려오고 있었습니다. 저는 이걸 모르고 있었습니다. 장부 밖에 서 있는 빚 어제 본 숫자는 니케이 기사였습니다. 알파벳, 마이크로소프트, 아마존, 메타, 오라클 다섯 곳이 장부 밖에 둔 부채를 1조 6,500억 달러로 집계한 기사 인데, 4년 사이에 여덟 배가 됐다고 합니다. 저한테 더 크게 들린 건 그다음 줄이었습니다. 같은 회사들이 장부 안에 올려둔 부채보다 장부 밖에 둔 쪽이 더 많다는 겁니다. 감춰둔 쪽이 드러난 쪽보다 크다는 얘기라서 이건 좀 이상하다는 생각이 들었습니다. 방식 자체는 단순한 편입니다. 데이터센터를 직접 짓지 않고 특수목적법인을 하나 세웁니다. 그 법인이 채권을 찍거나 사모 대출로 돈을 빌리고, 빅테크는 그 법인과 장기 임대 계약을 맺어서 컴퓨팅 용량만 받아 씁니다. 빌린 돈은 법인 장부에 잡히고 빅테크 쪽엔 임대료만 남습니다. 설비 투자가 아니라 임차료로 기록되니 감가상각도 다르게 잡힙니다. 메타가 텍사스에 짓는 큰 데이터센터가 이런 식이라고 하는데, 시설을 소유하는 회사를 따로 두고 지분 대부분은 사모 신용 펀드가 갖고 있습니다. 그렇다고 위험이 없어지는 건 아니고 다른 사람한테 넘어가는 거라고 봅니다. 그 법인에 돈을 댄 채권 투자자, 보험사, 연기금이 위험을 들고 있게 되고, 빅테크는 일정 대가를 치르면 빠져나올 수 있는 계약을 쥐고 있는 경우가 많다고 합니다. 이걸 보고 2008년 전의 부채담보부증권이 떠오른다는 말이 나오는...