반응형

CVE-2024-5535 — OpenSSL SSL_select_next_proto 권한 상승 취약점 (검사 예시 포함)
취약점 개요: SSL_select_next_proto() 함수에서 ALPN/프로토콜 협상 입력에 대한 검증이 불충분하여 메모리 오버리드/오류가 발생할 수 있으며, 특정 환경에서는 권한 상승 또는 원격 세션 탈취로 이어질 가능성이 있습니다.
영향 범위
- OpenSSL을 링크하거나 연동하는 TLS 서비스(Nginx, Apache, Postfix, OpenVPN 등).
- ALPN(Application-Layer Protocol Negotiation)을 사용하는 서버 환경에서 특히 영향이 큼.
기술적 세부
ALPN 처리 과정에서 클라이언트가 보낸 프로토콜 리스트(길이·경계 포함)에 대해 충분한 경계 검사가 이루어지지 않아, 비정상 입력으로 인해 메모리 접근이 비정상적으로 발생할 수 있습니다. 이로 인해 프로세스 충돌(DoS)이나 악의적 조작 시 권한 상승 가능성이 제기됩니다.
권장 대응
- OpenSSL 및 연동 애플리케이션을 공급사가 권고한 패치 버전(또는 최신 안정 버전)으로 즉시 업데이트.
- ALPN이 필요하지 않은 서비스는 ALPN 기능 비활성화 검토.
- 네트워크 경계에서 TLS/ALPN 관련 이상 패턴(비정상 길이, 비ASCII 등)을 탐지·차단.
바이너리 심볼 존재 검사 (실무 예시)
로컬 시스템에 설치된 OpenSSL 바이너리나 애플리케이션에서 취약 관련 심볼이 포함되어 있는지 간단히 확인할 수 있습니다. 아래는 `strings`와 `grep`을 이용한 실무 예시입니다.
# 바이너리에서 SSL_select_next_proto 문자열(심볼) 검색 strings "검사대상파일" | grep SSL_select_next_proto # 예시: /usr/local/openssl/bin/openssl 바이너리 검사 strings /usr/local/openssl/bin/openssl | grep SSL_select_next_proto # 예상 출력(심볼이 2회 발견된 경우) SSL_select_next_proto SSL_select_next_proto
설명:
strings는 바이너리 파일에서 사람이 읽을 수 있는 문자열을 추출합니다. 심볼 테이블이나 정적 문자열이 남아있는 빌드에서는 함수명이나 심볼명이 추출됩니다.grep으로 해당 심볼(또는 키워드)을 필터링하면, 바이너리 내부에 해당 함수명/문자열이 포함되어 있는지 신속히 확인할 수 있습니다.- 심볼이 발견된다고 해서 곧바로 취약하다는 의미는 아니며, 빌드 옵션(심볼 숨김 여부), 라이브러리 버전 및 패치 상태를 추가로 확인해야 합니다. 그러나 심볼 존재는 추가조사 우선순위 판단에 유용합니다.
확장 검사 스크립트(예시)
여러 파일을 한 번에 검사하려면 간단한 쉘 스크립트를 사용하면 편리합니다.
# 검사 디렉터리 내의 모든 ELF/바이너리 파일에서 심볼 검색 예시
for f in /usr/local/bin/* /usr/sbin/*; do
if [ -f "$f" ]; then
strings "$f" 2>/dev/null | grep -q "SSL_select_next_proto" && echo "FOUND: $f"
fi
done
위 스크립트는 지정한 경로들의 파일을 순회하며 심볼 존재 여부를 검사하고, 발견 시 해당 파일 경로를 출력합니다. 권한 문제로 일부 파일 접근이 거부될 수 있으므로 루트 또는 적절한 권한으로 실행하십시오.
탐지 포인트(IOC) 예시
- TLS 핸드셰이크 중 비정상 ALPN 문자열(과도한 길이, 비ASCII) 탐지 이벤트
- 핸드셰이크 실패·세션 종료가 갑자기 증가하는 경우
- 관련 프로세스(SIGSEGV 등) 크래시 발생 및 코어 덤프
주의: strings 검사로 심볼이 보인다고 해도, 정확한 취약성 여부는 라이브러리 버전과 패치 상태 확인이 필요합니다. 항상 공급사 공식 보안 공지와 패치 노트를 최우선으로 확인하세요.
즉시 적용 가능한 4단계 오류 대응 절차
① 외부 노출 여부 확인 — TLS 서비스(443/8443 등)가 인터넷에 노출되어 있지 않은지 점검하고, 노출 시 우선 제한.
② 서비스 또는 역할 일시 비활성화 — ALPN 처리를 담당하는 서비스(프록시/로드밸런서/애플리케이션)를 필요시 일시 중지.
③ 방화벽 포트 제한 — 외부에서의 TLS 관련 접근을 방화벽/ACL로 제한하여 공격 표면 축소.
④ 이벤트 로그 및 프로세스 모니터링 — 핸드셰이크 오류, SIGSEGV, 비정상 ALPN 패턴 등을 집중 모니터링.
결론
CVE-2024-5535는 OpenSSL을 사용하는 서비스에 실질적 위험을 초래할 수 있는 취약점입니다. 실무에서는 패치 적용과 더불어 바이너리 내 심볼 검사(strings+grep), 네트워크 이상 징후 모니터링, EDR/IDS 규칙 적용을 병행해 위험을 최소화하세요.
반응형
LIST
'IT 소식 뉴스 > CVE CODE' 카테고리의 다른 글
| [PostgreSQL] CVE-2025-1094 — quoting API SQL Injection (0) | 2025.11.02 |
|---|---|
| CVE-2025-61932 — Lanscope Endpoint Manager 원격 코드 실행 취약점 (1) | 2025.11.02 |
| Windows11 - 10월 CVE 목록 및 대응 방법 (CVE-2025-59275, CVE-2025-59261, CVE-2025-59210, CVE-2025-33073, CVE-2025-29828 (0) | 2025.10.30 |
| MS, WSUS 치명적 RCE(CVE-2025-59287) 재배포 — 즉시 패치적용 권고 (0) | 2025.10.28 |
| OpenSSH CVE-2023-38408 (3) | 2025.10.21 |
