セキュリティプログラムの基本

セキュリティプログラム、特に、アクセス権の制御は、結構、使われることが多いのですが、あまりまとまっている書き物を
見たことが無いのでネタにします。
大体、セキュリティプログラムは面倒なことが多い割に、いまいちよくわかならないことが多いです。私だけか…
例えば、ファイルにアクセス権を付ける、ミューテックスにアクセス権を付ける、パイプにアクセス権を付けるとかです。
Windows では、セキュリティで保護できるオブジェクトは、例えば次のようなものがあります。

オブジェクト 作成するときに使う API
ディレクトリ CreateDirectory()
CreateDirectoryEx()
ファイル CreateFile()
イベントオブジェクト CreateEvent()
ミューテックスオブジェクト CreateMutex()
ファイルマッピングオブジェクト CreateFileMapping()
ジョブオブジェクト CreateJobObject()
ネットワーク共有オブジェクト NetShareAdd()
匿名パイプ CreatePipe()
名前付きパイプ CreateNamedPipe()
プロセスオブジェクト CreateProcess()
CreateProcessAsUser()
スレッドオブジェクト CreateThread()
CreateRemoteThread()
レジストリ RegCreateKeyEx()
セマフォオブジェクト CreateSemaphore()
アクセストークン DuplicateTokenEx()
デスクトップ CreateDesktop()
プリンター AddPrinter()

これらの API のパタメーターには SECURITY_ATTRIBUTES があります。これでセキュリティを制御しているのですが、
このパラメーターを作るのが、結構、面倒っちィわけです。

今回は、API の紹介は後にして、まずは、基本ステップの紹介です。

  1. SID リストを作成して、アクセス許可 ACE とアクセス拒否 ACE を準備する。
  2. セキィリティ記述子を作成して、初期化する。
  3. ACE を保持するための DACL を作成して初期化する。
  4. ACE を DACL に追加する。
  5. DACL をセキュリティ記述子に追加する。
  6. 新規セキュリティ記述子を使い、オブジェクトを作成する。
  7. 後処理を行う。

一つ一つの内容は、それなりの量になるので、また別の記事で書きます。
上記の流れが必要なんだということだけ、まずは知っておいてください。

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中

%d人のブロガーが「いいね」をつけました。