
CVE-2026-32746용 자동 완화 도구로, 원자적 롤백, 다중 방화벽 지원(UFW, firewalld, nftables, iptables), 그리고 Linux 시스템을 위한 심층 방어(Defense-in-Depth) 복구 기능을 제공합니다.
CVE-2026-32746은 교육용 데모를 위해 사용된 가상의 취약점입니다.
이 도구는 "완벽한 폭풍(Perfect Storm)" 시나리오를 다룹니다: 메모리 안전성이 없는 Telnet 데몬(telnetd)과 권한 상승 과정의 경쟁 조건(race condition)이 결합되어, 원격 루트 명령 포인터(IP) 하이재킹으로 이어지는 상황입니다.
이 도구는 다음과 같은 기능을 갖춘 모듈형 보안 프레임워크로 발전했습니다:
--rollback을 사용하여 시스템을 원래 상태로 복원합니다.systemctl mask를 사용하여 종속성에 의한 우발적 재시작을 방지합니다.ss 및 netstat을 통한 실시간 수신 포트 검증.이 도구는 이기종 Linux 환경을 처리하기 위해 Strategy 패턴을 따릅니다.
classDiagram
class MitigationTool {
+args
+run() int
}
class StateManager {
+save_state()
+rollback()
}
class FirewallManager {
+backend: FirewallBackend
+block_port(port)
}
class FirewallBackend {
<<interface>>
+is_available() bool
+is_active() bool
+block_port(port)
}
MitigationTool *-- StateManager
MitigationTool *-- FirewallManager
FirewallManager o-- FirewallBackend
FirewallBackend <|-- UFWBackend
FirewallBackend <|-- FirewalldBackend
FirewallBackend <|-- IptablesBackend
FirewallBackend <|-- NftablesBackend
다음 시퀀스는 원자적 "캡처 후 수정(capture-before-fix)" 로직을 설명합니다:
sequenceDiagram
participant User
participant Tool as MitigationTool
participant SM as StateManager
participant FM as FirewallManager
participant SV as ServiceManager
User->>Tool: --apply-fixes
Tool->>SM: save_state(POTENTIAL_SERVICES, firewall, port)
activate SM
SM->>SM: Capture systemd states
SM->>SM: Save to .cve_2026_32746_state.json
SM-->>Tool: State Captured
deactivate SM
Tool->>SV: remediate(active_services)
SV->>SV: stop / disable / mask
Tool->>FM: block_port(23)
FM->>FM: Apply Firewall Strategy (UFW/Firewalld/etc)
Tool-->>User: Success (Exit 0)
sudo)sudo ./telnet_mitigation_tool.py --apply-fixes
캡처된 스냅샷에서 시스템 상태를 즉시 복원합니다.
sudo ./telnet_mitigation_tool.py --rollback
롤백이 수행할 변경 사항을 정확히 미리 확인합니다.
sudo ./telnet_mitigation_tool.py --rollback --dry-run
telnet_mitigation_tool.py: 핵심 모듈형 실행 엔진.test_v3_logic.py: 모듈형 방화벽 백엔드를 지원하는 단위 테스트 스위트.CHANGELOG.md: 버전 변경 이력..cve_2026_32746_state.json: 로컬 상태 저장소(완화 중 생성됨).이 프로젝트는 MIT 라이선스에 따라 라이선스가 부여됩니다 - 자세한 내용은 LICENSE 파일을 참조하십시오.