Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
ICS-TestBed-Framework — 실제와 유사한 가상 SCADA/ICS 테스트베드를 IEC 60870-5-104 및 OPC-UA 노드와 함께 배포하여 공격 시뮬레이션, 정상 패킷 생성, 레드팀 보안 훈련을 가능하게 합니다. | Kitploit
도구/GitHubGitHub/pmaynard/ics-testbed-framework
Packet Sniffing & AnalysisSCADA/ICS SecurityNetwork SecurityPenetration TestingRed TeamingLabs & Practice
GitHubpmaynard/ics-testbed-framework

ICS-TestBed-Framework

실제와 유사한 가상 SCADA/ICS 테스트베드를 IEC 60870-5-104 및 OPC-UA 노드와 함께 배포하여 공격 시뮬레이션, 정상 패킷 생성, 레드팀 보안 훈련을 가능하게 합니다.

저장소 보기
70267년 전Kitploit 검토 완료

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

ICS TestBed Framework

로컬(또는 원격)에서 SCADA(Supervisory Control And Data Acquisition) 네트워크를 복제하는 다수의 가상 머신을 자동으로 배포하기 위한 확장 가능한 프레임워크를 제안합니다. 여기에는 센서와 액추에이터를 에뮬레이션하는 여러 가상 호스트와, 호스트를 제어하는 HMI(Human Machine Interface)가 포함됩니다. 제시된 프레임워크는 RTU(Remote Terminal Unit), HMI 또는 데이터 히스토리언(Data Historian) 역할을 하도록 사전 구성된 가변 개수의 가상 머신을 빌드하고 배포하는 자동화 스크립트 모음입니다. 본 연구에는 IEC 60870-5-104 (IEC104) 및 OPC Unified Architecture(OPC-UA)의 표준 준수 구현이 포함되어 있으며, Modbus-TCP(Modbus) 및 IEC61850과 같은 다른 프로토콜도 지원할 수 있습니다.

이를 통해 연구자들은 실제 SCADA 네트워크 배포 환경을 복제하도록 구성할 수 있는 테스트베드를 구축할 수 있습니다. 이 프레임워크는 오픈 소스 라이브러리를 기반으로 하며, Free Software Foundation이 승인한 라이선스인 GNU General Public License 버전 3로 배포됩니다.

실행 예시

asciicast

잠재적 사용 사례

  • 패킷 생성: 첫 번째 사용 사례의 목표는 높은 수준의 도메인 충실도를 가진 다수의 장치에서 네트워크 트래픽을 생성하는 것이며, 이상적으로는 트래픽에 프로세스 정보가 포함되어야 합니다. 앞서 강조한 바와 같이, 실제 시스템에서 데이터셋을 생성하는 것이 항상 가능한 것은 아닙니다. 이는 많은 노동이 필요하며, 적절한 탭 포인트를 찾고 플랜트 운영자의 승인을 받아야 합니다. 작동 중인 네트워크에 대한 간섭은 예기치 못한 상황을 초래하고 식별 가능한 정보를 유출할 수 있으므로 플랜트 운영 및 정책에 의해 제한될 수 있습니다. 패킷 생성은 실제 시스템에 배포되기 전에 SCADA 네트워크에 제안된 변경 사항을 테스트하는 데 사용할 수 있습니다. 또한 합법적으로 보이는 패킷을 사용하여 장치의 스트레스 테스트를 수행할 수 있습니다. 흥미로운 연구 사용 사례로는 ICS 네트워크에 적용된 적이 없는 ICN 또는 IPv6와 같은 다양한 네트워킹 패러다임을 실험하는 것이 있습니다.

  • 공격 시뮬레이션: 이 사용 사례는 SCADA 시스템에 대한 복잡한 공격의 시뮬레이션을 다루며, 실제 시스템에 부정적인 영향을 주지 않으면서 복제된 ICS 네트워크의 위험 분석을 수행하는 것을 목표로 합니다. 테스트베드는 레드팀이 테스트베드 노드를 손상시키려는 시도에 사용될 수 있으며, 그 결과를 분석하고 전체 패킷 캡처 분석을 수행할 수 있습니다. 공격이 성공하면 추가 대응책을 적용한 상태로 프로세스를 다시 수행할 수 있으며, 이를 통해 보안 측면에서 새로운 대응책과 이것이 사이트 프로세스에 미치는 영향을 테스트할 수 있습니다. 레드팀 훈련의 네트워크 캡처는 IDS 검증을 위한 공개 데이터셋으로 게시될 수 있으며, 다른 연구자들이 이를 재현하고 결과를 확인할 수 있습니다.

  • 에이전트 벤치마킹: 이 사용 사례의 목표는 에이전트 호스트 기반 시스템의 벤치마킹을 지원하는 것입니다. 이러한 벤치마킹은 일반적으로 공급업체 제한으로 인해 실제 시스템에서는 수행되지 않습니다. 공급업체가 에이전트를 신뢰하지 않는 한 배포가 금지되는 경우가 많으며, 이로 인해 계약 위반의 위험이 있습니다. 실제 산업 현장을 정확히 재현하는 테스트베드를 사용하면 중단을 유발하지 않고 에이전트 기반 소프트웨어의 사용을 모니터링할 수 있습니다. 테스트베드가 자유롭게 수정 가능하고 기능적으로 정확하며 물리적 하드웨어와 통합될 수 있다면, 에이전트에 대한 벤치마크를 수행할 수 있습니다.

  • 제한된 하드웨어 확장: 마지막 사용 사례는 기존 물리적 테스트베드를 확장하여 기존 하드웨어로는 불가능했던 통신 프로토콜과 구성을 포함하는 것입니다. 이를 위해서는 네트워킹 장비를 확장하기 위한 네트워크 에뮬레이터와 프로세스 제어 장비를 확장하기 위한 프로세스 시뮬레이터가 필요할 수 있습니다. 가상 하드웨어와 물리적 하드웨어를 결합하면 복잡하고 매우 현실적인 테스트베드를 만들 수 있으며, 여러 프로토콜과 장치를 결합한 대규모 배포를 생성하고 분석할 수 있습니다. 이 사용 사례는 다른 사용 사례와 함께 사용하여 결과를 향상시킬 수 있습니다.

로컬 빌드 및 실행

저장소를 클론하고 필요한 종속성을 설치합니다:

root@kitploit:~
git clone --recurse-submodules [email protected]:PMaynard/ICS-TestBed-Framework.git
sudo apt install openjdk-8-jdk maven

빌드:

root@kitploit:~
mvn clean package
mvn package -DskipTests # Skip tests.

RTU 시작:

root@kitploit:~
java -jar node/target/node-1.0.jar
shell> rtu
shell> rtu-iec104port 2404
shell> rtu-listen 127.0.0.1
shell> run

HMI 시작:

root@kitploit:~
java -jar node/target/node-1.0.jar
shell> hmi
shell> hmi-interval 1000
shell> remote-hosts 127.0.0.1
shell> run

VM 자동 배포

기본 구성 프로필은 1개의 HMI와 4개의 RTU를 배포합니다. HMI는 IEC104와 OPC-UA를 사용하여 RTU를 통합합니다. RTU는 무작위 프로세스 데이터를 반환하도록 구성됩니다.

사전 요구 사항 (Vagrant+VirtualBox)

이 스크립트는 최신 버전의 Vagrant 기능을 사용하므로 사전 빌드/배포 패키지 대신 최신 버전의 Vagrant를 사용하세요. Ubuntu 18.04.1 LTS를 사용하는 경우 문제없을 것입니다.

root@kitploit:~
git clone https://github.com/mitchellh/vagrant.git /opt/vagrant
cd /opt/vagrant
bundle install
bundle --binstubs exec
ln -sf /opt/vagrant/exec/vagrant /usr/local/bin/vagrant 

[선택 사항] VM 이미지 생성

이것은 선택적 개발 단계입니다. 테스트베드 노드를 실행하도록 사전 구성된 가상 머신 이미지를 빌드합니다. 최신 버전을 직접 만들지 않으려면, 기본 옵션으로 master 브랜치와 보조를 맞추는 Vagrant 이미지 저장소에서 안정적인 이미지를 가져오면 됩니다.

Packer는 VirtualBox 및 Vagrant에 적합한 가상 머신 이미지를 생성하는 데 사용됩니다:

root@kitploit:~
cd vagrant_image
packer build vagrant-node.json
vagrant box add testbed-node vagrant.box

배포

경고 최소 4GB의 여유 RAM이 필요합니다.

Vagrantfile에 정적 IP 주소 및 RAM 사용량과 같은 추가 정보를 업데이트하세요.

기본 IP 설정은 10.50.50.*입니다. .200은 HMI에, 101-105는 RTU에 사용됩니다. VM당 기본 할당 RAM은 512MB입니다.

root@kitploit:~
vagrant up
vagrant ssh hmi
vagrant ssh rtu-1 # 1-5
vagrant halt
vagrant destroy 

예제 데이터셋

기본 배포 구성을 사용하여 예제 데이터셋이 생성되었습니다. PCAP은 여기에서 다운로드할 수 있습니다. IEC104 MITM은 여기에 있는 ettercap 플러그인을 사용하여 수행되었습니다.

  • [Host-SCAN 13:45]: Nmap 네트워크 전체 스캔을 사용한 기본 네트워크 정찰. CMD: 'nmap -sn 10.50.50.*'

  • [Host-SCAN 13:47]: 접근 가능한 [IEC104]{acronym-label="IEC104" acronym-form="singular+short"} 서버를 찾는 기본 네트워크 정찰. CMD: 'nmap 10.50.50.* -p 2404'

  • [Host-SCAN 13:47]: 식별된 [RTUs]{acronym-label="RTU" acronym-form="plural+short"} 노드의 전체 포트 스캔. CMD: 'nmap 10.50.50.101-105 -A'

  • [Host-SCAN 13:49]: [IEC104]{acronym-label="IEC104" acronym-form="singular+short"} 프로토콜을 사용하여 노드를 탐색하는 능동적 [IEC104]{acronym-label="IEC104" acronym-form="singular+short"} 스캔[^1]. CMD: 'nmap -Pn -n -d --script iec-identify.nse --script-args='iec-identify.timeout=500' -p 2404 10.50.50.101-105'

  • [Host-MITM 14:19]: RTU-1과 HMI에 대해 [MITM]{acronym-label="MITM" acronym-form="singular+short"}을 수행합니다. CMD: 'ettercap -i enp0s8 -T -M arp -P spoof_104 /10.50.50.101/ /10.50.50.150/'

데이터셋의 수치 분석은 아래와 같습니다:

관련 프로젝트

  • https://github.com/flesueur/mi-lxc
  • https://github.com/nsec/the-internet
  • https://minicps.readthedocs.io/en/latest/

인용

다음 형식을 사용하여 이 프레임워크를 인용해 주세요:

root@kitploit:~
@conference{
 author   = "Peter Maynard and Kieran McLaughlin and Sakir Sezer",
 title 	  = "An Open Framework for Deploying Experimental SCADA Testbed Networks",
 journal  = "5th International Symposium for ICS & SCADA Cyber Security Research",
 year 	  = "2018"
}

데이터셋은 DOI: 10.6084/m9.figshare.6133457.v1를 사용하여 인용할 수 있습니다

전체 논문은 다음에서 확인할 수 있습니다: https://petermaynard.co.uk/publication/an-open-framework-for-deploying-experimental-scada-testbed-networks/

도구 다운로드
호스트IPIEC104OPC-UA기타합계
HMI10.50.50.15026,158017,68843,846
히스토리언10.50.50.151014,69514,92729,622
RTU-110.50.50.1013,5922,9405,54312,075
RTU-210.50.50.1023,6652,9415,87612,482
RTU-310.50.50.1033,6682,9405,79312,404
RTU-410.50.50.1043,6902,9405,77112,404
RTU-510.50.50.1053,5769307,93312,442
MITM10.50.50.992,39003,4495,839
SCAN10.50.50.315028,35128,366