피드로 돌아가기
GeekNewsSecurity
원문 읽기
ssh-keysign-pwn - Linux 0-day로 비권한 사용자가 root 소유 파일을 읽는 PoC
pidfd_getfd 취약점을 통한 setuid 파일 디스크립터 무단 접근 및 root 권한 탈취 분석
AI 요약
Context
Linux 커널의 ptrace_may_access 로직 결함으로 인해 비권한 사용자가 setuid 바이너리가 오픈한 파일 디스크립터에 접근 가능한 상태. ssh-keysign과 같은 setuid 프로세스의 권한 관리 허점을 이용하여 root 소유의 민감 파일에 접근하는 LPE(Local Privilege Escalation) 위험이 존재함.
Technical Solution
- pidfd_getfd 시스템 콜을 통한 setuid 프로세스 내 파일 디스크립터 강제 획득 구조 분석
- ptrace_scope 설정을 2(admin-only) 또는 3(no attach)으로 변경하여 프로세스 attach 경로를 원천 차단하는 강화 전략
- systemtap 스크립트를 활용한 pidfd_getfd 호출의 실시간 런타임 차단 및 완화책 적용
- /usr/lib64/misc/ssh-keysign의 실행 권한을 제거하여 특정 PoC 공격 벡터를 일시적으로 무력화하는 임시 조치
- EnableSSHKeysign 옵션의 우선순위 검증 로직 부재로 인한 호스트 키 노출 경로 식별
실천 포인트
- /proc/sys/kernel/yama/ptrace_scope 설정값을 2 이상으로 유지하여 권한 없는 프로세스 접근 제어 - setuid 바이너리 설계 시 최소 권한 원칙을 적용하고 민감한 설정 옵션을 조기 검증하는 로직 구현 - 커널 보안 패치 적용 전 eBPF나 systemtap을 통한 위험 시스템 콜(pidfd_getfd 등) 모니터링 및 차단 검토 - LLM 기반의 PoC 생성 속도 증가에 따른 Zero-day 대응 시간 단축 및 신속한 완화책 적용 프로세스 구축