DE10130274C2 - Datenfluß-Analysator - Google Patents
Datenfluß-AnalysatorInfo
- Publication number
- DE10130274C2 DE10130274C2 DE2001130274 DE10130274A DE10130274C2 DE 10130274 C2 DE10130274 C2 DE 10130274C2 DE 2001130274 DE2001130274 DE 2001130274 DE 10130274 A DE10130274 A DE 10130274A DE 10130274 C2 DE10130274 C2 DE 10130274C2
- Authority
- DE
- Germany
- Prior art keywords
- data
- memory
- data flow
- program
- flow analyzer
- 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.)
- Expired - Fee Related
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3466—Performance evaluation by tracing or monitoring
- G06F11/349—Performance evaluation by tracing or monitoring for interfaces, buses
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
- G06F11/25—Testing of logic operation, e.g. by logic analysers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/32—Monitoring with visual or acoustical indication of the functioning of the machine
- G06F11/324—Display of status information
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/88—Monitoring involving counting
Abstract
Ein Datenfluß-Analysator (54), enthaltend Detektormittel (38, 50, 56) zum Detektieren eines in einer Leitung vorliegenden Signals, Speichermittel (58) zum Speichern des Signals, Auswertemittel (92) zum Auswerten des Signals und Mittel (94) zur simultanen Darstellung von Zugriffshäufigkeiten auf Adressen eines Programmspeichers und/oder Datenspeichers, ist dadurch gekennzeichnet, daß die Zugriffshäufigkeit auf jede einzelne einer Vielzahl von Adressen eines Programmspeichers und/oder Datenspeichers darstellbar ist. Die Detektormittel (38, 50, 56) umfassen einen Tastkopf (38), mit welchem die an einer Leitung anliegenden Spannungen oder Ströme abgreifbar sind und einen Verstärker (50, 56) zur Verstärkung der Spannungen. Die Darstellung der Zugriffshäufigkeit auf die Adressen erfolgt graphisch und wird für aufeinanderfolgende Zeitpunkte gespeichert. Eine Triggereinheit (62) dient zur Initialisierung der Datenaufzeichnung. Mittel zum Vergleichen der Informationen über die Zugriffshäufigkeit mit den Zugriffshäufigkeiten anderer Prozesse ermöglichen die besonders schnelle Ermittlung von Programmstörungen. Der Analysator kann zur Analyse von Programmen zur Datenverarbeitung, zur Ermittlung eines unerlaubten Zugriffs auf einen Programm- oder Datenspeicher in einem Computer, zum Auffinden eines Virus in einem Programm für Datenverarbeitungsanlagen oder zur Überprüfung des Ablaufs von Befehlen zur Maschinensteuerung verwendet werden.
Description
Die Erfindung betrifft einen Datenfluß-Analysator enthaltend
- a) Detektormittel (38, 50, 56) zum Detektieren eines in einer Leitung vorliegenden Signals,
- b) Speichermittel (58) zum Speichern des Signals,
- c) Auswertemittel (92) zum Auswerten des Signals, und
- d) Mittel (94) zur simultanen Darstellung von Zugriffshäufigkeiten auf Adressen eines Programmspeichers und/oder Datenspeichers.
Die Auswertung des Signals umfasst dabei insbesondere die Feststellung, ob ein Datenbit mit
dem Wert 0 oder 1 vorliegt.
Die Erfindung betrifft weiterhin ein Verfahren zur Analyse von Programmen mit den
Schritten
- a) Detektieren eines in einer Leitung vorliegenden Signals,
- b) Speichern des Signals und
- c) Auswerten des Signals.
Computerprogramme werden von einem Mikroprozessor ausgeführt. Der Mikroprozessor
greift über einen Adress- und einen Datenbus auf einen Programm-Speicher und einen
Datenspeicher zu und arbeitet die Befehlsfolge des Programms ab. Dabei wird der Inhalt einer
Speicheradresse ausgelesen oder ein Inhalt in eine Speicheradresse zurückgeschrieben.
Bei der Abarbeitung eines Programms treten oft Fehler auf, die zum Beispiel in falschen
Datenwerten oder Operationen resultieren. Es können aber auch nicht-erfüllbare Bedingungen
eintreten, die in einer Endlosschleife enden. Es ist weiterhin möglich, daß der
Programmablauf durch einen Zugriff von außen, z. B. über das Internet gestört wird oder
Daten von außen abgefragt werden.
Um Programmierfehler zu finden und entsprechend korrigieren zu können wird das Programm
Schritt für Schritt abgearbeitet. Jeder Schritt und die jeweils aktuellen Werte der Variablen
werden beobachtet bis der Fehler gefunden ist. Bei längeren Programmen ist dies aufwendig.
Ein - möglicherweise nichtautorisierter - Zugriff von außen wird üblicherweise mittels
geeigneter Software, oder einem weiteren, zwischengeschalteten Rechner abgewehrt. Die
Software muß regelmäßig erneuert werden und ein zwischengeschalteter Rechner kann
ebenfalls nur dann einen Zugriff abwehren, wenn er nicht autorisiert ist.
Bei der Intrusion Detection (ID) werden nichtautorisierte Zugriffe (Angriffe) auf einen
Rechner oder ein Rechnersystem erkannt. Die Angriffe können von außen, z. B. dem Internet,
kommen oder von innerhalb eines Netzes, bei dem ein Anwender einen Zugriff auf Daten
versucht, zu dem er nicht berechtigt ist. Bei diesen Angriffen wird versucht, die bestehenden
Sicherungssysteme zu umgehen oder - wenigstens zeitweise - auszuschalten.
Die bekanntesten Sicherungen sind die Vergabe von Passwörtern an die Anwender und/oder
die Verschlüsselung der Daten bei Transfer und Speicherung. Da die Daten aber spätestens
dann entschlüsselt werden, wenn ein autorisierter Anwender darauf zugreift, gibt es immer
wenigstens einen Zeitpunkt, zu dem die Daten auf irgendeinem Rechner eines Systems in
unverschlüsseltem Zustand vorliegen. Ein Angreifer wird also bemüht sein, entweder die
sensiblen Daten selbst oder das Passwort zu erhalten, mit dem er die sensiblen Daten
entschlüsseln kann.
Bekannte ID-Systeme beobachten die Logbücher eines Rechner-Systems und melden
ungewöhnliche Ereignisse. Solche Ereignisse sind z. B. eine besonders hohe Anzahl
bestimmter Fehlermeldungen wie "access denied" oder eine besonders häufige Eingabe
falscher Passwörter. Die Logbücher werden aber nur in Abständen überprüft, so daß zwischen
zwei Überprüfungen die Möglichkeit besteht, einen Angriff auf ein Rechnersystem
vorzunehmen und die entsprechenden Einträge im Logbuch zu löschen. Bei der
darauffolgenden Überprüfung wird das softwaregesteuerte ID-System keine relevanten
Vorkommnisse feststellen.
Es ist wünschenswert, die über den Bus laufenden Daten zu beobachten und dabei
Programmfehler oder andere Störungen zu ermitteln.
Die Beobachtung der Signale an einer Datenleitung erfolgt üblicherweise mittels eines
Logikanalysators. Dabei wird das Signal Punkt für Punkt abgetastet und auf einer Anzeige
dargestellt. Je nach Abtastrate wird hier ein sehr schneller Speicher (RAM) benötigt. Da eine
große Anzahl an Punkten pro Signal verwendet wird, kann der Signalverlauf auch bei großer
Speicherkapazität nur für eine geringe Zeit abgetastet werden.
Aus der EP 0 244 926 ist ein Logikanalysator bekannt, mit dem über einen Bus laufende
Daten gespeichert und dekodiert werden können. Der Logikanalyser entschlüsselt die Befehle,
die von einem Prozessor ausgeführt werden und bestimmt die Datenwerte, die von dem Bus
übertragen werden. Der beschriebene Logikanalysator speichert die Befehle, Register- und
Stapelinformationen in einer Datei und zeigt vom Anwender ausgewählte Informationsteile
auf einem Bildschirm an. Die Datei kann nach Befehlen durchsucht werden, die bestimmte,
vom Anwender spezifizierte Änderungen des Register- oder Stapelinhalts bewirken.
Die Informationsmenge, die bei der beschriebenen Anordnung vom Anwender verarbeitet
werden muß, ist insbesondere bei komplexen Programmen sehr groß und erfordert daher einen
großen Aufwand bei der Auswertung.
In der DE 32 05 852 C2 wird eine Anordnung zur Messung der Arbeitsverteilung von
Programmroutinen für ein Fernsprechsystem beschrieben. Dabei wird unter dem Begriff
"Arbeitsverteilung" die Zugriffshäufigkeit auf Adressbereiche verstanden, die zu den
jeweiligen Programmroutinen gehören. Wird eine Programmroutiene zu häufig aktiviert, so
kann das beschriebene Fernsprechsystem überlasten. Zur Vermeidung von Überlastungen
wird ermittelt, ob die Adresse in einem bestimmten Bereich liegt. Wenn dies der Fall ist, wird
die Anzahl der Übereinstimmungen für jeden Adressbereich bis zur Abfrage durch einen
Computer festgehalten. Es wird davon ausgegangen, daß die Programme oder Programmteile
bereits vollständig bekannt sind. Bei besonders großen Programmen ist eine solche Kenntnis
garnicht mehr möglich. Entsprechend ist das beschriebene Verfahren nicht geignet, um
Störungen eines Programmablaufs wie Programmierfehler oder oder Einbruchserkennung
durchzuführen.
Es ist Aufgabe der Erfindung, eine Vorrichtung zu schaffen, mit welcher ein Programmablauf
derart darstellbar ist, daß Störungen leicht ermittelt werden können.
Erfindungsgemäß wird die Aufgabe bei einem Datenfluß-Analysator der eingangs genannten
Art dadurch gelöst, daß die Zugriffshäufigkeit auf jede einzelne einer Vielzahl von Adressen
eines Programmspeichers und/oder Datenspeichers darstellbar ist.
Es hat sich überraschenderweise herausgestellt, daß eine hohe Zugriffshäufigkeit auf eine
Adresse oder die Abweichung eines Musters der Zugriffshäufigkeit von einem bekannten
Muster ein gutes Indiz für eine Programmstörung darstellt. Statt der individuellen Befehle
muß also nur noch die Anzahl der Zugriffe auf eine ausgewählte Speicheradresse oder einen
ausgewählten Bereich beobachtet werden. Die Kenntnis der Zugriffshäufigkeit ermöglicht
aber auch die Identifizierung von Ereignissen, die vor einer Programmstörung stattgefunden
haben und möglicherweise mit der Störung in Zusammenhang stehen. Durch die Ermittlung
der Zugriffshäufigkeit auf eine ausgewählte Speicheradresse kann auch ein
Programmabschnitt mit bestimmten Eigenschaften identifiziert und lokalisiert werden.
Die Detektormittel umfassen vorzugsweise einen Tastkopf, mit welchem die an einer
Leitung anliegenden Spannungen und/oder Ströme abgreifbar sind. Der Tastkopf kann
mit einem Verstärker zur Spannungsverstärkung ausgestattet sein. Da der Tastkopf über
Zuleitungen mit dem Analysator verbunden ist treten üblicherweise Kabelkapazitäten
auf, die ein Mikrocontroller-System ohne Verwendung eines Verstärkers so stark
belasten würden, daß die Funktionsweise gestört wird.
Vorzugsweise erfolgt die Darstellung der Zugriffshäufigkeit auf die Adressen und/oder
Daten graphisch. Die graphische Darstellung kann mittels eines Monitors erfolgen, auf
dem jeweils ein Bildpunkt für jede Speicheradresse vorgesehen ist. Erfolgt ein Zugriff
auf eine Adresse, so wird der Bildpunkt dunkler oder heller. Je mehr Zugriffe auf eine
Adresse erfolgen, um so dunkler oder heller wird der Bildpunkt. Statt der Helligkeit kann
auch die Farbe mit der Anzahl der Zugriffe variieren. Alternativ ist die Darstellung in
einer 3-dimensionalen Graphik möglich, bei der die Anzahl der Zugriffe in Abhängigkeit
von der Speicheradresse dargestellt wird.
Der Analysator umfasst vorzugsweise Mittel zur Speicherung und Darstellung der
Zugriffshäufigkeit auf die Adressen eines Speichers für aufeinanderfolgende Zeitpunkte.
Dies kann zum Beispiel eine schnelle Festplatte oder ein Halbleiterspeicher sein. Die
graphische Darstellung der Anzahl der Zugriffe kann dann während des
Programmablaufs mit einer bestimmten Frequenz abgespeichert werden und wie ein Film
betrachtet werden. Der Vorteil ist, daß die Darstellung vor- und zurückgespult werden
kann oder an bestimmten Stellen vergrößert oder gestoppt werden kann.
In einer bevorzugten Ausführungsform sind Mittel zur Initialisierung der
Datenaufzeichnung vorgesehen. Die Initialisierung kann mittels einer Triggereinheit
vorgenommen werden. Die Datenaufzeichnung kann zum Beispiel durch eine bestimmte
Adresse oder einen bestimmten Adressbereich getriggert werden. Werden alle
Datenleitungen ausgewählt, so erfolgt die Triggerung auf eine einzige, ausgewählte
Adresse. Durch Weglassen einiger Datenleitungen (Nullsetzen), kann auf einen ganzen
Adressbereich getriggert werden. Dies ist besonders vorteilhaft, wenn durch eine
Auswahl im Programm eine Mehrzahl von Möglichkeiten besteht und Adressen in einem
interessierenden Programmteil alternativ zueinander angesprochen werden.
Je nach Anwendung ist es vorteilhaft, einen Zwischenspeicher zur Zwischenspeicherung
der Zugriffshäufigkeit vorzusehen. Dieser Zwischenspeicher kann dazu dienen, die Daten
vor der Weiterverarbeitung, Analyse und Darstellung zu speichern um zum Beispiel
unterschiedliche Verfahren auf die Daten anzuwenden.
Es kann weiterhin ein Festspeicher zur Speicherung der Zugriffshäufigkeit vorgesehen
werden. Dies ist besonders sinnvoll, wenn die Daten dauerhaft gespeichert werden sollen
oder große Datenmengen vorliegen, die nicht sofort weiterverarbeitet werden.
In einer besonders bevorzugten Ausgestaltung der Erfindung sind Mittel zum
Vergleichen der Informationen über die Zugriffshäufigkeit mit den Zugriffshäufigkeiten
anderer Prozesse. Ein solcher Vergleich ermöglicht die besonders schnelle Auswertung
von Programmänderungen oder unerlaubten Zugriffen. Es wird die Zugriffshäufigkeit bei
normalem Programmablauf mit dem aktuellen Programmablauf verglichen und über zum
Beispiel Differenzbildung die Auswirkungen ermittelt. Auf diese Weise kann zum
Beispiel eine virusbehaftete Software sehr schnell erkannt werden oder ein unerlaubter
Zugriff auf eine Datei.
In einer weiteren Ausgestaltung der Erfindung sind Mittel zum Auffinden von
vorgegebenen Speicherinhalten in einem Speicher vorgesehen. Dies ist besonders bei der
dynamischen Speicherverwaltung wichtig, da sich hier die Adressen ändern können. Ein
solches Mittel ist zum Beispiel ein Korrelationsmodul, das den Speicher nach einem
bestimmten Bitmuster durchsucht, unabhängig von der Lage im Speicher. Dies kann
durch Auswahl eines Speicher-Fensters geschehen, das die gleiche Größe wie das
gesuchte Bitmuster hat. Der Inhalt dieses Fensters wird mit dem Bitmuster verglichen.
Das Fenster wird über den Speicher geschoben, bis die Bitmuster identisch sind.
Die Aufgabe der Erfindung wird insbesondere auch gelöst durch ein Verfahren zur
Analyse von Programmen mit den Schritten
- a) Detektieren eines in einer Leitung vorliegenden Signals,
- b) Speichern des Signals,
- c) Auswerten des Signals bezüglich des Wertes eines Datenbits,
- d) Bestimmen der Zugriffshäufigkeit auf jede einzelne einer Vielzahl von Adressen eines Programmspeichers und/oder Datenspeichers und
- e) simultane Darstellung der bestimmten Zugriffshäufigkeitswerte.
Dabei kann die Zugriffshäufigkeit mit einem Datenfluß-Analysator oder jedem anderen
geeigneten Mittel bestimmt werden.
Der Datenfluß-Analysator ist besonders zur Analyse von Programmen zur Datenverarbeitung
geeignet. Die Darstellung der Zugriffshäufigkeit ermöglicht das schnelle und einfache
Auffinden relevanter Programmteile. Der Verlauf der Zugriffshäufigkeit auf die
verschiedenen Adressen kann simultan während der Programmabarbeitung beobachtet
werden. Programmierfehler und Programmstörungen können so besonders einfach ermittelt
werden. Kleinere Programmteile können mittels bekannter Algorithmen dissassembled
werden.
Der Datenfluß-Analysator ist auch zur Ermittlung eines unerlaubten Zugriffs auf einen
Programm- oder Datenspeicher in einem Computer geeignet. Die Abarbeitung von
Sicherheitsprogrammen, z. B. Passwort-Abfrage wird hier beobachtet. Ein angeschlossener
Datenfluß-Analysator wird die Zugriffe z. B. auf den Adressbereich, in dem die Passwörter
gespeichert sind, immer feststellen. Eine geeignete Software kann die Zugriffshäufigkeit
analysieren und ggf. Meldungen oder Abwehr-Maßnahmen auslösen. Die Verwendung des
Datenfluß-Analysators hat den Vorteil, daß er als Hardwarekomponente nicht ohne weiteres
umgangen werden kann. Er liefert Daten über die Schwachstellen des Software-IDS und
erleichtert deren Verbesserung. Außerdem
liefert er Informationen über die Bereiche, auf die Zugriffe erfolgt sind, so daß mögliche
Rettungsmaßnahmen gezielt erfolgen können.
In einer weiteren Ausgestaltung der Erfindung wird der Datenfluß-Analysator zum
Auffinden eines Virus in einem Programm für Datenverarbeitungsanlagen verwendet.
Dazu wird der Verlauf der Zugriffshäufigkeit bei Abarbeitung des ungestörten
Programms gespeichert und mit der aktuellen Zugriffshäufigkeit verglichen. Ein Virus
verursacht eine Änderung, die leicht detektierbar ist.
Eine weitere Ausgestaltung der Erfindung betrifft die Verwendung des Datenfluß-
Analysators zur Überprüfung des Ablaufs von Befehlen zur Maschinensteuerung. Hier
wird die Maschine simultan zum Programm beobachtet. Tritt ein Fehler bei dem Betrieb
der Maschine auf, so kann gleichzeitig aus der Zugriffshäufigkeit der Programmteil
ermittelt werden, der diesen Fehler verursacht hat.
Ausgestaltungen der Erfindung sind Gegenstand der Unteransprüche. Ein
Ausführungsbeispiel ist nachstehend unter Bezugnahme auf die beigefügten Zeichnungen
näher erläutert.
Fig. 1 zeigt den prinzipiellen Aufbau eines Mikrocomputers mit Mikroprozessor,
Programmspeicher und Datenspeicher.
Fig. 2 zeigt ein Blockschaltbild eines Datenflußanalysators
Fig. 3 zeigt einen typischen Signalverlauf in einer Datenleitung
Fig. 4 zeigt eine graphische Darstellung der Zugriffshäufigkeit auf die Adressen
eines 64 k Speichers in Form von Helligkeitsunterschieden.
In Fig. 1 ist mit 10 ein Mikrocomputereinheit bezeichnet. In dem Mikrocomputer 10
befindet sich ein Mikroprozessor 12 (Central Processing Unit, CPU). Ein Programm-
Speicher 14, ein Daten-Speicher 16 und eine Ein- und Ausgabeeinheit 18 sind über ein
Bussystem 20 mit dem Mikroprozessor 12 verbunden. Das Bussystem 20 umfasst einen
Adressbus 22, einen Datenbus 24 und einen Kontrollbus 26.
Die Befehle des auszuführenden Programms sind im Programmspeicher 14 an den
zugehörigen Adressen gespeichert. Der Programmspeicher 14 ist als EEPROM
(electrically erasable read only memory) oder RAM (random access memory) ausgeführt.
Die Daten, welche mit dem Programm verarbeitet werden, sind im Daten-Speicher 16 an
den zugehörigen Adressen gespeichert. Der Daten-Speicher 16 ist als RAM ausgeführt.
Mittels der Ein- und Ausgabeeinheit können die Daten eingegeben, weitergegeben oder
angezeigt werden. Die Eingabe- und Ausgabeeinheit ist mit den Periferiegeräten des
Computers (nicht dargestellt) verbunden.
Über den Adressbus 22 werden die Adressen kommuniziert, die Informationen, Daten
oder Befehle enthalten. Die Datenflußrichtung im Adressbus 22 findet immer in einer
Richtung repräsentiert durch Pfeile 28, 30, 32, 34 und 36 statt.
Über den Datenbus 24 werden die Daten übertragen. Die Datenflußrichtung findet in
beiden Richtungen statt. Über den Kontrollbus 26 fließt die Information, ob gelesen oder
geschrieben werden soll.
Wenn der Mikroprozessor 12 einen Befehl ausführt, geschieht dies zum Beispiel durch
Lesen des Befehls aus der entsprechenden Adresse im Programmspeicher, Lesen der
Daten aus der entsprechenden Adresse im Datenspeicher, Ausführen des Befehls und
Zurückschreiben der Daten in die entsprechende Adresse im Datenspeicher.
An den Adressbus 22 ist der Tastkopf 38 eines Datenfluß-Analysators angeschlossen. Der
Tastkopf 38 greift die an den Leitungen 40 des Busses anliegenden Spannungen ab und
verstärkt sie. Dies ist in Fig. 2 am Beispiel eines 8-bit-Busses dargestellt. Jedes Datenbit wird
durch eine Spannung 0 V oder 5 V repräsentiert. bei 0 V wird nimmt das Datenbit den Wert
"0" = low an und bei 5 V nimmt das Datenbit den Wert "1" = high an. Dabei wird ein Wert "1"
angenommen, wenn die Spannung einen Schwellwert von 0,7 Volt übersteigt.
Der Spannungsverlauf über den Zeitraum von 3 Takten ist in Fig. 3 für die 8 Datenleitungen
dargestellt. Der Spannungsverlauf an der ersten Datenleitung ist mit 42 bezeichnet. Zu
Zeitpunkten T1, T2 und T3 wird jeweils der Spannungswert an der Datenleitung mittels des
Tastkopfes 38 abgegriffen und an den Datenfluß-Analysator übertragen. An Zeitpunkten T1
und T3 liegen Spannungen 44 und 46 an. Die Spannung beträgt 5 Volt und übersteigt damit
einen Schwellwert von 0,7 V. Das Datenbit wird für T1 und T3 auf "1" und für T2 auf "0"
gesetzt. Auf einer zweiten Datenleitung 48 ist das Datenbit für T1 und T3 "0" und für T2 "1 ".
Es ergibt sich also zum Zeitpunkt von T1 ein Signal von "10110000" entsprechend B0Hex, zum
Zeitpunkt von T2 ein Signal von "01000111" entsprechend 47Hex und zum Zeitpunkt von T3
ein Signal von "10011000", entsprechend 98Hex.
Es werden also nacheinander Werte abgegriffen, die dann an einem
Pegelanpassungsverstärker 50 (Leistungstreiber, Pad) verstärkt und an den Datenfluß-
Analysator weitergegeben werden. Die Verstärkung erfolgt derart, daß der Strom erhöht wird
um Leistungskapazitäten zu treiben und die Spannung auf 0-2,2 V verringert wird.
Der Leistungstreiber 50 des Datenfluß-Analysators ist auf dem Motherboard des Computers
angeordnet. Dadurch werden Resonanzen, kapazitive Einflüsse auf die benachbarten
Leitungen und andere Störungen gering gehalten, die bei der Signalerfassung bei hohen
Frequenzen über 100 MHz entstehen. Die Fehlerquote wird dadurch verbessert.
Eine Zuleitung 52 (Fig. 2) verbindet den Leistungstreiber 50 mit dem Datenfluß-Analysator
54. Die ankommenden Signale werden in einem weiteren Treiber 56 wieder auf 0-5 Volt
konvertiert. In dem Treiber 56 erfolgt auch der Leitungsabschluß. Die Signale - in dem
Beispiel von Fig. 3 B0Hex, 47Hex und 98Hex, werden dann in einem schnellen Halbleiterspeicher
58 (RAM) in aufeinanderfolgenden Adressen 60 gespeichert.
Der Speicher 58 hat eine Speicherbreite von 8 Bit, entsprechend 1 Byte und eine Speichertiefe
von 1 G. Der Speicher weist also eine Speicherkapazität von 1 Gigabyte auf. Damit können für
jede der 8 Datenleitungen 10 9 Datenbits (einem Wert, der 0 oder 1 entspricht) aufgenommen
werden. Dies ist ausreichend um ein normales Programm bei üblichen Frequenzen in der
Größenordnung von 1 GHz so lange zu beobachten, daß Störungen ermittelt werden können.
Bei 64 Datenleitungen ist entsprechend die 8-fache Speicherkapazität für die gleiche
Beobachtungsdauer erforderlich. Im Gegensatz zu einem Logikanalyser, der einzelne Signale
innerhalb eines Zeitfensters von typischerweise 10 bis 240 ms darstellt, können mit dem
Datenfluß-Analysator mit dieser Speicherkapazität Zeitfenster im Sekundenbereich
aufgenommen werden.
Der Aufnahmebeginn für die Signale erfolgt durch einen Triggerpuls 68, der von einer
Triggereinheit 62 über eine Kontrolleinheit 64 an einen elektronischen Schalter 66 (Tor)
gegeben wird. Durch den Triggerpuls schaltet der Schalter 66 auf Durchgang. Die Taktrate
wird mit der Taktrate des Mikrocontrollers synchronisiert. Je nach Anwendung wird die
Taktrate von der R/W (Read/Write), CS(Chip Select) oder OE Leitung abgegriffen. Über zwei
Treiber 70 und 72 wird das Taktsignal ähnlich wie oben die Datensignale übertragen und an
einen Schalter 75 gegeben, der durch die Kontrolleinheit 64 auf die entsprechende Leitung
geschaltet ist. In Fig. 2 ist das Taktsignal von der R/W-Leitung durchgeschaltet. Das
Taktsignal wird weiter auf einen Zähler 74 aufgeschaltet, der die Taktzahl zählt. Bei jedem
Takt wird der Zähler um ein Inkrement hochgezählt. Über eine Verbindung 76 mit der
Kontrolleinheit wird ein Reset ermöglicht. Die Taktzahl formt die Adresse im Speicher 58 für
die Signale an den beobachteten Datenleitungen 1 bis 8. Dieser Wert wird über eine Zuleitung
78 zusammen mit den Signalwerten auf den Speicher 58 gegeben.
Ein zwischen der Zuleitung 78 und dem Zähler 74 angeordneter Schalter 80 wird
ebenfalls von der Kontrolleinheit 64 über eine Verbindung 82 gesteuert. Je nach
Schalterstellung werden die Zählerwerde des Zählers 74 und die Signalwerte an den
Datenleitungen in den Speicher geschrieben oder - wie in Fig. 2 dargestellt - ausgelesen.
Die ausgelesenen Daten werden über Verbindungen 84 und Treiber 86, 88 an eine
Schnittstelle 90 gegeben, von wo aus sie zum Beispiel mittels eines Personalcomputers
92 (PC) und der entsprechenden Software graphisch darstellbar sind.
Die graphische Darstellung erfolgt auf einem Bildschirm 94 oder in einem Fenster, auf
dem für jede Adresse ein Punkt 96 vorgesehen ist. Ein Beispiel für eine solche
Darstellung ist in Fig. 4 gezeigt. Stellt der Datenfluß-Analysator einen Zugriff auf einen
Adressbereich fest, so wird der diesem Adressbereich entsprechende Punkt auf dem
Bildschirm um eine Helligkeitsstufe dunkler. Dunkle Punkte stellen also eine besonders
hohe Zugriffshäufigkeit dar. Weiße Punkte stellen eine nichtangesprochenen Adresse dar.
Der beschriebene Datenflußanalysator läßt sich in verschiedenen Anwendungsgebieten
verwenden, von denen drei hier beispielhaft beschrieben werden:
Der Datenfluß-Analysator weist einen weiteren Festspeicher auf. In diesem Festspeicher
befinden sich die Verläufe der Zugriffshäufigkeiten bei der Abarbeitung von
Programmen, die auf eine Störung von außen hin untersucht werden sollen. Durch
Vergleich der gespeicherten Verläufe mit den tatsächlichen Verläufen, wird der Speicher
des beobachteten Computers nach diesem Programm durchsucht und der Adressbereich,
in dem die Programme gespeichert sind, festgelegt. Dieser Vorgang ist gewöhnlich nur
bei Computern mit dynamischer Speicherverwaltung notwendig. Bei fest programmierten
Chips, die z. B. zur Gerätesteuerung verwendet werden, kann auf eine Programmsuche
verzichtet werden, da sich der Adressbereich, in dem sich das Steuerprogramm befindet,
nicht ändert.
Wenn der Adressbereich, in dem sich das Programm befindet, festgestellt ist, kann eine
regelmäßige Überprüfung der Zugriffshäufigkeit auf die Adressen in diesem Adressbereich
bei Abarbeitung des Programms vorgenommen werden. Ändert sich der Verlauf der
Zugriffshäufigkeit, so ist dies ein sicheres Indiz dafür, daß das normalerweise unveränderliche
Programm z. B. durch einen Virus verändert wurde. Die Überprüfung erfolgt durch einfachen
Vergleich, nämlich durch Differenzbildung der Häufigkeitswerte zu jedem Zeitpunkt.
Zur Erkennung von Programmierfehlern wird zunächst der Vorgang im gesamten Programm
gesucht, der beobachtet werden soll. Dies kann der Startvorgang bei einer Einspritzpumpe an
einem Motor sein. Die Beobachtung der Zugriffshäufigkeit während der Abarbeitung dieses
Programmteils und der unmittelbar angrenzenden Zeiträume ermöglicht dann die Erkennung
von Ereignissen unmittelbar vor diesem Vorgang, sowie die schnelle Erkennung von
Endlosschleifen, ungenutzten Programmstücken und dergleichen. Eine einzelne Adresse, auf
der eine besonders hohe Zugriffshäufigkeit vorliegt, beinhaltet mit hoher Wahrscheinlichkeit
eine Variable (Kennfeld). Eine solche Adresse ist in Fig. 4 mit 96 bezeichnet. Der
Adressbereich, in dem das Programm gespeichert ist, ist an aufeinanderfolgenden Zugriffen
auf benachbarte Punkte zu erkennen. Schleifen produzieren Punktbereiche mit hoher
Zugriffshäufigkeit. Tritt eine Störung bei der Abarbeitung des Programms auf, so wird diese
bei Beobachtung der Zugriffshäufigkeit leicht erkannt. Im Programmcode kann nach dem
Befehl an der entsprechenden Stelle gesucht werden, ohne daß die Befehle der anderen
Programmteile analysiert werden müssen. Hier bildet die Beobachtung der Zugriffshäufigkeit
eine besonders schnelle Möglichkeit die richtigen Programmteile ausfindig zu machen. Ist das
Programm als Ganzes nicht bekannt, können einzelne Teile dissassembled werden. Dieser
Vorgang ist aufwendig und die Kenntnis des relevanten Programmteils daher unabdingbar.
Zur Intrusion Detection wird der Datenfluß-Analysator direkt an den Computer
angeschlossen, über den sensible Daten abfragbar sind oder auf dem sensible Daten
gespeichert sind. Wenn sensible Daten von diesem Computer aus abfragbar sind, so kann
der Angreifer entweder die Daten direkt in unverschlüsselter Form abgreifen, wenn sie
dort vorliegen, oder er muß über diesen Computer die Identifizierungsmerkmale des
autorisierten Anwenders ermitteln. Beides ist mit Zugriffen auf einen bestimmten
Speicherbereich in diesem Computer verbunden, der vom Datenfluß-Analysator erkannt
wird.
Ein Zugriff auf sensible Daten, die nur zu Computern transferiert werden können, die
hierzu autorisiert sind, kann auch direkt mittels des Datenfluß-Analysators beobachtet
werden. Der Angreifer erhält die Daten dann ggf. nur in verschlüsselter Form. Der
Zugriff selber wird jedoch erkannt.
Claims (15)
1. Datenfluß-Analysator (54) enthaltend
- a) Detektormittel (38, 50, 56) zum Detektieren eines in einer Leitung vorliegenden Signals,
- b) Speichermittel (58) zum Speichern des Signals,
- c) Auswertemittel (92) zum Auswerten des Signals, und
- d) Mittel (94) zur simultanen Darstellung von Zugriffshäufigkeiten auf Adressen eines Programmspeichers und/oder Datenspeichers,
- a) die Zugriffshäufigkeit auf jede einzelne einer Vielzahl von Adressen eines Programmspeichers und/oder Datenspeichers darstellbar ist.
2. Datenfluß-Analysator nach Anspruch 1, dadurch gekennzeichnet, daß die
Detektormittel (38, 50, 56) einen Tastkopf (38) umfassen, mit welchem die an einer
Leitung anliegenden Spannungen abgreifbar sind.
3. Datenfluß-Analysator nach Anspruch 2, dadurch gekennzeichnet, daß der Tastkopf
(38) mit einem Verstärker (50, 56) zur Spannungsverstärkung ausgestattet ist.
4. Datenfluß-Analysator nach einem der vorgehenden Ansprüche, dadurch
gekennzeichnet, daß Mittel (94) zur graphischen Darstellung der Zugriffshäufigkeit auf
die Adressen vorgesehen sind.
5. Datenfluß-Analysator nach einem der vorgehenden Ansprüche gekennzeichnet durch
Mittel (92) zur Speicherung und Darstellung der Zugriffshäufigkeit auf die Adressen
eines Speichers für aufeinanderfolgende Zeitpunkte.
6. Datenfluß-Analysator nach Anspruch 5, gekennzeichnet durch Mittel (62) zur
Initialisierung der Datenaufzeichnung.
7. Datenfluß-Analsysator nach einem der vorgehenden Ansprüche, gekennzeichnet durch
einen Zwischenspeicher zur Zwischenspeicherung der Zugriffshäufigkeit.
8. Datenfluß-Analysator nach einem der vorgehenden Ansprüche, gekennzeichnet, durch
einen Festspeicher zur Speicherung der Zugriffshäufigkeit.
9. Datenfluß-Analysator nach einem der vorgehenden Ansprüche, gekennzeichnet durch
Mittel zum Vergleichen der Informationen über die Zugriffshäufigkeit mit den
Zugriffshäufigkeiten anderer Prozesse.
10. Datenfluß-Analysator nach einem der vorgehenden Ansprüche, gekennzeichnet durch
Mittel zur Detektierung von vorgegebenen Speicherinhalten im Programm- und/oder
Datenspeicher.
11. Verfahren zur Analyse von Programmen mit den Schritten
- a) Detektieren eines in einer Leitung vorliegenden Signals,
- b) Speichern des Signals,
- c) Auswerten des Signals bezüglich des Wertes eines Datenbits,
- d) Bestimmen der Zugriffshäufigkeit auf jede einzelne einer Vielzahl von Adressen eines Programmspeichers und/oder Datenspeichers und
- e) simultane Darstellung der bestimmten Zugriffshäufigkeitswerte.
12. Verwendung eines Datenfluß-Analysators nach einem der Ansprüche 1 bis 10 zur
Analyse von Programmen zur Datenverarbeitung.
13. Verwendung eines Datenfluß Analysators nach einem der Ansprüche 1 bis 10 zur
Ermittlung eines unerlaubten Zugriffs auf einen Programm- oder Datenspeicher in
einem Computer.
14. Verwendung eines Datenfluß-Analysators nach einem der Ansprüche 1 bis 10 zum
Auffinden eines Virus in einem Programm für Datenverarbeitungsanlagen.
15. Verwendung eines Datenfluß-Analysators nach einem der Ansprüche 1 bis 10 zur
Überprüfung des Ablaufs von Befehlen zur Maschinensteuerung.
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE2001130274 DE10130274C2 (de) | 2001-06-26 | 2001-06-26 | Datenfluß-Analysator |
PCT/EP2002/007005 WO2003003207A2 (de) | 2001-06-26 | 2002-06-25 | Datenfluss-analysator und verfahren zur analyse von programmen |
AU2002351965A AU2002351965A1 (en) | 2001-06-26 | 2002-06-25 | Data flow-analyser and method for analysing programs |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE2001130274 DE10130274C2 (de) | 2001-06-26 | 2001-06-26 | Datenfluß-Analysator |
Publications (2)
Publication Number | Publication Date |
---|---|
DE10130274A1 DE10130274A1 (de) | 2003-02-13 |
DE10130274C2 true DE10130274C2 (de) | 2003-05-28 |
Family
ID=7689160
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE2001130274 Expired - Fee Related DE10130274C2 (de) | 2001-06-26 | 2001-06-26 | Datenfluß-Analysator |
Country Status (3)
Country | Link |
---|---|
AU (1) | AU2002351965A1 (de) |
DE (1) | DE10130274C2 (de) |
WO (1) | WO2003003207A2 (de) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7082222B2 (en) | 2001-01-10 | 2006-07-25 | Koninklije Philips Electronics N.V. | System and method for optimizing control parameter settings in a chain of video processing algorithms |
DE102004030139A1 (de) * | 2004-06-22 | 2006-01-19 | Infineon Technologies Ag | Verfahren zur Steuerung von Befehlssequenzen und Befehlssteuereinrichtung zur Durchführung des Verfahrens |
US7634813B2 (en) | 2004-07-21 | 2009-12-15 | Microsoft Corporation | Self-certifying alert |
US7603715B2 (en) | 2004-07-21 | 2009-10-13 | Microsoft Corporation | Containment of worms |
US7634812B2 (en) | 2004-07-21 | 2009-12-15 | Microsoft Corporation | Filter generation |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE3205852C2 (de) * | 1981-02-23 | 1984-07-26 | Siemens AG, 1000 Berlin und 8000 München | Anordnung zur Messung der Arbeitsverteilung von Programmroutinen in einem programmgesteuerten System, insbesondere in einem programmgesteuerten Fernsprechsystem |
DE4338820A1 (de) * | 1993-11-13 | 1995-05-18 | Bosch Gmbh Robert | Einchip-Mikrorechner |
DE10051941A1 (de) * | 2000-10-19 | 2001-05-10 | Wolfgang A Halang | Gerätetechnische Schreibschutzkopplung zum Schutz digitaler Datenverarbeitungsanlagen vor Eindringlingen während der Installationsphase von Programmen |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA957082A (en) * | 1972-01-24 | 1974-10-29 | William Steinberg | Computer monitoring device |
US4040025A (en) * | 1976-03-31 | 1977-08-02 | Hewlett-Packard Company | Logic state analyzer |
US5051944A (en) * | 1986-04-17 | 1991-09-24 | Ncr Corporation | Computer address analyzer having a counter and memory locations each storing count value indicating occurrence of corresponding memory address |
JP2001134471A (ja) * | 1999-11-09 | 2001-05-18 | Toshiba Corp | デバッグ装置及びデバッグ方法 |
-
2001
- 2001-06-26 DE DE2001130274 patent/DE10130274C2/de not_active Expired - Fee Related
-
2002
- 2002-06-25 WO PCT/EP2002/007005 patent/WO2003003207A2/de not_active Application Discontinuation
- 2002-06-25 AU AU2002351965A patent/AU2002351965A1/en not_active Abandoned
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE3205852C2 (de) * | 1981-02-23 | 1984-07-26 | Siemens AG, 1000 Berlin und 8000 München | Anordnung zur Messung der Arbeitsverteilung von Programmroutinen in einem programmgesteuerten System, insbesondere in einem programmgesteuerten Fernsprechsystem |
DE4338820A1 (de) * | 1993-11-13 | 1995-05-18 | Bosch Gmbh Robert | Einchip-Mikrorechner |
DE10051941A1 (de) * | 2000-10-19 | 2001-05-10 | Wolfgang A Halang | Gerätetechnische Schreibschutzkopplung zum Schutz digitaler Datenverarbeitungsanlagen vor Eindringlingen während der Installationsphase von Programmen |
Also Published As
Publication number | Publication date |
---|---|
AU2002351965A1 (en) | 2003-03-03 |
WO2003003207A2 (de) | 2003-01-09 |
DE10130274A1 (de) | 2003-02-13 |
WO2003003207A3 (de) | 2004-01-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE102006005053B4 (de) | Vorichtung und Verfahren zum Erfassen eines Angriffs auf eine elektrische Schaltung | |
EP1334416B1 (de) | Schaltungsanordnung und verfahren zum detektieren eines unerwünschten angriffs auf eine integrierte schaltung | |
EP0207320A1 (de) | Integrierte Schaltung und Verfahren zum Sichern von geheimen Codedaten | |
DE4442636C2 (de) | System und Verfahren zum Testen einer elektronischen Schaltung | |
EP3210088B1 (de) | Verfahren und assistenzsystem zur erkennung einer störung in einer anlage | |
EP2795601B1 (de) | Verfahren und vorrichtung zum erkennen einer manipulation an einer elektrischen leitung | |
EP2884417A1 (de) | Verfahren zur Abwehr von Cold-Boot Angriffen auf einen Computer in einem Selbstbedienungs-Terminal | |
DE102006041444B4 (de) | Schaltungsanordnung und Verfahren zum Erfassen einer Ausführungszeit eines Befehls in einem Rechnersystem | |
EP1449084B1 (de) | Kontrollierte programmausführung durch einen tragbaren datenträger | |
DE10130274C2 (de) | Datenfluß-Analysator | |
EP2111586B1 (de) | Ein-chip-computer und tachograph | |
DE112011100168T5 (de) | Erfassen von Diagnosedaten in einer Datenverarbeitungsumgebung | |
DE4314484B4 (de) | Datenerfassung zum Ansatz an ein mobiles elektronisches Vielfachmeßgerät, insbesondere ein Handmultimeter | |
DE102020113652A1 (de) | Anzeigevorrichtung und Anzeigeverfahren | |
DE102005042790B4 (de) | Integrierte Schaltungsanordnung und Verfahren zum Betrieb einer solchen | |
DE102021131424A1 (de) | Verfahren und systeme zur sitzungsbasierten und gesicherten zugriffsteuerung auf ein datenspeichersystem | |
DE102014213752A1 (de) | Rechenvorrichtung und Verfahren zum Erkennen von Angriffen auf ein technisches System anhand von Ereignissen einer Ereignisfolge | |
DE19936938A1 (de) | Datenverarbeitungseinrichtung und Verfahren zu dessen Betrieb zum Verhindern einer differentiellen Stromverbrauchanalyse | |
EP0968436A2 (de) | Integrierte schaltung und verfahren zum testen der integrierten schaltung | |
EP2455925B1 (de) | Verfahren und Vorrichtung zur Abwehr von Manipulationsversuchen an einem Kamera-System | |
EP1046131B1 (de) | Datenverarbeitungseinrichtung und verfahren zu dessen betrieb zum verhindern einer differentiellen stromverbrauchanalyse | |
DE102006027682B3 (de) | Integrierte Schaltungsanordnung und Verfahren zum Betreiben einer integrierten Schaltungsanordnung | |
EP0645710A2 (de) | Verfahren zur Funktionsprüfung signaltechnisch nicht sicherer Speicher für mindestens zweikanalig abgespeicherte Nutzdaten und Einrichtung zur Durchführung des Verfahrens | |
DE102006017546A1 (de) | Verfahren und System zum Testen einer Speichervorrichtung | |
DE102014219450A1 (de) | Rechensystem |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
OP8 | Request for examination as to paragraph 44 patent law | ||
8304 | Grant after examination procedure | ||
8364 | No opposition during term of opposition | ||
8327 | Change in the person/name/address of the patent owner |
Owner name: PROTEUS PATENT GMBH, 51069 KOELN, DE |
|
R082 | Change of representative |
Representative=s name: WEISSE, RENATE, DIPL.-PHYS. DR.-ING., DE |
|
R119 | Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee |