FBI-CISA, 버퍼 오버플로 취약점 경고…"용서할 수 없는 결함"
미국 정부 기관이 버퍼오버플로(buffer overflow) 취약점을 '용서할 수 없는 결함(unforgivable flaw)'이라고 규정하며 전 세계 개발자들에게 '보안 중심(Secure-by-Design)' 원칙을 적극 도입할 것을 촉구했다. 미국 연방수사국(FBI)과 국토안보부 산하 사이버보안·인프라보안국(CISA)는 '보안 설계 경고 : 버퍼 오버플로 취약점 제거'라는 보안 지침을 16일 발표했다. 버퍼 오버플로는 애플리케이션이 처리 가능한 메모리 범위를 초과하는 양의 데이터를 입력받아 발생하는 취약점이다. 공격자는 이를 악용해 임의 코드를 실행하거나 관리자 권한을 탈취해 시스템 전반을 장악하는 등 심각한 피해를 유발할 수 있다. 이 문제는 1990년대부터 지적돼 온 고전적인 결함이지만, 현재까지도 C·C++ 등 메모리를 직접 관리하는 언어를 비롯해 다양한 환경에서 빈번하게 발생한다. FBI와 CISA는 이번 공식 발표에서 "단순히 오래된 취약점이 아니라 오늘날에도 공격의 길을 활짝 열어주는 '취약점 중의 취약점'"이라며 그 위험성을 강조했다. 두 기관은 버퍼 오버플로가 이미 수많은 시스템 및 애플리케이션에서 악용된 바 있고 핵심 인프라를 노린 사이버 공격에 활용될 경우 국가 안보 차원의 위협이 된다는 점을 강하게 경고했다. 특히 미국 정부 기관이 버퍼 오버플로를 명시적으로 용서할 수 없는 결함이라고 강하게 비판한 것은 그동안 업계 전반에 널리 알려진 문제임에도 근본적인 개선 조치가 부족했음을 질타한 것으로 풀이된다. FBI와 CISA는 "버퍼 오버플로는 조금만 주의를 기울이면 막을 수 있는 결함이지만, 많은 개발 조직이 여전히 미흡한 보안 관리로 인해 시스템 전체를 심각한 위험에 노출시키고 있다"고 비판했다. 두 기관이 제시하는 핵심 해법은 소프트웨어 개발 라이프사이클 전반에서 보안을 우선적으로 고려하는 '보안 중심 설계'다. 이는 설계 단계부터 보안 요구사항을 명확히 설정하고, 구현 과정에서는 코드 검수와 테스트가 반복적으로 이뤄져야 한다는 뜻이다. FBI와 CISA는 특히 메모리 접근이 까다로운 C·C++ 프로젝트를 계속 사용할 수밖에 없다면, 경계 검사(bounds checking)나 안전 함수(safe function) 활용을 의무화하는 등 개발 조직 차원의 규율이 필수라고 지적했다. 더불어 러스트, 고(Go) 등 메모리 안전성(memory safety)이 강화된 언어로의 전환을 검토해야 한다고도 밝혔다. 이와 함께 자동화된 정적·동적 분석 도구를 활용해 코드 내 잠재적인 오버플로 가능성을 조기에 발견·제거하는 작업이 필수라고 강조했다. 개발 단계에서 상용 보안 툴을 이용해 정적 분석(Static Analysis)을 진행하고, 테스트 환경에서 동적 분석(Dynamic Analysis)을 병행하면 문제점을 훨씬 정확하게 파악할 수 있다는 것이다. BI와 CISA는 "지속적 통합·배포(CI/CD) 파이프라인에 보안 점검 기능을 삽입해 취약점이 발견되면 빌드가 자동으로 차단되는 방식을 전면 도입해야 한다"고 주문했다. 버퍼 오버플로 취약점이 클라우드나 사물인터넷(IoT) 등 분산 환경에서 파급력을 더욱 키울 수 있다는 우려도 제기된다. 물리적으로 연결된 수많은 기기가 하나의 대형 네트워크를 형성하는 상황에서, 단 한 지점의 취약점이 전체 시스템으로 확산될 위험이 존재하기 때문이다. 이에 마이크로소프트, 아마존, 구글 등 주요 글로벌 IT기업들은 이미 기존 시스템에 러스트를 도입하거나, 자체적인 보안 프로세스를 강화하는 방향으로 전환하고 있다. FBI와 CISA는 개발사와 기업에 "상시 모니터링 체계를 구축해 프로세스 이상 여부나 메모리 사용량 패턴 등 거동을 실시간으로 관찰하고 침해사고 발생 시 신속하게 대응할 수 있어야 한다"고 강조했다.