DE10130274C2 - Datenfluß-Analysator - Google Patents

Datenfluß-Analysator

Info

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
Application number
DE2001130274
Other languages
English (en)
Other versions
DE10130274A1 (de
Inventor
Detlef Kochan
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
PROTEUS PATENT GMBH, 51069 KOELN, DE
Original Assignee
GLOBAL PATENT CONSULTING GmbH
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by GLOBAL PATENT CONSULTING GmbH filed Critical GLOBAL PATENT CONSULTING GmbH
Priority to DE2001130274 priority Critical patent/DE10130274C2/de
Priority to PCT/EP2002/007005 priority patent/WO2003003207A2/de
Priority to AU2002351965A priority patent/AU2002351965A1/en
Publication of DE10130274A1 publication Critical patent/DE10130274A1/de
Application granted granted Critical
Publication of DE10130274C2 publication Critical patent/DE10130274C2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording 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/3466Performance evaluation by tracing or monitoring
    • G06F11/349Performance evaluation by tracing or monitoring for interfaces, buses
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/25Testing of logic operation, e.g. by logic analysers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/32Monitoring with visual or acoustical indication of the functioning of the machine
    • G06F11/324Display of status information
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/88Monitoring 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

Technisches Gebiet
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.
Stand der Technik
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.
Offenbarung der Erfindung
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.
Kurze Beschreibung der Zeichnungen
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.
Beschreibung eines Ausführungsbeispiels
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:
1. Anwendung Viruserkennung
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.
2. Anwendung Erkennung von Programmierfehlern
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.
3. Anwendung Einbruchserkennung (Intrusion Detection)
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,
dadurch gekennzeichnet daß
  • 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.
DE2001130274 2001-06-26 2001-06-26 Datenfluß-Analysator Expired - Fee Related DE10130274C2 (de)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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 デバッグ装置及びデバッグ方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
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