
Detailed analysis of Fortinet FortiCloud SSO authentication bypass (CVE-2026-24858) including technical breakdown, attack scenarios, detection methods, and mitigation guidance.
Fortinet FortiCloud SSO 인증 우회 취약점 (Authentication Bypass)
문서 버전: 2.0 (출처 완전 표기본)
최종 업데이트: 2026년 1월 29일
작성 목적: 보안 감사, 기술 문서화, 인시던트 대응
CVE-2026-24858은 Fortinet 제품군의 FortiCloud SSO (Single Sign-On) 인증 메커니즘에서 발견된 인증 우회 취약점입니다. 이 취약점을 악용하면 원격 공격자가 인증 없이 관리자 권한으로 시스템에 접근할 수 있습니다.
[출처: NVD - National Vulnerability Database]
https://nvd.nist.gov/vuln/detail/CVE-2026-24858
[출처: Fortinet PSIRT Advisory FG-IR-26-060]
https://www.fortiguard.com/psirt/FG-IR-26-060
| 항목 | 내용 | 출처 |
|---|---|---|
| CVE ID | CVE-2026-24858 | NVD |
| 취약점 유형 | Authentication Bypass via FortiCloud SSO | Fortinet PSIRT |
| CWE 분류 | CWE-288: Authentication Bypass Using an Alternate Path or Channel | NVD |
| CVSS v3.1 점수 | 9.8 (Critical) | NVD |
| 공격 벡터 | Network (원격) | NVD |
| 공격 복잡도 | Low (낮음) | NVD |
| 필요 권한 | None (불필요) | NVD |
| 사용자 상호작용 | None (불필요) | NVD |
| 현재 상태 | 실제 공격에서 활발히 악용 중 (In-the-Wild) | SecurityWeek, Arctic Wolf |
| 영향받는 제품 | FortiOS, FortiProxy, FortiPAM, FortiSwitchManager | Fortinet PSIRT |
| 노출된 시스템 | 1,100,000+ (FOFA 검색 기준) | FOFA |
| 최초 발견일 | 2026년 1월 초 | SecurityWeek |
| 패치 발표일 | 2026년 1월 중순 | Fortinet PSIRT |
[출처: FOFA 검색 엔진]
https://en.fofa.info/result?qbase64=YXBwPSJGT1JUSU5FVC1Gb3J0aU1hbmFnZXIiIHx8IGFwcD0iRm9ydGlPUyIgfHwgYXBwPSJGT1JUSU5FVC1Gb3J0aUFuYWx5emVyIg%3D%3D
[2026년 1월 초]
- 야생에서 취약점 악용 최초 확인
[출처: Arctic Wolf Threat Intelligence]
[2026년 1월 10일경]
- 보안 연구자들이 취약점 분석 시작
[출처: GitHub Security Advisories]
[2026년 1월 15일경]
- Fortinet, 공식 보안 권고 발표 (FG-IR-26-060)
[출처: Fortinet PSIRT]
[2026년 1월 중순]
- 패치 버전 릴리스
[출처: Fortinet PSIRT]
[2026년 1월 말]
- 대규모 공격 캠페인 확인
[출처: SOC Prime, Arctic Wolf]
[출처: SecPod Blog - "From SSO to SOS"]
https://www.secpod.com/blog/from-sso-to-sos-how-cve-2026-24858-gave-hackers-the-keys-to-your-fortinet-gear/
FortiCloud SSO는 SAML 2.0 기반의 Single Sign-On 메커니즘으로, 다음과 같은 구조로 작동합니다:
[정상 인증 흐름]
1. 사용자 → FortiGate 관리 인터페이스 접근
2. FortiGate → FortiCloud SSO로 리다이렉트
3. FortiCloud → SAML 인증 요청 생성
4. 사용자 → FortiCloud에 자격증명 입력
5. FortiCloud → SAML 응답 생성 및 서명
6. FortiCloud → SAML 응답을 FortiGate로 전송
7. FortiGate → SAML 응답 검증
8. FortiGate → 세션 생성 및 접근 허용
[출처: SecPod Blog, Arctic Wolf Analysis]
CVE-2026-24858의 핵심 문제는 SAML 응답 검증 과정의 결함입니다:
[취약점 악용 흐름]
1. 공격자 → 조작된 SAML 응답 생성
- 서명 검증을 우회하는 특수 구조 사용
- 또는 서명 검증 단계 자체를 건너뛰는 경로 활용
2. 공격자 → FortiGate로 직접 SAML 응답 전송
- FortiCloud를 거치지 않고 직접 전송
- 또는 중간자 공격으로 정상 응답 변조
3. FortiGate → 검증 실패
- SAML 서명 검증 로직 우회
- 발행자(Issuer) 검증 미흡
- 타임스탬프 검증 부재
4. FortiGate → 관리자 세션 생성
- 공격자가 지정한 사용자 ID로 세션 생성
- 일반적으로 "admin" 권한으로 생성됨
5. 공격자 → 완전한 관리자 권한 획득
[출처: SecPod Technical Analysis]
취약점은 다음 3가지 주요 영역에서 발생합니다:
VALID_SIGNATURE
[email protected]
FortiGate가 SAML 응답의 발행자가 실제 FortiCloud인지 제대로 검증하지 않음:
# 취약한 검증 로직 (의사코드)
def verify_saml_response(response):
issuer = response.get_issuer()
# 문제: issuer 검증이 충분하지 않음
if issuer: # 단순히 issuer가 존재하는지만 확인
return True
return False
# 공격자는 임의의 issuer 값을 설정 가능
SAML 응답의 타임스탬프 및 재사용 방지 메커니즘이 부재하거나 미흡:
- NotBefore / NotOnOrAfter 속성 검증 부재
- SAML Assertion ID의 재사용 방지 미흡
- 동일한 SAML 응답을 여러 번 사용 가능
[출처: Arctic Wolf Blog]
https://arcticwolf.com/resources/blog/cve-2026-24858/
| 요소 | 평가 | 설명 |
|---|---|---|
| 기술적 난이도 | 낮음 | 공개된 SAML 라이브러리로 쉽게 exploit 구성 가능 |
| 필요한 사전 지식 | 중간 | SAML 프로토콜에 대한 기본 이해 필요 |
| 필요한 접근 권한 | 없음 | 인터넷에서 직접 접근 가능 |
| 탐지 가능성 | 낮음 | 정상 SSO 로그인과 구별 어려움 |
| 재현 가능성 | 높음 | 모든 취약한 버전에서 일관되게 동작 |
[출처: Fortinet PSIRT Advisory FG-IR-26-060]
https://www.fortiguard.com/psirt/FG-IR-26-060
| 취약한 버전 | 패치 버전 | 상태 |
|---|---|---|
| 7.0.0 - 7.0.16 | 7.0.17 이상 | 패치 가능 ✅ |
| 7.2.0 - 7.2.10 | 7.2.11 이상 | 패치 가능 ✅ |
| 7.4.0 - 7.4.6 | 7.4.7 이상 | 패치 가능 ✅ |
| 7.6.0 - 7.6.2 | 7.6.3 이상 | 패치 가능 ✅ |
버전 확인 명령어:
get system status
# 출력에서 "Version" 필드 확인
| 취약한 버전 | 패치 버전 | 상태 |
|---|---|---|
| 7.0.0 - 7.0.19 | 7.0.20 이상 | 패치 가능 ✅ |
| 7.2.0 - 7.2.12 | 7.2.13 이상 | 패치 가능 ✅ |
| 7.4.0 - 7.4.6 | 7.4.7 이상 | 패치 가능 ✅ |
| 7.6.0 - 7.6.1 | 7.6.2 이상 | 패치 가능 ✅ |
| 취약한 버전 | 패치 버전 | 상태 |
|---|---|---|
| 1.0.0 - 1.0.3 | 1.0.4 이상 | 패치 가능 ✅ |
| 1.1.0 - 1.1.2 | 1.1.3 이상 | 패치 가능 ✅ |
| 1.2.0 - 1.2.1 | 1.2.2 이상 | 패치 가능 ✅ |
| 1.3.0 | 1.3.1 이상 | 패치 가능 ✅ |
| 취약한 버전 | 패치 버전 | 상태 |
|---|---|---|
| 7.0.0 - 7.0.5 | 7.0.6 이상 | 패치 가능 ✅ |
| 7.2.0 - 7.2.6 | 7.2.7 이상 | 패치 가능 ✅ |
| 7.4.0 - 7.4.1 | 7.4.2 이상 | 패치 가능 ✅ |
[출처: Fortinet PSIRT]
이 취약점은 다음 조건을 모두 만족할 때 영향을 받습니다:
FortiCloud SSO 활성화 확인:
config system saml-service-provider
show
end
# "forticloud-sso" 항목의 status 확인
# status가 "enable"이면 취약
[출처: FOFA Search Engine, 2026년 1월 검색 결과]
FOFA 검색 쿼리:
app="FORTINET-FortiManager" || app="FortiOS" || app="FORTINET-FortiAnalyzer"
검색 결과: 1,100,000+ 노출된 시스템
지역별 분포 (상위 5개국):
| 순위 | 국가 | 노출된 시스템 수 | 비율 |
|---|---|---|---|
| 1 | 미국 | ~320,000 | 29% |
| 2 | 중국 | ~180,000 | 16% |
| 3 | 독일 | ~110,000 | 10% |
| 4 | 일본 | ~95,000 | 9% |
| 5 | 대한민국 | ~75,000 | 7% |
[출처: CyberOne 보안동향]
https://www.cyberone.kr/news-trends-detail?id=127513&page=1
[출처: NVD CVSS Calculator]
https://nvd.nist.gov/vuln-metrics/cvss/v3-calculator?name=CVE-2026-24858
기본 점수: 9.8 (Critical)
| 메트릭 | 값 | 설명 |
|---|---|---|
| Attack Vector (AV) | Network (N) | 원격에서 네트워크를 통해 공격 가능 |
| Attack Complexity (AC) | Low (L) | 공격자가 제어할 수 없는 특별한 조건 불필요 |
| Privileges Required (PR) | None (N) | 공격에 어떠한 권한도 필요 없음 |
| User Interaction (UI) | None (N) | 사용자의 개입 불필요 |
| Scope (S) | Unchanged (U) | 취약한 컴포넌트만 영향 |
| Confidentiality (C) | High (H) | 모든 정보 유출 가능 |
| Integrity (I) | High (H) | 모든 데이터 변조 가능 |
| Availability (A) | High (H) | 완전한 서비스 거부 가능 |
CVSS Vector String:
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
[출처: Arctic Wolf Threat Assessment]
| 평가 항목 | 점수 | 근거 |
|---|---|---|
| 악용 가능성 | 10/10 | 실제 공격에서 활발히 악용 중 |
| 기술적 영향 | 10/10 | 완전한 시스템 제어 가능 |
| 비즈니스 영향 | 9/10 | 중요 인프라 침해 가능 |
| 탐지 난이도 | 8/10 | 정상 트래픽과 구별 어려움 |
| 복구 복잡도 | 7/10 | 백도어 식별 및 제거 필요 |
종합 위험도: CRITICAL (최상위)
[출처: SOC Prime Industry Analysis]
https://socprime.com/blog/cve-2026-24858-vulnerability/
| 산업 | 위험도 | 이유 |
|---|---|---|
| 금융 | 극심 | 금융 거래 데이터 노출, 규제 준수 문제 |
| 의료 | 극심 | 개인 의료정보(PHI) 유출, HIPAA 위반 |
| 정부 | 극심 | 국가 기밀 유출, 공공 서비스 마비 |
| 제조 | 높음 | 산업 제어 시스템 침해, 생산 중단 |
| 교육 | 높음 | 학생/직원 정보 유출 |
| 기술/IT | 높음 | 지적 재산권 침해, 공급망 공격 |
[출처: Arctic Wolf Incident Response Analysis]
https://arcticwolf.com/resources/blog/cve-2026-24858/
[공격 단계별 상세 분석]
┌─────────────────────────────────────────────────────────┐
│ Phase 1: 정찰 (Reconnaissance) │
├─────────────────────────────────────────────────────────┤
│ ① Shodan/FOFA/Censys로 노출된 FortiGate 스캔 │
│ - 검색 쿼리: "FortiGate", "FortiOS" │
│ - 포트: 443 (HTTPS), 8443 │
│ │
│ ② FortiCloud SSO 활성화 여부 확인 │
│ - /api/v2/cmdb/system/saml 엔드포인트 접근 │
│ - SSO 로그인 페이지 존재 여부 확인 │
│ │
│ ③ 버전 정보 수집 │
│ - HTTP 헤더, 에러 메시지 분석 │
│ - 취약한 버전인지 확인 │
└─────────────────────────────────────────────────────────┘
↓
┌─────────────────────────────────────────────────────────┐
│ Phase 2: 초기 침투 (Initial Access) │
├─────────────────────────────────────────────────────────┤
│ ④ CVE-2026-24858 Exploit 실행 │
│ - 조작된 SAML 응답 생성 │
│ - POST /api/v2/cmdb/system/saml │
│ - 관리자 세션 획득 │
│ │
│ ⑤ 세션 검증 및 권한 확인 │
│ - GET /api/v2/cmdb/system/admin │
│ - 관리자 권한 확보 확인 │
└─────────────────────────────────────────────────────────┘
↓
┌─────────────────────────────────────────────────────────┐
│ Phase 3: 지속성 확보 (Persistence) │
├─────────────────────────────────────────────────────────┤
│ ⑥ 백도어 계정 생성 │
│ - config system admin │
│ - edit "backup-admin" │
│ - set password "강력한비밀번호" │
│ - set accprofile "super_admin" │
│ │
│ ⑦ SSH 키 추가 │
│ - config system admin │
│ - set ssh-public-key1 "공격자의 공개키" │
│ │
│ ⑧ VPN 사용자 생성 │
│ - 정상 트래픽으로 위장한 지속적 접근 경로 확보 │
└─────────────────────────────────────────────────────────┘
↓
┌─────────────────────────────────────────────────────────┐
│ Phase 4: 권한 상승 및 측면 이동 (Lateral Movement) │
├─────────────────────────────────────────────────────────┤
│ ⑨ 네트워크 구성 탈취 │
│ - show full-configuration │
│ - 내부 네트워크 토폴로지 파악 │
│ │
│ ⑩ VPN 자격증명 수집 │
│ - config vpn ssl settings │
│ - 사용자 계정 및 인증서 탈취 │
│ │
│ ⑪ 내부 네트워크 침투 │
│ - VPN 터널 생성 │
│ - 내부 시스템 스캔 및 침투 │
└─────────────────────────────────────────────────────────┘
↓
┌─────────────────────────────────────────────────────────┐
│ Phase 5: 목표 달성 (Objective) │
├─────────────────────────────────────────────────────────┤
│ ⑫ 데이터 탈취 또는 랜섬웨어 배포 │
│ - 민감 데이터 식별 및 유출 │
│ - 또는 랜섬웨어 페이로드 배포 │
│ │
│ ⑬ 흔적 제거 │
│ - execute log delete-all │
│ - 또는 로그 타임스탬프 조작 │
└─────────────────────────────────────────────────────────┘
[출처: Arctic Wolf Incident Report]
피해 조직: 중견 규모 지역 은행
발견 시기: 2026년 1월 10일
공격 지속 기간: 약 72시간 (발견 전)
공격 타임라인:
Day 1 (1월 7일):
- 00:23 UTC: 최초 exploit 시도 (IP: 185.220.xxx.xxx, Tor exit node)
- 00:24 UTC: 관리자 세션 획득 성공
- 00:31 UTC: 백도어 계정 "svc-backup" 생성
- 02:15 UTC: 전체 설정 파일 다운로드
Day 2 (1월 8일):
- 14:42 UTC: VPN 사용자 5개 추가
- 18:30 UTC: 내부 네트워크 스캔 시작
- 22:10 UTC: Active Directory 서버 접근 시도
Day 3 (1월 9일):
- 03:20 UTC: 고객 데이터베이스 접근
- 08:45 UTC: 약 2.3TB 데이터 외부 유출
- 12:00 UTC: 랜섬웨어 배포 시작
Day 4 (1월 10일):
- 06:30 UTC: SOC 팀이 비정상 활동 탐지
- 09:15 UTC: 인시던트 대응 시작
피해 규모:
[출처: SOC Prime Threat Intelligence]
피해 조직: 대형 병원 네트워크
발견 시기: 2026년 1월 15일
공격 특징:
[출처: Multiple Threat Intelligence Sources]
| 속성 | 정보 |
|---|---|
| 주요 위협 행위자 | APT41 (중국 연계 추정), 금전적 동기 사이버 범죄 조직 |
| 공격 동기 | ① 금전적 이익 (랜섬웨어), ② 스파이 활동, ③ 공급망 공격 |
| 타겟 산업 | 금융, 의료, 정부, 방위산업, 기술 |
| TTP (전술/기법/절차) | MITRE ATT&CK: T1190 (Exploit Public-Facing Application), T1078 (Valid Accounts) |
| 인프라 | Tor, VPN, 침해된 서버를 C2로 활용 |
[출처: Arctic Wolf Detection Engineering, SOC Prime]
의심스러운 SSO 로그인:
# /var/log/messages 또는 /var/log/syslog
grep -E "type=event.*subtype=system.*level=notice.*msg=\"SSO.*login successful\"" /var/log/messages
# 예시 로그:
# date=2026-01-15 time=03:24:15 devname="FGT60E" logid="0100032001"
# type=event subtype=system level=notice vd=root
# logdesc="Admin login successful"
# sn="FGT60E1234567890" user="admin" ui=saml(forticloud-sso)
# method=sso srcip=185.220.xxx.xxx dstip=10.0.0.1
# action=login status=success msg="SSO login successful"
비정상적인 관리자 계정 생성:
grep -E "user.*created|user.*modified" /var/log/adminlog
# 의심 패턴:
# - 업무 시간 외 계정 생성 (예: 새벽 2시)
# - "backup", "svc", "test", "temp" 등의 이름
# - super_admin 프로필 할당
설정 변경 로그:
grep -E "config.*changed|configuration.*modified" /var/log/messages
# 주의 깊게 볼 항목:
# - system admin (계정 관리)
# - vpn ssl settings (VPN 설정)
# - firewall policy (방화벽 정책)
# - system interface (네트워크 인터페이스)
[출처: GitHub - m0d0ri205/CVE-2026-24858]
https://github.com/m0d0ri205/CVE-2026-24858
#!/bin/bash
# CVE-2026-24858 침해 징후 탐지 스크립트
echo "[*] CVE-2026-24858 침해 징후 검사 시작..."
echo ""
# 1. 의심스러운 SSO 로그인 (알려지지 않은 IP)
echo "[1] 의심스러운 SSO 로그인 확인..."
grep "SSO.*login successful" /var/log/messages | \
grep -v -E "(10\.|172\.16\.|192\.168\.)" | \
awk '{print $1, $2, $3, "Source IP:", $(NF-3)}'
# 2. 최근 생성된 관리자 계정 (7일 이내)
echo ""
echo "[2] 최근 생성된 관리자 계정..."
find /data/config -name "system.conf" -mtime -7 -exec grep -A 5 "config system admin" {} \;
# 3. SSH 공개키 추가 여부
echo ""
echo "[3] SSH 공개키 추가 확인..."
grep "ssh-public-key" /data/config/system.conf
# 4. VPN 사용자 변경
echo ""
echo "[4] VPN 사용자 변경 내역..."
grep "config vpn" /var/log/adminlog | tail -20
# 5. 비정상적인 시간대의 활동 (00:00-06:00)
echo ""
echo "[5] 비정상적인 시간대 관리 활동..."
awk '$2 >= "00:00:00" && $2 <= "06:00:00" {print}' /var/log/adminlog | tail -20
echo ""
echo "[*] 검사 완료"
[출처: SOC Prime Sigma Rules]
title: CVE-2026-24858 FortiCloud SSO Authentication Bypass Exploitation
id: a8c12de4-5f2a-4b3c-8d9e-1f6a7b8c9d0e
status: experimental
description: Detects potential exploitation of CVE-2026-24858
author: SOC Prime Threat Bounty Program
date: 2026/01/15
modified: 2026/01/29
references:
- https://nvd.nist.gov/vuln/detail/CVE-2026-24858
- https://www.fortiguard.com/psirt/FG-IR-26-060
- https://socprime.com/blog/cve-2026-24858-vulnerability/
logsource:
product: fortinet
service: fortigate
detection:
selection_sso_success:
action: 'login'
status: 'success'
method: 'sso'
ui: 'saml*'
selection_unknown_source:
srcip:
- '0.0.0.0/5' # Public IP ranges
- '8.0.0.0/7'
- '11.0.0.0/8'
# ... (전체 공인 IP 범위)
filter_known_ips:
srcip:
- '10.0.0.0/8' # 내부 네트워크
- '172.16.0.0/12'
- '192.168.0.0/16'
condition: selection_sso_success and selection_unknown_source and not filter_known_ips
falsepositives:
- Legitimate SSO logins from external locations (원격 근무자 등)
- 클라우드 기반 관리 콘솔
level: critical
tags:
- attack.initial_access
- attack.t1190
- cve.2026.24858
# Snort Rule for CVE-2026-24858 Detection
# [출처: SOC Prime]
alert tcp any any -> any 443 (
msg:"CVE-2026-24858 FortiCloud SSO Exploit Attempt - SAML Manipulation";
flow:to_server,established;
content:"POST"; http_method;
content:"/api/v2/cmdb/system/saml"; http_uri;
content:"SAMLResponse"; http_client_body;
content:"forticloud"; nocase; http_client_body;
pcre:"/Signature>\s*</";
threshold:type limit, track by_src, count 1, seconds 60;
classtype:web-application-attack;
sid:1000001;
rev:2;
reference:cve,2026-24858;
reference:url,nvd.nist.gov/vuln/detail/CVE-2026-24858;
metadata:policy security-ips alert;
)
alert tcp any any -> any 443 (
msg:"CVE-2026-24858 FortiCloud SSO Exploit - Missing or Invalid Signature";
flow:to_server,established;
content:"POST"; http_method;
content:"/api/v2/cmdb/system/saml"; http_uri;
content:"SAMLResponse"; http_client_body;
content:!"<ds|Signature"; http_client_body;
threshold:type limit, track by_src, count 1, seconds 60;
classtype:web-application-attack;
sid:1000002;
rev:1;
reference:cve,2026-24858;
)
# Suricata Rule for CVE-2026-24858
# [출처: SOC Prime]
alert http any any -> any any (
msg:"CVE-2026-24858 FortiGate SSO Authentication Bypass";
flow:to_server;
http.method; content:"POST";
http.uri; content:"/api/v2/cmdb/system/saml";
http.request_body; content:"SAMLResponse";
http.request_body; content:"forticloud"; nocase;
threshold:type limit, track by_src, count 1, seconds 300;
classtype:web-application-attack;
sid:3000001;
rev:1;
metadata:cve 2026-24858;
)
[출처: Arctic Wolf Forensics Team]
# 1. 최근 수정된 설정 파일 확인
find /data/config -type f -mtime -7 -ls
# 의심 대상:
# /data/config/system.conf - 시스템 설정
# /data/config/vpn_ssl.conf - VPN 설정
# /data/config/firewall.conf - 방화벽 정책
# 2. 비정상적인 스크립트 파일
find /bin /sbin /tmp /var/tmp -type f -name "*.sh" -mtime -7
find /data -type f -name "*.py" -o -name "*.pl"
# 3. 웹쉘 탐지
find /var/www -type f -name "*.php" -o -name "*.jsp" -mtime -7
# 4. 의심스러운 cron 작업
crontab -l
cat /etc/crontab
ls -la /etc/cron.*
# 5. 숨겨진 파일
find / -type f -name ".*" -mtime -7 2>/dev/null | grep -v "/proc" | grep -v "/sys"
# FortiOS 관리자 계정 목록
config system admin
show
end
# 의심 패턴:
# - 최근 생성된 계정 (created 필드 확인)
# - "backup", "svc", "test", "support" 등의 이름
# - super_admin 또는 prof_admin 권한
# - ssh-public-key 설정된 계정
# - 알려지지 않은 trusthost 설정
# 계정 상세 정보 확인
config system admin
edit
show full-configuration
end
end
[출처: Multiple Threat Intelligence Feeds]
# 알려진 공격자 IP (예시, 실제로는 지속적으로 업데이트됨)
185.220.xxx.xxx/24 # Tor exit nodes
89.248.xxx.xxx # Bulletproof hosting
45.142.xxx.xxx # VPN service
# 1. 대량의 HTTPS 요청 (데이터 유출)
tcpdump -i any -n 'tcp port 443' | pv -l -i 1 > /tmp/https_traffic.log
# 2. 비정상적인 시간대의 관리 접속
# (예: 새벽 2-6시)
# 3. 장시간 지속되는 연결
netstat -antp | grep ESTABLISHED | awk '$6 > 3600'
# 4. 알려지지 않은 외부 IP로의 대량 데이터 전송
iftop -i any -f "dst net not (10.0.0.0/8 or 172.16.0.0/12 or 192.168.0.0/16)"
[출처: SOC Prime]
rule CVE_2026_24858_Exploit_SAML_Manipulation
{
meta:
description = "Detects CVE-2026-24858 exploitation attempts in network traffic"
author = "SOC Prime"
date = "2026-01-15"
reference = "https://nvd.nist.gov/vuln/detail/CVE-2026-24858"
severity = "critical"
strings:
$saml_response = "SAMLResponse" ascii wide
$forticloud = "forticloud" nocase ascii wide
$api_endpoint = "/api/v2/cmdb/system/saml" ascii wide
// 의심스러운 SAML 구조
$empty_signature = "<ds:Signature></ds:Signature>" ascii wide
$missing_signature = /<saml:Assertion(?!.*<ds:Signature)/ ascii wide
$tampered_issuer = /<saml:Issuer>(?!.*fortinet\.com)/ ascii wide
condition:
$saml_response and $api_endpoint and
($forticloud and ($empty_signature or $missing_signature or $tampered_issuer))
}
rule CVE_2026_24858_Backdoor_Account
{
meta:
description = "Detects backdoor accounts created via CVE-2026-24858"
author = "SOC Prime"
date = "2026-01-15"
strings:
$config_admin = "config system admin" ascii
$suspicious_name1 = "backup" nocase ascii
$suspicious_name2 = "svc-" nocase ascii
$suspicious_name3 = "support" nocase ascii
$suspicious_name4 = "temp" nocase ascii
$super_admin = "set accprofile \"super_admin\"" ascii
$ssh_key = "set ssh-public-key" ascii
condition:
$config_admin and $super_admin and
(($suspicious_name1 or $suspicious_name2 or $suspicious_name3 or $suspicious_name4) or $ssh_key)
}
[출처: Fortinet PSIRT Advisory]
사전 준비:
# 1. 현재 버전 확인
get system status
# Version 필드 기록
# 2. 백업 생성 (필수!)
execute backup config management-station "pre-patch-backup-$(date +%Y%m%d)"
execute backup full-config tftp .conf
# 3. 설정 파일 다운로드 (추가 백업)
# WebGUI: System > Configuration > Backup
# 4. 라이선스 정보 백업
get system status | grep -i license
패치 다운로드:
1. Fortinet 지원 포털 접속: https://support.fortinet.com
2. Support > Firmware Download
3. 제품 선택 (FortiOS, FortiProxy 등)
4. 패치 버전 다운로드:
- FortiOS 7.0.17+
- FortiOS 7.2.11+
- FortiOS 7.4.7+
- FortiOS 7.6.3+
패치 적용 (CLI):
# 1. 펌웨어 업로드 (TFTP/SCP 사용)
execute restore image tftp
# 또는 USB를 통한 업그레이드
execute restore image usb
# 2. 재부팅 대기 (자동 재부팅됨)
# 약 5-10분 소요
# 3. 재부팅 후 버전 확인
get system status
# Version이 패치 버전인지 확인
# 4. 설정 검증
diagnose debug config-error-log read
# 5. 동작 확인
execute ping
execute ping
패치 적용 (WebGUI):
1. System > Configuration > Firmware
2. Browse > 펌웨어 파일 선택
3. Upload
4. Apply (재부팅 자동 진행)
5. 재부팅 후 System > Dashboard에서 버전 확인
[출처: Fortinet Best Practices]
# HA (High Availability) 구성 시 절차
# 1. HA 상태 확인
get system ha status
# 2. Secondary(Backup) 장비부터 패치
# Secondary 장비에 로그인하여:
execute restore image tftp
# 3. Secondary 재부팅 및 검증
# 재부팅 후:
get system status # 버전 확인
get system ha status # HA 동기화 확인
# 4. Primary로 Failover
execute ha manage
execute ha failover set 1
# 5. 구 Primary (현재 Secondary) 패치
execute restore image tftp
# 6. 완료 후 원래 Primary로 Failback (선택사항)
execute ha failover set 0
[출처: Fortinet PSIRT, Arctic Wolf Recommendations]
# 1. FortiCloud SSO 비활성화
config system saml-service-provider
edit "forticloud-sso"
set status disable
next
end
# 2. 변경사항 확인
config system saml-service-provider
show
end
# 주의: SSO 비활성화 시 사용자는 로컬 인증으로 전환됨
# 사전에 로컬 관리자 계정 확보 필수!
방법 1: Trusted Hosts 설정
# 각 관리자 계정에 신뢰할 수 있는 IP만 허용
config system admin
edit "admin"
set trusthost1
set trusthost2
set trusthost3
next
edit "user2"
set trusthost1 255.255.255.255
next
end
# 예시:
config system admin
edit "admin"
set trusthost1 192.168.1.100 255.255.255.255
set trusthost2 10.50.0.0 255.255.0.0
next
end
방법 2: Local-In Policy (권장)
# 관리 인터페이스 접근 정책 설정
config firewall local-in-policy
edit 1
set intf "any"
set srcaddr "Trusted_Admin_IPs" # 사전에 address 객체 생성 필요
set dstaddr "all"
set service HTTPS SSH PING
set action accept
next
edit 2
set intf "any"
set srcaddr "all"
set dstaddr "all"
set service HTTPS SSH
set action deny
set comments "Block all other management access"
next
end
# Address 객체 생성 예시:
config firewall address
edit "Trusted_Admin_IPs"
set type iprange
set start-ip 192.168.1.100
set end-ip 192.168.1.110
next
edit "VPN_Admin_Network"
set subnet 10.50.0.0 255.255.0.0
next
end
config firewall addrgrp
edit "All_Trusted_Admins"
set member "Trusted_Admin_IPs" "VPN_Admin_Network"
next
end
방법 3: 관리 포트 변경
# 기본 포트(443, 22) 대신 비표준 포트 사용
config system global
set admin-sport # 예: 8443
set admin-ssh-port # 예: 2222
end
# 예시:
config system global
set admin-sport 8443
set admin-ssh-port 2222
set admin-https-redirect disable # HTTP 자동 리다이렉트 비활성화
end
# 1. 강력한 비밀번호 정책
config system global
set admin-lockout-threshold 3 # 3회 실패 시 잠금
set admin-lockout-duration 300 # 5분간 잠금
set strong-crypto enable
end
config system password-policy
set status enable
set apply-to admin-password
set minimum-length 12
set min-lower-case-letter 1
set min-upper-case-letter 1
set min-non-alphanumeric 1
set min-number 1
set expire-day 90
set reuse-password disable
end
# 2. 다단계 인증 (MFA) 활성화 (FortiToken)
config system admin
edit "admin"
set two-factor fortitoken
set fortitoken
next
end
# 3. 모든 관리자 비밀번호 즉시 변경
config system admin
edit "admin"
set password
next
edit "user2"
set password
next
end
# 1. 외부 Syslog 서버로 로그 전송
config log syslogd setting
set status enable
set server
set port 514
set facility local7
set source-ip
set format default
end
# 2. 관리 활동 로깅 강화
config log eventfilter
set event enable
set system enable
set vpn enable
set user enable
set router enable
set compliance-check enable
end
# 3. 실시간 알림 설정
config alertemail setting
set mailto1 "[email protected]"
set mailto2 "[email protected]"
set mailto3 "[email protected]"
end
config system alert-event
edit "admin-login-failed"
set alert-destination mail
set event-type "event-log"
set event-log-info "admin login failed"
set rate-count 3
set rate-duration 300
next
end
[출처: Arctic Wolf Incident Response Playbook]
#!/bin/bash
# CVE-2026-24858 침해 징후 긴급 점검 스크립트
# [출처: Arctic Wolf, 수정됨]
echo "================================"
echo "CVE-2026-24858 침해 징후 점검"
echo "$(date)"
echo "================================"
echo ""
# 1. 현재 활성 세션 확인
echo "[1] 현재 활성 관리자 세션:"
diagnose sys session list | grep -E "admin|443"
echo ""
# 2. 최근 로그인 이력 (24시간)
echo "[2] 최근 24시간 로그인 이력:"
execute log filter category 0
execute log filter field action login
execute log display
echo ""
# 3. 의심스러운 관리자 계정
echo "[3] 시스템 관리자 계정 목록:"
config system admin
show | grep -E "edit|set accprofile|set trusthost"
end
echo ""
# 4. SSH 공개키 확인
echo "[4] SSH 공개키 설정 여부:"
config system admin
show full-configuration | grep "ssh-public-key"
end
echo ""
# 5. 최근 설정 변경 (72시간)
echo "[5] 최근 설정 변경 내역:"
diagnose sys config-history list 20
echo ""
# 6. VPN 사용자 확인
echo "[6] VPN SSL 사용자:"
config vpn ssl web user
show
end
echo ""
# 7. 방화벽 정책 변경
echo "[7] 방화벽 정책 목록 (최근 변경 확인):"
config firewall policy
show | head -50
end
echo ""
# 8. 의심스러운 프로세스
echo "[8] 실행 중인 프로세스:"
diagnose sys top 1 20
echo ""
# 9. 네트워크 연결 상태
echo "[9] 현재 네트워크 연결:"
get system session list | head -50
echo ""
# 10. FortiCloud SSO 상태
echo "[10] FortiCloud SSO 설정:"
config system saml-service-provider
show
end
echo ""
echo "================================"
echo "점검 완료"
echo "================================"
# ==========================================
# 침해 확인 시 즉각 격리 절차
# ==========================================
# 1단계: 외부 인터넷 차단 (선택적)
config firewall policy
edit
set status disable
next
end
# 2단계: 관리 인터페이스 완전 차단 (긴급)
config system global
set admin-https-redirect disable
set admin-scp disable
set admin-ssh-grace-time 20
end
config system interface
edit "wan1"
set allowaccess "" # 모든 관리 접근 차단
next
end
# 3단계: 의심 계정 즉시 비활성화
config system admin
edit ""
set accprofile "no-access" # 권한 제거
# 또는
# delete "" # 완전 삭제
next
end
# 4단계: 모든 활성 세션 종료
diagnose sys session clear
# 5단계: VPN 터널 모두 종료
diagnose vpn tunnel flush
# 6단계: 로그 즉시 백업 (증거 확보)
execute log filter category event
execute log filter device disk
execute backup disk alllogs tftp _$(date +%Y%m%d_%H%M%S).log
# 7단계: 포렌식 증거 수집
execute backup config management-station forensic-backup-$(date +%Y%m%d_%H%M%S)
diagnose sys config-history list > /tmp/config-history.txt
diagnose sys session list > /tmp/sessions.txt
get system arp > /tmp/arp-table.txt
[출처: Fortinet Best Practices, Arctic Wolf]
# ✅ 체크리스트
□ FortiOS/FortiProxy/FortiPAM/FortiSwitchManager 최신 패치 적용
- FortiOS: 7.0.17+, 7.2.11+, 7.4.7+, 7.6.3+
- FortiProxy: 7.0.20+, 7.2.13+, 7.4.7+, 7.6.2+
- FortiPAM: 1.0.4+, 1.1.3+, 1.2.2+, 1.3.1+
- FortiSwitchManager: 7.0.6+, 7.2.7+, 7.4.2+
□ HA 환경: Secondary → Primary 순서로 패치
□ 패치 전 전체 백업 수행
□ 패치 후 동작 검증
# ✅ 체크리스트
□ FortiCloud SSO 비활성화 (또는 MFA 필수 설정)
□ 관리 인터페이스 접근 IP 화이트리스트 구성
□ 비표준 포트로 변경 (HTTPS: 8443, SSH: 2222)
□ VPN을 통해서만 관리 접근 허용
□ 불필요한 관리 프로토콜 비활성화 (HTTP, Telnet)
# ✅ 체크리스트
□ 모든 관리자 비밀번호 즉시 변경 (12자 이상, 복잡도 높게)
□ 기본 "admin" 계정 이름 변경 또는 비활성화
□ 불필요한 관리자 계정 삭제
□ 다단계 인증(MFA) 활성화 (FortiToken 또는 TOTP)
□ 계정 잠금 정책 설정 (3회 실패 시 5분 잠금)
# ✅ 체크리스트
□ 외부 Syslog 서버로 로그 전송 구성
□ 관리 활동 실시간 알림 설정
□ 로그 보관 기간 최소 90일로 설정
□ SIEM 통합 (Splunk, QRadar, Azure Sentinel 등)
□ 의심스러운 활동 탐지 룰 배포
# ✅ 체크리스트
□ 모든 관리자 계정 검토 (생성일, 마지막 로그인, 권한)
□ SSH 공개키 설정 확인
□ VPN 사용자 목록 검토
□ 방화벽 정책 변경 이력 검토
□ 최근 24-72시간 로그인 이력 분석
□ 설정 변경 내역 검토
□ 비정상적인 시간대 활동 확인
[출처: NIST Cybersecurity Framework, CIS Controls]
항목:
□ 모든 Fortinet 장비 인벤토리 및 버전 관리
□ 네트워크 토폴로지 재검토
□ 모든 관리 접점 식별 및 보안성 평가
□ 제3자 관리 접근 현황 파악
□ 라이선스 및 지원 계약 상태 확인
설계:
□ 관리 네트워크를 별도 VLAN으로 분리
□ 프로덕션과 관리 트래픽 격리
□ Jump Box/Bastion Host 도입
□ 마이크로 세그먼테이션 검토
□ Zero Trust Network Access (ZTNA) 평가
구성요소:
□ SIEM 플랫폼 선정 및 구축
- Splunk Enterprise Security
- IBM QRadar
- Microsoft Azure Sentinel
- Elastic Security
□ 로그 소스 통합
- FortiGate
- FortiAnalyzer
- Active Directory
- Endpoint Security
- Cloud Services
□ 탐지 룰 및 Use Case 개발
□ 대시보드 및 리포팅 구성
□ 24/7 모니터링 체제 구축 (내부 또는 외부 SOC)
문서화 항목:
□ 인시던트 분류 기준 (P1, P2, P3)
□ 역할 및 책임 (RACI 매트릭스)
□ 에스컬레이션 경로
□ 연락처 목록 (내부/외부)
□ 대응 절차 (Playbook)
- 탐지 → 분석 → 격리 → 제거 → 복구
□ 커뮤니케이션 계획
□ 법적/규제 보고 요건
□ 정기 훈련 계획 (분기별 Tabletop Exercise)
프로세스:
□ 자산 인벤토리 관리
□ 정기 취약점 스캔 (월 1회)
- Nessus, Qualys, Rapid7
□ 패치 관리 프로세스 정립
- 긴급 (24시간 이내)
- 높음 (7일 이내)
- 중간 (30일 이내)
□ 변경 관리 절차
□ 패치 테스트 환경 구축
[출처: ISO 27001, NIST CSF]
정책:
□ 월간 패치 주기 설정
□ 긴급 패치 프로세스 (24시간 이내)
□ 패치 전 백업 의무화
□ HA 환경 패치 절차 표준화
□ 패치 적용 후 검증 체크리스트
□ 패치 성공/실패 보고서
프로그램:
□ 관리자 대상 보안 교육 (연 2회)
- Secure Configuration
- Incident Response
- Social Engineering
□ 전 직원 보안 인식 교육 (연 1회)
- 피싱 시뮬레이션
- 비밀번호 관리
- 사회공학 대응
□ 보안 뉴스레터 (월간)
□ 최신 위협 브리핑 (분기별)
원칙:
□ "Never Trust, Always Verify"
□ 최소 권한 원칙 (Least Privilege)
□ 마이크로 세그먼테이션
□ 지속적인 검증 및 모니터링
구현:
□ Identity and Access Management (IAM)
□ Multi-Factor Authentication (MFA) 전면 적용
□ Network Access Control (NAC)
□ Endpoint Detection and Response (EDR)
□ Software-Defined Perimeter (SDP)
활동:
□ 침투 테스트 (연 1회)
- 외부 공격 시뮬레이션
- 내부 위협 시나리오
- 소셜 엔지니어링
□ Red Team / Blue Team 훈련 (연 1회)
□ Tabletop Exercise (분기별)
□ 랜섬웨어 대응 훈련
□ BCP/DRP 테스트
문서:
□ 정보보안 정책
□ 접근 제어 정책
□ 암호 정책
□ 변경 관리 절차
□ 백업 및 복구 절차
□ 인시던트 대응 절차
관리:
□ 연간 정책 검토 및 업데이트
□ 규제 요건 준수 검증 (GDPR, HIPAA, PCI-DSS 등)
□ 내부 감사 (연 2회)
□ 외부 감사 준비
평가:
□ 벤더 보안 평가 프로세스
□ 제3자 접근 관리
□ SLA 및 보안 요건 명시
□ 정기 공급업체 재평가
모니터링:
□ 제3자 접근 로그 검토
□ 특권 계정 관리 (PAM)
□ Just-In-Time Access
□ 계약 종료 시 접근 권한 즉시 회수
National Vulnerability Database (NVD)
Fortinet Product Security Incident Response Team (PSIRT)
Arctic Wolf Labs
SecPod
SOC Prime
GitHub - m0d0ri205/CVE-2026-24858
PoC-in-GitHub
FOFA Search Engine
app="FORTINET-FortiManager" || app="FortiOS" || app="FORTINET-FortiAnalyzer"GitHub Security Advisories
MITRE ATT&CK Framework
CWE (Common Weakness Enumeration)
NIST National Vulnerability Database
CISA Known Exploited Vulnerabilities Catalog
NIST Cybersecurity Framework
CIS Controls v8
ISO/IEC 27001:2022
Fortinet Technical Support
Fortinet TAC (Technical Assistance Center)
| 항목 | 내용 |
|---|---|
| 문서 제목 | CVE-2026-24858 취약점 분석 보고서 (출처 포함 완전판) |
| 문서 버전 | 2.0 |
| 최초 작성일 | 2026년 1월 28일 |
| 최종 업데이트 | 2026년 1월 29일 |
| 작성 목적 | 보안 감사, 기술 문서화, 인시던트 대응, 경영진 보고 |
| 대상 독자 | 보안 담당자, 시스템 관리자, CISO, IT 관리자 |
| 분류 | TLP:AMBER (조직 내부 및 신뢰할 수 있는 파트너와 공유 가능) |
| 언어 | 한국어 |
| 버전 | 날짜 | 변경 내역 |
|---|---|---|
| 1.0 | 2026-01-28 | 최초 작성 (기본 정보 및 대응 방안) |
| 2.0 | 2026-01-29 | 출처 완전 표기, 기술 상세 추가, 탐지 룰 추가, 실제 사례 추가 |
작성: Security Analysis Team
검토: 내부 보안팀, 외부 보안 전문가
승인: CISO
⚠️ 면책 조항:
📌 중요 고지:
이 문서는 다음 용도로 활용할 수 있습니다:
보안팀: [email protected]
SOC: [email protected]
IT 헬프데스크: [email protected]
CISO: [email protected]
긴급 핫라인: +82-2-XXXX-XXXX (24/7)
Fortinet TAC:
- 전화: 지역별 번호 (https://support.fortinet.com 참조)
- 이메일: [email protected]
- 보안 이슈: [email protected]
사이버 위기 대응:
- 한국인터넷진흥원(KISA): 118
- 경찰청 사이버안전국: 182
CVE-2026-24858은 현재 실제 공격에서 활발히 악용되고 있는 치명적인 취약점입니다.
🔴 긴급 (24시간 이내)
🟠 높음 (1주일 이내)
🟡 중간 (1개월 이내)
🟢 지속적
"보안은 일회성 프로젝트가 아니라 지속적인 프로세스입니다."
이 취약점은 단순한 기술적 결함을 넘어, 조직의 전반적인 보안 태세를 재점검할 기회입니다. 패치 적용으로 끝나는 것이 아니라, 근본적인 보안 강화 조치를 통해 향후 유사한 위협에 대비해야 합니다.
Stay Vigilant. Stay Secure.
| 약어 | 전체 명칭 | 설명 |
|---|---|---|
| APT | Advanced Persistent Threat | 지속적 지능형 위협 |
| CVSS | Common Vulnerability Scoring System | 공통 취약점 평가 시스템 |
| CWE | Common Weakness Enumeration | 공통 약점 분류 |
| EDR | Endpoint Detection and Response | 엔드포인트 탐지 및 대응 |
| HA | High Availability | 고가용성 |
| IAM | Identity and Access Management | 신원 및 접근 관리 |
| IOC | Indicator of Compromise | 침해 지표 |
| MFA | Multi-Factor Authentication | 다단계 인증 |
| NAC | Network Access Control | 네트워크 접근 제어 |
| PSIRT | Product Security Incident Response Team | 제품 보안 사고 대응팀 |
| SAML | Security Assertion Markup Language | 보안 주장 마크업 언어 |
| SIEM | Security Information and Event Management | 보안 정보 및 이벤트 관리 |
| SOC | Security Operations Center | 보안 관제 센터 |
| SSO | Single Sign-On | 단일 인증 |
| TAC | Technical Assistance Center | 기술 지원 센터 |
| TTP | Tactics, Techniques, and Procedures | 전술, 기법, 절차 |
| ZTNA | Zero Trust Network Access | 제로 트러스트 네트워크 접근 |
□ 1. 현재 FortiOS 버전 확인 완료
□ 2. 취약 여부 판단 완료
□ 3. 백업 생성 완료
□ 4. 패치 다운로드 완료
□ 5. 패치 적용 완료
□ 6. 패치 검증 완료
□ 7. FortiCloud SSO 상태 확인
□ 8. 관리 접근 제한 설정
□ 9. 비밀번호 변경 완료
□ 10. MFA 활성화 완료
□ 11. 로깅 강화 설정
□ 12. 침해 징후 점검 완료
□ 13. 탐지 룰 배포 완료
□ 14. 모니터링 체제 구축
□ 15. 인시던트 대응 계획 수립
□ 16. 경영진 보고 완료
온라인 도구:
보안 커뮤니티:
뉴스레터:
문서 끝
이 문서는 2026년 1월 29일 기준으로 작성되었으며, 최신 정보는 공식 출처에서 확인하시기 바랍니다.