보안정보

악성 코드를 원격 실행할 수 있게 하는 Siemens PLC의 새로운 버그

침해사고분석팀 2021.06.01

 

 

Siemens가 메모리의 보호된 영역에 원격으로 액세스하고 탐지되지 않고 제한없이 코드를 실행할 수 있는 SIMATIC S7-1200 및 S7-1500 PLC(프로그램 가능 논리 컨트롤러)의 심각한 취약점의 패치를 위한 펌웨어 업데이트를 출시했다.

 

CVE-2020-15782(CVSS 점수 : 8.1)로 추적되는 메모리 보호 우회 취약점은 보안 회사인 Claroty가 마이크로 프로세서에서 PLC 프로그램을 실행하는데 사용되는 MC7/MC7 + 바이트 코드 언어를 리버스 엔지니어링하여 발견했다. 

 

Siemens의 권고에 따르면 인증되지 않은 원격 공격자가 TCP 포트 102로 네트워크를 엑세스할 경우 잠재적으로 보호된 메모리 영역에 임의의 데이터와 코드를 작성하거나 추가 공격을 시작하는 민감한 데이터를 읽을 수 있다고 말한다.

 

"프로그래밍 가능한 로직 컨트롤러와 같은 산업 제어 시스템에서 네이티브 코드 실행은 비교적 소수의 고급 공격자가 달성한 최종 목표입니다. "라고 Claroty 연구원 Tal Keren은 말했다.

 

"이러한 복잡한 시스템은 공격자가 자신이 선택한 코드를 실행할 뿐만 아니라 탐지되지 않은 채로 있기 위해 해야 할 수많은 인-메모리(in-memory) 보호 기능을 갖추고 있습니다."라고 덧붙였다.

 

 

 

[그림1. Siemes 취약점 히스토리]

 

 

새로운 결함으로 공격자가 Siemens S7 PLC에서 네이티브 코드를 실행할 수 있을뿐만 아니라 정교한 원격 공격을 통해 사용자 샌드 박스를 탈출하여 임의의 데이터와 코드를 보호 메모리 영역에 직접 작성함으로써 기본 운영 체제 또는 진단 소프트웨어의 탐지를 회피할 수 있다.

 

그러나 Claroty는 공격이 PLC에 대한 네트워크 액세스와 PLC 다운로드 권한을 갖고 있는 것을 전제한다고 지적했다.

 

더불어 PLC의 기본 샌드 박스를 탈출하면서 원격 코드 실행을 허용하는 방식으로 커널 수준의 악성 프로그램을 운영 체제에 주입할 수 있다고 강조했다.

 

Siemens PLC에서 승인되지 않은 코드 실행이 이루어진 것은 이번이 처음이 아니다.

 

2010년에 악명 높은 Stuxnet 웜은 Windows의 여러 취약점을 활용하여 사이버 스파이 행위를 위해 Siemens PLC의 코드를 수정해 산업 제어 시스템을 재프로그래밍했다.

 

그 후 2019년에 연구원들은 독점 S7 통신 프로토콜의 취약점을 악용하여 PLC에 TIA로 가장하고 공격자에게 유리한 메시지를 주입할 수 있는 불량 엔지니어링 스테이션을 생성하는 Rogue7이라는 새로운 유형의 공격을 시연했다.

 

Siemens는 위험을 줄이기 위해 사용자에게 최신 버전으로 업데이트할 것을 강력히 권장한다.

 

또한 추가 업데이트를 준비하고 있으며 고객에게 업데이트가 아직 제공되지 않는 제품에 대한 대책과 해결 방법을 적용할 것을 촉구하고 있다.

 

 

 

출처

https://thehackernews.com/2021/05/a-new-bug-in-siemens-plcs-could-let.html