[단독공격] 분석 — CVE-2023-28531
CVE-2023-28531 allows unrestricted smartcard keys to be added to ssh-agent in OpenSSH <9.3, enabling remote attackers with agent forwarding to hijack SSH sessions – patch immediately and disable agent forwarding as a stop‑gap.
📋 요약
- 심각도 critical · CVSS 9.8 · EPSS 0.02267 · 악용난이도 moderate
🔍 공격 기법
- 트리거 조건: 피해자가
ssh-add로 스마트카드 키를 추가할 때 에이전트 포워딩(ForwardAgent yes)이 활성화돼 있으면, 해당 키에 목적지 제한이 적용되지 않음. - 공격 표면:
- 노출 엔드포인트: SSH 클라이언트 실행 환경 (
ssh-add,ssh), UNIX 도메인 소켓SSH_AUTH_SOCK. - 파라미터/함수:
ssh-agent_add_identity()내부에서 per‑hop constraint 플래그가 누락된 경우.
- 노출 엔드포인트: SSH 클라이언트 실행 환경 (
- 공격 단계
- 정찰 – 공격자는 대상 네트워크에 SSH 접근 가능 여부를 확인하고, 에이전트 포워딩을 허용하는 서비스(
sshd_config)를 탐색. - 초기 접근 – 피싱, 악성 스크립트, 혹은 내부 계정 탈취 등으로 피해자가
ssh-add를 실행하도록 유도(예: 가짜 스마트카드 미들웨어). - 실행·권한 획득 – 제한 없는 키가 ssh‑agent에 저장되면, 이후 피victim이 다른 호스트로 SSH 연결을 시도할 때 에이전트 포워딩을 통해 공격자가 제어하는 서버에 동일 키가 자동 사용됨 → 무단 인증 성공.
- 지속 – 공격자는 지속적인 에이전트 포워딩 세션을 유지하거나,
ssh-add -D로 기존 키를 삭제하고 새로운 악성 키를 삽입해 장기 접근 확보. - 영향 – 원격 호스트에 대한 완전한 인증 우회 → 권한 상승·내부 이동( lateral movement).
- 정찰 – 공격자는 대상 네트워크에 SSH 접근 가능 여부를 확인하고, 에이전트 포워딩을 허용하는 서비스(
- CVSS 벡터와 실제 조건 연결:
AV:N은 네트워크를 통한 SSH 접속,AC:L은 에이전트 포워딩 설정만으로 낮은 난이도,PR:N·UI:N은 사용자의 추가 입력 없이 자동 적용됨.
악용 가능성: 이 취약점은 네트워크를 통해 직접 접근(AV:N)이 가능하고 공격 복잡도가 낮으며(AC:L) 권한 없이도 이용할 수 있어(PR:N, UI:N) 실전에서 비교적 쉬운 전개가 가능합니다. EPSS 0.02267이라는 값은 현재까지 실제 악용 사례는 드물지만, 존재함을 의미하므로 무시하기 어렵습니다. KEV에 등재되지 않은 점은 아직 대규모 공격이 보고되지 않았다는 뜻이며, 이는 공격자가 별도 권한 상승이나 추가 취약점 체이닝 없이 단독으로 활용하기엔 제한적일 수 있음을 시사합니다. ssh‑add 명령이 스마트카드 키를 목적지 제약 없이 ssh‑agent에 등록하게 되므로, 로컬에서 해당 명령을 실행할 수 있는 사용자(예: 일반 계정)만 확보하면 임의의 호스트에 대해 인증 토큰을 재사용할 수 있습니다. 따라서 공격 표면은 ssh‑add 바이너리와 이를 호출하는 환경, 그리고 공개된 ssh‑agent 소켓(UNIX 도메인 소켓)으로 한정됩니다. 실제 exploitation은 “ssh‑add … – -h <target>” 형태로 임의 목적지를 지정해 키를 삽입한 뒤, 이후 연결 시 해당 키가 자동 사용되도록 하는 단계적 흐름을 따릅니다.
💥 영향 분석
- 제한 없는 스마트카드 키가 ssh‑agent에 저장되면, 공격자는 피victim이 접속하는 모든 SSH 서버에 대해 인증을 우회할 수 있습니다.
- 결과적으로 내부 네트워크 내 무단 접근·권한 상승·데이터 탈취·추가 악성 코드 배포가 가능해집니다.
🔗 관련 취약점·체이닝
- 유형: 현재 CWE가 지정되지 않았으나, “인증 우회”(CWE‑287)와 “제어 흐름 무결성 손상”(CWE‑264)에 해당합니다.
- 가능한 체이닝 패턴
- 인증 우회 → 권한 상승(CVE‑2023‑XXXXX 등 로컬 권한 상승 결함) → 원격 코드 실행(RCE).
- 에이전트 포워딩을 이용해 내부 시스템에 접근 후, 취약한 서비스(예: 오래된 Apache, MySQL)와 연계하면 전면 침투가 가능.
- 추정: 다른 인증 관련 버그(CVE‑2022‑XXXX)가 존재한다면, 이 결함으로 획득한 세션을 이용해 추가 권한 상승이 쉬워질 수 있습니다.
🔎 탐지
ssh-agent로그에 “added identity” 메시지가 비정상적인 키 지문(예: 기존 사용자와 매치되지 않음)과 함께 기록되는 경우.- SSH 서버 로그에서 동일 클라이언트 IP가 여러 호스트에 연속적으로 인증 성공을 보이는 패턴.
sshd설정 파일(sshd_config)에AllowAgentForwarding yes가 활성화된 상태와 동시에AuthorizedKeysCommand등 커스텀 인증 플러그인 사용 여부 확인.
🛡️ 완화 방안
- 즉시 조치: 모든 OpenSSH 인스턴스를 9.3 이상으로 업데이트하고, 에이전트 포워딩을 필요하지 않은 경우
ForwardAgent no로 비활성화합니다. - 근본 해결: 공급업체 패치를 적용한 후, ssh‑agent 사용 시 per‑hop 제한 옵션을 강제하도록 클라이언트 정책을 수립합니다.
- 추가 방어: 스마트카드 키 관리에 MFA를 도입하고,
ssh-add -c(confirm) 옵션을 기본으로 설정해 사용자 확인 절차를 추가합니다.
⚖️ 위험도 / 우선순위
- 조치: scheduled (이번 주 내)
- 근거: CVSS=9.8 · non-KEV · EPSS=0.02267 · exploit=moderate · in_scope=None