Schrijvers archief Tijl Deneut

AvatardoorTijl Deneut

APT Detectie voor ICS

Industrial Network Monitoring Tools komen in veel vormen en maten. Dat er heel wat parameters zijn die een rol spelen staat ook buiten kijf, want deze tools moeten niet alleen heel goed zijn om “gewoon” IT verkeer te detecteren en onderzoeken, maar daar bovenop ook de wondere wereld van industriële protocollen begrijpen. Deze twee werelden; in de volksmond vaak IT / OT genoemd; botsen vaak met elkaar en dat op meer dan één manier.
Eén van de belangrijke parameters, als je naar de kern van de zaak gaat, is uiteraard aankoop prijs. En dan is er uiteraard een zeer interessante ondergrens: €0.

Inleiding

Open source network monitoring is meestal gratis qua aankoop. Er kruipt uiteraard wat meer energie en tijd in het opzetten van zo’n systeem en het troubleshooting is ook vaak een vast onderdeel van de installatie, maar de aankoopprijs is niet te verslaan.
Dit artikel is een samenvatting van een onderzoeksproject uitgevoerd door medewerkers D. Rusek en S. Roobol van Deloitte in een post doctoraatsstudie voor de Universiteit van Amsterdam. Hun vraag “Hoe kan netwerk analyse gebruikt worden om de aanwezigheid van Advanced Persistent Threats te detecteren in een Industrieel Controle Systeem.
Oftewel, hoe kunnen opensource tools ingezet worden in de strijd tegen kwaadaardig netwerk verkeer op industriële systemen.

De resulterende paper kan hier gevonden worden: https://www.delaat.net/rp/2019-2020/p21/report.pdf en de bijhorende presentatie staat hier: https://delaat.net/rp/2019-2020/p21/presentation.pdf

Setup

Bij het onderzoek werd uitgegaan van bestaande software die reeds jaren ervaring heeft met algemene network monitoring. Een oplossing werd gevonden in de opvolger van Bro (https://github.com/bro), genaamd Zeek. Bro werd overigens uitvoerig besproken en gedemonstreerd tijdens ons voorgaande Tetra project “Veilige Industriële Netwerken”: https://www.insecurity.be/verboten/presentaties/presentatie_gc5_NSM_for_ICS.pdf

Bro werd intussen “geforked” en hernoemd naar Zeek: https://github.com/zeek/zeek , maar het opzet blijft hetzelfde: een open source framework dat enerzijds een basis analyse aanbiedt, zo efficiënt mogelijk probeert te werken en toch flexibel is dankzij een eigen Zeek scripting language. Deze Zeek Scripting Language is waar dit onderzoek start. Extra Zeek scripts zijn gemaakt of aangepast voor o.a. ARP spoofing, DNS tunneling, modbus, profinet en S7comm. Dit om monitoring te kunnen uitvoeren op live systemen of op reeds eerder gecapteerde data in de vorm van een pcap bestand.

Scripts gecreëerd om Zeek de kans te geven meer begrip te geven aan de data

Op een standaard Linux machine is het opzetten vrij eenvoudig:

En de gratis network monitoring tool is klaar voor gebruik, deze bevat standaard een aantal definities (zichtbaar in de folder /opt/zeek/share/zeek/base/) en zal zelfs automatisch e-mails versturen bij overtredingen.

Detectie

Er zijn een aantal modellen die kunnen gebruikt worden om niveaus, types en ernst van bedreigingen te bepalen. Voor IT omgevingen wordt vaak het MITRE ATT&CK framework gebruikt dat hier terug te vinden is: https://attack.mitre.org. Dit bevat onderverdelingen van technieken die gebruikt worden bij security issues en bedreigingen.
Sinds januari 2020 bestaat er ook een industriële versie van dit framework: ATT&CK for Industrial Control Systems, https://collaborate.mitre.org/attackics
Dit framework helpt dus met de classificatie van het type bedreiging die wordt gedetecteerd.

De verschillende stappen van een aanval moeten ook gecategoriseerd kunnen worden. Is een bedreiging onderdeel van de eerste fase en zitten we dus vroeg in de aanval, of gaat het bijv. over een laterale beweging van een stuk malware dat reeds geruime tijd in de organisatie zit?
Om dit in kaart te brengen bestaat er voor de IT wereld de zogenaamde Cyber Kill Chain van Lockheed Martin: https://www.lockheedmartin.com/en-us/capabilities/cyber/cyber-kill-chain.html.
Maar ook hier bestaat een tegenganger voor de industriële wereld, SANS heeft in 2015 de Industrial Control System Cyber Kill Chain ontwikkeld hiervoor: The Industrial Control System Cyber Kill Chain (sans.org)

Er bestaan ook andere versies van deze ICS Cyber Kill Chain.
In 2016 werd deze voorgesteld: Cyber Kill Chain applied to ICS | INCIBE-CERT (incibe-cert.es)
En in 2018: Kill Chain for Industrial Control System (semanticscholar.org)

Dit onderzoek heeft beide systemen; Mittre ATT&CK ICS en de SANS ICS Cyber Kill Chain naast elkaar gezet.

Mapping van het ATT&CK framework en de ICS Killchain

Om uiteindelijk te oordelen of een bepaald soort gedetecteerd verkeer nu onderdeel is van een aanval of niet, werd door de onderzoekers een flowchart ontwikkeld. Deze zal op basis van de log-files uit Zeek een flowchart overlopen door deze te mappen op het ICS Mitre framework.

Flowchart van de anomaly mapper

Het onderzoek

In samenwerking met de onderzoekers van IC4 werden een aantal benchmark scenario’s geselecteerd. Deze werden manueel en op onverwachte momenten uitgevoerd om het gedrag van een potentiële bedreiging te simuleren.

  • ARP spoofing: Man-in-The-Middle
  • 2 SSH sessies
  • RDP (Extern bureaublad) sessie
  • Instellen Siemens PLC uitgangen via S7comm
  • Instellen Siemens PLC variabelen via S7comm
  • Stoppen en starten van een Siemens PLC via S7comm
  • Opladen van een EXE bestand via FTP naar een PLC
  • Een TCP scan van een volledig netwerk
  • WannaCry werd uitgevoerd op een PC in het datacenter
  • Profinet DCP broadcast scanning én wijzigen van de naam van een PLC
  • DNS tunneling via speciaal aangemaakte DNS requests

Tot slot was de hoofdvraag: in hoeverre werden bovenstaande scenario’s herkend als potentieel kwaadaardig door de nieuw gemaakte Zeek scripts?

Resultaten en conclusies

Over het algemeen werden er heel wat zaken correct gedetecteerd.

Ongewone zaken, zoals het gebruik van HTTPS over poort TCP/80 werden correct geïdentificeerd en zat ook in de ontwikkelde scripts. Ook al was het geen onderdeel van de scenario’s.
De ARP spoofing was vrij simpel: Zeek kan ARP replies die geen bijhorende request hebben detecteren en op die manier met vrij grote zekerheid vaststellen dat een spoofing/poisoning aanval gaande is.
Bij SSH verbindingen werd bijv. in het script ingesteld dat alles buiten de kantooruren een hoger risico bevat, dus ook hier werd alles gedetecteerd.
Voor S7comm is het een ander verhaal, dit propriëtaire protocol heeft meerdere versies (een COTP versie en een native CPU versie), en terwijl bijv. het wijzigen van uitgangen en variabelen wel gedetecteerd werd, was dat bij het stoppen starten van de PLC niet het geval. Deze laatste gebruikt een COTP protocol dat nog niet door Wireshark of andere S7comm analyzers wordt herkend (ook wel S7comm Plus genoemd).
Het WannaCry virus werd om nog onverklaarbare redenen niet gedetecteerd.
De andere werden correct geïdentificeerd en ook gemapped aan bijv. de verkennings (discovery) fase van de Kill Chain.

Uiteindelijk werden de meeste zaken wel degelijk correct geïdentificeerd.

Naast het onderzoek op de live demo omgeving van IC4 werd ook een bestaande capture file gebruikt: van de 160 gekende en aangegeven bedreigingen in deze capture file werd door Zeek en de bijgevoegde scripts 120 bedreigen correct geïdentificeerd.

Op basis van deze data en het eigen onderzoek werden ratio’s berekend: Positive Predictive Value (voorspelling van bedreigingen), True Positive Rate (effectieve bedreigingen herkend) en de Matthews Correlation Coefficient (die rekening houdt met de grootte van de sample size).

Ratio’s van voorspellingen en geïdentificeerde bedreigingen

Uiteraard gaan alle credits aan Dominika Rusek en Steffan Roobol van Deloitte en OS3.

U kan alle verdere details lezen in de paper: https://www.delaat.net/rp/2019-2020/p21/report.pdf

AvatardoorTijl Deneut

Beckhoff CVE-2019-16871

Windows Remote Code Execution via TwinCAT AMS/ADS

This is a writeup of a technical protocol analysis of TwinCAT. TwinCAT allows remote code execution as soon as a valid route is discovered.

Installing Beckhoff Engineering software on your Windows system can lead to unauthenticated Remote Code Execution as System.

Three prerequisites are necessary

  • TwinCAT Runtime Environment installed (any version including the most recent one at time of writing)
  • TwinCAT routes configured
  • Firewall allows TCP/48898
Meer lezen
AvatardoorTijl Deneut

MB Connect

MB Connect Line hard- and software investigated

Intro

While the awareness for cyber security in the ICT world has leapt forward in the last years, the awareness in the OT world definitely has not. Very few industrial devices are equipped with adequate cyber security measures. This shouldn’t be a surprise. For years, OT devices were left alone under the idea that “if it isn’t broken, don’t touch it”. These devices are also incredibly robust. A lot of companies still use devices that are more than a decade old! They are designed to last a lifetime, even in harsh environments.  But with industry 4.0 around the corner, more and more companies are connecting their OT devices to a network. Everything has to be connected. Data must be logged, machines have to be managed remotely.  Devices with an Ethernet port will be connected to a LAN network.
However, almost no industrial device employs a decent cyber security strategy. That’s where we come in.

Meer lezen
AvatardoorTijl Deneut

Fortigate 2019

Een kwetsbaarheid met grote gevolgen voor veel bedrijven

Fortinet wordt enorm veel gebruikt als Firewall en VPN server in België.

Begin dit jaar zijn details naar buiten gekomen over een kwetsbaarheid binnen het veel gebruikte OS van Fortinet genaamd FortiOS. De fout is echter geen “Remote Code Execution” of “Authentication Bypass” en werd dus vrij snel geminimaliseerd als “CVE-2018-13379”, gepubliceerd op 6 april 2019 met een update voor FortiOS 5.6 op 25 april (v5.6.8) en voor FortiOS 6.0 pas op 12 juni (v6.0.5).

Officiële details zijn hier te vinden: https://fortiguard.com/psirt/FG-IR-18-384

Meer lezen
AvatardoorTijl Deneut

De IXrouter onder de loep

Abstract

IXON is een bouwer van Industrial IoT hardware, en specifiek Secure Remote Access op netwerk niveau.Hiervoor wordt zowel de hardware als de software zelf ontwikkeld, met als paradepaardje de IXrouter.We kregen de IXrouter3 in huis en voerden een aantal diepgaande tests uit met het oog op security.

Het ontvangen toestel is de IXrouter3 met firmware 3.4, de versie met enkel een Ethernet uplink. Hierbij werden een viertal onderdelen nader bekeken:

  • De portal website connect.ixon.co
  • Initiële setup van de router
  • Instellingsmogelijkheden
  • De hardware
Meer lezen
AvatardoorTijl Deneut

OPC UA naderbij bekeken

Abstract

PLC’s zijn al enkele decennia de ruggengraat van de industrie. Ze kunnen moeiteloos een ingewikkeld industrieel proces aansturen d.m.v. diverse I/O’s.  Maar het simultaan behandelen van meerdere gebruikers die opvragen hoe het met de productie gesteld is, behoort niet tot het takenpakket van een PLC.

Om die reden werd OPC ingevoerd, wat origineel stond voor het cryptische OLE for Process Control. Men zag echter snel een kans om, in tegenstelling tot de gesloten protocollen van de PLC’s, hier een open standaard van te maken. Zo werd OPC als Open Platform Communications geboren.
OPC bestaat dus uit een server en één of meerdere clients, waarbij de server enerzijds de taak heeft om de “taal” van de PLC’s te spreken en anderzijds de meerdere, simultane gebruikers toegang te geven tot diezelfde data. Dit op een gecontroleerde en veilige (lees: safe) manier.

Meer lezen