이번 주 AI는 보안 장부의 양면을 모두 공략했습니다. 실제로 실행해야 할 작업은 다음과 같습니다.
요약
Microsoft의 대규모 패치 업데이트 중 현재 악용되고 있는 주요 제로데이 취약점(CVE-2026-56155, CVE-2026-56164)을 분석하고 대응 방법을 제시합니다. CISA KEV 카탈로그를 활용한 확인 명령어와 SharePoint 및 BitLocker 관련 보안 위협을 다룹니다.
핵심 포인트
- Microsoft의 기록적인 규모의 패치 배포 및 주요 CVE 분석
- 현재 활발히 악용 중인 두 가지 권한 상승 취약점 식별
- CISA KEV 데이터를 활용한 취약점 확인 명령어 제공
- SharePoint 및 BitLocker 관련 추가 보안 위협 주의
7월 14일에 Microsoft가 패치한 제로데이 (zero-days) 중 두 개가 현재 악용되고 있습니다. 여러분의 스택에 이 중 하나라도 있는지 확인할 수 있는 한 줄 명령어를 소개합니다. 그리고 그 이면에 있는 더 흥미로운 질문, 즉 왜 이들이 숨어있던 더미가 그렇게 커졌는지, 그리고 왜 같은 주에 여러분의 코딩 에이전트 (coding agent)가 공격 표면 (attack surface)의 일부가 되었는지에 대해 다뤄보겠습니다.
이 포스트에서는 섹션당 하나씩, 총 세 가지를 실행해 볼 것입니다. 패치부터 시작하겠습니다.
패치 분류 (Patch triage): 실제로 불이 붙은 두 가지 찾기
Microsoft는 14일에 해당 프로그램 역사상 가장 큰 규모의 패치 화요일 (Patch Tuesday)를 배포했습니다. 그날 배포된 것만 세면 약 570개의 CVE (59개 치명적 취약점)이며, 7월 전체 릴리스로 계산하면 622개 (62개)입니다. Tenable은 569개로 집계했습니다. 어떤 방법론을 선택하든 모두 기록적인 수치입니다. 이러한 방대한 양은 비상 목록이라기보다 분류 (triage)의 문제입니다. 그중 두 개의 CVE는 밤을 새워 대응할 가치가 있고, 나머지는 일주일 내내 대응할 가치가 있습니다.
수정 패치가 나오기 전부터 활발히 악용되고 있는 두 가지는 다음과 같습니다:
- CVE-2026-56155 -- Active Directory Federation Services 권한 상승 (privilege escalation), Microsoft의 탐지 및 대응 팀 (Detection and Response Team)에 기여되었습니다.
- CVE-2026-56164 -- SharePoint Server 권한 상승 (escalation), 핵심 기능에 대한 인증 없음 (no auth), 네트워크를 통해 인증되지 않은 상태로 악용됨. Moderate (CVSS 5.3) 등급으로 평가되었으나, 이는 실제 위험도를 과소평가한 것입니다.
CVSS와 관계없이 최우선 순위로 고려해야 할 CISA KEV 카탈로그와 교차 참조하십시오. 이 명령은 라이브 피드를 가져와 항목과 목록에 있는 경우 연방 기한 (federal due date)을 반환합니다:
curl -s https://www.cisa.gov/sites/default/files/feeds/known_exploited_vulnerabilities.json \
| jq '.vulnerabilities[]
| select(.cveID | test("CVE-2026-56155|CVE-2026-56164"))
...
결과 행이 반환된다면, 이는 확인된 악용 사례이며 최우선 순위로 처리해야 합니다. 패치를 적용한 후, 패치가 적용되기 전에 공격을 받았는지 확인하십시오.
온프레미스 (on-prem) 사용자들을 위한 두 가지 추가 사항이 있습니다. CVE-2026-56164는 단독 사례가 아닙니다. 동일한 릴리스에서 CVE-2026-55040도 별도로 수정되었습니다. 이는 Rapid7의 Stephen Fewer가 언급한 또 다른 SharePoint 공격 체인의 첫 번째 절반으로, 아직 엠바고 (embargo) 상태인 두 번째 절반이 배포되면 인증되지 않은 RCE (원격 코드 실행)에 도달할 수 있습니다 (Microsoft의 패치는 8월로 예정되어 있습니다). 지금 즉시 팜 (farms)을 패치하고 조사하십시오. 그리고 세 번째 제로데이 (zero-day)인 CVE-2026-50661은 BitLocker 우회 취약점입니다. 공개적으로 밝혀졌으나 물리적 접근이 필요하며, Microsoft는 악용 가능성이 낮다고 평가하고 있어 대응 시급성은 상대적으로 낮습니다.
왜 이렇게 취약점이 쌓여 있는 걸까요? Microsoft는 이에 대해 직접적으로 설명합니다. 7월 9일 게시물에서 EVP Pavan Davuluri는 회사가 AI 지원 탐지 (AI-assisted discovery)에 의존함에 따라 릴리스당 더 많은 업데이트를 예상하라고 고객들에게 말했습니다. VP Tom Gallagher 역시 5월에 동일하게 언급했습니다. 570개 모두가 기계에 의해 생성되었다고 주장하는 사람은 없지만, 이러한 추세는 Microsoft 자체의 현상입니다. 그들의 운영 대응 방식이 이를 증명합니다. 그들은 품질 업데이트에 권장되는 유예 기간 (deferral window)을 3일 미만으로 단축하며, 이를 AI 시대의 속도라고 규정했습니다. 버그는 더 빨리 발견되고 악용되며, 패치는 더 빨리 분석됩니다. Microsoft는 공격자들이 자신들의 파이프라인과 정확히 일치하는 방식을 사용한다고 주장하는 것이 아니라, 공격자들 또한 AI를 채택하고 있다고 말할 뿐입니다. 버그를 더 빨리 찾아내는 기계는 양측 모두를 위해 작동합니다.
코딩 에이전트 (coding agent)는 또 다른 공격 표면입니다
7월 8일, Wiz는 GhostApproval을 발표했고 AI Now Institute는 Friendly Fire를 발표했습니다. 같은 날입니다. 이 두 연구는 모든 에이전트형 코딩 도구 (agentic coding tool)가 신뢰하고 있는 신뢰 경계 (trust boundary)를 동시에 무너뜨립니다.
GhostApproval는 1990년대 Unix 문제에 새로운 옷을 입힌 심볼릭 링크 공격 (symlink attack)입니다. 에이전트는 파일을 읽고, 그것이 민감한 경로를 가리키는 심볼릭 링크임을 소리 내어 추론하지만, 그럼에도 불구하고 해당 파일에 내용을 씁니다. 승인 대화 상자에는 해롭지 않아 보이는 파일 이름만 표시되지만, 에이전트는 최종적으로 해결된 대상(resolved target)에 내용을 작성합니다. 인간이 루프 안에 참여(human in the loop)하고 있지만, 그 루프가 인간에게 잘못된 정보를 보여주고 있는 것입니다. Amazon은 자사 버전의 취약점을 높은 심각도의 인증 전 쓰기 (pre-auth write, CVE-2026-12958)로 분류했습니다. Cursor는 v3.0에서 CVE-2026-50549를 배포했습니다. Google은 Antigravity 문제를 해결했습니다. Augment와 Windsurf는 본 문서 발행 시점까지 여전히 해결되지 않은 상태였습니다. 현재의 Claude Code 빌드는 심볼릭 링크를 해결(resolve)합니다.
Friendly Fire는 조달(procurement) 방식을 변화시킬 만한 문제입니다. Boyan Milanov와 Heidy Khlaaf는 모든 사람이 자동화하고 싶어 하는 워크플로우를 겨냥했습니다. 바로 에이전트에게 신뢰할 수 없는 제3자 리포지토리 (third-party repo)를 가리키며 검토 및 패치를 요청하는 것입니다. 이 익스플로잇 (exploit)은 훅 (hooks), 기술, 플러그인, MCP 서버, 악성 설정 파일 등을 전혀 필요로 하지 않습니다. 다만 에이전트가 자율 모드 (autonomy mode)로 실행되어야 합니다. 즉, 사용자가 아닌 에이전트에게 명령 승인 권한을 넘겨주는 설정인 Claude Code의 auto-mode나 Codex의 auto-review 모드와 같은 상태여야 합니다. 이 경우, 일반적인 리포지토리 콘텐츠 안에 숨겨진 프롬프트 인젝션 (prompt injection)이 작동합니다. 예를 들어, 그럴싸한 보안 스크립트를 가리키는 README 파일이 있고, 에이전트는 보안 테스트를 수행하라는 요청을 받았기 때문에 이를 실행하게 됩니다. 저자들은 직설적으로 말합니다. 모델 업데이트만으로는 이 문제를 해결할 수 없는데, 모델이 여전히 읽고 있는 코드와 따라야 할 지침을 신뢰성 있게 분리할 수 없기 때문입니다.
따라서 실질적인 질문은 "내 에이전트가 패치되었는가"가 아닙니다. "내 에이전트가 무엇을 할 수 있도록 허용되어 있는가, 그리고 나는 에이전트가 무엇을 하는지 볼 수 있는가"입니다. 먼저 외부 유출 (egress)부터 시작하십시오. 이는 귀하의 코딩 에이전트 프로세스가 실제로 어디에 연결되어 있는지 살펴보는 첫 단계입니다:
# macOS / Linux: 코딩 에이전트 프로세스에 의해 유지되는 현재 네트워크 연결
sudo lsof -i -nP | grep -iE 'claude|cursor|copilot|codeium|windsurf|augment|antigravity'
이것은 스냅샷일 뿐 모니터링이 아니며, 그 간극이 다음 섹션의 핵심입니다.
Claude Code: 외부 유출 (egress)의 교훈, 실시간 확인
중국 정부가 운영하는 국가 취약점 데이터베이스(National Vulnerability Database)는 Claude Code 2.1.91 버전부터 2.1.196 버전까지를 동의 없이 위치와 신원을 전송하는 "백도어 (backdoor)"로 분류하며 개발자들에게 삭제를 권고했습니다. Anthropic은 스파이 활동을 위한 백도어 의혹을 부인하며, 논란이 된 기능은 남용 방지 실험(anti-abuse experiment)이었다고 밝혔습니다. Claude Code 엔지니어는 7월 1일 2.1.198 버전에서 안티-디스틸레이션 스테가노그래피(anti-distillation steganography) 메커니즘이 제거되었다고 말했습니다. 저는 이를 판결할 수 없으며 여러분도 마찬가지입니다. 기록이 확립하는 사실은 좁습니다: 안티-디스틸레이션(anti-distillation) 로직이 존재했으며 제거되었다는 점입니다. 그것이 백도어였는지, 혹은 중국이 주장한 내용을 전송했는지 여부는 해결되지 않았습니다.
논쟁에서 살아남은 부분은 바로 여기이며, 이는 위에서 언급한 lsof 출력 결과로 다시 향합니다. 해당 명령어를 실행하고, 모든 연결을 스스로 설명할 수 있는지 솔직하게 자문해 보십시오. 대부분의 기업은 할 수 없습니다. 여러분이 외부 유출(egress)을 관찰할 수 없고 텔레메트리(telemetry)를 열거할 수 없는 권한 있는 에이전트(privileged agent)를 사용하는 것은, 타인의 의도와 상관없이 신뢰 경계(trust boundary)를 눈을 감은 채 확장하는 것입니다. 해결책은 지정학적 싸움에서 어느 한 편을 드는 것이 아닙니다. 이 정도의 도달 범위를 가진 모든 에이전트를 다른 권한 있는 프로세스(privileged process)와 동일하게 취급하는 것입니다: 관찰 가능한 외부 유출(observable egress), 문서화된 텔레메트리(documented telemetry), 그리고 사용할 수 있는 자원을 제한하는 최소 권한(least privilege) 원칙을 적용해야 합니다.
지루한 공격 표면: 알려진 버그와 잘못된 설정
모두가 기계(AI)를 주시하는 동안, 서방 기관 연합은 실제로 무엇이 악용되고 있는지 알려주었습니다. 7월 13일, NSA가 주도하고 CISA, FBI, DC3, 기타 파이브 아이즈(Five Eyes) 국가 및 유럽 파트너들이 참여한 권고안 AA26-194A는 다음과 같이 발표했습니다: 러시아 국가 행위자들이 공용 네트워크 장비를 통해 핵심 인프라를 공격하고 있습니다. 제로데이(zero-days)가 아닙니다. 이미 패치된 알려진 CVE와 기본적인 설정 오류들입니다 — 기본 SNMP 커뮤니티 문자열(default SNMP community strings), 취약한 비밀번호, 노출된 관리 인터페이스, 켜져 있는 Cisco Smart Install 등이 그 예입니다.
이 권고안은 여러분의 에지(edge) 환경에 직접 실행해 볼 수 있는 체크리스트처럼 읽힙니다. 승인된 스캐닝만 허용하고, 본인의 장치에 대해서만 수행하십시오:
# 취약하거나 기본값인 SNMP 커뮤니티 문자열 (권고 사항에서 이를 명시적으로 지적함)
nmap -sU -p161 --script snmp-info <your-device-ip>
...
이를 CISA와 FBI가 봄부터 지속해 온 캠페인과 결합해 보십시오. 러시아 정보 기관과 연계된 행위자들이 Signal 및 WhatsApp 계정에서 사람들을 피싱하고 있습니다. 아무도 Signal을 해킹하지 못했습니다. 그들은 대상자가 인증 코드를 넘겨주거나 공격자의 장치를 연결하도록 유도하며, 계정을 소유함으로써 암호화(crypto)를 우회합니다. 기록된 러시아의 전체 플레이북(playbook) 버전에는 AI가 전혀 필요하지 않습니다. 패치되지 않은 알려진 버그, 잘못된 설정, 그리고 설득력 있는 거짓말이면 충분합니다.
패턴
이것들을 나열해 보십시오. Microsoft가 점점 더 AI로 실행하는 파이프라인에서 기록된 패치 릴리스. 방금 위험하다고 식별한 심볼릭 링크(symlink)에 기록을 수행한 에이전트(agent). 사용자가 사전에 평가할 수 없는 논란의 여지가 있는 코드를 포함한 개발 도구(dev tool). 알려진 버그나 아무도 변경하지 않은 기본값으로 인해 노출된 핵심 인프라 라우터. 설득력 있는 거짓말에 잃어버린 Signal 계정. 서로 다른 높이(altitudes)에 있지만, 하나의 실패 원인은 동일합니다: 주변 통제 장치가 방어할 수 있는 지점을 넘어 확장된 신뢰입니다.
오늘 즉시 악용된 두 개의 제로데이(zero-days)를 패치하십시오. 이는 논쟁의 여지가 없습니다. 하지만 더 빠른 패치는 전략이 아니라 트레드밀(treadmill, 쳇바퀴)과 같습니다. 공격자에게도 작동하는 발견 엔진(discovery engine)보다 더 빨리 달릴 수는 없으며, 모델 업데이트만으로는 에이전트가 코드와 명령(instructions)을 확실히 구분하도록 가르칠 수 없고, 어떤 패치도 벤더가 변경하도록 남겨둔 기본 자격 증명(default credential)을 해결해주지 못합니다. 그들에게는 다른 조치가 필요합니다: 실질적인 최소 권한(least privilege), 에이전트가 몰래 사용할 수 없는 자격 증명, 가시성을 확보한 네트워크 경로, 그리고 인터넷에 노출된 적이 없는 관리 인터페이스입니다. 패치는 당신을 생존하게 하지만, 신뢰 모델(trust model)을 고쳐주지는 않습니다.
위의 세 가지 블록을 실행하십시오. 만약 KEV 쿼리가 행(row)을 반환한다면, 그것은 바로 오늘 밤의 문제입니다. 만약 lsof 출력에 설명할 수 없는 연결이 있다면, 그것이 바로 Claude Code 분쟁이 실제로 다루고 있는 노출(exposure)입니다. 그리고 만약 nmap 체크가 당신의 에지(edge)에서 불이 들어온다면, 러시아인들 역시 당신을 찾기 위해 제로데이를 사용할 필요가 없었다는 뜻입니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기