# Datei mit PROFIBUS versenden



## Tacker (9 November 2018)

Hallo zusammen!

Ich hätte mal eine Frage zum PROFIBUS. Ich möchte vorher kurz sagen, dass ich in dieser Thematik keine Erfahrungen habe und hoffe, dass einigermaßen Sinn macht und ihr mir weiterhelfen könnt. Und zwar:

Kann eine PROFIBUS-Verbindung wirklich nur einzelne Bits wie Ein-und Ausgangswerte weiterleiten? Wie sieht es aus, wenn sich unabsichtlich eine ganze Datei unter den zu sendenden Daten befindet? Wird diese, abgesehen davon mit weitergeleitet? Bin in diesem Thema noch sehr unerfahren, deswegen fällt mir es schwer mir vorzustellen, was in diesem Fall passieren würde. An sich erwartet der Master ja nur Ein- und Ausgangsdaten. Ich dachte zunächst, dass die Nutzdaten einfach unabhängig von der Übertragungstechnik gesendet werden, egal was der Inhalt ist. Aber wenn der PROFIBUS beispielsweise auf eine SPS geht, kann diese mit einer mitgesendeten Datei doch nichts anfangen. Kontrolliert der Master vor dem Empfangen die Form der Daten und nimmt nur Daten an, die er erwartet?


Vielen Dank schon mal im Voraus!


----------



## JesperMP (9 November 2018)

Profibus master-slave. Das sind tatsächlich 'nur' bits und bytes und was man sonnst konfiguriert. 
Zwischen CPUs, kann eine CPU master sein, und der andere dann slave.
Oder es gibt ein DP/DP-Kopplier zwischen die CPUs. Der DP/DP-Koppler ist Slave für beide master.
Der Master anfordert die Daten von der Slave. In Master und Slave müssen die Daten gleich konfiguriert werden. Ein Slave sendet nie Daten ohne das ein Master die Daten anfordert.

Profibus master-master. Das gibts meines wissens nur in Siemens-Welt.
Zwischen Siemens CPs kann man S7-Verbindungen anlegen, und diese kann über Ethernet oder Profibus passieren.
Über so ein konfigurerte Verbindung kann man mittels PUT/GET oder BSEND/BRECV Daten senden mit einen grössere Fleksibilität als über master-slave.
PUT/GET-wird ausgeführt wenn den aktive CPU PUT oder GET ausführt. Das kann in Prinzip gefährlich sein.
BSEND in eine CPU muss einen dementsprechende BRECV in den anderen CPU haben. Und die Daten landen in den DB das in BRECV programmiert ist. Das ist also sicherer.


----------



## Fabpicard (9 November 2018)

Um deine Frage zu beantworten, wenn an einem Profibus eine CPU, 3 IM sowie ein HMI hängen, die ständig Daten austauschen. Kannst du dich mit einem PG dazu stecken und über diesen Bus dann beispielsweise das HMI mit einer neuen Firmware bespielen. Das sind dann auch recht große Dateien, die halt recht lange brauchen, bis die über den Bus genudelt sind. Stört den Master, also die CPU aber nicht dabei, einfach zwischen drin ständig mit den IM weiter seine Daten auszutauschen...

MfG Fabsi


----------



## Tacker (12 November 2018)

Vielen Dank schon mal für die schnellen Antworten! Ich bin mir nicht ganz sicher, ob ich alles richtig verstanden habe und die Antworten richtig anwenden kann und würde deshalb gerne einmal genauer erklären, welche Fragestellung ich hiermit am Ende beantworten wollte. Wie sieht es denn aus, wenn ich Messwerte aus einem Ethernet-Netzwerk in ein PROFIBUS-Netz bringen möchte. Ich habe hier eine SPS zwischen den beiden, die für die Umsetzung zuständig ist. Angenommen in mein Ethernet-Netzwerk hat sich ein Virus in Form einer Exe-Datei eingeschlichen. Die SPS müsste die Umsetzung auf PROFIBUS ja unabhängig vom Inhalt der gesendeten Daten durchführen, also die Messwerte zusammen mit dem Virus. Liege ich da richtig? Werden die Messwerte dann vom Master angefordert, kann dieser dann bemerken, dass es sich nicht nur ausschließlich um die gesendeten Daten handelt? Oder wird der Virus mit weitergeleitet und könnte dann am Ende vielleicht auf einem PG Schaden anrichten?


----------



## Fabpicard (12 November 2018)

Was du meinst wäre wohl in der Art:
PC -netzwerk- SPS -profibus- SPS -netzwerk- PC

Wenn du jetzt egal was, per TCP/IP-Verbindung zur 1ten SPS überträgst, die das "puffert" und an die 2te weiterleitet und wieder per TCP/IP an den anderen PC weitergibt. Müsstest du erst einmal das was du versenden willst, so in kleine Häppchen verpacken, das du es zu den SPSen senden kannst. Dann auf dem anderen PC wieder zusammensetzen, das es einen Sinn ergibt. Die SPSen hätten dann keinerlei Infos über den Inhalt und könnten damit wohl auch nichts anfangen...

Gibst du den 1ten SPS ständig eine Reihe an Messwerten, die von der SPS als solche interpretiert werden und sie damit arbeiten kann, könntest du hierüber keinen Virus o.ä. übertragen, da die SPSen einen "nicht Messwert" einfach "entsorgen" würden schon bei der Übergabe PC-1teSPS...

Die Variante 1 ist eine absolut unübliche Version um Daten zwischen PCs über SPSen und deren Profibus hinweg zu versenden. Ist nur ein Gedankenspiel für deine Frage...

MfG Fabsi


----------



## Tacker (12 November 2018)

Hallo Fabsi!

Vielen Dank nochmal! Also könnte man praktisch sagen, dass der Virus zwar theoretisch ins Netzwerk gelangen könnte, aber wohl kaum Schaden anrichtet und es somit vor solchen Viren ziemlich sicher ist?


----------



## Ingmar64 (12 November 2018)

NEIN!
Zwar kann die SPS selbst mit dem Virus nichts anfangen bzw. der wird dort verworfen wie oben beschrieben. Aber mit Hilfe des PC, der mit der SPS kommuniziert, kann der Virus natürlich fast beliebigen Schaden anrichten, wenn dafür geschrieben wurde. Siehe StuxNet.
Er könnte  über den PG-Zugang z.B. Code auf die SPS einschleusen oder Variablen beschreiben.


----------



## Tacker (12 November 2018)

Ja, stimmt. Aber ein Virus, der nicht es nicht auf ein solches Netzwerk abgesehen hat, sondern beispielsweise ein solcher ist, der private Computer angreifen will und nur zufällig dort hingelangt, wird von der SPS verworfen und kann keinen Schaden anrichten? Habe ich das soweit richtig verstanden?


----------



## PN/DP (12 November 2018)

Profibus ist ein Feldbus mit völlig anderen Protokollen als ein Computer-Netzwerk. Profibus-Schnittstellen verstehen keine Protokolle zum Datei-Übertragen. Technisch ist es aber möglich, Dateien mit Profibus-kompatiblen Protokollen (z.B. S7-Kommunikation) zu "tunneln" und durch S7-CPU geroutet zu Computern (z.B. HMI) zu senden. Für einen Virus wäre die Implementation der Protokolle aber vieeel zu aufwendig und zu teuer, sowas machen nur sehr finanzkräftige Organisationen. Und auch die implementieren (bisher) nicht die Protokolle sondern infizieren das PLC/HMI-Entwicklungssystem auf einem PC um es als Virenverbreiter zu nutzen. Praktisch besteht für Deine Anlage und Deine PCs da wohl keine Gefahr - es sei denn, Ihr legt Euch mit den USA an ...

PS: so ein einfacher Virus für "private Computer" gelangt nicht zufällig auf SPS oder durch SPS, er weiß schon gar nicht wie er mit der SPS kommunizieren soll, damit die als Daten getarnten Programmcode entgegennimmt und den Code dann auch noch ausführt.

Harald


----------



## Tacker (12 November 2018)

Vielen Dank Harald! Das hilft mir ziemlich gut weiter


----------



## Ingmar64 (12 November 2018)

@Tacker: Also immer schön den Virus fragen, was er vorhat!

Prinzipiell ist schon richtig, was Harald schreibt. Ein auf PC spezialisierter Virus wird einer SPS nicht schaden (können). 

Aber es sollte keine allzu schwierige Aufgabe sein, einem Virus einen Schadteil mitzugeben, der das Netzwerk auf den S7-Port checkt und dann z.B. die MB0..100 mit Nullen oder den OB1 mit einem leeren OB überschreibt bzw. eben alles, was man vom PG aus tun kann.
Und die PG-Kommunikation wird ja, so glaube ich, wenn alles in NetPro richtig konfiguriert ist, stets geroutet, auch zwischen Netzwerk und Profibus. Damit wären m.M.n. auch SPS, die keinen eigenen Netzwerkzugang haben angreifbar.
Sicher ist das theoretisch aber eben realisierbar.
Auch deswegen macht es Sinn, Produktiv- und Büronetzwerke zu trennen.


----------



## Tacker (13 November 2018)

@PN/DP mir ist noch eine kurze Frage dazu eingefallen. Wenn die Umsetzung von Ethernet auf Profibus für ein Virus ein Problem darstellt, warum funktioniert das dann aber mit den Messwerten? Liegt das daran, dass diese einen anderen Datenaufbau besitzen, also vielleicht auch einfach nicht so viele Daten sind wie bei einem Virus oder was ist der Grund dafür?


----------



## PN/DP (13 November 2018)

Tacker schrieb:


> Wenn die Umsetzung von Ethernet auf Profibus für ein Virus ein Problem darstellt, warum funktioniert das dann aber mit den Messwerten?


 Wie meinst Du das? Wie kommen Meßwerte vom Ethernet in den Profibus?
Daten und Virus-Programmcode sind einfach nur Bitmuster, wo im Protokoll vereinbart ist, was die Bitmuster bedeuten/wie sie interpretiert werden sollen. Auf dem Profibus fragt ein Master eine andere Station ab: sende mir mal die 20 Bytes Daten die wir vereinbart hatten, oder die als Antwort auf die azyklische Anfrage im Protokoll vereinbart sind. Der Master wird die empfangenen 20 Bytes als Daten interpretieren, auch wenn es in Wirklichkeit Virus-Code wäre - dann sind die Daten halt in nicht erwarteten Wertebereichen. Der Master kommt aber nicht auf die Idee, manipulierten Datenstrom als ausführbaren Code zu interpretieren - dazu muß er erst durch ein besonderes Protokoll "überzeugt" werden, welches der Virus erzeugen müsste.

Harald


----------



## Ingmar64 (13 November 2018)

Die Menge der Daten ist dafür recht egal.

Also erstmal grundsätzlich:  Alles was irgendwie über Netzwerke egal ob Ethernet oder Profibus an Daten übertragen wird, wird dazu immer irgendwie verpackt, je nach Protokoll auch mehrfach. Ethernet und die dem Profibus zugrunde liegende RS485-Kommunikation können verschiedene Protokolle fahren, u.a. eben Protokolle zur IO-Datenübertragung (ProfiNet/ProfiBus) und auch die Kommunikation, über die u.a. über die ein Programmiergerät auf die SPS zugreift.
Während der reine IO-Datenverkehr in der SPS endet (vom ProfiNet/ProfiBus aus gesehen), routet die SPS die Datenpakete des Programmiergerätes zwischen Ethernet und Profibus, prinzipiell auch mehrfach. Auf diese Weise ist es, wenn in NetPro richtig konfiguriert, prinzipiell möglich, sich mit einem PG über mehrere SPSen und Bussysteme bis zum Zielsystem "durchzuhangeln".

Bekannterweise kann ein PG ja sämtliche Variablen und Programmteile in einer SPS manipulieren und die Programmierschnittstelle für eine S7-SPS ist kein Geheimnis, was ja die Vielzahl an Drittanbietertools zeigt.
Auf diese Weise kann prinzipiell jeder PC, auf dem das entsprechende Protokoll installiert ist (z.B. durch die Installation von Step7), zu einer Gefahr werden. Jede Software auf diesem PC hat die prinzipielle Möglichkeit auf allen erreichbaren SPSen Unheil zu stiften, z.B. durch Überschreiben von Variablen oder Programmteilen.

Richtig ist allerdings, daß ein "normaler" Windowsvirus dies nicht kann, sondern seine Schadroutine speziell dafür programmiert sein muß.

Es gibt allerdings noch einfachere Varianten, eine ProfiNet-Kommunikation abzuschießen: doppelte IP oder Netzwerknamen, oder einfach das Netzwerk "fluten" bis die Kommunikation zusammenbricht. Auch die Wartung eines Switches durch die IT-Abteilung kann sehr "lustige" Ergebnisse haben.


----------



## Ingmar64 (13 November 2018)

Harald hat es sehr schön beschrieben. Dieses besondere Protokoll ist eben die PG-Kommunikation.


----------



## Tacker (13 November 2018)

Vielen Dank an euch beide für die schnellen Antworten!

Also würde ein "normaler" Virus auch über den Profibus, genauso wie die Messwerte, in das Netz gelangen, könnte dort aber keinen Schaden anrichten, weil er nicht für dieses Protokoll entwickelt wurde. Habe ich das so richtig verstanden?


----------



## Fabpicard (13 November 2018)

Tacker schrieb:


> weil er nicht für dieses Protokoll entwickelt wurde.



Protokoll/Übertragungsweg/Wirtsystem sind alles Faktoren die für die Funktion eines "Computervirus" oder anderer Schadsoftware wichtig sind.

3 Rechner mit je 2 Netzwerkkarten:
Internet - PC1-Windows - Netzwerkleitung - PC2-Linux - Netzwerkleitung - PC3-ApfelOS

Ein Virus, der für Windows und ApfelOS geschrieben wurde und hier über das "Internet" eindringt, würde es nicht zu dem Apfel schaffen, weil der Linux-Host mit dem Müll einfach nix anfangen kann und den "Virus" dann ignoriert.

Ein Virus oder eine andere Art Schadprogramm kann immer nur das, was der Programmierer ihm aufgetragen hat. Hat dieser ihm aufgetragen von einem Windows-Rechner alle erreichbaren Siemens-CPUs zu killen, dann hast du Stuxnet (gaaanz kurz gefasst)

MfG Fabsi


----------



## Tacker (13 November 2018)

Dann hätte ich noch eine (vermutlich letzte) Frage dazu: Wäre es denn dann möglich, einen Virus zu entwickeln, der das PG-Protokoll nutzt, und diesen dann über die Ethernetanbindung einzuschleusen oder muss ich dafür direkt ein PG an das Profibusnetz anschließen bzw. den Virus direkt auf ein solches PG  im Netz spielen?


----------



## volker (13 November 2018)

schau mal hier. https://www.sps-forum.de/simatic/80467-schadsoftware-auf-siemens-sps.html?highlight=schadsoftware
das pdf welches ursprünglich mal im post 1 erreichbar war ist nicht mehr. zumindest glaube ich das dies dort zu finden war.

deshalb hänge ich das pdf nochmal hier dran.


----------



## Tacker (14 November 2018)

Hallo nochmal! 

Ich wollte das alles eben nochmal für mich nochmal zusammenfassen und mir ist eine Sache doch noch nicht ganz klar  Wenn jetzt mal angenommen ein herkömmlicher Virus auf die SPS, die die Umsetzung von Ethernet auf PROFIBUS durchführt, über Ethernet gelangt, wird dieser wie die Messwerte auf PROFIBUS umgesetzt oder ist das alleine schon nicht möglich, da er nicht die selbe Form der Messwerte besitzt und somit an dieser Stelle schon verworfen wird? Oder wird er zwar umgesetzt, aber kann dann von der Master-SPS nicht interpretiert werden und wird hier erst verworfen?

Ich danke euch allen echt für die vielen Antworten und für die Unterstützung!


----------



## PN/DP (14 November 2018)

Tja, wie erklärt man das allgemein, ohne technische Details, aber trotzdem verständlich und 99% korrekt, daß etwas "normal nicht möglich" ist? "Nichts ist unmöglich" ... 

Einem "herkömmlichen" Virus, der nicht speziell für den Angriff auf eine spezifische SPS programmiert ist, wird eine am Netz vorgefundene SPS nichts nützen. Die SPS routet ihn nicht automatisch zu anderen Geräten, wenn der Virus die SPS nicht mit dem richtigen speziellen Protokoll anspricht.

Ein "herkömmlicher" Virus kommt nicht auf eine SPS oder durch eine SPS in andere Netze, weil eine SPS kein PC-Betriebssystem hat und keine in der PC-Welt standardisierten Dienste für Datei-Übertragungen und Routing bereitstellt. Sollte es irgendwie gelingen daß der Virus sich in den Datenstrom zur SPS "mischt" dann würde er entweder verworfen, wenn er nicht aktive Dienste adressiert, oder wenn er Dienste adressiert welche Daten erwarten, dann würde er als (ungewöhnliche) Datenwerte interpretiert - das kann allerdings schon Schaden anrichten und auch den Datenverkehr auf angeschlossenen Profibus beeinflussen. Es würde aber nicht der Programmcode des Virus ausgeführt werden, auch nicht die Weiterverbreitung des Virus von der SPS aus.

Wenn ein Virus weiß wie er als ausführbarer Programmcode auf die SPS kommt oder unbeschadet zum Profibus zu anderen Geräten weitergeroutet wird (er also das PG-Kommunikation-Protokoll beherrscht), dann wird er nicht fehl-interpretiert sondern tut genau das was er tun soll. Das ist dann aber kein "herkömmlicher" Virus sondern einer der speziell für den Angriff auf diese SPS-Familie entworfen/programmiert ist. Ein Virus der ausführbaren Code auf eine SPS bringen und ausführen lassen kann muss extra spezifisch für diese SPS programmiert werden, was für normale Virus-Programmierer in der Regel viel zu aufwendig und unattraktiv ist. Der Virus müsste sehr geschickt vorgehen, es nützt in der Regel nicht viel wenn das Vorhandensein des Virus sofort entdeckt wird, und wenn die angegriffene Host-SPS einfach die Arbeit einstellt und weiter keinen Schaden anrichtet und den Virus auch nicht weiterverbreitet.

Harald


----------



## volker (14 November 2018)

@tacker.
hast du dir das pdf welches ich verlinkt habe mal in ruhe durchgelesen? besser 3-4 mal.
das ganze ist nicht ganz simpel.

ansonsten kann ich nur sagen hat pn/dp das schon versucht einfach zu erklären.

ein normaler virus würde niemals von einem pc über dp auf einem anderen pc landen.
das müsste speziell dafür programmiert werden.
aber ja. möglich ist das. siehe dir halt das pdf genauer an. und wie gesagt das ist starker tobac

und erklär uns mal worin deine angst begründet liegt?


----------

