Time-of-Check-to-Time-Of-Use-Problem

Time-of-Check-to-Time-Of-Use-Problem

Der Begriff Time-of-Check-to-Time-Of-Use-Problem, abgekürzt auch als TOCTTOU (ausgesprochen als TOCK too) beschreibt ein durch einen Programmfehler (Software-Bug) bei der Ausführung Computerprogrammen auftretendes Problem. Allgemein wird damit eine Form der Race Condition beschrieben, bei der der Zeitraum zwischen der Überprüfung eines Systemzustandes (Time-to-check), zum Beispiel der Beschreibbarkeit einer Datei, und der Verwendung des Prüfergebnisses (Time-to-use), also zum Beispiel der erwünschten Änderung dieser Datei, genutzt wird, um den geprüften Zustand, also hier die Beschreibbarkeit dieser Datei, zu verändern und damit das Prüfergebnis für den weiteren Programmlauf irrelevant zu machen. Somit wäre zum Beispiel auch ein durchgeführter Virencheck eines Antivirenprogrammes eventuell hinfällig, wenn zwischen der Überprüfung der Datei auf Virenfreiheit und deren Verwendung im nachfolgenden Programmablauf diese Datei so verändert wird, das sie einen Virus enthält oder dessen Aktivierung oder Ausführung erlaubt.

Der Begriff wurde 1996 von Matt Bishop und Michael Dilger in diesem Zusammenhang benutzt. Andrey Kolishak beschrieb 2003 das gleiche Problem für die Verwendung von Windows Hooks.

Beispiele

Eine Webanwendung kann es beispielsweise deren Nutzern erlauben, bestimmte Seiten zu verändern, dem Administrator der Anwendung jedoch zusätzlich die Möglichkeit einräumen, Seiten gegen Änderungen zu sperren. Wenn der Benutzer seine Änderung durchführen möchte, wird für ihn eine Eingabemaske dargestellt, in der er seine Daten eingeben oder ändern kann. Ein mit dem TOCTTOU-Problem behaftetes System hat ihm in diesem Augenblick die Änderung erlaubt (Time-to-Check), da es seine Berechtigung zur Änderung geprüft hat. Wenn jedoch der Administrator anschließend, nachdem der Benutzer die Rechte erhalten und bevor er seine Änderungen gespeichert hat, die Seite gegen Änderungen sperrt und damit prinzipiell eine Änderung verbietet, wird diese Administratoraktion bei einem fehlerbehafteten System bei einem anschließenden Abspeichern der Benutzerdaten und damit zum Nutzungszeitpunkt (Time-to-Use) der Schreiberlaubnis ignoriert werden.

In Unix würde der folgende Abschnitt eines in C geschriebenen Programmes das TOCTTOU-Problem aufweisen, wenn er für ein mit setuid-Rechten ausgestattetes Programm genutzt würde:

if (access(file, R_OK) != 0) {
 exit(1);
}
 
fd = open(file, O_RDONLY);
// do something with fd…

Dieses Programmstück soll überprüfen, ob der angemeldete Benutzer, der dieses Programm benutzt, mit dem Rechten des eigenen Benutzerkontos (Real Userid im Gegensatz zur Effective Userid, die andere Rechte beinhalten kann) eine bestimmte Datei (hier file) lesen (R_OK für Read, dt. Lesen) darf. Diese Race Condition eröffnet folgende Angriffsmöglichkeit

  1. Man legt eine für den Benutzer lesbare Datei an.
  2. Man startet dieses Programm.
  3. Man ändert die Datei zu einer symbolischen Verknüpfung (symlink), die auf eine für den Benutzer nicht lesbare Datei zeigt.

Für einen Angreifer ist es durchaus ohne große Schwierigkeiten möglich, diese Bedingungen für einen Angriff zu schaffen, das Verfahren erfordert allerdings eine genaue zeitliche Abstimmung der einzelnen Aktionen.

Daraus ergibt sich in diesem Falle, das der in derzeitigen Unix-Systemen verwendete Systemaufruf (system call) access in der hier benutzten Form nur in speziellen Fällen eingesetzt werden sollte, etwa als erster Schritt zur Erlangung exklusiver Zugriffsrechte (Mutex, Test and Test-and-set).

Literatur

Quellen


Wikimedia Foundation.

Игры ⚽ Поможем сделать НИР

Schlagen Sie auch in anderen Wörterbüchern nach:

  • Time management — is commonly defined as the various means by which people effectively use their time and other closely related resources in order to make the most out of it. [The Concise Dictionary of Business Management, by David A. Statt, Taylor Francis Group… …   Wikipedia

  • Problem solving — forms part of thinking. Considered the most complex of all intellectual functions, problem solving has been defined as higher order cognitive process that requires the modulation and control of more routine or fundamental skills (Goldstein Levin …   Wikipedia

  • Time signal — These automatic signal clocks were synchronized by telegraphy in 1905 before the widespread use of radio A time signal is a visible, audible, mechanical, or electronic signal used as a reference to determine the time of day. Contents 1 Audible… …   Wikipedia

  • Use case — A use case is a description of a system’s behaviour as it responds to a request that originates from outside of that system.The use case technique is used in software and systems engineering to capture the functional requirements of a system. Use …   Wikipedia

  • time — time1 [ taım ] noun *** ▸ 1 quantity clock measures ▸ 2 period ▸ 3 occasion/moment ▸ 4 time available/needed ▸ 5 how fast music is played ▸ + PHRASES 1. ) uncount the quantity that you measure using a clock: Time seemed to pass more quickly than… …   Usage of the words and phrases in modern English

  • One-time pad — Excerpt from a one time pad In cryptography, the one time pad (OTP) is a type of encryption, which has been proven to be impossible to crack if used correctly. Each bit or character from the plaintext is encrypted by a modular addition with a bit …   Wikipedia

  • P = NP problem — The relationship between the complexity classes P and NP is an unsolved question in theoretical computer science. It is considered to be the most important problem in the field – the Clay Mathematics Institute has offered a $1 million US prize… …   Wikipedia

  • Clique problem — The brute force algorithm finds a 4 clique in this 7 vertex graph (the complement of the 7 vertex path graph) by systematically checking all C(7,4)=35 4 vertex subgraphs for completeness. In computer science, the clique problem refers to any of… …   Wikipedia

  • Transformation problem — In 20th century discussions of Karl Marx s economics the transformation problem is the problem of finding a general rule to transform the values of commodities (based on labour according to his labour theory of value) into the competitive prices… …   Wikipedia

  • Daylight saving time — This article is about daylight saving time in general. For DST in a specific location, see Daylight saving time by country. Summer time and DST redirect here. For other uses, see Summer time (disambiguation) and DST (disambiguation) …   Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”