[공격] 분석 — CVE-2023-28531
Critical OpenSSH smartcard key forwarding flaw (CVE‑2023‑28531) enables unrestricted agent‑forwarded authentication; immediate disabling of SSH agent forwarding and upgrade to OpenSSH 9.3+ is required.
📋 요약
- 심각도 critical · CVSS 9.8 · EPSS 0.02267 · 악용난이도 moderate
🔍 공격 기법
-
트리거 조건
- 대상 시스템에 OpenSSH 8.9 ~ 9.2가 설치돼 있고
ssh-add로 스마트카드 키를 로드할 수 있음. - SSH agent forwarding(
ForwardAgent yes또는-A)이 허용된 상태이며,SSH_AUTH_SOCK파일에 접근 가능한 사용자(또는 프로세스)가 존재함.
- 대상 시스템에 OpenSSH 8.9 ~ 9.2가 설치돼 있고
-
정찰
- 버전 확인:
ssh -V, 서비스 포트 스캔 및 배너 분석으로 취약 OpenSSH 버전 여부 판단. - 정책 탐색: sshd_config 의
AllowAgentForwarding설정, 사용자별~/.ssh/config에서 ForwardAgent 옵션 유무 파악.
- 버전 확인:
-
초기 접근
- 네트워크 접근만 있으면(AV:N) 복잡도 낮음(AC:L), 인증·사용자 상호작용 필요 없음(PR:N/UI:N).
- 공격자는 악성 PKCS#11 모듈을 이용하거나, 이미 로그인된 세션에서
ssh-add -s /path/to/pkcs11.so를 실행해 스마트카드 키를 에이전트에 삽입.
-
실행·권한 획득
- 삽입된 스마트카드 키는 목적지 제약 없이 ssh‑agent 에 저장됨.
- 이후
ssh -A user@intermediate로 중간 호스트에 접속하면, 해당 키가 자동으로 전달되고, any downstream host에서도 동일 키로 인증 가능.
-
지속·영향
- 공격자는 한 번 삽입된 스마트카드 키를 이용해 내부 네트워크 전역에서 무제한 SSH 로그인 시도 → 권한 상승 및 lateral movement.
- 스마트카드가 고권한 계정에 매핑돼 있으면, 전체 시스템 제어가 가능함.
-
CVSS 연결
- AV:N – 원격 네트워크 접근만으로 트리거.
- AC:L –
ssh-add실행 자체는 복잡하지 않음. - PR:N – 인증 필요 없음(공격자는 이미 로컬 사용자·또는 에이전트에 접근 가능).
- UI:N – 사용자의 추가 입력 요구 없음.
악용 가능성: AV가 Network이고 AC가 Low이며 PR이 None, UI가 None인 점을 고려하면 공격자는 별도의 권한이나 사용자 동작 없이 네트워크만 통해 취약 기능을 호출할 수 있습니다. ssh‑add 명령은 OpenSSH 8.9‒9.2에서 스마트카드 키를 ssh‑agent에 추가할 때 목적지 제한을 적용하지 않으므로, 공격자는 자신이 제어하는 SSH 서버에 접속한 사용자가 에이전트 포워딩을 활성화했을 경우 해당 서버를 통해 임의의 호스트로 인증 정보를 전파시킬 수 있습니다. 이때 필요한 전제조건은 (1) 피해자가 ssh‑add을 실행할 수 있는 환경, (2) 에이전트 포워딩이 허용된 SSH 연결, (3) 공격자가 스마트카드 키를 삽입하도록 유도하거나 사전에 준비한 가짜 스마트카드 데이터를 제공받는 것입니다. EPSS 0.02267이라는 실측 확률과 KEV에 등재되지 않았음에도 불구하고, 네트워크 접근만으로 저복잡도 공격이 가능하므로 실제 위협 수준은 이론적 CVSS 점수보다 높게 평가됩니다. 공격 표면은 ssh‑add 바이너리와 해당 명령이 처리하는 스마트카드 키 파라미터이며, 프로토콜 레벨에서는 SSH 2.0 채널 내 에이전트 포워딩 메시지가 노출됩니다. 따라서 원격 공격자는 “정찰 → SSH 서버 접속 → 에이전트 포워딩 활성화 → 악의적인 ssh‑add 호출” 순서로 체인을 구성해 다중 호스트 간 인증 정보를 탈취할 수 있습니다.
💥 영향 분석
- 스마트카드 기반 MFA/SSH 인증이 무력화되어, 공격자가 무제한으로 SSH 인증을 수행함.
- 내부 서비스 간
ssh-agent포워딩 의존 구조가 있는 환경에서는 전역 권한 상승 및 lateral movement 위험이 급증. - NetApp Brocade Fabric Operating System·HCI Bootstrap OS·SolidFire Element OS 등에도 동일 취약점이 포함돼 있어, 스토리지/네트워크 인프라 장비에서도 인증 탈취가 가능함.
🔗 관련 취약점·체이닝
- 키 전송 제한 부재 → 무제한 인증 (정보 노출 → 권한 상승).
- 다른 SSH 관련 결함(예: CVE‑2023‑xxxx,
ssh-agent권한 오버플로우)과 연계하면 원격 코드 실행까지 확장 가능. - 추정: 동일 호스트에서
ssh-agent소켓 파일(SSH_AUTH_SOCK)에 대한 전역 쓰기 권한이 있으면 로컬 권한 상승(LPE) 결함과 결합해 초기 접근을 더욱 쉽게 할 수 있음.
🔎 탐지
- auditd 혹은 eBPF 로
execve이벤트에서ssh-add실행 및SSH_AUTH_SOCK파일 생성/삭제를 기록. - sshd 로그에
Accepted publickey와 함께agent forwarded플래그가 나타나는 경우, 특히 예상되지 않은 사용자·IP 에서 발생하면 경보. - 시스템 콜 추적으로
/tmp/ssh‑*sock등 전역 쓰기 디렉터리에서 소켓 파일이 생성된 흔적을 모니터링.
🛡️ 완화 방안
- 즉시 조치: 모든 sshd_config 에
AllowAgentForwarding no를 적용하고, 기존 세션에서는ssh -o ForwardAgent=no로 접속하도록 스크립트 배포. - 제한적 정책: 필요한 경우에만 특정 사용자·그룹에 대해
AllowAgentForwarding yes를 허용하고, 해당 그룹에 MFA와 스마트카드 사용을 강제. - 패치 적용: OpenSSH ≥ 9.3 로 업그레이드; NetApp OS 공급업체가 제공하는 보안 업데이트를 신속히 설치.
- 감사 강화:
auditd규칙 추가 (-w /tmp/ssh* -p wa -k ssh-agent) 와 중앙 로그 수집기로 실시간 알림 설정. - 키 관리: 스마트카드 키는 최소 권한 계정에만 매핑하고, 불필요한 smartcard 인증을 비활성화.
⚖️ 위험도 / 우선순위
- 조치: scheduled (이번 주 내)
- 근거: CVSS=9.8 · non-KEV · EPSS=0.02267 · exploit=moderate · in_scope=None