セキュリティアカウントマネージャ (セキュリティアカウントマネージャ) とは | 意味や読み方など丁寧でわかりやすい用語解説
セキュリティアカウントマネージャ (セキュリティアカウントマネージャ) の読み方
日本語表記
セキュリティアカウントマネージャー (セキュリティアカウントマネージャー)
英語表記
Security Account Manager (セキュリティアカウントマネージャー)
セキュリティアカウントマネージャ (セキュリティアカウントマネージャ) の意味や用語解説
セキュリティアカウントマネージャ(Security Account Manager、以下SAM)は、Microsoft Windowsオペレーティングシステムに不可欠なコンポーネントであり、ローカルコンピュータ上のユーザーアカウントとグループの情報を管理するためのデータベースである。システムエンジニアを目指す上で、Windowsの認証メカニズムの根幹を理解するために、SAMの役割と仕組みを把握することは極めて重要となる。SAMは、ユーザーがコンピュータにログオンする際の認証プロセスにおいて中心的な役割を担っており、Windowsのセキュリティ基盤を支えている。このデータベースは、通常、システムの保護された領域である`%SystemRoot%\System32\config`ディレクトリ内に「SAM」という名前のファイルとして格納されている。このファイルは、オペレーティングシステムが稼働している間はロックされており、通常のユーザーやアプリケーションが直接アクセスすることはできないように厳重に保護されている。 SAMデータベースの最も重要な機能は、ユーザー認証である。ユーザーがWindowsにログオンしようとするとき、ユーザー名とパスワードを入力する。この入力情報は、Winlogonというプロセスによって受け取られ、Local Security Authority Subsystem Service(LSASS)というセキュリティの中核を担うプロセスに渡される。LSASSは、入力されたパスワードをハッシュ化し、SAMデータベースに保存されている該当ユーザーのパスワードハッシュと比較する。ハッシュ化とは、元のパスワードを不可逆的な固定長の文字列に変換する処理であり、これによりSAMデータベースには実際のパスワード(平文)ではなく、安全性の高いハッシュ値が保存される。入力されたパスワードから生成されたハッシュ値と、データベースに保存されているハッシュ値が一致した場合、認証は成功とみなされる。認証に成功すると、LSASSはそのユーザーの権限情報を含んだアクセストークンを生成し、ユーザーセッションを開始させる。この一連の流れにより、正当なユーザーのみがシステムにアクセスできる仕組みが実現されている。 SAMデータベースには、パスワードのハッシュ値以外にも、アカウントを管理するための様々な情報が格納されている。具体的には、ユーザー名、各ユーザーやグループを一意に識別するためのセキュリティ識別子(SID)、ユーザーが所属するグループの情報、ユーザーアカウント制御(UAC)に関連する設定、パスワードの有効期限や最低文字数といったアカウントポリシーなどが含まれる。特にSIDは重要であり、Windowsは内部的にユーザー名ではなくこのSIDを用いてオブジェクトへのアクセス権を管理している。そのため、ユーザー名を変更しても、SIDは変わらないため、ファイルやフォルダへのアクセス権は維持される。SAMデータベースに保存されるパスワードハッシュには、歴史的にいくつかの種類が存在した。古いWindowsで使われていたLMハッシュは脆弱性が指摘され、現在ではより強固なNTLMハッシュや、その改良版であるNTLMv2ハッシュが主に使用されている。これらのハッシュ化技術の進化は、パスワードの安全性を高めるための継続的な取り組みの一環である。 このように重要な情報を含むSAMデータベースは、攻撃者にとって格好の標的となる。もし攻撃者がSAMデータベースの内容を不正に取得できれば、パスワードハッシュを解析してパスワードを割り出すオフライン攻撃や、ハッシュ値そのものを利用して認証を偽装するPass the Hash攻撃などにつながる危険性がある。そのため、WindowsはSAMを保護するために多層的なセキュリティ機構を備えている。前述の通り、ファイル自体はシステム稼働中にロックされ、アクセス制御リスト(ACL)によってSYSTEMアカウントなどのごく限られた特権アカウントからしかアクセスできないように設定されている。また、メモリ上でもLSASSプロセスによって厳重に管理されている。さらに、Windows 2000以降ではSYSKEYという機能によってSAMデータベース全体が暗号化されていたが、現在はOSの起動ボリューム全体を暗号化するBitLockerなどのディスク暗号化技術を利用することが、より強力な保護策として推奨されている。 SAMの役割を理解する上で、Active Directoryとの違いを明確にすることも重要である。SAMは、あくまで個々のコンピュータ(スタンドアロンのPCやワークグループ内のサーバーなど)に閉じたローカルアカウント情報を管理するものである。一方、企業などで利用されるドメイン環境では、ドメイン全体のユーザーアカウントやグループ、コンピュータ情報などを一元管理するためにActive Directoryが使用される。ドメインに参加しているコンピュータにドメインユーザーがログオンする場合、認証はSAMではなく、ドメインコントローラ上のActive Directoryに対して行われる。ただし、ドメインコントローラ自体にもSAMデータベースは存在し、これはディレクトリサービス復元モード(DSRM)で使用する管理者アカウントなど、特殊なローカルアカウントを管理するために保持されている。 結論として、セキュリティアカウントマネージャは、Windowsのローカル認証における心臓部と言えるデータベースである。ユーザーアカウント情報とパスワードハッシュを安全に保管し、ログオン時の認証プロセスを担うことで、システムの基本的なセキュリティを確保している。その重要性から厳重な保護対策が施されているが、同時に攻撃の対象ともなり得るため、システムエンジニアはSAMの仕組みを正しく理解し、適切なパスワードポリシーの適用やディスク暗号化といったセキュリティ対策を講じることが求められる。