여러분의 비즈니스에 보안 및 SW품질 기술을 더해 사이버공격으로 부터 자산을 보호하고 SW의 품질과 신뢰성을 확보합니다.

Recent Posts
COPYRIGHT ⓒ 2020 SOFTFLOW. ALL RIGHTS RESERVED.
 

S7 Simatic PLC에 대한 악성 공격 탐지

S7 Simatic PLC에 대한 악성 공격 탐지

S7 Simatic PLC에 대한 악성 공격 탐지

 

 

 

Siemens 취약점 발견

보안 전문가들이 악성 TIA 엔지니어링 스테이션을 구축을 성공했으며, Siemens S7-1500 PLC (Programmable Logic Controller)를 제어할 수 있는 취약점을 발견했다고 BlackHat에서 발표했습니다. 발견된 취약점은 최신 Siemens PLC의 암호화 메커니즘을 우회하고 장치에 명령 실행이 가능하며, 공격자는 PLC의 상태, 설정 및 엔지니어에게 알람없이 실행 로직을 변경할 수 있습니다.

배경기술

Siemens의 새로운 S7-1200/1500 모델은 프로토콜을 새롭게 구현했습니다. 이전 모델인 S7-300/400은 S7Comm 프로토콜을 기반으로 동작하며, S7Comm 프로토콜은 Stuxnet 사건 이후 매우 유명해져 정보가 부분적으로 공개되어 현재 많은 도구가 트래픽을 분석할 수 있습니다.

최신 모델인 S7-1200/1500에서는 리플레이 공격 등을 방어하기 위한 패킷의 무결성 확인 등의 기능이 추가된 새로운 프로토콜을 적용했습니다. 또한, PLC가 사용하는 바이너리 코드를 암호화하여 설정 업로드 또는 다운로드 시에 보안기능을 제공합니다.

설정 다운로드 절차

PLC 설정 변경 프로세스는 여러 단계로 구성됩니다. 엔지니어는 로직을 Ladder 다이어그램 또는 구조화된 텍스트로 작성하고 Engineering 스테이션에서 코드를 컴파일합니다. 이 후 TIA 소프트웨어가 PLC가 제공한 키 값을 사용하여 바이너리 코드를 암호화합니다. 암호화된 바이너리 파일은 일반 텍스트코드와 함께 PLC로 다운로드 되며, PLC는 바이너리를 복호화 후 실행합니다.위에서 설명한 흐름에는 일반 텍스트코드가 바이너리와 별도로 다운로드 되는 결함이 있습니다. TIA 소프트웨어에서 엔지니어에게 제공되는 코드는 일반 텍스트이므로 실제로 실행되는 바이너리와 반드시 일치할 필요가 없습니다. 결과적으로 공격자는 원본 일반 텍스트코드를 변경하지 않고 바이너리만 변경할 수 있습니다.

laroty CTD(Continuous Threat Detection) 탐지

Claroty CTD는 초기버전부터 차세대 S7CommPlus 프로토콜을 지원했습니다. S7CommPlus 프로토콜 통신을 모니터링하여 모든 엔지니어링 작업을 식별할 수 있습니다. 또한, CTD는 PLC의 설정변경을 분석하고 패킷으로부터 PLC로 다운로드 되는 일반 텍스트코드와 암호화된 바이너리 코드를 추출할 수 있습니다.

이를 통해 CTD는 PLC의 설정을 추적 및 비교하며 특정 Function Block Logic의 변경여부를 감지할 수 있습니다. 아래 이미지에서 확인할 수 있듯이 코드가 암호화되어 있어도 일반적인 설정변경은 일반 텍스트코드 및 설정 메타 데이터도 함께 변경됩니다.

CTD의 S7CommPlus 프로토콜 및 Siemens 설정 다운로드에 대한 탐지기술로 설정변경을 확인하고 바이너리 및 일반 텍스트코드가 일관되게 변경되었는지 확인할 수 있습니다. 바이너리 코드만 변경한 공격의 경우 CTD는 설정이 의심스럽게 변경되었음을 탐지할 수 있습니다.

작성자: Amir Peminger, Tal Keren
댓글이 없습니다.

댓글남기기