사이버 보안에서 소프트웨어 및 애플리케이션의 기본 구성
이 글은 최근에 발표된 NSA/CISA 합동 사이버 보안 자문 를 통해 이들 기관에서 실시한 레드/블루팀 훈련에서 확인된 주요 사이버 보안 문제를 살펴봅니다. 이 글에서는 특정 이슈에 대해 보다 심층적으로 살펴보고, 해당 이슈가 적용되는 실제 시나리오와 이를 제한하거나 극복하기 위해 채택할 수 있는 완화 전략에 대해 설명합니다. 이는 NSA/CISA 보고서에서 제공한 정보를 확장한 것입니다.
-
제조업체에서 제공하는 기본 구성은 보안에 최적화되어 있지 않아 시스템이 공격에 취약한 경우가 많습니다. 시스템 서비스 및 애플리케이션의 기본 구성은 실수로 무단 액세스 및 악의적인 활동에 대한 문을 열어주거나 잘 알려진 운영 조건에 의존하여 적의 정찰 작전을 용이하게 할 수 있습니다.
기본 자격 증명과 허용되는 기본 서비스 권한 및 구성 설정이라는 두 가지 중요한 문제가 널리 퍼져 있습니다. 이러한 설정은 설정과 사용을 용이하게 하기 위한 것이지만, 종종 사이버 보안의 가장 취약한 고리가 되기도 합니다.
실제 영향력
잘 알려진 소프트웨어 스택(예: LAMP - Linux, Apache, Mysql, PHP)을 배포할 때 결과 시스템 상태를 쉽게 유추하고 복제할 수 있습니다. 따라서 실제 시스템에 대한 위협 공격자의 프로브 시도에 대해 모니터링 및 경보 시스템을 트리거하는 대신 잠재적 표적의 시스템을 쉽게 재현하고 취약점을 조사할 수 있습니다. 또한 공격자가 하나의 구성 요소를 식별한 다음 전체 스택이 존재한다고 (올바르게) 가정함으로써 잠재적인 공격 경로를 더 쉽게 식별할 수 있습니다.
기본 구성 문제
레드/블루 팀 테스트에서 NSA와 CISA는 다음과 같은 일반적인 사례를 발견했습니다:
기본 자격 증명
상용 기성품(COTS) 네트워크 디바이스에는 관리 계정에 대한 기본 자격 증명이 미리 정의되어 있는 경우가 많습니다. 이러한 인증정보는 악의적인 공격자가 쉽게 발견하고 악용하여 무단 디바이스 액세스, 관리 계정 재설정 또는 VPN 인증정보 활용을 위해 사용할 수 있습니다. 또한, 권한 있는 도메인 계정이 로드된 프린터, 스캐너, IoT 디바이스와 같은 디바이스는 공격자에게 네트워크 내에서 측면 이동 기능을 제공할 수 있습니다.
과거에는 이러한 기본 구성을 악용하여 매우 유명한 인시던트가 발생하거나 악화되는 경우가 있었습니다. 특히 IoT 디바이스를 노리는 봇넷은 알려진 기본 설정 상태를 악용하여 새로운 봇을 이동시키고 발견하는 환경에서 번성하고 성장하기 때문에 여러 디바이스, 네트워크 및 조직에 빠르고 간단하게 봇넷을 확산시킬 수 있습니다.
안전하지 않은 ADCS(Active Directory 인증서 서비스)
액티브 디렉터리 환경 내에서 PKI(공개 키 인프라)를 관리하는 데 중요한 구성 요소인 ADCS는 템플릿의 잘못된 구성으로 인해 손상될 수 있습니다. 예를 들어, 적절한 보호 조치 없이 웹 등록을 활성화하면 공격자가 위조 인증서를 획득하고, 합법적인 기관을 사칭하고, 중요한 시스템 및 데이터에 무단으로 액세스할 수 있습니다.
안전하지 않은 레거시 프로토콜 및 서비스
스푸핑, 포이즌, 릴레이 기법을 통해 Windows의 LLMNR 및 NetBIOS 이름 서비스와 같은 취약한 네트워크 서비스를 악용할 수 있습니다. 이러한 프로토콜을 활성화된 상태로 두면 공격자가 도메인 해시를 가로채고 시스템 액세스 권한을 획득할 수 있어 Windows 환경에 심각한 위협이 됩니다.
안전하지 않은 서버 메시지 차단(SMB) 서비스
Windows에서 파일 공유에 주로 사용되는 SMB 서비스도 안전하지 않은 기본 설정의 또 다른 피해자입니다. 필수 SMB 서명이 없기 때문에 공격자는 해시를 캡처하고 크래킹할 필요 없이 원격 시스템에 액세스하여 중간자 공격을 수행할 수 있습니다.
이러한 결과는 Windows 기반 네트워크에서 문제가 더 많이 발생하는 것처럼 보이지만 반드시 그렇지는 않습니다. 사용 가능한 테스트 환경에 따라 결과가 왜곡되었을 수 있습니다. 알려진 기본 구성은 모든 유형의 운영 체제 및 환경에 영향을 미칠 수 있으며 실제로 영향을 미칩니다. 예를 들어, 대부분의 Linux 배포판은 키 기반 로그인이 기존 로그인 및 비밀번호보다 더 탄력적인 인증 방식이더라도 기본적으로 키 기반 로그인을 적용하지 않거나 활성화하지 않는 sshd(보안 셸 데몬) 구성으로 제공됩니다. 또 다른 일반적인 기본 구성은 동일한 sshd 서비스에 무차별 암호 대입 보호 기능이 없기 때문에 새로 배포된(그리고 인터넷에 연결된) Linux 시스템은 시행착오를 통해 취약한 계정을 탐색하는 봇 군단의 표적이 될 수 있습니다.
완화 전략
이러한 취약점을 방지하려면 애플리케이션과 어플라이언스를 배포하기 전에 기본 구성을 수정하는 것이 중요합니다. 여기에는 공급업체가 제공한 기본 사용자 이름과 비밀번호를 변경하거나 비활성화하고 강력한 비밀번호를 사용하도록 하는 것이 포함됩니다. ADCS의 경우 인프라를 업데이트 및 패치하고, 강력한 모니터링 및 감사 메커니즘을 사용하고, 엄격한 액세스 제어를 구현하여 안전한 구성을 보장합니다. 무단 인증서 발급을 방지하기 위해 ADCS 템플릿에 대한 권한을 검토하고 제한하는 것도 필수적입니다.
보다 적극적인 전략으로, 시스템을 배포 직후 사용 가능한 상태로 두지 않아야 합니다. 시스템을 배포하고 바로 사용할 수 있게 되면 구성 변경의 이점이 줄어들게 됩니다. 따라서 기본 상태를 즉시 사용할 수 없도록 만들면 구성 변경의 필요성이 선택이 아닌 필수가 될 것입니다. 이는 기대에 어긋나고 일부 단점도 있지만, IT 팀이 의도적으로 환경별 구성 수정을 적용하여 한 배포를 다음 배포와 다르게 만들 수 있으므로 이러한 유형의 위험을 크게 줄일 수 있습니다. 이러한 유형의 접근 방식은 더 효과적이지만 작업량이 증가하고 새로운 시스템을 배포하는 데 시간이 오래 걸린다는 단점이 있습니다.
간단히 말해, 문제를 완화하기 위한 몇 가지 가능한 전략은 다음과 같습니다:
배포 전 기본 구성 수정하기
시스템을 배포하기 전에 기본 사용자 이름과 비밀번호를 변경하거나 비활성화합니다. 강력한 비밀번호를 사용하고 공급업체가 제공한 보안 가이드라인을 준수하세요.
구성 관리 도구 사용
구성 관리를 위한 자동화된 도구를 사용하여 처음부터 안전한 배포를 보장하세요.
정기 감사 및 업데이트 통합
구성에 대한 정기적인 감사를 수행하고 필요한 업데이트를 적용하여 취약점을 해결하세요.
직원 교육 및 훈련
기본 설정과 관련된 위험에 대한 인식을 높이기 위해 포괄적인 교육 프로그램을 실시하세요. 이는 외부 디바이스로 인한 기본 설정의 위험이 있는 BYOD 환경에서 특히 중요합니다.
사용할 수 없는 기본 상태 정책 구현하기
시스템을 사용할 수 없는 기본 상태로 배포하여 IT 팀이 필요한 보안 구성을 적용하도록 강제합니다. 배포 시간 증가와 잠재적 저항 등 이 접근 방식의 장단점에 대해 논의하세요.
지속적인 모니터링 및 로깅
구성의 무단 변경을 감지하기 위해 지속적인 모니터링 및 로깅 관행을 수립하세요. 시스템에 존재하는 기본 구성에 대한 알림을 만드는 것을 고려하세요.