Fortigate SSLVPN Vulnerability exploited-in-the-wild
- 취약점 개요
- Fortinet FortiGate SSLVPN 장치에서 발견된 치명적 취약점 CVE-2024-23113이 실제 환경에서 악용됨
- 형식 문자열(format string) 오류로 인해 원격 코드 실행(RCE)이 가능, 인증 없이 네트워크 장치에 대한 비인가 접근 및 조작 가능
- 이 취약점은 Fortinet 제품 보안 팀의 Gwendal Guégniaud가 발견
- 기술적 세부 사항 및 악용 방식
- FGFM(FortiGate to FortiManager) 프로토콜에서 TCP 포트 541을 통해 SSL 연결 상에서 취약점이 악용
- ASCII 기반 키/값 쌍 형식의 메시지를 통해 취약점이 활성화되며, 공격자가 형식 문자열을 조작할 수 있음
- 예시 코드에서 공격자가 %s와 같은 형식 지정자를 전달하여 원격 코드 실행 가능성을 높임
- 해당 취약점은 개발자가 printf와 같은 함수를 오용한 경우 발생
- 취약한 FortiGate 버전
- FortiGate 7.0, 7.2, 7.4 버전에서 각기 다른 동작으로 취약점 존재
- 버전 7.0과 7.2: 패치 전 자체 서명 인증서를 허용하지만, 패치 후 인증된 CA 서명 필요
- 버전 7.4: 패치 여부와 상관없이 CA 서명 인증서 요구, 악용 난이도 높음
- 완화 방안
- Fortinet은 FGFM 서비스에 대한 접근을 차단하고, 최신 펌웨어로 업데이트를 권장
- 최신 업데이트는 형식 문자열이 공격자에 의해 조작되지 않도록 개선
- 취약점 탐지 및 테스트
- Python 스크립트로 FGFM 프로토콜을 통해 특정 페이로드를 전송하여 취약 여부를 테스트
"%n"
페이로드 수신 시 연결을 중단하는 장치는 취약점이 있는 것으로 식별됨
with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as sock:
sock.connect((hostname, 541))
with context.wrap_socket(sock, server_side=True) as ssock:
payload = b"reply 200\r\nrequest=auth\r\nauthip=%n\r\n\r\n\x00"
packet = b''
packet += 0x0001e034.to_bytes(4, 'little')
packet += (len(payload) + 8).to_bytes(4, 'big')
packet += payload
ssock.send(packet)
- 보안 권고 사항
- CVE-2024-23113 취약점은 FortiGate와 같은 네트워크 장치에서의 보안 유지의 어려움을 보여줌
- Fortinet 장치를 사용하는 조직은 보안 패치를 최우선으로 적용하여 악용을 방지해야 함
- Fortinet은 모든 영향받는 시스템을 즉시 업데이트할 것을 강력히 권장
'Kant's IT > Vulnerability' 카테고리의 다른 글
WordPress Jetpack 플러그인 치명적 취약점, 2,700만 개 사이트에 영향 (0) | 2024.11.24 |
---|---|
Veeam 취약점 악용을 통한 Akira 및 Fog 랜섬웨어 확산 (0) | 2024.11.23 |
Angular-base64-upload 데모 스크립트 악용 취약점 (CVE-2024-42640) (0) | 2024.11.23 |
GitHub Enterprise Server의 중요한 취약점 패치 (0) | 2024.11.23 |
Juniper Networks, Junos OS 및 타사 구성 요소의 다수 취약점 패치 (0) | 2024.11.23 |