banner

소식

May 18, 2023

지멘스 S7

릴리 헤이 뉴먼

2009년 컴퓨터 웜 Stuxnet은 프로그래밍 가능 논리 컨트롤러로 알려진 시설의 산업용 컴퓨터에서 실행되는 소프트웨어를 표적으로 삼아 이란의 Natanz 우라늄 농축 공장 내부에 있는 수백 개의 원심분리기를 손상시켰습니다. 활용된 PLC는 자동화 거대 기업인 Siemens가 제작했으며 모두 이 회사의 유비쿼터스, 장기 실행 SIMATIC S7 제품 시리즈의 모델이었습니다. 10여년이 지난 지금, Siemens는 공격자가 S7-1500 시리즈의 취약점을 악용하여 장치에 악성 펌웨어를 자동으로 설치하고 이를 완전히 제어할 수 있음을 오늘 공개했습니다.

이 취약점은 임베디드 장치 보안 회사인 Red Balloon Security의 연구원들이 Siemens가 2013년부터 추가 보호를 위해 암호화한 S7-1500의 펌웨어를 평가하는 방법론을 개발하는 데 1년 이상을 투자한 후 발견되었습니다. 펌웨어는 하위 수준 코드입니다. 컴퓨터의 하드웨어와 소프트웨어를 조정하는 것입니다. 이 취약점은 암호화 구현 방식의 기본적인 오류에서 비롯되지만 해당 방식은 전용 ATECC CryptoAuthentication 칩에 물리적으로 구워져 있기 때문에 Siemens는 소프트웨어 패치를 통해 이를 수정할 수 없습니다. 결과적으로 Siemens는 회사가 취약한 것으로 분류한 122개의 S7-1500 PLC 모델에 대해 어떠한 수정 계획도 없다고 밝혔습니다.

Siemens는 취약점을 자체적으로 악용하려면 물리적 액세스가 필요하기 때문에 고객은 "대상 배포에서 장치에 대한 물리적 액세스 위험"을 평가하고 "신뢰할 수 있는 사람만 액세스할 수 있도록 하는 조치"를 구현하여 위협을 완화해야 한다고 말합니다. 물리적 하드웨어." 하지만 연구원들은 이 취약점이 취약한 S7-1500 PLC와 동일한 네트워크에서 다른 원격 액세스 취약점과 연결되어 직접 접촉 없이 악성 펌웨어를 전달할 가능성이 있다고 지적합니다. Stuxnet 공격자는 오염된 USB 썸 드라이브를 창의적인 벡터로 사용하여 "에어갭" 네트워크에 악성 코드를 도입하고 궁극적으로 당시의 S7-300 및 400 시리즈 PLC를 감염시키는 것으로 유명합니다.

Red Balloon Security 연구 과학자인 Grant Skipper는 "Seimans PLC는 전 세계적으로 매우 중요한 산업 시설에 사용되고 있으며 그 중 다수는 Stuxnet 및 핵 원심 분리기처럼 잠재적으로 매우 매력적인 공격 대상이 될 수 있습니다."라고 말합니다.

S7-1500 PLC의 편재성과 중요성은 연구원들이 장치 보안에 대해 심층적으로 조사하도록 동기를 부여한 두 가지 특성입니다. 의욕이 있고 풍부한 자원을 갖춘 공격자에게는 어떤 결함이라도 악용할 가치가 있을 수 있습니다.

Red Balloon Security 연구 과학자 Yuanzhe Wu는 "암호화된 펌웨어는 많은 노력 없이는 장치 내부에 대한 통찰력을 얻을 수 없다는 것을 의미합니다. 그래서 우리는 1500 제품 라인에 무엇이 숨겨져 있는지 확인하고 싶었습니다."라고 말했습니다. "장치는 전용 암호화 보조 프로세서를 사용하여 장치에 로드된 암호화된 펌웨어를 확인하고 펌웨어를 해독하며 ​​장치가 부팅되도록 합니다. 그러나 우리는 공격자가 암호 보조 프로세서가 오라클처럼 작동하여 암호를 해독하도록 만들 수 있는 취약점을 발견했습니다. 펌웨어를 변조한 다음 악의적인 수정을 가하는 데 도움을 줍니다."

로렌 구드

로렌 구드

줄리안 초카투

윌 나이트

펌웨어는 장치 기능의 기초가 되므로 펌웨어를 자동으로 수정하는 기능은 다른 모든 보안 보호를 약화시키고 소유자가 변경된 사항을 깨닫지 못한 채 공격자가 장치를 완전히 제어할 수 있게 합니다.

Red Balloon의 Skipper는 "이 별도의 암호화 코어는 매우 기초적인 칩입니다. 대형 프로세서와는 다르기 때문에 누구와 대화하는지, 더 넓은 맥락에서 무슨 일이 일어나고 있는지 실제로 알 수 없습니다."라고 말합니다. "따라서 프로세서가 말하는 것을 관찰한 올바른 내용을 말할 수 있다면 마치 당신이 프로세서인 것처럼 말할 것입니다. 따라서 우리는 프로세서와 암호화 코어 사이에 들어가서 기본적으로 다음과 같이 말할 수 있습니다. 안녕하세요, 우리는 처리자입니다. 우리는 귀하에게 일부 데이터를 제공할 것이며 귀하가 이를 암호화하기를 원합니다.' 그리고 작은 암호화 코어는 그것에 대해 의문을 제기하지 않을 것입니다. 단지 그렇게 할 뿐입니다."

공유하다