DE102021129026A1 - Methods and associated computer systems for ensuring the integrity of data - Google Patents
Methods and associated computer systems for ensuring the integrity of data Download PDFInfo
- Publication number
- DE102021129026A1 DE102021129026A1 DE102021129026.0A DE102021129026A DE102021129026A1 DE 102021129026 A1 DE102021129026 A1 DE 102021129026A1 DE 102021129026 A DE102021129026 A DE 102021129026A DE 102021129026 A1 DE102021129026 A1 DE 102021129026A1
- Authority
- DE
- Germany
- Prior art keywords
- data
- computer
- database
- files
- integrity
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 71
- 238000004590 computer program Methods 0.000 claims description 31
- 239000003795 chemical substances by application Substances 0.000 claims description 29
- 230000005540 biological transmission Effects 0.000 claims description 12
- 230000008859 change Effects 0.000 claims description 10
- 230000003068 static effect Effects 0.000 claims description 10
- 239000007924 injection Substances 0.000 claims description 8
- 238000002347 injection Methods 0.000 claims description 8
- 230000002441 reversible effect Effects 0.000 claims description 6
- 230000001010 compromised effect Effects 0.000 claims description 5
- 230000001960 triggered effect Effects 0.000 claims description 5
- 230000002950 deficient Effects 0.000 claims description 4
- 238000004458 analytical method Methods 0.000 abstract description 8
- 238000004891 communication Methods 0.000 description 12
- 230000006870 function Effects 0.000 description 11
- 230000008569 process Effects 0.000 description 10
- 238000013475 authorization Methods 0.000 description 7
- 230000008901 benefit Effects 0.000 description 6
- 230000015654 memory Effects 0.000 description 5
- 238000012546 transfer Methods 0.000 description 5
- 238000002955 isolation Methods 0.000 description 4
- 241000282472 Canis lupus familiaris Species 0.000 description 3
- 230000002155 anti-virotic effect Effects 0.000 description 3
- 238000004422 calculation algorithm Methods 0.000 description 3
- 238000011161 development Methods 0.000 description 3
- 230000018109 developmental process Effects 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 230000004044 response Effects 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 2
- 230000001419 dependent effect Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000001681 protective effect Effects 0.000 description 2
- 238000009877 rendering Methods 0.000 description 2
- 239000000243 solution Substances 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 241001136792 Alle Species 0.000 description 1
- 206010049976 Impatience Diseases 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000010420 art technique Methods 0.000 description 1
- 230000003542 behavioural effect Effects 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 208000015181 infectious disease Diseases 0.000 description 1
- 230000009191 jumping Effects 0.000 description 1
- 239000010410 layer Substances 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 239000011241 protective layer Substances 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 210000002023 somite Anatomy 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
- 239000011800 void material Substances 0.000 description 1
- 238000005406 washing Methods 0.000 description 1
- 230000003936 working memory Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/12—Applying verification of the received information
- H04L63/123—Applying verification of the received information received data contents, e.g. message integrity
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
Die vorliegende Erfindung bezieht sich im Allgemeinen auf ein Verfahren und entsprechende computerbasierte Vorrichtungen zur Sicherung der Integrität von Daten zum Betrieb eines Service (8). Die Erfindung bezieht sich dabei insbesondere auf ein Verfahren zum Erzeugen eines intendierten Zustandes (3) von Daten, die in einem Medium oder System (1) gespeichert oder gesichert werden können, zum Übertragen des intendierten Zustands der Daten an ein weiteres System (7), zum Sichern der Integrität der Daten auf dem weiteren System und zum Ermöglichen der späteren Analyse nach einem unerwünschten Manipulieren der Daten. Die Erfindung bezieht sich auch auf computerbasierte Vorrichtungen, eines Computersystems sowie eines Computernetzwerk, welche dieses Verfahren bzw. die einzelnen Verfahrensschritte darin ausführen bzw. zum Einsatz bringen bzw. ermöglichen, sowie ein computerlesbare Medien mit computerausführbaren Anweisungen.The present invention generally relates to a method and corresponding computer-based devices for securing the integrity of data for operating a service (8). The invention relates in particular to a method for generating an intended state (3) of data that can be stored or secured in a medium or system (1), for transmitting the intended state of the data to a further system (7), to ensure the integrity of the data on the further system and to enable later analysis after undesired manipulation of the data. The invention also relates to computer-based devices, a computer system and a computer network, which execute or use or enable this method or the individual method steps therein, as well as computer-readable media with computer-executable instructions.
Description
Technisches Gebiettechnical field
Die vorliegende Erfindung bezieht sich im Allgemeinen auf ein Verfahren und entsprechende computerbasierte Vorrichtungen zur Sicherung der Integrität von Daten zum Betrieb eines Service. Die Erfindung bezieht sich dabei insbesondere auf ein Verfahren zum Erzeugen eines intendierten Zustandes von Daten, die in einem Medium oder System gespeichert oder gesichert werden können, zum Übertragen des intendierten Zustands der Daten an ein weiteres System, zum Sichern der Integrität der Daten auf dem weiteren System, und zum Ermöglichen der späteren Analyse nach einem unerwünschten Manipulieren der Daten. Die Erfindung bezieht sich weiterhin auf computerbasierte Vorrichtung, Computersysteme, oder ein Computernetzwerk, wobei diese das Verfahren bzw. die einzelnen Verfahrensschritte zumindest teilweise oder vollständig ausführen, sowie ein computerlesbares Medium mit computerausführbaren Anweisungen.The present invention generally relates to a method and corresponding computer-based devices for ensuring the integrity of data for operating a service. The invention relates in particular to a method for generating an intended state of data that can be stored or secured in a medium or system, for transferring the intended state of the data to another system, for securing the integrity of the data on the other system, and to enable later analysis after undesired manipulation of the data. The invention also relates to computer-based devices, computer systems or a computer network, which at least partially or fully execute the method or the individual method steps, and a computer-readable medium with computer-executable instructions.
Stand der TechnikState of the art
Die vorliegende Erfindung bezieht sich auf das technische Gebiet der Datenverarbeitung, insbesondere handelt es sich um eine Erfindung aus dem Feld der IT-Sicherheit. Auf diesem technischen Gebiet der Datenverarbeitung sind verschiedene Techniken aus dem Stand der Technik bekannt.The present invention relates to the technical field of data processing, in particular it is an invention from the field of IT security. Various prior art techniques are known in this technical field of data processing.
Sicherheit in der IT muss dabei insbesondere weniger als ein Zustand und viel mehr als ein Prozess verstanden werden, da es sowohl auf Seiten der Angreifer als auch auf Seiten der Anwender, die ihre Systeme schützen wollen, immer wieder zu neuen Entwicklungen kommt, die sich durch das Internet schnell verbreiten.Security in IT must be understood less as a state and much more as a process, since there are always new developments, both on the part of the attackers and on the part of the users who want to protect their systems spread the internet quickly.
Zur Absicherung der Kommunikation von Computern über Netzwerke haben sich verschiedene Methoden etabliert.Various methods have been established to secure communication between computers via networks.
Ein Computer ist eine physische Repräsentation einer universellen Turingmaschine. Auf ihm wird ein Computergramm betrieben, das Grundfunktionen wie Dateizugriff, (visuelle) Benutzeroberfächen ((graphic) user interface, (G)UI) oder auch Netzwerk-Funktionalitäten bereitstellt (Betriebssystem/ Operating System, OS). Das Betriebssystem wiederum erlaubt den Betrieb weiterer Software, die auf einer anderen Abstraktionsebene geschrieben werden kann.A computer is a physical representation of a universal Turing machine. A computer program is run on it, which provides basic functions such as file access, (visual) user interfaces ((graphic) user interface, (G)UI) or network functionalities (operating system/operating system, OS). The operating system, in turn, allows the operation of additional software that can be written on a different level of abstraction.
Ein Computer besteht in der Regel aus mindestens einer Recheneinheit (central processing unit, CPU), einem Hauptspeicher (Arbeitsspeicher/RAM) und einem Permanentspeicher.A computer usually consists of at least one central processing unit (CPU), main memory (RAM) and permanent storage.
Auch sogenannte Smartphones oder loT (Internet of Things) Devices, wie bspw. Webcams, smarte Leuchtmittel, Thermostate, aber auch Waschmaschinen, Geschirrspüler usw. können Computer nach dieser Definition sein.So-called smartphones or loT (Internet of Things) devices, such as webcams, smart lamps, thermostats, but also washing machines, dishwashers, etc. can also be computers according to this definition.
Ein Netzwerk bezeichnet einen Verbund aus logisch voneinander getrennten Computersystemen, die miteinander kommunizieren können. Werden mehrere Computersysteme auf einem physischen Computer betrieben und können diese Computersysteme untereinander kommunizieren, bezeichnet man dies auch als ein Netzwerk.A network is a group of logically separate computer systems that can communicate with each other. If several computer systems are operated on one physical computer and these computer systems can communicate with each other, this is also referred to as a network.
Möchte man zwischen einem Netzwerk von Computern und einem Netzwerk von Computersystemen innerhalb eines Computers unterscheiden, spricht man bei ersterem von einem physischen Netzwerk und bei letzterem von einem virtuellen Netzwerk. Ein virtuelles Netzwerk (virtual local area network, VLAN) kann auch über ein physisches Netzwerk zwischen Computersystemen, die über mehrere Computer verteilt sind, hergestellt werden.If you want to distinguish between a network of computers and a network of computer systems within a computer, the former is referred to as a physical network and the latter as a virtual network. A virtual local area network (VLAN) can also be established over a physical network between computer systems spread across multiple computers.
Netzwerke werden vor allem zum Austausch von Informationen zwischen Computern verwendet. Dieser Informationsaustausch findet durch verschiedene (Web-)Services statt.Networks are primarily used to exchange information between computers. This exchange of information takes place through various (web) services.
Ein (Web-)Service besteht aus mindestens einem Computerprogramm, das mindestens eine Funktionalität über ein Netzwerk bereitstellt. Dabei kann es sich auch um ein virtuelles Netzwerk innerhalb eines Hostcomputers handeln. Üblicherweise offenbaren Webservices Informationen. Die Worte Dienst, Webdienst oder Internetdienst werden synonym zu Webservices verwendet. Webdienste zeichnen sich in der Regel dadurch aus, dass sie über bestimmte, vordefinierte Protokolle wie bspw. Hypertext transfer protocol (HTTP) ansprechbar sind.A (web) service consists of at least one computer program that provides at least one functionality over a network. It can also be a virtual network within a host computer. Usually, web services reveal information. The words service, web service or internet service are used interchangeably with web services. Web services are usually characterized by the fact that they can be addressed via specific, predefined protocols such as Hypertext Transfer Protocol (HTTP).
Prinzipiell gibt es verschiedene Möglichkeiten zum Betrieb und zur Skalierung eines Webservice. Der offensichtliche Weg wäre vermutlich, einen Computer in einem Netzwerk mit einem Betriebssystem zu betreiben und auf diesem Computer einen Webservice zu betreiben.In principle, there are various options for operating and scaling a web service. The obvious way would probably be to run a computer on a network with an operating system and run a web service on that computer.
Zur Skalierung könnte man dann zunächst den Computer aufrüsten, bis er auf dem Maximum der Leistungsfähigkeit der jeweilig aktuellen Hardwaregeneration wäre.For scaling, one could then first upgrade the computer until it was at the maximum performance of the current hardware generation.
Aus verschiedensten Gründen haben sich unterschiedliche Mittel der Virtualisierung, insbesondere virtuelle Maschinen und sogenannte Container (auch Jails genannt) durchgesetzt.For a variety of reasons, different means of virtualization, in particular virtual machines and so-called containers (also called jails), have prevailed.
Ein Computersystem bezeichnet daher eine beliebige Konfiguration (Computer mit Betriebssystem, virtuelle Maschine, Container o.Ä.), welche die notwendigen Voraussetzungen zum Betrieb eines Webservices (i.d.R. Bereitstellung eines Dateisystems, einer Netzwerkfunktionalität und Betrieb von Software) erfüllt.A computer system therefore designates any configuration (computer with operating sys tem, virtual machine, container or similar) that meets the necessary requirements for operating a web service (usually providing a file system, network functionality and operating software).
Ein Computersystem, das einen Webservice in einem Netzwerk bereitstellt, nennt man Server oder Webserver.A computer system that provides a web service in a network is called a server or web server.
Ein Netzwerk, bei dem man davon ausgehen muss, dass ein potenzieller Angreifer in diesem Netzwerk Zugriff auf einen anderen Computer hat, sodass der Angreifer beliebige Daten über das Netzwerk senden und so ggf. das eigene Computersystem angreifen kann, ist unsicher. Insbesondere ist das Internet ein unsicheres Netzwerk.A network in which one has to assume that a potential attacker has access to another computer in this network, so that the attacker can send any data over the network and possibly attack his own computer system, is insecure. In particular, the Internet is an insecure network.
Zur Absicherung der Kommunikation über ein potenziell unsicheres Netzwerk stehen verschiedenste Techniken zur Verfügung.Various techniques are available to secure communication over a potentially insecure network.
Aus dem Stand der Technik ist beispielsweise eine Technik bekannt, bei der aus Daten ein sogenannter Streuwert (auch als Hash oder Hashwert oder auch Prüfsumme bezeichnet) berechnet wird. Regelmäßig kommt dabei eine sogenannte Streuwertfunktion (Hashfunktion) zum Einsatz. Eine solche Hashfunktion wird beispielsweise durch den sicheren Hash-Algorithmus (SHA, secure hash algorithm) bereitgestellt. Mit einer Hashfunktion kann häufig ein in seiner Größe nicht notwendigerweise beschränkter Datenblock auf einen Datenblock fester Größe, den Hash oder Hashwert, abgebildet werden. Eine typische Länge für einen Hash ist beispielsweise 256 bit. Eine wünschenswerte Eigenschaft einer guten kryptologischen Hashfunktion ist eine näherungsweise Injektivität und eine dadurch erzielte näherungsweise Kollisionsresistenz. Die „ideale Hashfunktion“ ist daher vollständig linkseindeutig und kollisionsfrei und bildet unterschiedliche Eingangsdaten immer auf unterschiedliche Hashes ab.A technique is known from the prior art, for example, in which a so-called spread value (also referred to as hash value or checksum) is calculated from data. A so-called scatter value function (hash function) is regularly used. Such a hash function is provided, for example, by the secure hash algorithm (SHA, secure hash algorithm). With a hash function, a data block that is not necessarily limited in size can often be mapped to a data block of a fixed size, the hash or hash value. A typical length for a hash is 256 bits, for example. A desirable property of a good cryptological hash function is an approximate injectivity and thereby an approximate collision resistance. The "ideal hash function" is therefore completely left-unique and collision-free and always maps different input data to different hashes.
Das Transmission Control Protocol (TCP) ist ein typischer Anwendungsfall für eine Hashfunktion, wobei ein Hashwert für eine größere Datenmenge berechnet wird. Beispielsweise soll eine größere Datenmenge über ein möglicherweise nicht sicheres Übertragungsmedium, wie das Internet, übertragen werden. Zum Beispiel kann durch einen technischen Fehler ein Teil der Daten falsch übertragen werden oder ein Dritter (Angreifer) manipuliert diese Daten.The Transmission Control Protocol (TCP) is a typical use case for a hash function, where a hash value is calculated for a larger amount of data. For example, a larger volume of data is to be transmitted via a transmission medium that may not be secure, such as the Internet. For example, a technical error can result in part of the data being transmitted incorrectly, or a third party (attacker) manipulating this data.
Wenn der Sender der Daten ihren Hashwert berechnet und diesen Hashwert dem Empfänger zur Verfügung stellt, kann der Empfänger die Echtheit und Unverfälschtheit der Daten verifizieren, vorausgesetzt der Hashwert selbst ist echt und verlässlich.If the sender of the data calculates its hash value and makes this hash value available to the recipient, the recipient can verify the authenticity and genuineness of the data, provided the hash value itself is genuine and reliable.
Abseits von der Nutzung von Prüfsummen hat sich die Nutzung von Verschlüsselung, insbesondere asymmetrischer Verschlüsselung etabliert. Diese bietet den Vorteil, dass der Schlüsselaustausch über ein unsicheres Netzwerk stattfinden kann. Dabei werden ein privater und ein öffentlicher Schlüssel (public key) erzeugt. Daten, die mit dem öffentlichen Schlüssel verschlüsselt wurden, können ausschließlich mittels des privaten Schlüssels (private key) entschlüsselt werden.Apart from the use of checksums, the use of encryption, in particular asymmetric encryption, has become established. This offers the advantage that the key exchange can take place via an insecure network. A private and a public key are generated. Data encrypted with the public key can only be decrypted using the private key.
Neben der Überprüfung der Integrität nach einer Übertragung mittels Prüfsummen gibt es noch die Absicherung der Integrität durch Nutzung von Zertifikaten. Diese basiert in der Regel auf der Nutzung asymmetrischer Verschlüsselung, bei der ein Webservice ein Zertifikat bereitstellt, in dem eine vertrauenswürdige Instanz (Certificate Authority) für die Identität des Webservices garantiert (durch Signatur mittels eines Zertifikates). Ein Zertifikat enthält dann meist einen öffentlichen Schlüssel, der für Verschlüsselung der initialen Kommunikation mit dem Webservice genutzt werden kann.In addition to checking the integrity after a transmission using checksums, there is also the protection of integrity by using certificates. This is usually based on the use of asymmetric encryption, in which a web service provides a certificate in which a trustworthy entity (certificate authority) guarantees the identity of the web service (by signing using a certificate). A certificate usually contains a public key that can be used to encrypt the initial communication with the web service.
Das Hash-Verfahren bringt jedoch den Nachteil mit sich, dass das Verfahren völlig außer Kraft gesetzt wird, wenn der Hashwert selbst während einer Man-In-The-Middle-Attacke manipuliert wird. In einem Beispiel überträgt ein Benutzer A (z. B. Alice) an einen Benutzer B (z. B. Bob) eine Datei und außerdem den Hashwert der Datei. Ein Angreifer E (z. B. Eve) fängt diese Kommunikation ab und ersetzt die Datei durch eine gefälschte Datei. Die gefälschte Datei enthält gefälschte Daten. Außerdem ersetzt E den Hashwert der Datei durch den Hashwert der gefälschten Datei. Wenn B nun die Daten empfängt und überprüft, indem er die Hashfunktion der Datei selbst berechnet und mit dem Hashwert vergleicht, kommt er zu dem Schluss, dass die Daten nicht manipuliert wurden. So hat E erfolgreich die Daten manipuliert, ohne dass dies von B festgestellt wurde. Dies kann auch durch gängige Verschlüsselungsmethoden wie SSL nicht notwendigerweise festgestellt werden, da auch die zur Verschlüsselung genutzten Zertifikate durch E ersetzt werden können, sodass beide Parteien verschlüsselt mit E kommunizieren und vermuten, die Verbindung sei sicher.However, the hash procedure has the disadvantage that the procedure is completely invalidated if the hash value itself is manipulated during a man-in-the-middle attack. In one example, user A (e.g., Alice) transmits a file to user B (e.g., Bob) along with the hash of the file. An attacker E (e.g. Eve) intercepts this communication and replaces the file with a fake file. The fake file contains fake data. Also, E replaces the hash of the file with the hash of the fake file. If B now receives the data and verifies it by calculating the hash function of the file itself and comparing it to the hash value, he concludes that the data has not been tampered with. Thus, E successfully manipulated the data without B realizing this. This cannot necessarily be determined even with common encryption methods such as SSL, since the certificates used for encryption can also be replaced by E, so that both parties communicate encrypted with E and assume that the connection is secure.
Man-In-The-Middle Attacks lassen sich weitestgehend vermeiden, indem bei der Kommunikation zwischen A und B beide zuvor austauschen, welche Zertifikate sie voneinander erwarten und dadurch ausschließen können, dass ein Angreifer E die Kommunikation manipuliert. Dieser Vorgang wird als Certificate Pinning bezeichnet.Man-in-the-middle attacks can be avoided as far as possible if, during communication between A and B, both exchange beforehand which certificates they expect from each other and can thus prevent an attacker E from manipulating the communication. This process is known as certificate pinning.
Sobald die Kommunikation zwischen zwei Computern ausreichend geschützt ist, wird es für einen möglichen Angreifer einfacher und somit auch kostengünstiger, eine der Kommunikationsparteien direkt anzugreifen, um die Kommunikation abzufangen bzw. zu manipulieren. Somit ist es unerlässlich auch einzelne Computersysteme hinreichend abzusichern.As soon as the communication between two computers is sufficiently protected, it becomes easier for a possible attacker and therefore also cheaper to attack one of the communication parties directly in order to intercept or manipulate the communication. It is therefore essential to protect individual computer systems sufficiently.
Angriffe auf Webservices sind insofern besonders attraktiv für mögliche Angreifer, da sie mitunter durch einen geglückten Angriff Zugriff auf die Kommunikation mit dutzenden, hunderten oder tausenden Kunden des Opfers haben, die die geladenen Daten wiederum für berechtigt halten und ihnen vertrauen.Attacks on web services are particularly attractive for possible attackers because a successful attack sometimes gives them access to communication with dozens, hundreds or thousands of the victim's customers, who in turn believe the loaded data to be legitimate and trust them.
Daraus ergibt sich für Betreiber von Webservices ein besonderes Schutzbedürfnis, zumal auch die Konkurrenz des Betreibers bzw. weitere Interessensgruppen wie Hacker mit einer Gewinnabsicht, aber auch Gruppen wie Anonymous, die rein auf Basis eines ideologischen Antriebs Ziele attackieren.This results in a special need for protection for operators of web services, especially since the operator's competition or other interest groups such as hackers with a profit intention, but also groups such as Anonymous, which attack targets purely on the basis of an ideological drive.
Zudem ist spätestens mit der Einführung von Datenschutzregulierungen wie der Datenschutzgrundverordnung (DSG-VO), aber auch zuvor in der Handhabung von Zahlungsdaten wie Kreditkartendaten, ein erhebliches wirtschaftliches Schadensrisiko mit dem Betrieb eines Webservices verbunden.In addition, at the latest with the introduction of data protection regulations such as the General Data Protection Regulation (GDPR), but also beforehand in the handling of payment data such as credit card data, there is a considerable risk of economic damage associated with the operation of a web service.
Allgemein lässt sich sagen, dass bei der Absicherung von Computersystemen ein Ansatz mit möglichst vielen Schutzschichten vonnöten ist, da nahezu jedes Schutzsystem überwunden werden kann, aber insbesondere wirtschaftlich motivierte Angreifer in der Regel zunächst die einfachsten Ziele attackieren, da auch sie einer Gewinnmaximierungsabsicht unterliegen. Viele einfach durchzuführende und erfolgreiche Angriffe sind in der Regel profitreicher als der Angriff auf ein komplex abgesichertes System. Daher überwiegt der Nutzen weiterer Sicherheitsmaßnahmen im Normalfall überproportional zu den für die Sicherheitsmaßnahmen aufgewendeten Kosten.In general, it can be said that when protecting computer systems, an approach with as many protective layers as possible is required, since almost any protective system can be defeated, but especially economically motivated attackers usually attack the simplest targets first, since they too are subject to the intention of maximizing profits. Many attacks that are easy to carry out and are successful are usually more profitable than an attack on a complex secured system. Therefore, the benefits of further security measures normally outweigh the costs incurred for the security measures.
Die erste Schutzschicht, die einem Angreifer entgegensteht, ist meist eine Firewall, die sowohl ein- als auch ausgehende Kommunikation an einem Computer überwacht und eine Zuordnung von Prozessen auf dem Computer zu bestimmten Protokollen, Ports, URLs sowie IP-Adressen erlaubt.The first layer of protection against an attacker is usually a firewall that monitors both incoming and outgoing communication on a computer and allows processes on the computer to be assigned to specific protocols, ports, URLs and IP addresses.
Dabei kann ein Blacklisting, also eine negative Bestimmung von Zugriffsrechten oder eine Whitelisting, eine positive Bestimmung von Zugriffsrechten erfolgen.A blacklisting, ie a negative determination of access rights, or a whitelisting, a positive determination of access rights, can take place.
Antivirenprogramme überprüfen regelmäßig die permanenten Speicher eines Computers auf bekannte Schadprogramme. Dafür sammelt der Anbieter eines Antivirenprogramms Signaturen bekannter Schadsoftware und häufig auch bestimmte Verhaltensmuster. Nachteilig dabei ist, dass das Überprüfen des Speichermediums auf diese Weise zum einen relativ rechen- und somit zeitaufwändig ist. Zudem ist erforderlich, dass die Schadsoftware bereits bekannt ist.Antivirus programs regularly scan a computer's permanent storage for known malicious programs. To do this, the provider of an antivirus program collects signatures of known malware and often also certain behavioral patterns. The disadvantage here is that checking the storage medium in this way is relatively computationally expensive and therefore time-consuming. It is also necessary that the malware is already known.
Als weitere Schutzmaßnahme zur Sicherung von IT-Systemen dient das Berechtigungsmanagement, das die sinnvolle Verwaltung von Zugangsberechtigungen regelt. Nach dem „Principle of least privilege“ sollten Anwendungen und Prozesse nur mit den minimal nötigen Berechtigungen gestartet werden. Ferner sollten Strukturen im Dateisystem nur insofern veränderbar sein, wie dies für den jeweiligen technischen Nutzer (bspw. Nutzer zum Ausführen eines Webservers) notwendig ist. Dieser könnte bspw. Lese-Berechtigung für die entsprechende Konfiguration haben, ohne die Konfiguration auch schreiben zu können.Authorization management, which regulates the sensible administration of access authorizations, serves as a further protective measure for securing IT systems. According to the "principle of least privilege", applications and processes should only be started with the minimum necessary authorizations. Furthermore, structures in the file system should only be changeable insofar as this is necessary for the respective technical user (e.g. user for running a web server). This could, for example, have read authorization for the corresponding configuration without being able to write the configuration.
In der Praxis ist diese Maßnahme sehr aufwändig und es kommt immer wieder zu Fehlkonfigurationen, da die korrekte Konfiguration des Berechtigungsmanagements sehr komplex und unübersichtlich ist.In practice, this measure is very time-consuming and incorrect configurations occur again and again, since the correct configuration of the authorization management is very complex and confusing.
Das Sandboxing stellt ein Verfahren da, bei dem in der Regel durch das Betriebssystem sichergestellt wird, dass eine Anwendung nur einen ihr zugewiesenen Bereich des Dateisystems erreichen kann, sodass diese Anwendung keine Daten anderer Anwendungen und insbesondere keine anderen Anwendungen manipulieren kann. Es handelt sich somit im Grunde um eine automatisierte Spezialanwendung des Berechtigungsmanagements.Sandboxing is a procedure in which the operating system usually ensures that an application can only access an area of the file system that is assigned to it, so that this application cannot manipulate data from other applications and in particular no other applications. It is therefore basically an automated special application of authorization management.
Eine weitere Möglichkeit stellt die Isolation verschiedener Dienste in getrennte Computersysteme dar. Anstatt mehrere Services wie Webmail, Datenbank und Website auf einem Computer innerhalb eines Betriebssystems bereitzustellen, werden dieses Services bspw. auf unterschiedliche virtuelle Maschinen oder Container verteilt, wodurch beispielsweise ein kompromittierter Mail-Server nicht automatisch zu einer Kompromittierung der Datenbank führt.Another possibility is the isolation of different services in separate computer systems. Instead of providing several services such as webmail, database and website on one computer within one operating system, these services are distributed to different virtual machines or containers, which means, for example, a compromised mail server does not automatically lead to a compromise of the database.
Neben der Lösung mittels Antivirenprogrammen, bei der eine negative Berechtigungsliste (Programme, die nicht laufen dürfen) geführt wird, besteht auch die Möglichkeit nur bestimmte Anwendungen zuzulassen, deren Integrität wiederum häufig durch Prüfsummen sichergestellt wird. Diese Möglichkeit wird als Whitelisting bezeichnet.In addition to the solution using antivirus programs, in which a negative authorization list (programs that are not allowed to run) is kept, there is also the option of only allowing certain applications, the integrity of which in turn is often ensured by checksums. This possibility is called whitelisting.
Ein Computersystem, das in besonderem Maße durch Anwendung anderer, insbesondere mehrerer komplementärer Verfahren aus dem Stand der Technik geschützt und insbesondere nur beschränkt aus einem unsicheren Netzwerk wie dem Internet zugänglich ist, ist ein geschütztes Computersystem im Sinne dieses Dokuments.A computer system that is protected to a particular extent by using other, in particular several complementary methods from the prior art and in particular only to a limited extent from an insecure network such as accessible from the Internet is a protected computer system within the meaning of this document.
Neben der Absicherung eines Webservices steht zudem die Effizienz im Vordergrund. Insbesondere lange Ladezeiten führen schnell zum „Abspringen“ des Nutzers, der aus Ungeduld die Internetseite eines alternativen Anbieters aufruft, aber auch die kostengünstige Skalierung spielt eine Rolle beim wirtschaftlichen Betrieb von Webservices.In addition to securing a web service, efficiency is also a priority. In particular, long loading times quickly lead to the user "jumping off" and accessing the website of an alternative provider out of impatience, but cost-effective scaling also plays a role in the economic operation of web services.
Oft werden die Daten, die ein Webservice zur Verfügung stellt, in Teilen oder vollständig zum Zeitpunkt der Anfrage neu berechnet. Als Caching bezeichnet man den Vorgang, bei dem die dabei erzeugten Daten, bspw. HTML-Dokumente, für eine Zeit gespeichert und bei einer in diesem Zeitraum erfolgenden, identischen Anfrage wieder ausgeliefert werden, ohne dass die gesamte Berechnung erneut stattfinden muss. So wird Rechenleistung gespart und die Ladezeit der Daten entsprechend minimiert.The data provided by a web service is often recalculated in part or in full at the time of the request. Caching is the process in which the data generated, e.g. HTML documents, is stored for a period of time and delivered again if an identical request occurs during this period, without the entire calculation having to take place again. This saves computing power and minimizes the loading time of the data accordingly.
Wie bereits beschrieben, besteht beim Betrieb eines Webservice mitunter der Bedarf, die Last effizienter zu verarbeiten, um bspw. mehr Nutzer zufrieden stellen zu können. Ein wesentliches Merkmal für den Erfolg eines Webservice ist mitunter die Ladezeit, bevor der Server dem Nutzer eine Antwort bereitstellt (response time).As already described, when operating a web service, there is sometimes a need to process the load more efficiently, for example to be able to satisfy more users. An essential feature for the success of a web service is sometimes the loading time before the server provides the user with an answer (response time).
Um diese Ladezeit möglichst gering zu halten, werden in der Regel weitere Computersysteme als Server bereitgestellt, die parallel Anfragen bearbeiten und so die Wartezeit bei einer Vielzahl an Anfragen im Schnitt deutlich senken können.In order to keep this loading time as short as possible, additional computer systems are usually provided as servers, which process requests in parallel and can thus significantly reduce the waiting time for a large number of requests on average.
Ferner können Betreiber eines internationalen Webservice auch entscheiden, Computersysteme in anderen Rechenzentren zu betreiben, um die Distanz zu ihren Kunden zu reduzieren, sodass die Ladezeiten für den Kunden nicht durch Unwägbarkeiten wie physikalische Begrenzungen der Übertragungsleitungen, Peeringabkommen zwischen verschiedenen Internet-Service-Providern (ISPs) oder Ähnliches beeinträchtigt werden.Furthermore, operators of an international web service can also decide to operate computer systems in other data centers in order to reduce the distance to their customers, so that the loading times for the customer are not affected by imponderables such as physical limitations of the transmission lines, peering agreements between different Internet service providers (ISPs ) or the like may be affected.
Ferner sind diese Verfahren in der Regel auch dazu geeignet, um die Ausfallsicherheit eines Webservice zu erhöhen.Furthermore, these methods are usually also suitable for increasing the reliability of a web service.
Verfahren der hier beschrieben Art nennt man „Load Balancing“ oder Lastverteilung.Procedures of the type described here are called “load balancing” or load distribution.
Neben den bereits beschriebenen Verfahren sollen der Vollständigkeit halber noch weitere Technologien genannt werden, die beim Betrieb eines Webservices eine Rolle spielen können:
- Bittorrent ist ein Protokoll zum Austausch von Dateien im Internet. Dabei werden Dateien in direkt zwischen Computern über ein Netzwerk ausgetauscht, ohne dass eine zentrale Instanz zur Koordinierung nötig ist. In dem Protokoll werden ebenfalls Prüfsummen genutzt, um Teile von Dateien auf die korrekte Übertragung zu überprüfen. Auf Basis dieses Protokolls bieten einige Anbieter die Synchronisierung von Daten an. Dies ist bspw. auch geeignet, um die Daten zum Betrieb eines Webservices zwischen verschiedenen Computersystemen, die gemeinsam das Load Balancing umsetzen, zu synchronisieren.
- Bittorrent is a protocol for exchanging files on the Internet. Files are exchanged directly between computers over a network without the need for a central authority for coordination. Checksums are also used in the protocol to check parts of files for correct transmission. Some providers offer data synchronization based on this protocol. This is also suitable, for example, for synchronizing the data for operating a web service between different computer systems that implement load balancing together.
In vielen Netzwerken, insbesondere Firmennetzwerken, gibt es zudem einen sogenannten Proxy, der die Anfragen von Computern im Netzwerk an das Internet entgegennimmt und diese an die entsprechenden Server weiterleitet. Dies wird in der Regel aus Sicherheitsgründen, oder zum Zwecke von Verboten innerhalb des Netzwerks durchgeführt. Durch die Verwendung eines Proxies kann außerdem die IP-Adresse eines Computers verschleiert werden, da der angesprochene Computer nur die IP-Adresse des Proxies erhältt.In many networks, especially company networks, there is also a so-called proxy, which accepts requests from computers in the network to the Internet and forwards them to the appropriate server. This is usually done for security reasons or for the purpose of prohibitions within the network. A computer's IP address can also be disguised by using a proxy, since the computer addressed only receives the IP address of the proxy.
Bei einem Reverse Proxy handelt es sich um das Gegenteil. Dieser wird in der Regel beim Betrieb eines Webservices vor dem eigentlichen Webservice vorgeschaltet, um den Webservice abzusichern, bestimmte Funktionen des Webservice vor dem Internet zu verschleiern, oder auch um Load Balancing zu implementieren.A reverse proxy is the opposite. This is usually installed before the actual web service when operating a web service, in order to secure the web service, to conceal certain functions of the web service from the Internet, or to implement load balancing.
AufgabeTask
Die Aufgabe der vorliegenden Erfindung besteht in der Sicherung der Integrität von Daten, wie etwa Dateien oder in Datenbanken gespeicherten Daten auf Servern, die einen Dienst anbieten und in einem Netzwerk exponiert sind. Weiterhin ist es Aufgabe der vorliegenden Erfindung eine sofortige Isolation kompromitierter Daten insbesondere auf einem Server oder auf einem computerlesbaren Medium zu bewirken, die aufgrund einer Manipulation entstanden sind. Zudem sollen die manipulierten Daten in einen Zustand vor der Manipulation gebracht werden.The object of the present invention is to ensure the integrity of data such as files or data stored in databases on servers offering a service and exposed in a network. Furthermore, it is the object of the present invention to bring about immediate isolation of compromised data, in particular on a server or on a computer-readable medium, which has arisen as a result of manipulation. In addition, the manipulated data should be brought into a state before the manipulation.
LösungSolution
Erfindungsgemäß wird die Aufgabe durch ein Verfahren mit den folgenden Schritten gelöst:
- a) Erzeugen (S01) eines intendierten Zustands von Daten, insbesondere Dateien und Daten in Datenbanken, auf einem ersten, sicheren Computersystem (primäres System),
- b) Übertragen (S02) der Daten durch eine gesicherte Verbindung auf einen oder mehrere Server (sekundäres Computersystem) in einem potentiell unsicheren Netzwerk zum Bereitstellen eines Web-Service,
- c) Prüfen (S03) der Integrität der Daten in der Weise, dass ein Manipulieren der Daten durch einen Angreifer unmittelbar, also bevor der Angreifer, der die Datei manipuliert hat, auffällt und keinen weiteren Schaden anrichten kann,
- d) sofortiges Wiederherstellen (S04) des intendierten Status der manipulierten Daten vor dem unbeabsichtigten Manipulieren.
- a) Generating (S01) an intended state of data, in particular files and data in databases, on a first, secure computer system (primary system),
- b) Transmission (S02) of the data through a secure connection to one or more servers (secondary computer system) in one potentially insecure network for providing a web service,
- c) Checking (S03) the integrity of the data in such a way that a manipulation of the data by an attacker is noticed immediately, i.e. before the attacker who has manipulated the file and cannot cause any further damage,
- d) immediately restoring (S04) the intended status of the manipulated data before unintentional manipulation.
Weitere vorteilhafte Ausgestaltungen sind den Unteransprüchen und der Beschreibung zu entnehmen.Further advantageous configurations can be found in the dependent claims and the description.
Allgemeine VorteileGeneral Benefits
Das erfindungsgemäße Verfahren erhöht die Sicherheit beim Betreiben eines Webservice erheblich, während sie den technischen Aufwand zur Absicherung und somit die Kosten des Betriebs erheblich senkt. Durch die Software-Architekturprinzipien werden die allgemein bekannten technischen Risiken beim Betrieb eines Webservice ohne eine tiefe spezifische Kenntnis des eingesetzten Programms verringert oder eliminiert. Ferner erhöht das erfindungsgemäße Verfahren den technischen Aufwand und damit die Kosten für einen potentiellen Angreifer enorm, da dieser
- a) wissen muss, dass der Webservice durch dieses Verfahren geschützt ist,
- b) den Agenten (11) nicht angreifen kann, da der Agent selbst durch das Verfahren geschützt ist,
- c) er den Webservice (8) nicht nutzen kann, um Angriffe auf weitere Nutzer vorzunehmen, ohne dabei entdeckt zu werden,
- d) auch nicht das primäre System (1) angreifen kann, da dieses durch eine sichere Verbindung ausschließlich mit dem Agenten kommuniziert und sonst nicht mit dem unsicheren Netzwerk verbunden ist.
- a) must know that the web service is protected by this procedure,
- b) cannot attack the agent (11) since the agent itself is protected by the method,
- c) he cannot use the web service (8) to attack other users without being discovered,
- d) cannot attack the primary system (1) either, since this only communicates with the agent via a secure connection and is otherwise not connected to the insecure network.
Aufgrund der deutlich erhöhten Kosten für den Angreifer ist nicht davon auszugehen, dass ein derartig geschütztes sekundäres System (7) weiter attackiert werden würde, da auch Angreifer wirtschaftlichen Zwängen unterliegen und so den Gewinn pro Aufwand maximieren müssen.Due to the significantly increased costs for the attacker, it cannot be assumed that a secondary system (7) protected in this way would continue to be attacked, since attackers are also subject to economic constraints and must therefore maximize the profit per effort.
Ausführliche Beschreibung der ErfindungDetailed Description of the Invention
Nach einer bevorzugten Ausgestaltung der vorliegenden Erfindung, werden zwischen Schritt S03 und S04 die Daten nach einer festgestellten unbeabsichtigten Manipulation in Quarantäne verbracht, sodass die Daten im Nachhinein analysiert, aber nicht mehr ausgeführt werden können, wodurch vorteilhaft ein weiterer Schaden nach der Prüfung verhindert wird.According to a preferred embodiment of the present invention, between steps S03 and S04 the data is quarantined after a detected unintentional manipulation, so that the data can be analyzed afterwards but can no longer be executed, which advantageously prevents further damage after the check.
Das Verbringen der Daten in Quarantäne dient dem Schutz des Computersystems. Dafür können auffällige (manipulierte) Daten bspw. eine korrumpierte Datei in ein Verzeichnis vorzugsweise auf einem Server verbracht werden, aus dem ein in dieser Datei befindliches Programm nicht gestartet werden kann (Isolation).The quarantine of data serves to protect the computer system. For this, conspicuous (manipulated) data, e.g. a corrupted file, can be placed in a directory, preferably on a server, from which a program in this file cannot be started (isolation).
In einer bevorzugten Ausgestaltung wird die Integrität der Dateien auf Basis kryptographischer Verfahren sichergestellt.In a preferred embodiment, the integrity of the files is ensured on the basis of cryptographic methods.
Als kryptographisches Verfahren eignen sich bspw. Signaturen durch Zertifikate. Dieses Verfahren ist standardisiert und wenig fehleranfällig, sodass es nicht zu sogenannten false positives („falsch Positiven“) kommen sollte.Signatures using certificates, for example, are suitable as a cryptographic method. This procedure is standardized and not very error-prone, so so-called false positives should not occur.
Alternativ bevorzugt kann auf Basis von Hashwerten wie bspw. SHA256, SHA512, MD5 mit möglichst geringer Kollisionswahrscheinlichkeit sichergestellt werden, dass die Datei keinerlei Änderung erfährt, was ggf. leicht fehleranfälliger, aber dafür auch sicherer sein könnte.Alternatively, it can preferably be ensured on the basis of hash values such as SHA256, SHA512, MD5 with the lowest possible probability of collision that the file is not changed in any way, which may be slightly more error-prone, but also more secure.
In einer weiterhin bevorzugten Ausgestaltung der Erfindung findet das Überprüfen der Dateien unmittelbar nach dem Manipulieren der Daten statt.In another preferred embodiment of the invention, the files are checked immediately after the data has been manipulated.
Dies kann beispielsweise durch eine regelmäßige Prüfung der Integrität, insbesondere häufiger als einmal pro Stunde, weiterhin insbesondere häufiger als einmal pro 30 Minuten, weiterhin insbesondere häufiger als einmal pro 10 Minuten, weiterhin insbesondere häufiger als einmal pro 5 Minuten, weiterhin insbesondere häufiger als einmal pro Minute, weiterhin insbesondere häufiger als einmal pro Sekunde, weiterhin insbesondere häufiger als einmal pro 500 Millisekunden, weiterhin insbesondere häufiger als einmal pro 100 Millisekunden, weiterhin insbesondere häufiger als einmal pro 10 Millisekunden, weiterhin insbesondere häufiger als einmal pro Millisekunde, weiterhin insbesondere häufiger als einmal pro 500 Mikrosekunden, weiterhin insbesondere häufiger als einmal pro 100 Mikrosekunden, weiterhin insbesondere häufiger als einmal 100 Mikrosekunden, weiterhin insbesondere häufiger als einmal pro 10 Mikrosekunden, weiterhin insbesondere häufiger als einmal pro Mikrosekunde, weiterhin insbesondere häufiger als einmal pro 500 Nanosekunden, weiterhin insbesondere häufiger als einmal pro 100 Nanosekunden, weiterhin insbesondere häufiger als einmal pro 10 Nanosekunden, weiterhin insbesondere häufiger als einmal pro Nanosekunde, weiterhin insbesondere häufiger als einmal pro 500 Picosekunden, weiterhin insbesondere häufiger als einmal pro 100 Picosekunden, weiterhin insbesondere häufiger als einmal pro 10 Picosekunden, weiterhin insbesondere häufiger als einmal pro Picosekunde, weiterhin insbesondere häufiger als einmal pro 500 Femtosekunden, weiterhin insbesondere häufiger als einmal pro 100 Femtosekunden, weiterhin insbesondere häufiger als einmal pro 10 Femtosekunden, weiterhin insbesondere häufiger als einmal pro Femtosekunde, erreicht werden.This can be done, for example, by regularly checking the integrity, in particular more frequently than once an hour, more particularly more frequently than once every 30 minutes, more particularly more frequently than once every 10 minutes, more particularly more frequently than once every 5 minutes, more particularly more frequently than once every Minute, especially more often than once per second, especially more often than once per 500 milliseconds, especially more often than once per 100 milliseconds, especially more often than once per 10 milliseconds, especially more often than once per millisecond, especially more often than once per 500 microseconds, more particularly more often than once per 100 microseconds, more particularly more often than once 100 microseconds, more particularly more often than once per 10 microseconds, more particularly more often than once per microsecond, more particularly more often than once per 500 nanoseconds, more particularly more often than once per 100 nanoseconds, more particularly more frequently than once per 10 nanoseconds, more particularly more frequently than once per nanosecond, more particularly more frequently than once per 500 picoseconds, more particularly more frequently than once per 100 picoseconds, more particularly frequently more than once per 10 picoseconds, more particularly more than once per picosecond, more particularly more than once per 500 femtoseconds, more particularly more than once per 100 femtoseconds, more particularly more than once per 10 femtoseconds, more particularly more than once per femtosecond, be reached.
Bevorzugt sollte das Prüfungsintervall im Fall des regelmäßigen Überprüfens der Dateien in der Größenordnung der Ausführungszeit der notwendigen Taktzyklen der CPU je nach verwendeten Prüfalgorithmus liegen.In the case of regular checking of the files, the checking interval should preferably be in the order of magnitude of the execution time of the necessary clock cycles of the CPU, depending on the checking algorithm used.
Durch die regelmäßige Prüfung binnen kürzester Zeitintervalle wird die Zeit, die ein Angreifer zum Erreichen seiner Ziele hat, vorteilhaft verkürzt, sodass dieser im Optimalfall keinerlei Schaden anrichten kann. Da viele Angriffe nach einer erfolgten (teil)automatischen Infektion des angegriffenen Systems einer händischen Analyse durch den Angreifer bedürfen, kann bereits durch Prüfungen mit einem Intervall in der Größenordnung von wenigen Minuten ein erheblich höheres Sicherheitsniveau erreicht werden. Durch eine weitere Verkürzung des Prüfintervalls können auch hochautomatisierte Angriffe erkannt und blockiert werden, bevor ein Schaden entstehen kann.Regular checks within the shortest possible time intervals advantageously shorten the time an attacker has to reach his goals, so that in the best-case scenario he cannot cause any damage. Since many attacks require a manual analysis by the attacker after a (partially) automatic infection of the attacked system, a significantly higher level of security can be achieved with checks at intervals of the order of a few minutes. By further reducing the test interval, highly automated attacks can also be detected and blocked before damage can occur.
Alternativ kann die Unmittelbarkeit der Prüfung durch die Verwendung von Watch Dogs sichergestellt werden. Moderne Betriebssysteme erlauben die Registrierung eines sogenannten Watch Dog. Dabei wird dem Betriebssystem mitgeteilt, dass bei einer Manipulation einer Datei oder der Inhalte eines Verzeichnisses ein bestimmter Prozess gestartet werden soll. Dieser Prozess wird als Watch Dog bezeichnet.Alternatively, the immediacy of the exam can be ensured through the use of watch dogs. Modern operating systems allow the registration of a so-called watch dog. The operating system is informed that a certain process should be started when a file or the contents of a directory are manipulated. This process is called Watch Dog.
In einer Ausgestaltung des erfindungsgemäßen Verfahrens kann auf Basis der Verwendung eines Watchdog seine unmittelbare Reaktion auf eine Manipulation der Daten erfolgen, ohne dass viele Ressourcen durch das ständige Prüfen blockiert würden. Somit handelt es sich um eine ressourcensparende Umsetzung zur Sicherung der Unmittelbarkeit des Prüfens der manipulierten Daten.In one embodiment of the method according to the invention, based on the use of a watchdog, its immediate reaction to a manipulation of the data can take place without many resources being blocked by the constant checking. It is therefore a resource-saving implementation to ensure the immediacy of checking the manipulated data.
In einer weiteren bevorzugten Ausgestaltung werden in Schritt S01 des Verfahrens vermeintlich dynamische Dateien, wie bspw. durch PHP gerenderte HTML-Seiten, soweit es der betriebene Dienst erlaubt, als statische Dateien, wie bspw. HTML-, JSON- oder XML-Dateien, an das sekundäre System übertragen. Dies ist hilfreich, um mögliche Sicherheitslücken im ausführbaren Programmcode, soweit möglich, ausschließlich auf dem primären, sicheren System auszuführen und vorteilhaft die Ladezeiten sowie die Ausfallsicherheit des Dienstes zu verbessern.In a further preferred embodiment, supposedly dynamic files, such as HTML pages rendered by PHP, are displayed as static files, such as HTML, JSON or XML files, insofar as this is permitted by the service operated, in step S01 of the method transfer to the secondary system. This is helpful in order to run possible security gaps in the executable program code exclusively on the primary, secure system and to improve the loading times and reliability of the service.
In einer möglichen Ausbildung des erfindungsgemäßen Verfahrens findet das Übertragen der Daten von einem primären an ein sekundäres System manuell statt. Dies bietet dem Betreiber der Website die volle Kontrolle darüber, wann welche Daten übertragen werden.In one possible embodiment of the method according to the invention, the data is transmitted manually from a primary to a secondary system. This offers the operator of the website full control over which data is transmitted and when.
In einer bevorzugten Ausgestaltung erfolgt die Übertragung der Daten automatisch zeitgesteuert, was dafür sorgt, dass der Webservice in seiner öffentlich zugänglichen Form regelmäßig auf den aktuellen intendierten Zustand der Daten gebracht wird. Die Zeitsteuerung wiederum kann einem zufälligen Muster entsprechen, sodass ein möglicher Angreifer nicht vorhersehen kann, wann es zu einer erneuten Übertragung kommt.In a preferred embodiment, the data is transmitted automatically in a time-controlled manner, which ensures that the web service in its publicly accessible form is regularly updated to the current intended state of the data. The timing, in turn, can follow a random pattern so that a would-be attacker cannot anticipate when a retransmission will occur.
In einer besonders bevorzugten Ausgestaltung des Verfahrens findet die Übertragung der Daten automatisch nach Veränderung des intendierten Zustandes der Daten statt. Dies hat den Vorteil, dass die öffentlich zugängliche Version der Daten immer dem zuletzt aktualisierten Zustand entspricht.In a particularly preferred embodiment of the method, the data is transmitted automatically after the intended state of the data has changed. This has the advantage that the publicly accessible version of the data always corresponds to the last updated status.
Die Übertragung der Daten kann wahlweise a) den gesamten intendierten Zustand, bevorzugt aber b) nur die Differenz zu dem vorausgehenden intendierten Zustand der Daten vom primären zum sekundären System umfassen. Nach a) ist die Möglichkeit für Fehler durch eine fehlerhafte Delta-Berechnung stärker eingeschränkt, dafür bietet b) eine Bandbreitenersparnis, was insbesondere bei umfangreichen Daten von großem Vorteil ist. Zudem bietet die Option des inkrementellen Updates den Vorteil, dass selbst eine kompromittierte Kommunikation des primären und des sekundären Systems keinen Rückschluss auf sämtliche Daten zum Betrieb des Webservices zulässt.The transmission of the data can optionally include a) the entire intended state, but preferably b) only the difference to the previous intended state of the data from the primary to the secondary system. According to a), the possibility of errors due to an incorrect delta calculation is more limited, but b) offers a bandwidth saving, which is of great advantage, especially with extensive data. In addition, the incremental update option offers the advantage that even if the communication between the primary and secondary systems is compromised, it is not possible to draw any conclusions about all data relating to the operation of the web service.
In einer weiteren Ausbildung des Verfahrens wird die Änderung der intendierten Zustände und deren Übertragung revisionssicher gespeichert, wodurch eine spätere Auditierung ermöglicht wird.In a further development of the method, the change in the intended statuses and their transmission are stored in an audit-proof manner, which makes subsequent auditing possible.
Das Auditieren der Änderung stellt eine Praxis dar, bei der im Nachhinein nachvollzogen werden kann, wann welche Änderungen von wem vorgenommen wurden. Dafür müssen die Daten revisionssicher, als unveränderlich, gespeichert werden können.The auditing of the change represents a practice in which it is possible to trace back when which changes were made and by whom. To do this, the data must be able to be stored in an audit-proof manner as unchangeable.
Vorzugweise erfolgt dies mittels einer Blockchain, da in dieser dezentral Informationen revisionssicher gespeichert und übertragen werden, wodurch auch S02 zumindest teilweise realisiert werden kann.This is preferably done using a blockchain, since information is stored and transmitted in a decentralized manner in this blockchain, which means that S02 can also be implemented at least partially.
Unter Blockchain versteht man eine Technologie, die ähnlich einer Datenbank Informationen speichert. Dabei sind die Informationen nicht zentralisiert in einem Computersystem gespeichert, sondern befinden sich auf vielen Systemen gleichzeitig. Alle Instanzen der Datenbank enthalten dabei alle Informationen und die gesamte Historie ist zu jedem Zeitpunkt abrufbar. Solange sich kein Konsens im Netzwerk aller Instanzen bildet, können historische Einträge nicht gelöscht werden.Blockchain is a technology that stores information similar to a database. The information is not stored centrally in one computer system, but is located on many systems at the same time. All instances of the database contain all information and the entire history can be called up at any time. As long as no consensus is formed in the network of all instances, historical entries cannot be deleted.
Durch das erfindungsgemäße Verfahren werden auch Daten in einer Datenbank geschützt. Die Integrität der Daten in der Datenbank wird gesichert indem
- a) entweder nach jedem erwünschten Manipulieren der Daten durch den Webservice die entsprechende Abfrage (Query) zunächst auf schadhafte Eingaben (bspw. SQL Injections, oder Änderungen an verbotenen Datensätzen, wie Datenbanknutzern) überprüft, dann gesichert an das primäre System übertragen und in der Folge die erfolgten Änderungen der Daten an die sekundären Systeme gespiegelt werden, oder
- b) nach jedem erwünschten Manipulieren der Daten durch den Webservice die Query zunächst auf schadhafte Eingaben (bspw. SQL Injections, oder Änderungen an verbotenen Datensätzen, wie Datenbanknutzern) überprüft und dann gesichert an das primäre System übertragen wird und auch Lesezugriffe auf die Datenbank durch den Agenten geprüft und an das primäre System übertragen werden, sodass keine Datenbank im sekundären System notwendig ist, oder
- c) die Datenbank auf dem Sekundärsystem regelmäßig auf ein unintendiertes Ändern von verbotenen Datensätzen wie Datenbanknutzern oder anderen Daten, die nicht durch den Service bearbeitet werden müssen, überprüft wird.
- a) either after each desired manipulation of the data by the web service, the corresponding query (query) is first checked for defective inputs (e.g. SQL injections or changes to forbidden data records, such as database users), then transferred securely to the primary system and subsequently the changes made to the data are mirrored to the secondary systems, or
- b) after each desired manipulation of the data by the web service, the query is first checked for defective inputs (e.g. SQL injections, or changes to forbidden data records, such as database users) and then securely transferred to the primary system and read access to the database is also carried out by the Agents are checked and transferred to the primary system, eliminating the need for a database in the secondary system, or
- c) the database on the secondary system is regularly checked for unintentional changing of prohibited records such as database users or other data that does not need to be processed by the service.
Der Schutz der Daten in Datenbanken ist insbesondere deshalb von größter Relevanz, da hierdurch wohlbekannte Problematiken, wie bspw. sogenannte SQL injections verhindert werden können. SQL injections sind ein großes Sicherheitsproblem, bei dem ein Angreifer Zugang zu beliebigen Daten in einer Datenbank erhalten kann, wenn die auf die Datenbank zugreifende Software nicht entsprechend abgesichert wurde. Kein Verfahren aus dem Stand der Technik schützt jede Dritthersteller-Software vor solchen Angriffen.The protection of data in databases is particularly relevant because it can prevent well-known problems such as so-called SQL injections. SQL injections are a major security problem where an attacker can gain access to any data in a database if the software accessing the database has not been adequately secured. No prior art method protects any third-party software from such attacks.
Dies ist insbesondere deshalb relevant, weil besonders kleine und mittelständische Unternehmen oft Software, bspw. zum Betrieb eines Webshops nutzen, die sie nicht selbst entwickeln, wodurch sie keinerlei Informationen über mögliche Sicherheitslücken haben.This is particularly relevant because small and medium-sized companies in particular often use software, e.g. to operate a web shop, that they do not develop themselves, which means that they have no information about possible security gaps.
In einer bevorzugten Ausgestaltung werden mehrere sekundäre Systeme parallel betrieben, um mittels Load Balancing die Last zu verteilen und so Ladezeiten des betriebenen Dienstes zu minimieren und weiterhin vorteilhaft die Ausfallsicherheit zu erhöhen.In a preferred embodiment, a number of secondary systems are operated in parallel in order to distribute the load by means of load balancing and thus to minimize loading times for the service operated and furthermore advantageously to increase reliability.
In einer weiterhin bevorzugten Implementierung des Verfahrens mit mehreren sekundären Systemen wird nach einer Verletzung der Integrität eines Datums der gesamte sekundäre Server, auf dem die Integrität beschädigt wurde, isoliert, um eine spätere Analyse des gesamten Angriffs zu ermöglichen. In dem Fall gehört zur Isolation auch der Stop des gesamten Systems, um zu vermeiden, dass die ggf. laufende Schadsoftware ihre Spuren beseitigt. Dadurch wird die Attribution des Angriffs vorteilhaft erleichtert.In a further preferred implementation of the method with multiple secondary systems, after a breach of the integrity of a piece of data, the entire secondary server on which the integrity was damaged is isolated in order to enable later analysis of the entire attack. In this case, the isolation also includes stopping the entire system in order to prevent any running malware from removing its traces. This advantageously facilitates the attribution of the attack.
Weiterhin bevorzugt wird im Falle des Isolierens eines sekundären Systems ein Ersatzsystem gestartet, um die Funktion des Load Balancing zu erhalten.Furthermore, if a secondary system is isolated, a backup system is preferably started in order to maintain the load balancing function.
In einer weiteren Ausführung des Verfahrens wird außerdem ein Reverse Proxy eingeführt, um sogenannte (D)DoS-Angriffe zu unterbinden. Dies kann in einer Ausführung mit einem oder mehreren sekundären Systemen geschehen.In a further embodiment of the method, a reverse proxy is also introduced in order to prevent so-called (D)DoS attacks. This can be done in an embodiment with one or more secondary systems.
Denial of Service (DoS) ist eine Angriffsstrategie auf Webservices, bei der Angreifer versucht, möglichst viele Anfragen gleichzeitig an den Server zu senden, die dieser nicht alle gleichzeitig beantworten kann.Denial of Service (DoS) is an attack strategy on web services in which the attacker tries to send as many requests as possible to the server at the same time, which the server cannot answer all at the same time.
Auf diese Weise wird der Service überlastet und Kunden des Service erhalten mitunter gar keine Antwort, einen Fehler, oder die Antwort braucht sehr lange. Dies kann beim Betreiber, insbesondere wenn der Angriff länger andauert, erheblichen Schaden verursachen, da in dieser Zeit in der Regel Umsätze ausfallen, da die potentiellen Kunden die Leistung des Webservice nicht abrufen können. Erfolgt der Angriff von vielen verteilten Computersystem, spricht man von einem Distributed Denial of Service (DDoS).In this way, the service becomes overloaded and customers of the service sometimes receive no response at all, an error, or the response takes a long time. This can cause considerable damage to the operator, especially if the attack lasts longer, since sales are usually lost during this time because potential customers cannot call up the performance of the web service. If the attack occurs from many distributed computer systems, this is referred to as a Distributed Denial of Service (DDoS).
Gerade in den vergangenen Jahren wurden Internet of Things (loT) Geräte, wie bspw. smarte Glühbirnen oder Webcams für solche DDoS Angriffe genutzt. Dies ist insbesondere möglich, weil deren Software nur sehr selten mit Sicherheitsupdates versorgt wird. Durch die Verwendung des erfindungsgemäßen Verfahrens in solchen loT-Devices wären diese ebenfalls geschützt und die Verwendung solcher Geräte für entsprechende Angriffe wäre deutlich erschwert.Especially in recent years, Internet of Things (loT) devices such as smart light bulbs or webcams have been used for such DDoS attacks. This is particularly possible because their software is rarely provided with security updates. By using the method according to the invention in such IoT devices, these would also be protected and the use of such devices for corresponding attacks would be made significantly more difficult.
Ferner wird im erfindungsgemäßen Verfahren ein Reverse Proxy umgesetzt, um der unter Anderem dem Schutz vor (D)DoS-Angriffen dient, um vorteilhaft zu geringeren Ladezeiten beizutragen und einen Ausfall der Dienstes mit einhergehenden Umsatzverlusten zu vermeiden.Furthermore, a reverse proxy is implemented in the method according to the invention, which serves, among other things, to protect against (D)DoS attacks in order to advantageously contribute to shorter loading times and to avoid a failure of the service with the associated loss of revenue.
Insbesondere können auch mehrere sekundäre Systeme zum Zwecke des Load Balancing und der Reduzierung von Ladezeiten durch geschickte räumliche Verteilung verwendet werden.In particular, several secondary systems can also be used for the purpose of load balancing and reducing loading times through clever spatial distribution.
Das erfindungemäße Verfahren wird auf Grund seiner Anwendung auf verschiedene Computersysteme, eines primären und mindestens eines sekundären Systems, durch ein oder mehrere Computerprogrammprodukte realisiert.Due to its application to different computer systems, a primary and at least one secondary system, the method according to the invention is implemented by one or more computer program products.
Ein erstes Computerprogrammmprodukt, das Schritt S01 implementiert, wobei bevorzugt auch vermeintlich dynamische Daten in statische Daten umgewandelt werden. Zudem steuert es die Übertragung des intendierten Zustands an den Server im unsicheren Netzwerk entweder manuell, zeitgesteuert oder automatisch nach der Änderung des intendierten Zustandes der Daten. Außerdem ist es dazu geeignet, den intendierten Zustand entweder vollständig oder als Differenz-Update zu übertragen.A first computer program product that implements step S01, wherein supposedly dynamic data are preferably also converted into static data. In addition, it controls the transmission of the intended status to the server in the insecure network either manually, time-controlled or automatically after the intended status of the data has changed. It is also suitable for transmitting the intended status either in full or as a differential update.
Ein computerlesbares Medium (Datenträger), umfassend das erste Computerprogrammprodukt zur Definition des intendierten Zustandes in S01.A computer-readable medium (data carrier), comprising the first computer program product for defining the intended state in S01.
Das Computersystem umfassend das erste Computerprogrammprodukt und das computerlesbare Medium mit dem ersten Computerprogrammprodukt ist das primäre System.The computer system comprising the first computer program product and the computer-readable medium with the first computer program product is the primary system.
Das sekundäre Computerprogrammmprodukt implementiert die Schritte S03 und S04. Bevorzugt wird das Verbringen der manipulierten Daten in Quarantäne implementiert, wobei das Prüfen der Daten mittels kryptographischer Verfahren unmittelbar nach deren Manipulation erfolgt und die Datenbank durch eine der oben benannten Möglichkeiten sichert. Sollte das sekundäre Computerprogrammprodukt beendet werden, wird es automatisch durch das sekundäre Computersystem neu gestartet.The secondary computer program product implements steps S03 and S04. The bringing of the manipulated data into quarantine is preferably implemented, with the checking of the data taking place by means of cryptographic methods immediately after their manipulation and the database being secured by one of the options mentioned above. Should the secondary computer program product terminate, it will be automatically restarted by the secondary computer system.
Das sekundäre Computerprogrammprodukt ist auf einem sekundären computerlesbaren Medium (Datenträger) enthalten.The secondary computer program product is contained on a secondary computer-readable medium (data carrier).
Das sekundäre Computerprogrammprodukt schützt bevorzugt ein tertiäres computerlesbares Medium (Datenträger).The secondary computer program product preferably protects a tertiary computer-readable medium (data carrier).
Ein sekundäres Computersystem umfasst bevorzugt ein sekundäres und ein tertiäres Medium. Ein Medium kann die Eigenschaften des sekundären und des tertiären Mediums miteinander vereinen. Bevorzugt sind auch die Computerprogrammprodukte dieser Anmeldung selbst durch ein sekundäres Computerprogrammprodukt geschützt, sodass sie selbst vorteilhaft vor Manipulation geschützt sind.A secondary computer system preferably includes a secondary and a tertiary medium. A medium can combine the properties of the secondary and tertiary medium. The computer program products of this application are preferably also protected themselves by a secondary computer program product, so that they themselves are advantageously protected against manipulation.
Ein tertiäres Computerprogrammprodukt implementiert die Übertragung des intendierten Zustandes vom primären an das sekundäre System. Es ist Bestandteil eines computerlesbaren Mediums und wird entweder auf dem primären oder einem sekundären oder einem weiteren tertiären System ausgeführt.A tertiary computer program product implements the transfer of intended state from the primary to the secondary system. It is part of a computer-readable medium and runs on either the primary or a secondary or another tertiary system.
Die Computerprogrammprodukte können zudem durch Plugins um weitere Funktionalitäten zum Betrieb und zur Verbesserung eines Webservices erweitert werden. Zum Beispiel könnte ein Plugin zur Aufbereitung und Analyse des generierten Datenverkehrs hinzugefügt werden, wodurch diese Dienstleistung vorteilhaft nicht durch einen Drittanbieter vorgenommen werden muss und andere Aspekte der Datensparsamkeit und des Datenschutzes gewahrt werden können, indem die Informationen beim Betreiber des Webdienstes verbleiben.The computer program products can also be expanded by plugins to include additional functionalities for operating and improving a web service. For example, a plugin could be added to process and analyze the generated data traffic, which advantageously means that this service does not have to be provided by a third party and other aspects of data economy and data protection can be preserved by keeping the information with the operator of the web service.
Um sicherzustellen, dass das Computerprogrammprodukt selbst nicht manipuliert wird, wodurch der Schutz erlöschen würde, bieten sich mehrere Methoden an. Diese erschweren positiv die Veränderung der Funktionalität des Computerprogrammprodukts, sodass der Schutz weiter erhöht wird.There are several methods available to ensure that the computer program product itself is not tampered with, which would void the protection. These positively make it more difficult to change the functionality of the computer program product, so that the protection is further increased.
Einerseits kann das Computerprogrammprodukt zur Implementierung des Verfahrens die Ordnerstruktur bzw. das Medium, in der es selbst abgelegt ist, überwachen. Während es im Arbeitsspeicher des Computers liegt, ist es vor Manipulation stark geschützt. Wird nun das Programm selbst auf dem Medium modifiziert, kann es die Änderung erkennen und sich selbst wiederherstellen.On the one hand, the computer program product for implementing the method can monitor the folder structure or the medium in which it is stored. While it resides in the computer's memory, it is highly protected from manipulation. If the program itself is now modified on the medium, it can recognize the change and restore itself.
Ferner kann das Programm auf einem Medium, das nicht neu geschrieben werden kann, bspw. ein EPROM oder eine SD-Karte mit Schreibschutz gespeichert werden.Furthermore, the program can be stored on a medium that cannot be rewritten, such as an EPROM or an SD card with write protection.
Des Weiteren schützen bereits heute viele Betriebssysteme Teile Ihrer Verzeichnisstruktur in der Form, dass diese nur im abgesicherten Modus beschrieben werden können und ansonsten nicht einmal durch das System selbst modifiziert werden können. Das Computerprogrammprodukt könnte in einem solchen Teil der Verzeichnisstruktur während der Nutzung des abgesicherten Modus hinterlegt werden, um es weiterhin vorteilhaft zu schützen.Furthermore, many operating systems already protect parts of their directory structure in such a way that they can only be written to in safe mode and otherwise cannot even be modified by the system itself. The computer program product could be stored in such a part of the directory structure while using the safe mode in order to further protect it advantageously.
Auch die Manipulation des Computerprogrammprodukts im Arbeitsspeicher ist möglich. Durch einen Fachmann könnte die Struktur des Programms im Arbeitsspeicher erkannt werden, wodurch dieser das Programm im Speicher suchen und durch Ausnutzen anderer Schwachstellen, wie zum Beispiel buffer overflows, manipulieren könnte. Durch gezielte Maßnahmen kann das Computerprogrammprodukt solche Angriffe positiv erschweren. Dafür füllt es zufällige Speicherbereiche mit zufälligen Inhalten, um eine Analyse und Manipulation der für die im Programm enthaltenen Anweisungen zu erschweren, indem deren Position bei jeder Ausführung und über die Zeit wechselt.Manipulation of the computer program product in the main memory is also possible. The structure of the program in working memory could be recognized by a person skilled in the art, which would allow him to search for the program in memory and manipulate it by exploiting other vulnerabilities, such as buffer overflows. With targeted measures, the computer program product can make such attacks more difficult. To do this, it fills random memory areas with random content to make it difficult to analyze and manipulate the instructions contained in the program by changing their position with each execution and over time.
Weitere vorteilhafte Ausgestaltungen und Weiterbildungen ergeben sich aus den Unteransprüchen sowie aus der Beschreibung unter Bezugnahme auf die Figuren.Further advantageous refinements and developments result from the dependent claims and from the description with reference to the figures.
Ausführungsbeispieleexemplary embodiments
Anhand folgender Figuren und Ausführungsbeispiele wird die vorliegende Erfindung näher erläutert, ohne die Erfindung auf diese zu beschränken.The present invention is explained in more detail on the basis of the following figures and exemplary embodiments, without restricting the invention to these.
Dabei zeigt
-
1 : eine schematische Darstellung des primären Computersystems CS1 (1). Abgebildet ist ein auf CS1 laufender Webservice (2) mit dynamischen Inhalten („index.php“ und „shop.php“), sowie eine statische Bilddatei (image.png). Beide dynamische Dateien verwenden die Datenbank (4), allerdings liest (5) die Datei „index.php“ Daten aus der Datenbank (4), die sich in diesem Beispiel nicht ändern. Daher kann die Datei „index.php“ durch ein Computerprogrammproduktnach den Ansprüchen 12 und 5 in eine statische Datei (index.html) umgewandelt werden (S01). Die Datei „shop.php“ liest und schreibt (6) Daten aus der bzw. in die Datenbank (4). Daher kann diese nicht in eine statische Datei umgewandelt werden. Auch an der bereits statischen Datei ändert sich nichts. Somit ergibt sich der intendierte Zustand der Dateien des Webservice (3). Ferner werden in Schritt S01 die Hashes, angedeutet durch alphanumerische Zeichenketten neben den Dateinamen, berechnet und gespeichert. Der Schild soll die entsprechende Sicherung der Dateien verdeutlichen. -
2 : Eine schematische Darstellung des CS1 (1)aus 1 samt eines zweiten, sekundären Systems CS2 (7) in einem unsicheren Netzwerk. Durch S02 wird der intendierte Zustand (3) der Datenbank (4) sowie der Dateien des Webservice (2) in das sekundäre System (7) überführt. Ein Agent (11) wird bei Veränderungen der Daten auf Dateisystemebene (gemeldet durch das Betriebssystem (10)) oder zeitlich regelmäßig tätig, um die Integrität der Daten des Webservice (2) zu überprüfen. Änderungen an der Datenbank (4) (in dem Beispiel durch die Datei „shop.php“) werden durch den Agenten (11) geprüft (13), bevor dieser diese Änderungen an die Datenbank (4) im primären System (1) überträgt (14) und diese erneut durch S02 in die sekundäre Datenbank (9) des sekundären Systems (7) eingepflegt werden. Die dynamischen Dateien (im Beispiel die Datei „shop.php“) lesen (12) die notwendigen Daten aus der Datenbank im sekundären System (9). Der Schritt S03, das Prüfen der Dateien des sekundären Webservice (8) durch den Agenten (11) nach der Manipulation, wird entweder zeitgesteuert oder durch einen Watchdog ausgelöst. -
3 : Eine schematische Darstellung des primären Computersystems (1) und des sekundären Computersystems (7). In diesem Fall gibt es keine Datenbank im sekundären System (7). Durch S02 wird der intendierte Zustand (3) der Dateien des Webservice (2) in das sekundäre System CS2 (7) übertragen. Erneut löst das Betriebssystem (10) entweder bei Veränderung der Daten (über einen Watchdog) oder zeitlich gesteuert Schritt S03 aus, woraufhin der Agent (11) die Dateien des Webservice (8) im sekundären System (7) mit den intendierten Daten (3) des primären Systems (1) abgleicht. Da die sekundäre Datenbank entfällt, findet der Lesezugriff (15) von Dateien wie der „shop.php“ auf die Datenbank (4) des primären Systems (1) durch den Agenten (11) statt (16). Der Schreibzugriff (13) wird analog zu2 durch den Agenten (11) geprüft und danach an die primäre Datenbank (4) übertragen (14). -
4 : Schematische Darstellung des Agierens des Agenten (11) im Falle einer unerwünschten Manipulation (17 der Dateien (S04)).- A) Das Verfahren mit Hilfe eins Watch Dog: In diesem Fall reagiert (23) das Betriebsystem (10) auf die Änderung der Dateien des Webservices (8) und informiert (22) den Agenten (11). Dieser prüft (20) alle Dateien des Webservice im ggf. manipulierten Zustand (18). Nachdem er mittels eines kryptographischen Verfahrens, in diesem Fall mittels eines Hashwertes, eine Änderung erkannt hat, stellt er die erwünschten Datei-Zustände (19) wieder her (21) und verbringt die manipulierten Dateien ggf. zwecks späterer Analyse in Quarantäne.
- B) In diesem Fall meldet (22) das Betriebssystem (10) regelmäßig die Systemzeit oder das Überschreiten eines bestimmten Zeitintervalls an den Agenten (11), der den gegenwärtigen Zustand der Dateien des Webservices (18) prüft (20) und nach einer unerwünschten Manipulation (17) zu dem Schluss kommt, dass diese manipuliert wurden, woraufhin er den erwünschten Zustand der Dateien wiederherstellt (21) und ggf. die manipulierten Dateien (18) zwecks späterer Analyse in Quarantäne verbringt.
2 und3 unterscheiden sich lediglich in der Verwendung der Datenbank, insbesondere darin, wie die Integrität der Daten in der Datenbank sichergestellt wird.. Prinzipiell kann es eine beliebige Zahl der sekundären Systeme (7) geben, auch wenn dies nicht grafisch dargestellt wird. Der Agent (11) dient in der Konfiguration mit einem sekundären System (7) ferner auch als Reverse Proxy zum Schutz vor DDoS-Angriffen, sodass auch bei den sekundären Systemen (7) kein direkter Zugriff auf den Webservices (8) des sekundären Systems (7) erfolgt.
-
1 : a schematic representation of the primary computer system CS1 (1). A web service (2) running on CS1 with dynamic content (“index.php” and “shop.php”) is shown, as well as a static image file (image.png). Both dynamic files use the database (4), however (5) the "index.php" file reads data from the database (4), which in this example does not change. Therefore, the file "index.php" can be converted into a static file (index.html) by a computer program product according toclaims 12 and 5 (S01). The "shop.php" file reads and writes (6) data from and into the database (4). Therefore, it cannot be converted to a static file. Nothing changes in the already static file either. This results in the intended state of the web service files (3). Furthermore, in step S01 the hashes, indicated by alphanumeric character strings next to the file names, are calculated and stored. The sign is intended to clarify the corresponding backup of the files. -
2 : A schematic of the CS1 (1) from1 along with a second, secondary system CS2 (7) in an insecure network. S02 transfers the intended state (3) of the database (4) and the web service files (2) to the secondary system (7). An agent (11) is active when there are changes in the data at the file system level (reported by the operating system (10)) or at regular intervals in order to check the integrity of the web service (2) data. Changes to the database (4) (through the "shop.php" file in the example) are checked (13) by the agent (11) before it transfers these changes to the database (4) in the primary system (1) ( 14) and these are again entered into the secondary database (9) of the secondary system (7) by S02. The dynamic files (in the example the "shop.php" file) read (12) the necessary data from the database in the secondary system (9). Step S03, checking the files of the secondary web service (8) by the agent (11) after the manipulation, is either time-controlled or triggered by a watchdog. -
3 : A schematic representation of the primary computer system (1) and the secondary computer system (7). In this case there is no database in the secondary system (7). The intended state (3) of the files of the web service (2) is transferred to the secondary system CS2 (7) by S02. The operating system (10) again triggers step S03 either when the data changes (via a watchdog) or in a time-controlled manner, whereupon the agent (11) updates the files of the web service (8) in the secondary system (7) with the intended data (3) of the primary system (1). Since there is no secondary database, the read access (15) of files such as "shop.php" to the database (4) of the primary system (1) takes place through the agent (11) (16). The write access (13) is analogous to2 checked by the agent (11) and then transmitted (14) to the primary database (4). -
4 : Schematic representation of the actions of the agent (11) in the event of undesired manipulation (17 of the files (S04)).- A) The method using a watch dog: In this case (23) the operating system (10) reacts to the change in the files of the web service (8) and informs (22) the agent (11). This checks (20) all files of the web service in possibly manipulated state (18). After he has recognized a change using a cryptographic method, in this case using a hash value, he restores the desired file states (19) (21) and, if necessary, quarantines the manipulated files for later analysis.
- B) In this case (22) the operating system (10) regularly reports the system time or the exceeding of a certain time interval to the agent (11), which checks (20) the current status of the files of the web service (18) and after an unwanted manipulation (17) comes to the conclusion that these have been manipulated, whereupon he wishes the restores the files to their current state (21) and, if necessary, quarantines the manipulated files (18) for later analysis.
2 and3 differ only in the use of the database, in particular how the integrity of the data in the database is ensured. In principle there can be any number of secondary systems (7), although this is not shown graphically. In the configuration with a secondary system (7), the agent (11) also serves as a reverse proxy to protect against DDoS attacks, so that the secondary systems (7) also have no direct access to the web services (8) of the secondary system ( 7) done.
Bezugszeichenlistereference list
- 11
- Computersystem 1 (primäres System)Computer system 1 (primary system)
- 22
- Webservice auf dem primären SystemWeb service on the primary system
- 33
- Intendierter Status der Webservice-Dateien nach dem Reduzieren auf statische Dateien (S01) durch das primäre ComputerprogrammproduktIntended status of the web service files after reduction to static files (S01) by the primary computer program product
- 44
- Datenbank des Webservice auf dem primären SystemDatabase of the web service on the primary system
- 55
- Lesezugriff der Datei „index.php“ auf die DatenbankRead access of the "index.php" file to the database
- 66
- Lese-/Schreibzugriff der shop.php auf die DatenbankRead/write access of the shop.php to the database
- 77
- Computersystem 2 (sekundäres System)Computer system 2 (secondary system)
- 88th
- Webservice mit dem intendierten Zustand der Dateien nach Schritt S02Web service with the intended state of the files after step S02
- 99
- Datenbank auf dem sekundären System, mit durch S02 synchronisierten erwünschtem ZustandDatabase on the secondary system, with desired state synchronized by S02
- 1010
- Betriebssystem-Mechanismus für den Start der Prüfung (S03) (Watchdog oder Timer)Operating system mechanism for starting the test (S03) (watchdog or timer)
- 1111
- Agent laufend auf Computersystem 2 (Sekundäres Computerprogrammprodukt)Agent Running on Computer System 2 (Secondary Computer Program Product)
- 1212
- Lesezugriff der Datei „shop.php“ von der Datenbank des sekundären SystemsRead access to shop.php file from secondary system database
- 1313
- Schreibzugriff der Datei „shop.php“ gesendet an den Agenten (14)Write access to the file "shop.php" sent to the agent (14)
- 1414
- Schreibzugriff der Datei „shop.php“ nach der Überprüfung an den Agenten zum Update des erwünschten Zustands der Datenbank des primären SystemsWrite access to the "shop.php" file after verification to the agent for updating the desired state of the primary system database
- 1515
- Lesezugriff der Datei „shop.php“, bei der durch den Agenten direkt aus der Datenbank des primären Systems gelesen wird (16), ohne diese zuvor in eine sekundäre Datenbank zu spiegelnRead access to the shop.php file, where the agent reads directly from the primary system's database (16) without first mirroring it to a secondary database
- 1616
- Lesezugriff des Agenten ausgelöst durch den Lesezugriff der Datei „shop.php“ (15) geprüft durch den Agenten (11)Agent read access triggered by read access to shop.php file (15) checked by agent (11)
- 1717
- Manipulation der Dateien des WebserviceManipulation of the web service files
- 1818
- Manipulierter WebserviceManipulated web service
- 1919
- Webservice im wiederhergestellten intendierten ZustandWeb service in restored intended state
- 2020
- Feststellen des manipulierten Zustands der Dateien durch den AgentenDetermination of the manipulated state of the files by the agent
- 2121
- Wiederherstellen des intendierten Zustands durch den Agenten mit Löschung der manipulierten Dateien oder vorzugsweise Verbringen der Dateien im manipulierten Zustand in „Quarantäne“Restoration of the intended state by the agent with deletion of the manipulated files or preferably bringing the files in the manipulated state into "quarantine"
- 2222
- Signal des Systems an den Agenten, dass eine Datei geändert wurde (Watchdog) oder ein Zeitintervall verstrichen ist (Timer)Signal from the system to the agent that a file has been changed (watchdog) or a time interval has elapsed (timer)
- 2323
- Registrierung der Dateiänderung beim SystemRegistering the file change with the system
Claims (25)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE102021129026.0A DE102021129026A1 (en) | 2021-11-08 | 2021-11-08 | Methods and associated computer systems for ensuring the integrity of data |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE102021129026.0A DE102021129026A1 (en) | 2021-11-08 | 2021-11-08 | Methods and associated computer systems for ensuring the integrity of data |
Publications (1)
Publication Number | Publication Date |
---|---|
DE102021129026A1 true DE102021129026A1 (en) | 2023-05-11 |
Family
ID=86053502
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE102021129026.0A Pending DE102021129026A1 (en) | 2021-11-08 | 2021-11-08 | Methods and associated computer systems for ensuring the integrity of data |
Country Status (1)
Country | Link |
---|---|
DE (1) | DE102021129026A1 (en) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE60132833T2 (en) | 2001-01-13 | 2009-02-05 | Qinetiq Ltd. | Computer system protection |
DE202014010889U1 (en) | 2013-12-19 | 2017-02-20 | Google Inc. | Priority static hosted web applications |
-
2021
- 2021-11-08 DE DE102021129026.0A patent/DE102021129026A1/en active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE60132833T2 (en) | 2001-01-13 | 2009-02-05 | Qinetiq Ltd. | Computer system protection |
DE202014010889U1 (en) | 2013-12-19 | 2017-02-20 | Google Inc. | Priority static hosted web applications |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE69922857T2 (en) | Computer security through virus investigation | |
DE102008006759B4 (en) | Processor assembly and method of operating the processor assembly without reducing overall security | |
DE60029643T2 (en) | Method and apparatus for using a virus-free file certificate | |
DE202012013609U1 (en) | System for distributing processing of computer security tasks | |
DE10249427A1 (en) | Method for defining the security state of a computer and its ability to withstand a third party distributed attack in which a specification of attacker identity and attack method are made to provide a quantitative assessment | |
DE10249428A1 (en) | Method for defining the susceptibility of a computer system to attack in which an attack is defined together with the attack properties, while a computer counter-measure is also defined | |
EP3251012B1 (en) | Checking system for checking a computer of a computer system in a checking network | |
EP3763089B1 (en) | Method and control system for controlling and/or supervising of devices | |
EP3413254A1 (en) | Method and device for providing a transaction dataset | |
DE10146361B4 (en) | Distributed system | |
DE112022003368T5 (en) | ENCRYPTION MONITORING REGISTER AND SYSTEM | |
DE112022000280T5 (en) | Identity authority | |
DE102014107783B4 (en) | Routing procedure for forwarding task instructions between computer systems, computer network infrastructure and computer program product | |
DE102014107793B9 (en) | Method of routing data between computer systems, computer network infrastructure and computer program product | |
EP3105898B1 (en) | Method for communication between secured computer systems as well as computer network infrastructure | |
DE102018217431A1 (en) | Secure key exchange on one device, especially an embedded device | |
EP3318033B1 (en) | Anti-cracking method involving a relaying computer | |
EP3152660A1 (en) | Method for distributing tasks between computer systems, computer network infrastructure and computer program product | |
LU500837B1 (en) | Methods and associated computer systems for ensuring the integrity of data | |
EP3713189A1 (en) | Intrusion detection in computer systems | |
DE102021129026A1 (en) | Methods and associated computer systems for ensuring the integrity of data | |
EP4107640B1 (en) | Method and systems for transferring software artefacts from a source network to a destination network | |
WO2015185507A1 (en) | Method for communication between secured computer systems, computer network infrastructure and computer program product | |
CN114881469A (en) | Performance assessment and management system and method for enterprise workers | |
EP3105899B1 (en) | Method for starting up a production computer system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
R012 | Request for examination validly filed | ||
R086 | Non-binding declaration of licensing interest | ||
R081 | Change of applicant/patentee |
Owner name: KRALOS GMBH, DE Free format text: FORMER OWNER: KLEIN UND GREIWE GBR - SOFTWAREENTWICKLUNG (VERTRETUNGSBERECHTIGTER GESELLSCHAFTER: CARSTEN KLEIN, 31303 BURGDORF), 31303 BURGDORF, DE |
|
R016 | Response to examination communication |