ロゴ
ユニオンペディア
コミュニケーション
Google Play で手に入れよう
新しい! あなたのAndroid™デバイスでユニオンペディアをダウンロードしてください!
インストール
ブラウザよりも高速アクセス!
 

Time of check to time of use

索引 Time of check to time of use

Time of check to time of use(TOCTTOU、TOCTOU、トックトゥー)とは、ソフトウェア開発において、ある条件(セキュリティ認証など)をチェック (check) したあと、その結果を行使 (use) するまでに変更が発生することで引き起こされるバグの一種である。これは競合状態の一例である。 単純な例として、ユーザーがページを編集できる機能と、管理者がページをロックできる機能をもつWebアプリケーションを考える。まずユーザーがページの編集を要求し、編集フォームが表示される。次にフォームを送信する前に、管理者がページをロックする。しかし編集は既に開始されており、ユーザーがフォームを送信すると、これらの編集は受理される。すなわち、しかるべき権限がチェックされた結果としてユーザーは編集を開始したのであるが、もはや編集が許可されるべきではなくなったときに、その権限は遅れて行使されたのである。 TOCTTOUはUnixのファイルシステムで発生するのが最も一般的であるが、ローカルソケットや不適切なトランザクションなど、他の状況でも発生しうる。OpenSSHの初期のバージョンには、UNIXドメインソケットに悪用可能な競合状態があった。.

13 関係: 例外処理バグトランザクションファイルシステムオペレーティングシステムシステムコールソフトウェア開発C言語競合状態OpenSSHSetuidUNIXUNIXドメインソケット

例外処理

例外処理(れいがいしょり)とは、プログラムの上位の処理から呼び出されている下位の処理で継続不能、または継続すれば支障をきたす異常事態に陥ったとき、制御を呼び出し元の上位の処理に返し安全な状態になるよう回復処理をすること。その際に発生した異常のことを例外と呼ぶ。 継続不能や継続すると問題になる様な状態としては、次のようなものが挙げられる。.

新しい!!: Time of check to time of useと例外処理 · 続きを見る »

バグ

バグ (bug) とは、英語で「虫」の意であり、転じてコンピュータプログラムの誤りや欠陥を表す。 ソフトウェア・ハードウェア開発における契約文書など、法的な文書ではバグのことを「瑕疵」と記述する。原因や責任の所在などが不明なものを特定性の低い表現の「不具合」と呼ぶことがある。また、セキュリティ上に関わるバグや欠陥は「セキュリティホール」などと呼ばれることもある(正確には、バグはこれらの原因(のひとつ)である)。 多くのバグが含まれ、機能的に正常な役割を果たさないものを、バギー・プログラム (Buggy Program) と呼ぶことがある。 なお、発生したバグを探して取り除く作業はデバッグと呼ばれる。.

新しい!!: Time of check to time of useとバグ · 続きを見る »

トランザクション

トランザクション (transaction) とは、データベース管理システム(または類似のシステム)内で実行される、分けることのできない一連の情報処理の単位である。トランザクション内では、ユーザインタフェース、アプリケーションプログラム、永続性記憶資源、各種I/Oが実行される。 ユーザインタフェースには、トランザクション実行の有無を明確に表示する必要がある。 永続性記憶資源には、自分自身のローカルトランザクションを管理するトランザクショナルなファイルやデータベースが使われる。その理由は、複数の不揮発性データが更新の途中で処理が中断した場合に不揮発性データ値が中途半端な状態で残ってしまい、データを正常値に戻すことができなくなるためである。 永続性記憶資源の管理には、複数のデータ項目の更新操作列をすべて実行するか、まったく実行しないように制御する必要がある。これをアトミック実行という。バッチジョブのような処理形態でも、出力結果はアトミック実行の概念を満たさなければならない。たとえば、月末の領収証の一括印刷処理を行っているときにプリンタエラーでジョブが中断した場合でも、安易な位置から再実行してはならない。 また、分散トランザクションとは、ユーザインターフェイス端末、各種処理サーバ、永続性記憶資源、I/O装置を複数の遠隔装置として構成する処理形態である。論理的な狭義では、複数の永続性記憶資源の管理を使うトランザクション処理の事を指す。ユーザインターフェイス端末が永続性記憶域を分担しないで集中処理サーバにつながっている形態は、単にオンライントランザクション処理 (OLTP) と呼ぶ。 トランザクションが満たすべき技術的要件にACID特性がある。.

新しい!!: Time of check to time of useとトランザクション · 続きを見る »

ファイルシステム

ファイルシステムは、コンピュータのリソースを操作するための、オペレーティングシステム (OS) が持つ機能の一つ。ファイルとは、主に補助記憶装置に格納されたデータを指すが、デバイスやプロセス、カーネル内の情報といったものもファイルとして提供するファイルシステムもある。 より正確に定義すれば、ファイルシステムは抽象データ型の集まりであり、ストレージ、階層構造、データの操作/アクセス/検索のために実装されたものである。ファイルシステムを特殊用途のデータベース管理システム (DBMS) と見なせるかどうかは議論があるが、ファイルシステムとデータベース管理システムには多くの共通点がある。.

新しい!!: Time of check to time of useとファイルシステム · 続きを見る »

オペレーティングシステム

ペレーティングシステム(Operating System、OS、オーエス)とは、コンピュータのオペレーション(操作・運用・運転)のために、ソフトウェアの中でも基本的、中核的位置づけのシステムソフトウェアである。通常、OSメーカーが組み上げたコンピュータプログラムの集合として、作成され提供されている。 オペレーティングシステムは通常、ユーザーやアプリケーションプログラムとハードウェアの中間に位置し、ユーザーやアプリケーションプログラムに対して標準的なインターフェースを提供すると同時に、ハードウェアなどの各リソースに対して効率的な管理を行う。現代のオペレーティングシステムの主な機能は、ファイルシステムなどの補助記憶装置管理、仮想記憶などのメモリ管理、マルチタスクなどのプロセス管理、更にはGUIなどのユーザインタフェース、TCP/IPなどのネットワーク、などがある。オペレーティングシステムは、パーソナルコンピュータからスーパーコンピュータまでの各種のコンピュータや、更にはスマートフォンやゲーム機などを含む各種の組み込みシステムで、内部的に使用されている。 製品としてのOSには、デスクトップ環境やウィンドウシステムなど、あるいはデータベース管理システム (DBMS) などのミドルウェア、ファイル管理ソフトウェアやエディタや各種設定ツールなどのユーティリティ、基本的なアプリケーションソフトウェア(ウェブブラウザや時計などのアクセサリ)が、マーケティング上の理由などから一緒に含められていることもある。 OSの中で、タスク管理やメモリ管理など特に中核的な機能の部分をカーネル、カーネル以外の部分(シェルなど)をユーザランドと呼ぶ事もある。 現代の主なOSには、Microsoft Windows、Windows Phone、IBM z/OS、Android、macOS(OS X)、iOS、Linux、FreeBSD などがある。.

新しい!!: Time of check to time of useとオペレーティングシステム · 続きを見る »

システムコール

テムコールとは、オペレーティングシステム (OS)(より明確に言えばOSのカーネル)の機能を呼び出すために使用される機構のこと。実際のプログラミングにおいては、OSの機能は関数 (API) 呼び出しによって実現されるので、OSの備える関数 (API) のことを指すこともある。なお、μITRONではサービスコールと呼ばれる。また、OSのことをスーパーバイザとも呼ぶため、スーパーバイザコールともいう。 例えば、C言語で使用できるfopen()やmalloc()などのライブラリ関数は、その関数内においてシステムコール(例えばPOSIX準拠のOSであればopen()やsbrk()など)を呼び出す。.

新しい!!: Time of check to time of useとシステムコール · 続きを見る »

ソフトウェア開発

フトウェア開発(ソフトウェアかいはつ、Software Development)とは、ユーザーのニーズやマーケティング上の目標をソフトウェア製品に変換する作業である。ソフトウェア開発には、ソフトウェア工学の研究的側面とソフトウェア製品を開発するマーケティング的側面が含まれていると言われることがある。ソフトウェア製品のマーケティング活動そのものは、必ずしも新商品開発とは結びつかない。顧客の期待を満足させるべく開発されたソフトウェア製品の成功/失敗の責任が工学的側面にあるのかマーケティング的側面にあるのかを判別するのは、多くの場合困難である。そのため、ソフトウェア開発全体として工学的側面とマーケティング的側面を共に理解し、それらの協調を促進することが重要である。工学とマーケティングの両方の側面をまとめ、バランスをとるのは、プロジェクトマネージャなどと呼ばれる立場の人である。 マーケティングとの関わりはソフトウェア要求分析としても知られている。ソフトウェア開発はクライアントが必要とするもの以上の機能を開発しようとしたり、逆に妥協しようとしたりする。そのため、ソフトウェア開発は通常の工学/技術とは関連付けられていなかった各種プロセス(市場調査、人材登用、リスクマネジメント、知的財産権、予算、危機管理など)まで取り込もうとする場合がある。その場合、ソフトウェア開発は Business Development と呼ばれる領域ともオーバーラップすることになる。 Alan M. Davis は著書 "Great Software Debates" の章 "Requirements" の節 "The Missing Piece of Software Development" で次のように述べている.

新しい!!: Time of check to time of useとソフトウェア開発 · 続きを見る »

C言語

C言語(シーげんご)は、1972年にAT&Tベル研究所のデニス・リッチーが主体となって開発したプログラミング言語である。英語圏では単に C と呼んでおり、日本でも文書や文脈によっては同様に C と呼ぶことがある。.

新しい!!: Time of check to time of useとC言語 · 続きを見る »

競合状態

合状態(きょうごうじょうたい、Race Condition、レースコンディション、またはRace Hazard、レースハザード)は、システムや処理過程の問題であり、処理過程の出力結果がイベントなどの順序やタイミングと予期しない(かつ危険な)依存関係にある場合をいう。本来の意味は、2つの電気信号が競合していずれかが出力に影響を与える状態である。 競合状態は設計の不十分な電子工学システム、特に論理回路で発生するが、コンピュータソフトウェアでもよく発生する。.

新しい!!: Time of check to time of useと競合状態 · 続きを見る »

OpenSSH

OpenSSH (Open Secure Shell) は、SSHプロトコルを利用するためのソフトウェアで、SSHサーバおよびSSHクライアントを含む。OpenSSHは、OpenBSDプロジェクトにより開発が行われ、BSDライセンスで公開されている。オリジナルのSSH実装であるSSH Tectiaなど、SSHには他にいくつかの実装があるが、2008年の時点でOpenSSHは世界で最も使用されているSSH実装である。.

新しい!!: Time of check to time of useとOpenSSH · 続きを見る »

Setuid

setuid と setgid は、UNIXにおけるアクセス権を表すフラグの名称であり、ユーザーが実行ファイルを実行する際にその実行ファイルの所有者やグループの権限で実行できるようにする。それぞれ、set user ID と set group ID の略。一般ユーザーが高い特権レベルでしか実行できないタスクを一時的に実行できるようにする仕組みである。提供されるユーザー識別子やグループ識別子によって必ず特権レベルが高くなるわけではないが、少なくともそれら識別子は特定のものが指定されている。 setuid と setgid は一般ユーザーよりも高い特権レベルが必要とされるタスクの実行に必要である。例えば、そのユーザーのログインパスワードの変更などである。中には意外なタスクで特権レベルを上げる必要があることもある。例えば、ping コマンドはネットワークインタフェース上で制御パケットを送り、応答を待つ必要があり、特権が必要である。.

新しい!!: Time of check to time of useとSetuid · 続きを見る »

UNIX

UNIX (ユニックス、Unix、)は、コンピュータ用のマルチタスク・マルチユーザーのオペレーティングシステムの一種である。公式な商標は「UNIX」だが、商標以外の意味として「Unix」、またはスモールキャピタルを使用して「Unix」などとも書かれる。Unixは1969年、AT&Tのベル研究所にて、ケン・トンプソン、デニス・リッチーらが開発を開始した。 当初はアセンブリ言語のみで開発されたが、1973年にほぼ全体をC言語で書き直した。このため、Unixは歴史上、初めて高水準言語で書かれたOSであると言われる。 1973年の段階ではPDP-11に依存したコードが多く、移植性は低かったが、その後徐々にPDP-11に依存したコードを減少させ、1978年にInterdata 8/32への移植に成功して以降、徐々に他のプラットフォームにも移植されていった。 現在では「Unix」という語は、Unix標準に準拠するあらゆるオペレーティングシステムの総称でもある。現在ではUnixシステムは多数の系統に分かれており、AT&Tの開発停止後も、多数の商用ベンダーや非営利組織などによって開発が続けられている。 1970年代から1980年代の初期にかけて、Unixは大学や研究所などの教育機関で広範囲に採用され、特にカリフォルニア大学バークレー校をオリジナルとするBSD系統が誕生した。また Version 7 Unix や UNIX System V の特徴を持つオペレーティングシステムは「伝統的なUNIX」(traditional Unix)とも呼ばれる。 2007年に、「UNIX」の商標の所有者である標準化団体のThe Open Groupは、Single UNIX Specificationを完全に満たすと認証を受けたシステムのみが「UNIX」の商標を得られるとした。このためそれ以外のシステムは(ずっと以前から、AT&T版およびBSD以外を指して使われていた用語だが)「Unixシステムライク」または「Unixライク(Unix系)」と呼ばれるようになった。ただし The Open Groupはその呼称を気に入っていない。 現在では多く使われているUnixとしてはmacOS、AIX、HP-UX、Solarisなどがある(いずれも商用)。また認証を受けていないUnix系としてはLinux(派生OSにAndroid他)やMINIX、BSDの派生OS(FreeBSD、NetBSD、OpenBSD、DragonFly BSDなど)がある。.

新しい!!: Time of check to time of useとUNIX · 続きを見る »

UNIXドメインソケット

UNIXドメインソケット(英: )や IPCソケット とは、単一のオペレーティングシステム内で実行されるプロセス間でデータを交換するためのデータ通信の終点。名前付きパイプに類似した機能を備えながら、パイプはバイトストリームにしか使えないが、UNIXドメインソケットは、バイトストリームだけでなく、データグラムとしても利用できる。 UNIXドメインソケットを使用しているプロセスは、共通の親プロセスを共有する必要はない。 UNIXドメインソケット用のAPIは、のものに類似しているが、通信のために基礎となるネットワークプロトコルは使用していない。 UNIXドメインソケットはPOSIXオペレーティングシステムの標準コンポーネントである。 UNIXドメインソケットは、アドレス・名前空間としてファイルシステムを使用している。これらは、ファイルシステム内のinodeとしてプロセスから参照される。これは、2つのプロセスが通信するために、同じソケットを開くことができる。しかし、コミュニケーションは、完全にオペレーティングシステムのカーネル内で発生する。 データを送ることに加えて、プロセスは、sendmsg() およびrecvmsg() システムコールを使用してUNIXドメインソケット接続を経由してファイル記述子を送信することができる。.

新しい!!: Time of check to time of useとUNIXドメインソケット · 続きを見る »

ここにリダイレクトされます:

TOCTTOU

出ていきます入ってきます
ヘイ!私たちは今、Facebook上です! »