WO2003003207A2 - Datenfluss-analysator und verfahren zur analyse von programmen - Google Patents

Datenfluss-analysator und verfahren zur analyse von programmen Download PDF

Info

Publication number
WO2003003207A2
WO2003003207A2 PCT/EP2002/007005 EP0207005W WO03003207A2 WO 2003003207 A2 WO2003003207 A2 WO 2003003207A2 EP 0207005 W EP0207005 W EP 0207005W WO 03003207 A2 WO03003207 A2 WO 03003207A2
Authority
WO
WIPO (PCT)
Prior art keywords
data
data flow
memory
access
program
Prior art date
Application number
PCT/EP2002/007005
Other languages
English (en)
French (fr)
Other versions
WO2003003207A3 (de
Inventor
Detlef Kochan
Original Assignee
Globalpatents 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 Globalpatents Consulting Gmbh filed Critical Globalpatents Consulting Gmbh
Priority to AU2002351965A priority Critical patent/AU2002351965A1/en
Publication of WO2003003207A2 publication Critical patent/WO2003003207A2/de
Publication of WO2003003207A3 publication Critical patent/WO2003003207A3/de

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

Definitions

  • the invention relates to a data flow analyzer containing
  • the evaluation of the signal includes in particular the determination of whether a data bit with the value 0 or 1 is present.
  • the invention further relates to a method for analyzing programs.
  • Computer programs are executed by a microprocessor.
  • the microprocessor accesses a program memory and a data memory via an address and a data bus and processes the command sequence of the program.
  • the content of a memory address is read out or a content is written back to a memory address.
  • Errors are often encountered when executing a program, for example resulting in incorrect data values or operations. However, non-fulfillable conditions can also arise, which end in an endless loop. It is also possible for the program sequence to be disturbed by external access, for example via the Internet, or for data to be queried from outside.
  • Access - possibly unauthorized - from the outside is usually prevented by means of suitable software or another intermediate computer.
  • the software must be updated regularly and an intermediate computer can also only prevent access if it is not authorized.
  • Intrusion detection detects unauthorized access (attacks) to a computer or a computer system.
  • the attacks can be from outside, e.g. B. the Internet, or come from within a network in which a user tries to access data to which he is not authorized. These attacks attempt to circumvent the existing security systems or - at least temporarily - to switch them off.
  • the signals on a data line are usually observed using a logic analyzer.
  • the signal is sampled point by point and on a
  • RAM very fast memory
  • a logic analyzer is known from EP 0 244 926 with which data running over a bus can be stored and decoded.
  • the logic analyzer decrypts the instructions that are executed by a processor and determines the data values that are transferred from the bus.
  • the logic analyzer described stores the commands, register and batch information in a file and displays pieces of information selected by the user on a screen. The file can be searched for commands that cause certain user-specified changes to the register or batch contents.
  • DE 3205852 C2 describes an arrangement for measuring the work distribution of program routines for a telephone system.
  • the term “work distribution” is understood to mean the frequency of access to address areas that belong to the respective program routines. If a program routine is activated too often, the telephone system described can be overloaded. To avoid overloading, it is determined whether the address is in a specific area If this is the case, the number of matches for each address range is recorded until it is queried by a computer, and it is assumed that the programs or program parts are already completely known
  • the described method is not suitable for carrying out malfunctions in a program sequence, such as programming errors or intrusion detection.
  • the object is achieved in a data flow analyzer of the type mentioned at the outset in that the frequency of access to each of a plurality of addresses of a program memory and / or data memory can be represented.
  • Pattern is a good indicator of a program disorder. Instead of the individual commands, only the number of accesses to a selected memory address or a selected area has to be observed. Knowing the frequency of access also enables the identification of events that occurred before a program malfunction and that may be related to the malfunction.
  • a program section with certain properties can also be identified and localized.
  • the detector means preferably comprise a probe with which the voltages and / or currents applied to a line can be tapped.
  • the probe can be equipped with an amplifier for voltage amplification. Since the probe is connected to the analyzer via supply lines, cable capacities usually occur which would put such a strain on a microcontroller system without the use of an amplifier that the functionality is disturbed.
  • the frequency of access to the addresses and / or data is preferably displayed graphically.
  • the graphic representation can take place by means of a monitor, on which one pixel is provided for each memory address. If an address is accessed, the pixel becomes darker or lighter. The more accesses are made to an address, the darker or lighter the pixel becomes. Instead of the brightness, the color can also vary with the number of accesses. Alternatively, the representation in a 3-dimensional graphic is possible, in which the number of accesses is shown depending on the memory address.
  • the analyzer preferably comprises means for storing and displaying the
  • Frequency of access to the addresses of a memory for successive times can be, for example, a fast hard disk or a semiconductor memory.
  • the graphical representation of the number of accesses can then be saved at a certain frequency during program execution and viewed like a film.
  • the advantage is that the display can be rewound and rewound or enlarged or stopped at certain points.
  • means for initializing the data recording are provided.
  • the initialization can be carried out using a trigger unit.
  • the data recording can, for example, by a certain
  • Address or a specific address range can be triggered. If all data lines are selected, the triggering takes place on a single, selected one Address. By omitting some data lines (zeroing), triggering on an entire address range is possible. This is particularly advantageous if there are a number of options through a selection in the program and addresses in an interesting program section are addressed alternatively to one another.
  • This buffer can be used to save the data before further processing, analysis and display, for example to apply different methods to the data.
  • a permanent memory can also be provided for storing the access frequency. This is particularly useful if the data is to be saved permanently or if there is a large amount of data that cannot be processed immediately.
  • virus-infected software can be recognized very quickly or unauthorized access to a file.
  • means are provided for finding predetermined memory contents in a memory. This is particularly important for dynamic memory management, as the addresses can change here.
  • a means is, for example, a correlation module that searches the memory for a specific bit pattern, regardless of the position in the memory. This can be done by selecting a memory window that is the same size as the bit pattern you are looking for. The content of this window is compared to the bit pattern.
  • the window is pushed over the memory until the bit patterns are identical.
  • the object of the invention is in particular also achieved by a method for analyzing programs with the steps
  • the access frequency can be determined using a data flow analyzer or any other suitable means.
  • the data flow analyzer is particularly suitable for analyzing programs for data processing.
  • the display of the access frequency enables the relevant program parts to be found quickly and easily.
  • the course of the access frequency to the different addresses can be observed simultaneously during the program execution. Programming errors and program faults can be determined particularly easily in this way. Smaller program parts can be dissassembled using known algorithms.
  • the data flow analyzer is also suitable for determining unauthorized access to a program or data memory in a computer.
  • security programs such as a password query
  • a connected data flow analyzer will access z. B. always determine the address area in which the passwords are stored.
  • Suitable software can analyze the access frequency and, if necessary, trigger messages or countermeasures.
  • the use of the data flow analyzer has the advantage that it cannot be easily circumvented as a hardware component. It provides data about the weaknesses of the software IDS and makes it easier to improve them. It also provides information about the areas that have been accessed so that possible rescue measures can be carried out in a targeted manner.
  • the data flow analyzer is used to find a virus in a program for data processing systems.
  • the course of the access frequency is saved when the undisturbed program is being processed and compared with the current access frequency.
  • a virus causes a change that is easily detectable.
  • Another embodiment of the invention relates to the use of the data flow analyzer for checking the execution of commands for machine control.
  • the machine is observed simultaneously with the program. If an error occurs during the operation of the machine, the program part that caused this error can be determined from the access frequency at the same time.
  • Fig.l shows the basic structure of a microcomputer with a microprocessor
  • FIG. 2 shows a block diagram of a data flow analyzer
  • FIG. 3 shows a typical signal curve in a data line
  • FIG. 4 shows a graphical representation of the access frequency to the addresses of a 64 k memory in the form of differences in brightness.
  • Fig.l 10 denotes a microcomputer unit.
  • a microprocessor 12 central processing unit, CPU
  • a program memory 14 is located in the microcomputer 10.
  • a program memory 14 is connected to the microprocessor 12 via a bus system 20.
  • the bus system 20 includes one
  • Address bus 22 a data bus 24 and a control bus 26.
  • the commands of the program to be executed are stored in the program memory 14 at the associated addresses.
  • the program memory 14 is designed as an EEPROM (electrically erasable read only memory) or RAM (random access memory).
  • the data which are processed with the program are stored in the data memory 16 at the associated addresses.
  • the data memory 16 is designed as RAM.
  • the data can be entered, forwarded or displayed using the input and output unit.
  • the input and output unit is connected to the computer peripheral equipment (not shown).
  • the addresses containing information, data or commands are communicated via the address bus 22.
  • the data flow direction in the address bus 22 always takes place in one direction represented by arrows 28, 30, 32, 34 and 36.
  • the data are transmitted via the data bus 24.
  • the direction of data flow takes place in both directions.
  • the information on whether to read or write is flowing via the control bus 26.
  • the probe 38 of a data flow analyzer is connected to the address bus 22.
  • the probe 38 picks up and amplifies the voltages present on the lines 40 of the bus. This is shown in Fig. 2 using the example of an 8-bit bus.
  • a value of "1" is assumed if the voltage exceeds a threshold value of 0.7 volts.
  • the voltage curve over the period of 3 clock cycles is shown in FIG. 3 for the 8 data lines.
  • the voltage curve on the first data line is designated 42.
  • the voltage value on the data line is tapped by means of the probe 38 and transmitted to the data flow analyzer.
  • voltages 46 and 48 are present.
  • the voltage is 5 volts and thus exceeds a threshold value of 0.7 V.
  • the data bit is set to "1" for T1 and T3 and to "0" for T2.
  • the data bit for T1 and T3 is "0" and for T2 "1". So there is a signal of "10110000" corresponding to B0 Hex at the time of Tl, a signal of at the time of T2
  • Analyzer are passed on.
  • the amplification takes place in such a way that the current is increased in order to drive power capacities and the voltage is reduced to 0-2.2V.
  • the data flow analyzer power driver 50 is located on the motherboard of the computer. As a result, resonances, capacitive influences on the neighboring lines and other disturbances are minimized Signal acquisition at high frequencies above 100MHz arise. This improves the error rate.
  • a feed line 52 (FIG. 2) connects the power driver 50 to the data flow analyzer 54.
  • the incoming signals are converted back to 0-5 volts in a further driver 56.
  • the line termination is also carried out in the driver 56.
  • the signals - in the example of FIG. 3 B0 Hex , 47 Hex and 98 Hex are then stored in a fast semiconductor memory 58 (RAM) i consecutive addresses 60.
  • RAM fast semiconductor memory
  • the memory 58 has a memory width of 8 bits, corresponding to 1 byte and a memory depth of 1 G.
  • the memory therefore has a memory capacity of 1 gigabyte. This means that 10 9 data bits (a value that corresponds to 0 or 1) can be recorded for each of the 8 data lines. This is sufficient to observe a normal program at usual frequencies in the order of 1 GHz for so long that
  • Faults can be determined. With 64 data lines, 8 times the storage capacity is required for the same observation period. In contrast to a logic analyzer, which displays individual signals within a time window of typically 10 to 240 ms, the data flow analyzer can record time windows in the second range with this storage capacity.
  • the signals are started by a trigger pulse 68, which is given by a trigger unit 62 via a control unit 64 to an electronic switch 66 (gate).
  • the switch 66 switches to continuity by the trigger pulse.
  • the clock rate is synchronized with the clock rate of the microcontroller. Depending on the application, the clock rate is tapped from the R / W (Read / Write), CS (Chip Select) or OE line.
  • the clock signal is transmitted via two drivers 70 and 72 in a manner similar to the above and is sent to a switch 74 which is switched to the corresponding line by the control unit 64. 2, the clock signal is switched through by the R / W line.
  • the clock signal is further applied to a counter 74 which counts the number of clocks. The counter is incremented for each cycle.
  • a reset is made possible via a connection 76 to the control unit.
  • the number of cycles forms the address in the memory 58 for the signals on the observed data lines 1 to 8. This value is sent to the memory 58 via a feed line
  • a switch 80 arranged between the feed line 78 and the counter 74 is also controlled by the control unit 64 via a connection 82. Depending on the switch position, the counter value of counter 74 and the signal values on the data lines are written into the memory or - as shown in FIG. 2 - read out.
  • the read-out data is sent to one via connections 84 and drivers 86, 88
  • Interface 90 given from where they can be graphically represented, for example by means of a personal computer 92 (PC) and the corresponding software.
  • PC personal computer
  • the graphic representation takes place on a screen 94 or in a window on which a point 96 is provided for each address.
  • the data flow analyzer described can be used in various fields of application, three of which are described here by way of example:
  • the data flow analyzer has a further read-only memory.
  • the access frequencies during the processing of programs which are to be examined for a fault from outside are located in this read-only memory.
  • the memory of the observed computer is searched for this program and the address area in which the programs are stored is determined. This process is usually only necessary for computers with dynamic memory management.
  • With permanently programmed Chips that are used, for example, for device control can be dispensed with in the search for a program, since the address area in which the control program is located does not change.
  • the frequency of access to the addresses in this address range can be checked regularly when the program is executed. If the frequency of access changes, this is a sure indication that the normally unchangeable program e.g. was changed by a virus. The check is carried out by a simple comparison, namely by forming the difference between the frequency values at each point in time.
  • Point areas with high access frequency If a malfunction occurs during the execution of the program, this is easily recognized when the access frequency is observed.
  • the program code can be used to search for the command at the appropriate point without having to analyze the commands of the other program parts.
  • the observation of the access frequency is a particularly quick way to find the right one
  • the data flow analyzer is connected directly to the computer, via which sensitive data can be queried or on which sensitive data is stored. If sensitive data can be queried from this computer, the attacker can either tap the data directly in unencrypted form if it is there, or he must use this computer to determine the identification features of the authorized user. Both involve access to a certain memory area in this computer that is recognized by the data flow analyzer.
  • Access to sensitive data that can only be transferred to computers that are authorized to do so can also be observed directly using the data flow analyzer. The attacker may then only receive the data in encrypted form. However, the access itself is recognized.

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Automatic Analysis And Handling Materials Therefor (AREA)
  • Investigating Or Analysing Biological Materials (AREA)
  • Measuring Or Testing Involving Enzymes Or Micro-Organisms (AREA)
  • Storage Device Security (AREA)

Abstract

Bei einem Datenfluss-Analysator (54) mit Detektormitteln (38, 50, 56) zum Detektieren eines in einer Leitung vorliegenden Signals, Speichermitteln (58) zum Speichern des Signals und Auswertemitteln (92) zum Auswerten des Signals sind Mittel (94) zur Darstellung von Zugriffshäufigkeiten vorgesehen. Der Datenfluss-Analysator ist dadurch gekennzeichnet, dass 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 einzelnen 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

Datenfluß- Analysator und Verfahren zur Analyse von Programmen
Technisches Gebiet
Die Erfindung betrifft einen Datenfluß- Analysator enthaltend
(a) Detektormittel zum Detektieren eines in einer Leitung vorliegenden Signals,
(b) Speichermittel zum Speichern des Signals, und
(c) Auswertemittel zum Auswerten des Signals
(d) Mittel zur simultanen Darstellung von Zugriffshäufigkeiten.
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.
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 3205852 C2 wird eine Anordnung zur Messung der Arbeitsverteilung von Programmroutinen für ein Fernsprechsystem beschrieben. Dabei wird unter dem Begriff „Arbeitsverteilung" die Zugriffshaufigkeit 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 Zugriffshaufigkeit auf jede einzelne einer Vielzahl von Adressen eines Programmspeichers und/oder Datenspeichers darstellbar ist.
Es hat sich überraschenderweise herausgestellt, daß eine hohe Zugriffshaufigkeit auf eine Adresse oder die Abweichung eines Musters der Zugriffshaufigkeit 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 Zugriffshaufigkeit 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 Zugriffshaufigkeit 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 Zugriffshaufigkeit 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
Zugriffshaufigkeit 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 Ausfuhrungsform 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 Zugriffshaufigkeit 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 Zugriffshaufigkeit 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 Zugriffshaufigkeit mit den Zugriffshäufigkeiten anderer Prozesse. Ein solcher Vergleich ermöglicht die besonders schnelle Auswertung von Programmänderungen oder unerlaubten Zugriffen. Es wird die Zugriffshaufigkeit 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, daß 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 Erfindugn 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 Zugriffshaufigkeit auf verschiedene Adressen eines Programmspeichers und/oder Datenspeichers und
(e) simultane Darstellung der bestimmten Zugriffshäufigkeitswerte.
Dabei kann die Zugriffshaufigkeit 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 Zugriffshaufigkeit ermöglicht das schnelle und einfache Auffinden relevanter Programmteile. Der Verlauf der Zugriffshaufigkeit 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 Zugriffshaufigkeit 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 Zugriffshaufigkeit bei Abarbeitung des ungestörten Programms gespeichert und mit der aktuellen Zugriffshaufigkeit 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 Zugriffshaufigkeit 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.l 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 Zugriffshaufigkeit auf die Adressen eines 64 k Speichers in Form von Helligkeitsunterschieden.
Beschreibung eines Ausführungsbeispiels
In Fig.l 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 Daten Speicher, 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 0V oder 5V repräsentiert, bei 0V wird nimmt das Datenbit den Wert "0"=low an und bei 5V nimmt das Datenbit den Wert 'T -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 Tl, T2 und T3 wird jeweils der Spannungswert an der Datenleitung mittels des Tastkopfes 38 abgegriffen und an den Datenfluß-Analysator übertragen. An Zeitpunkten Tl und T3 liegen Spannungen 46 und 48 an. Die Spannung beträgt 5 Volt und übersteigt damit einen Schwellwert von 0,7 V. Das Datenbit wird für Tl und T3 auf "1" und für T2 auf "0" gesetzt. Auf einer zweiten Datenleitung 48 ist das Datenbit für Tl und T3 "0" und für T2 "1". Es ergibt sich also zum Zeitpunkt von Tl 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,2V 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 100MHz 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) i 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 109 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 74 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 Zugriffshaufigkeit 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 diesen 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 Zugriffshaufigkeit auf die Adressen in diesem Adressbereich bei Abarbeitung des Programms vorgenommen werden. Ändert sich der Verlauf der Zugriffshaufigkeit, 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 j edem 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 Zugriffshaufigkeit 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 Zugriffshaufigkeit 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. Ein Beispiel hierfür ist in Fig. 4 mit 98 bezeichnet. Schleifen produzieren
Punktbereiche mit hoher Zugriffshaufigkeit. Tritt eine Störung bei der Abarbeitung des Programms auf, so wird diese bei Beobachtung der Zugriffshaufigkeit 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 Zugriffshaufigkeit 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

Patentansprüche
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, und
(c) Auswertemittel (92) zum Auswerten des Signals
(d) Mittel (94) zur simultanen Darstellung von Zugriffshäufigkeiten
dadurch gekennzeichnet daß
(e) die Zugriffshaufigkeit 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 Zugriffshaufigkeit auf die Adressen vorgesehen sind..
5. Datenfluß-Analysator nach einem der vorgehenden Ansprüche gekennzeichnet durch Mittel (92) zur Speicherung und Darstellung der Zugriffshaufigkeit 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 Zugriffshaufigkeit.
8. Datenfluß-Analysator nach einem der vorgehenden Ansprüche, gekennzeichnet, durch einen Festspeicher zur Speicherung der Zugriffshaufigkeit.
9. Datenfluß-Analysator nach einem der vorgehenden Ansprüche, gekennzeichnet durch Mittel zum Vergleichen der Informationen über die Zugriffshaufigkeit 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 Zugriffshaufigkeit 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.
PCT/EP2002/007005 2001-06-26 2002-06-25 Datenfluss-analysator und verfahren zur analyse von programmen WO2003003207A2 (de)

Priority Applications (1)

Application Number Priority Date Filing Date Title
AU2002351965A AU2002351965A1 (en) 2001-06-26 2002-06-25 Data flow-analyser and method for analysing programs

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
DE2001130274 DE10130274C2 (de) 2001-06-26 2001-06-26 Datenfluß-Analysator
DE10130274.6 2001-06-26

Publications (2)

Publication Number Publication Date
WO2003003207A2 true WO2003003207A2 (de) 2003-01-09
WO2003003207A3 WO2003003207A3 (de) 2004-01-08

Family

ID=7689160

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/EP2002/007005 WO2003003207A2 (de) 2001-06-26 2002-06-25 Datenfluss-analysator und verfahren zur analyse von programmen

Country Status (3)

Country Link
AU (1) AU2002351965A1 (de)
DE (1) DE10130274C2 (de)
WO (1) WO2003003207A2 (de)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102004030139A1 (de) * 2004-06-22 2006-01-19 Infineon Technologies Ag Verfahren zur Steuerung von Befehlssequenzen und Befehlssteuereinrichtung zur Durchführung des Verfahrens
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
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
US7634813B2 (en) 2004-07-21 2009-12-15 Microsoft Corporation Self-certifying alert

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3829841A (en) * 1972-01-24 1974-08-13 Computer Performance Instrumen 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
EP1100017A1 (de) * 1999-11-09 2001-05-16 Kabushiki Kaisha Toshiba Überwachungsvorrichtung für Speicherzugriffe und Fehlersuchsystem

Family Cites Families (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
DE10051941C2 (de) * 2000-10-19 2003-03-27 Wolfgang A Halang Gerätetechnische Schreibschutzkopplung zum Schutz digitaler Datenverarbeitungsanlagen vor Eindringlingen während der Installationsphase von Programmen

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3829841A (en) * 1972-01-24 1974-08-13 Computer Performance Instrumen 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
EP1100017A1 (de) * 1999-11-09 2001-05-16 Kabushiki Kaisha Toshiba Überwachungsvorrichtung für Speicherzugriffe und Fehlersuchsystem

Cited By (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
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
US7634813B2 (en) 2004-07-21 2009-12-15 Microsoft Corporation Self-certifying alert

Also Published As

Publication number Publication date
WO2003003207A3 (de) 2004-01-08
DE10130274A1 (de) 2003-02-13
DE10130274C2 (de) 2003-05-28
AU2002351965A1 (en) 2003-03-03

Similar Documents

Publication Publication Date Title
DE102006005053B4 (de) Vorichtung und Verfahren zum Erfassen eines Angriffs auf eine elektrische Schaltung
EP0207320B1 (de) Integrierte Schaltung und Verfahren zum Sichern von geheimen Codedaten
DE69533312T2 (de) Geschütztes speichersystem und verfahren dafür
DE4442636C2 (de) System und Verfahren zum Testen einer elektronischen Schaltung
DE102012109665A1 (de) Manipulationserkennungsmaßnahmen zum Abschecken physischer Angriffe auf ein Sicherheits-ASIC
EP0512542A2 (de) Datenschützende Mikroprozessorschaltung für tragbare Datenträger, beispielsweise Kreditkarten
DE19955033A1 (de) Einrichtung zur Erfassung und Verfahren zur Konditionierung der Temperatur innerhalb eines Notebook-Computers
DE102006041444B4 (de) Schaltungsanordnung und Verfahren zum Erfassen einer Ausführungszeit eines Befehls in einem Rechnersystem
WO2013160009A1 (de) Verfahren und vorrichtung zum erkennen einer manipulation an einer elektrischen leitung
DE10130274C2 (de) Datenfluß-Analysator
EP2111586B1 (de) Ein-chip-computer und tachograph
DE102006035610B4 (de) Speicherzugriffssteuerung und Verfahren zur Speicherzugriffssteuerung
DE112011100168T5 (de) Erfassen von Diagnosedaten in einer Datenverarbeitungsumgebung
DE3700800C2 (de) Einrichtung zur Erzeugung eines Unterbrechungspunktes in einem Mikroprozessor
DE102005042790B4 (de) Integrierte Schaltungsanordnung und Verfahren zum Betrieb einer solchen
DE102005057104A1 (de) Smartcard und Steuerverfahren hierfür
DE102021131424A1 (de) Verfahren und systeme zur sitzungsbasierten und gesicherten zugriffsteuerung auf ein datenspeichersystem
DE19936938A1 (de) Datenverarbeitungseinrichtung und Verfahren zu dessen Betrieb zum Verhindern einer differentiellen Stromverbrauchanalyse
WO1998041880A2 (de) Integrierte schaltung und verfahren zum testen der integrierten schaltung
DE102006027682B3 (de) Integrierte Schaltungsanordnung und Verfahren zum Betreiben einer integrierten Schaltungsanordnung
EP1046131B1 (de) Datenverarbeitungseinrichtung und verfahren zu dessen betrieb zum verhindern einer differentiellen stromverbrauchanalyse
DE19544723C2 (de) Prozessor-Analysesystem
EP0645710A2 (de) Verfahren zur Funktionsprüfung signaltechnisch nicht sicherer Speicher für mindestens zweikanalig abgespeicherte Nutzdaten und Einrichtung zur Durchführung des Verfahrens
EP2428918A2 (de) Portabler Datenträger
DE102014219450A1 (de) Rechensystem

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A2

Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BY BZ CA CH CN CO CR CU CZ DE DK DM DZ EC EE ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NO NZ OM PH PL PT RO RU SD SE SG SI SK SL TJ TM TN TR TT TZ UA UG US UZ VN YU ZA ZM ZW

AL Designated countries for regional patents

Kind code of ref document: A2

Designated state(s): GH GM KE LS MW MZ SD SL SZ TZ UG ZM ZW AM AZ BY KG KZ MD RU TJ TM AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE TR BF BJ CF CG CI CM GA GN GQ GW ML MR NE SN TD TG

121 Ep: the epo has been informed by wipo that ep was designated in this application
REG Reference to national code

Ref country code: DE

Ref legal event code: 8642

122 Ep: pct application non-entry in european phase
NENP Non-entry into the national phase

Ref country code: JP

WWW Wipo information: withdrawn in national office

Country of ref document: JP