[review#24] Low delay network attributes randomization to proactively mitigate reconnaissance attacks in industrial control systems_2023

1. Introduction

산업 제어 시스템(Industrial Control Systems, ICS)은 산업 공정을 모니터링하고 제어하는 데 사용되는 여러 특수 요소를 포괄하는 일반적인 용어이다.
ICS는 물리적 장치와 프로세스를 제어하고 모니터링하기 위한 것이다.

산업용 네트워크 토폴로지는 일반적으로 정적이며, 제어 트래픽은 대부분 자동화된 프로세스에 의해 생성되기 때문에 본질적으로 반복적이고 예측 가능하다. 산업 네트워크의 이러한 정적인 특성은 공격자에게 유리한 시나리오이며, 공격을 시작하기 전에 취약점을 탐색할 수 있다. 이러한 문제로 인해 이동 표적 방어(MTD)라는 이름으로 이러한 정적인 시스템에 대응하여 선제적 보안 솔루션이 개발되었다. MTD는 공격 표면을 이동시키거나 줄여 공격자가 쉽게 탐색하고 공격을 수행하기 어렵게 만드는 끊임없이 변화하는 시스템으로 정의할 수 있다.

소프트웨어 정의 네트워킹(SDN)은 ICS 보안을 위해 유망한 기술로 부상하고 있으며, 특히 MTD 기술을 개발하고 일반적인 침입 탐지 및 대응 기술을 개발하는 데 모두 활용되고 있다.

1) 데이터 플레인은 패킷 전달 결정이 실제로 구현되고 트래픽이 처리되는 곳
패킷 전송 및 포워딩: 스위치나 라우터 장비들

2) 제어 플레인은 SDN 컨트롤러를 통해 데이터 플레인에 논리적 제어를 제공하는 역할
– 데이터 평면과 제어 평면 간의 통신은 사우스바운드 인터페이스(southbound interface)를 통해 이루어지며, 이 때 주로OpenFlow 프로토콜이 사용되지만 NETCONF와 같은 다른 프로토콜들도 존재한다.
네트워크 정책, 경로 결정을 담당: SDN 컨트롤러가 이 레이어에 위치

southbound interface: 제어 시스템(상위)와 현장 장비(하위) 사이의 통신 인터페이스
- south: 계층적 구조에서 하위 레벨을 향하는 것을 의미
OpenFlow 프로토콜: 컨트롤러와 네트워크 장비 간의 통신 담당, 네트워크 장비의 포워딩 테이블을 직접 프로그래밍
NETCONF(Network Configuration) 프로토콜: 네트워크 장비 구성 관리를 위한 프로토콜, XML 기반 데이터 교환

3) 애플리케이션 플레인은 사용자가 개발한 애플리케이션이 노스바운드 인터페이스(northbound interface)를 통해 네트워크와 상호작용하는 계층
사용자/개발자가 만든 애플리케이션이 위치, 네트워크 동작을 원하는 대로 제어하거나 분석: 방화벽 앱, 로드 밸런서 앱, MTD 모듈 등

전통 네트워크: 스위치나 라우터 각각이 스스로 제어하는 분산 구조
SDN: 제어(control)를 하나로 모아 중앙에서 통제(중앙 집중 구조)
Southbound Interface: Control plane(컨트롤러) ↔ Data plane(스위치) 연결 (예: OpenFlow 프로토콜)
Northbound Interface: Application plane(앱) ↔ Control plane(컨트롤러) 연결 (예: REST API)

본 논문에서는 SDN과 MTD의 개념을 결합하여 산업 제어 네트워크의 정찰 공격을 완화하는 선제적 방어 메커니즘을 개발한다. 본 연구의 주요 기여는 다음과 같이 요약할 수 있다.

  1. 네트워크 패킷의 IP 주소, MAC 주소, 포트 번호를 실시간으로 무작위화(randomization)하여, 공격자가 정찰 단계에서 얻는 정보를 왜곡하고, 실제 정보를 기반으로 장치에 직접 접근하는 것을 방지하는 MTD 메커니즘을 제안하였다. 무작위화 작업은 데이터 플레인(data plane) 에서 수행되며, 네트워크 내 최종 장치들에는 완전히 투명하게 처리된다.
  2. 네트워크 속성을 무작위화하고, 허용된 트래픽만 목적지로 전달할 수 있도록 하는 플로우 규칙(flow rules) 초기화 방법론을 제안하였다. 이를 위해 사용자가 정의한 허용 목록(allowlist) 을 기반으로, 통신이 허가된 장치 간의 연결만 허용되도록 스위치에 플로우 규칙이 설치된다.
  3. ICS(Industrial Control Systems)의 실시간성 요구사항을 충족하고 지연(latency)을 최소화하기 위한 적응형(adaptive) 네트워크 속성 무작위화 전략을 제안하였다. 이를 위해 백업 플로우 규칙(backup flow rules) 과 OpenFlow 프로토콜의 우선순위(priority) 필드를 활용하는 방식을 적용하였다.

3. Framework overview

3.1. Architecture

End devices/hosts: 산업 환경에서 사용되는 다양한 장치들로 구성되며, 대표적으로 SCADA(Supervisory Control And Data Acquisition) 서버, PLC(Programmable Logic Controllers), 워크스테이션

OpenFlow switches: 사전에 정의된 플로우 규칙(flow rules)에 따라 트래픽을 목적지로 라우팅하는 역할, 이 장치들이 네트워크 패킷을 처리하면서 IP 주소, MAC 주소, 포트 번호를 무작위화하는 기능을 수행한다.

SDN controller: data plane과 application plane 간의 통신을 담당한다.
컨트롤러는 MTD 모듈로부터 요청을 수신한 뒤, 이를 OpenFlow 프로토콜을 사용해 스위치로 전달한다.

MTD module: 애플리케이션 플레인에 배포된 애플리케이션으로, 실제 네트워크 속성과 무작위 네트워크 속성 간의 변환을 수행하는 OpenFlow 스위치들의 플로우 규칙을 초기화 및 갱신하는 역할을 한다.
SDN 컨트롤러의 노스바운드 인터페이스(northbound interface)를 통해 수행되며, 여기서는 REST API를 사용한다.

: MTD 모듈: 무작위화 전략 결정 
SDN 컨트롤러: 요청을 받아 OpenFlow 프로토콜을 통해 스위치에 플로우 규칙을 설치
OpenFlow 스위치: 네트워크 트래픽을 받아서 패킷의 IP, MAC, 포트를 무작위로 변환해 전달
최종 장치
OpenFlow, REST API 인터페이스를 통해 각각 연결되며,
end devices들은 이 과정을 인식하지 못하고 투명하게 통신을 이어간다.

3.2. Network attributes range allocation

호스트에 대한 무작위 IP 및 MAC 주소, TCP/UDP 포트 번호를 생성하고 할당할 때는 할당 중 충돌을 피하고 산업 네트워크의 예측 불가능성을 극대화하기 위해 다음과 같은 제약 조건을 준수해야 한다.

  • 제약 조건1: 동일한 랜덤 IP 및 MAC 주소는 동일한 MTD 주기(MTD interval) 내에서 둘 이상의 호스트에 할당되어서는 안 된다.
  • 제약 조건2: 하나의 랜덤 포트 번호는 동일한 MTD 주기 내에서 하나의 호스트 내 둘 이상의 TCP 또는 UDP 서비스에 동시에 할당되어서는 안 된다.
  • 제약 조건3: 동일한 랜덤 IP 주소, MAC 주소, 또는 포트 번호는 연속된 N개의 MTD 주기 동안 하나의 호스트에 중복 할당되어서는 안 된다. 이는 최근 N개의 주기 동안 할당된 무작위 속성을 추적하여 관리함으로써 달성된다.
Random IP address generation

무작위 IP 주소는 산업 네트워크에서 사용 가능한 주소 공간을 고려하여 생성된다. 각 주기가 변경될 때마다, 장치에 할당된 이전 IP 주소에 대한 이력 기록이 유지된다. 이를 통해 동일한 IP 주소가 여러 연속된 주기에 걸쳐 동일한 장치에 반복적으로 할당되는 것을 방지한다.

Random MAC address generation

각 무작위 IP 주소에 대해 하나의 무작위 MAC 주소가 생성된다.
MAC 주소 생성 시 RFC 7042를 참고하여, IPv4/IPv6 multicast 주소, PPP(Point to Point Protocol) 주소, IPv4/IPv6 VRRP(Virtual Router Redundancy Protocol) 주소 등 특정 용도로 예약된 주소의 생성을 피하도록 했다.
또한, 보다 현실적인 MAC 주소를 생성하기 위해, 산업용 장비 제조업체들이 실제 MAC 주소 프리픽스(prefix)를 사용했다.

Random port generation

무작위 포트 번호는 전체 가용 포트 범위 (0, 65535]를 대상으로 생성된다.

3.2.1. Limitations from an external observer perspective

IP 주소 무작위화: 최종 장치가 인터넷에 고유한 공인 IP 주소를 가지거나, 사용 가능한 다수의 공인 IP 주소가 존재할 경우에는 IP 주소 무작위화가 가능하다.
그러나 산업용 장치가 NAT(단일 공용 IP)를 통해 하나의 공인 IP 주소만을 사용하여 인터넷에 노출되는 경우, 공인 IP 주소의 한정된 수량으로 인해 외부 관찰자 관점에서 IP 주소 무작위화를 구현하는 것은 불가하다.

MAC 주소 무작위화: 네트워크 간 공유되지 않기 때문에 외부 관찰자 관점에서 효과적이지 않다. 동일 네트워크 내에서 최종 장치의 물리적 주소를 파악하려는 공격자에 대해서는 유용하지만, 외부 관찰자에게는 큰 효과가 없다.

포트 번호 무작위화: 외부 관찰자 관점에서 가장 비용 효율적인 무작위화 기법이 될 수 있다.
공인 IP 주소는 일반적으로 ISP에 의해 할당되고 사용 가능한 수가 제한적이지만, TCP/UDP 포트는 사용자가 전체 가용 범위를 자유롭게 사용할 수 있으므로, 포트 무작위화를 통해 다양한 서비스를 노출하거나 숨길 수 있다.

3.3. Real-time network attributes randomization

초기화 단계에서는, 스위치에 설치되는 초기 플로우 규칙이 사용자 정의 허용 목록(allowlist)에 기반하여 설정된다.
산업 네트워크의 정적인 특성과 제어 트래픽 통신의 반복적이고 예측 가능한 특성을 활용하여, 이 허용 목록은 네트워크 장치 간 허가된 통신 및 프로토콜을 수집한다.

  • 허가된 통신인 경우, 장치들은 실제 IP 주소, MAC 주소, 포트 번호를 사용하여 서로 통신할 수 있다.
  • 반대로 허가되지 않은 통신인 경우, 장치는 상대 장치에 할당된 무작위 IP, MAC, 포트를 사용해서만 통신할 수 있다.
랜덤 속성 할당 절차

첫 번째 단계는 네트워크에 있는 각 장치에 대해 무작위 IP/MAC 주소를 생성 및 할당하고, 각 장치의 활성 서비스마다 무작위 포트 번호를 할당하는 것이다.
이렇게 무작위로 할당된 IP 주소, MAC 주소, 서비스 포트(TCP/UDP)는 하나의 MTD 주기 동안만 유효하며, 이후 다음 주기에서는 새로운 무작위 값으로 대체된다.
MTD 주기의 길이는 사용자가 정의하며, 사용 사례별로 조정되어야 한다.
랜덤 IP, MAC, 포트를 생성 및 할당하는 과정에서, 시스템은 중복 값이 발생하지 않도록 충돌 여부를 검증하여 운영 오류를 방지한다.
최종 장치(end devices)의 네트워크 설정은 변경되지 않고, 번역 작업은 모두 OpenFlow 스위치 상에서 수행되며, 최종 장치에는 완전히 투명하게 동작한다.

플로우 규칙 설치 및 패킷 처리 방식

랜덤 네트워크 속성이 각 장치에 할당되면, OpenFlow 스위치에는 다음과 같은 플로우 규칙이 설치된다:

  • 허가된 장치간 통신은 실제 IP, MAC, 포트를 사용하여 통신할 수 있도록 설정된다.
  • 패킷의 네트워크 속성(IP, MAC, 포트)을 변경하는 방법에는 두 가지 접근법이 있다:
    (1) 모든 패킷을 SDN 컨트롤러로 전송하여 중앙에서 처리
    (2) OpenFlow 스위치에서 직접 패킷 처리

이 연구에서는 통신 지연(latency)을 최소화하기 위해, OpenFlow 스위치에서 직접 패킷을 변환하는 방식을 채택하였다. 이를 통해, 각 패킷이 SDN 컨트롤러로 전송되는 과정을 피하고 통신 속도를 높인다.

프로토콜별 플로우 규칙 적용
패킷 처리 흐름 (허가된 통신)

플로우 규칙 설치가 완료되면, 소스 장치에서 목적지 장치로 가는 각 패킷은 Algorithm 1에 따라 처리된다.

두 end devices \(h_1\)와 \(h_2\) 사이의 인증된 통신에서

허가된 통신의 경우,
소스 OpenFlow 스위치(소스 장치가 연결된 스위치)에 패킷이 도착하면, (스위치가 \(h_1\)
실제 소스/목적지 IP (rIP), MAC (rMAC) 주소가 무작위 IP (vIP), MAC (vMAC)으로 변환된다.

포트 변환의 경우,
소스 장치가 목적지 장치의 서비스를 요청하는 경우 → 목적지 포트만 변경
소스 장치가 응답하는 경우 → 소스 포트만 변경

변환이 완료되면, 트래픽은 목적지 스위치까지 전달된다.
최종적으로 목적지 OpenFlow 스위치에는 무작위 IP, MAC, 포트를 다시 실제 값으로 변환하여, 양방향 통신이 자연스럽게 이어지도록 보장한다.

허가되지 않은 통신의 경우,
소스 장치는 목적지 장치에 할당된 무작위 IP, MAC, 포트를 정확히 사용해야만 통신할 수 있다.

소스 장치가 보낸 패킷의 IP, MAC, 포트가 현재 주기에서 목적지에 할당된 무작위 값과 일치하지 않으면,
→ 소스 스위치에서 해당 패킷을 폐기(dropped) 한다.

만약 일치한다면,
→ 트래픽은 소스 장치의 IP, MAC, 포트를 무작위화한 뒤 목적지로 전달되며, 최종적으로 목적지 스위치에서 원래(real) 값으로 복원된다.

백업 규칙: 가장 높은 우선순위를 가진 흐름 규칙을 사용 – 지연이나 패킷 손실 없이 구간 간 적응적 전환 가능

4. Experimental setup

4.1. Experimental topology

서로 다른 공급업체의 두 개의 독립적인 생산 라인과 최종 장치로 구현된다.

네트워크 전달 결정은 Ryu SDN 컨트롤러와 네트워크의 여러 장치를 연결하는 3개의 OpenVSwitch 스위치를 사용하여 중앙 집중식으로 이루어진다.
IP, MAC, 포트 무작위화를 수행하는 플로우 규칙을 관리하는 애플리케이션은, Northbound interface인 REST API를 통해 SDN 컨트롤러와 상호작용한다. SDN 컨트롤러는 이 요청들을 OpenFlow 프로토콜을 사용하여 스위치로 전달하며, 포워딩 장치(스위치)는 패킷을 스위치 상에서 직접 처리한다.

4.2. Threat model

SDN 컨트롤러와 Northbound interface를 통해 컨트롤러와 상호작용하는 애플리케이션들은 신뢰할 수 있다(trusted)고 가정하며, 공격자는 내부 네트워크에 존재하는 것으로 가정한다.

본 연구에서 제안하는 선제적 방어 시스템(proactive defense system)의 완전한 가능성을 시험하고 잠재적 공격을 시뮬레이션하기 위해, 테스트베드 내 두 OpenFlow 스위치 사이의 링크에 중간자 공격(Man-in-the-Middle, MITM)을 수행하는 컴퓨터를 배치하였다. 공격자는 이 손상된 링크를 통해 네트워크 패킷을 수집하고 삽입(inject)할 수 있다.

만약 최종 장치(end device) 중 하나가 손상되어 그 장치에서 정찰 공격이 수행된다면,
공격자는 최종 장치 및 프로토콜에 대해

  • 허가된 통신에서는 실제 정보(real information)을
  • 허가되지 않은 통신에서는 무작위 정보(randomized information)를 혼합하여 획득할 수 있다.

이 시나리오에서 공격자의 주요 목표는 네트워크에 존재하는 활성 장치들과, 장치 간 통신에 사용되는 서비스/프로토콜에 대한 정보를 수집하는 것이다.

공격 대상(Attack Targets)

산업 환경에서는 모든 장치 및 통신이 공격에 취약할 수 있다.
ICS 내 취약성의 대부분은 인증(authentication) 메커니즘 부족, 암호화(encryption) 부재, 무결성 검사(integrity checks) 부재 등에 기인한다.

많은 산업용 프로토콜은 고립된 환경을 전제로 설계되어, 초기 설계 시 보안이 크게 고려되지 않았다.
일부 제조업체는 프로토콜에 암호화, 무결성 검사, 인증 기능을 추가했지만, 여전히 보안 기능이 없는 레거시 프로토콜이 광범위하게 사용되고 있다.
따라서, 본 시나리오에서는 산업 네트워크 내 모든 장치가 잠재적인 공격 대상이라고 가정한다.

공격 절차(Attack Procedure)

우리는 공격자가 Cyber Kill Chain(CKC) 모델을 기반으로 공격을 시작한다고 가정한다.
공격자는 CKC의 첫 번째 단계인 정찰(Reconnaissance) 공격을 수행하여, 네트워크 내 실제 자산(장치들)을 식별하고자 한다.

공격자는 다음 절차를 따른다:

  1. 네트워크의 전체 IP 주소 공간을 스캔하여 장치들을 식별한다.
  2. 장치를 식별한 후, 각 장치에 대해 포트 스캔을 수행한다.

그러나 선제적 네트워크 속성 무작위화 프레임워크가 존재하기 때문에, 공격자가 수집하는 정보는 무작위(randomized)로 변화하며, 시간이 지남에 따라 계속 변경되어 공격자의 정찰 결과를 무력화시킨다.

5. Results and discussion

연구의 성능에 미치는 영향을 측정하기 위해, 왕복 시간(RTT) 지표를 사용하여 네트워크에 발생하는 지연 시간을 고려했다.

6. Conclusion

주요 목표: 정찰 공격을 사전에 차단하고 허가받지 않은 장비가 대상 장비와 통신하는 것을 방지하는 것
네트워크 각 단말 장비에 제한된 시간 동안만 유효한 무작위 IP, MAC 주소, 포트 번호를 할당함으로써 달성
기존 정적 네트워크에 비해 지연 시간이 최소화되어 시간 제약이 있는 시스템에도 구현 가능

향후에는 각 네트워크 흐름에 대해 새로운 임의 IP, MAC, 포트 번호로의 전환을 독립적으로 구현하여 접근 방식을 확장
대규모 네트워크에서도 네트워크 성능에 영향을 미치지 않고 구축할 수 있음
+ MTD 네트워크에 산업용 허니팟 통합하는 가능성

References:

https://link.springer.com/article/10.1007/s11276-022-03212-5

Leave a Comment