8章その他のアクセス検証の実例
カーネルリソースを開く際に呼び出し元に与えられるアクセス権限は、アクセス検証処理によって決定されます。その他にも、アクセス検証は追加のセキュリティ機構としても機能するため、アクセス権限の付与とは異なる目的でアクセス検証処理が実行される場合があります。この章では、第2のセキュリティ機構としてアクセス検証が用いられるいくつかの状況について解説します。
まず、呼び出し元がリソースの階層にアクセスできるかどうかを判断するトラバーサル検証から始めます。次に、ハンドルが複製された場合にアクセス検証がどのように適用されるのかについて説明します。また、サンドボックス化されたアプリケーションからプロセス一覧情報などのカーネル情報へのアクセス制限を、アクセス検証により実装する手法についても触れます。最後に、リソースのアクセス検証処理を自動化するPowerShellコマンドを取り上げます。
8.1 トラバーサル検証
オブジェクトディレクトリツリーのような階層化された一連のリソースにアクセスする場合、ユーザーは目的のリソースに到達するまで階層をたどる必要があります。階層内のすべてのディレクトリまたはコンテナーに対して、システムはアクセス検証を実施し、呼び出し元が次のコンテナーの情報を取得できるかどうかを判断します。この検証はトラバーサル検証(Traversal Check)と呼ばれ、コードがI/Oマネージャーやオブジェクトマネージャー内のパスを検索するたびに実施されます。図8-1には、例としてABC\QRS\XYZ\OBJというパスを用いて、OMNSオブジェクトにアクセスするために必要なトラバーサル検証を図示しています。
図8-1 OBJへのアクセスに必要なトラバーサル検証 ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access