人気ブログランキング | 話題のタグを見る

猫の巣の内部統制雑記帳

UNIX/Linux ユーザーパスワード変更日の確認

■■UNIX/Linuxのパスワード管理には2通りある■■
IT統制の確認でもっとも重要視されるのが、パスワードの変更が社内規定通りに行われているかどうか。

UNIX/Linuxの場合、パスワードの変更記録は2通りのケース、すなわち、
・パスワード変更日が判るケース
・パスワード変更日は判らない(そもそも記録されない)ケース
が存在する。 監査したいシステムがどちらのケースに該当するのかは以下の流れで
判断する。
UNIX/Linux ユーザーパスワード変更日の確認_b0196181_1913161.gif





■■まずは判断の元になる証憑の入手から■■
UNIX/Linuxシステムの運用担当者あるいはオペレータに、以下の操作を行ってもらう。
すなわち、コマンドラインから、
cat /etc/passwd を打ちこみ、[Enter]してもらう。 (下図中の(1))
cat というコマンドは、ファイルの中身を画面にASCIIコード(要するにファイルを
構成する素のデータ)で表示せよ、という命令文である。
cat の後ろに続く /etc/passwd という部分は、 /etcというフォルダ (UNIXでは
『ディレクトリ』と呼ぶが、フォルダと言っても大抵は通じる) の中に収納されている
passwd というファイルを示している。
つまり、 cat /etc/passwd という命令は、 /etcというフォルダの中にある、
passwd というファイルを表示せよ、という意味になる。
UNIX/Linux ユーザーパスワード変更日の確認_b0196181_18173550.gif



すると、表示結果(サンプル)は、こうなる。
UNIX/Linux ユーザーパスワード変更日の確認_b0196181_1883593.gif


(2)の行を見ていこう。この行には、
root:x:0:0:root:/root:/bin/bashと書かれている。 
先頭の root はユーザーIDである。 同様に、(3) や (4)の行、あるいは他の行も、
行の先頭から、最初の : (コロン) まではユーザーIDを示している。どんなユーザーIDが
あるかは、そのシステムによって違うが、 root だけは UNIX/Linuxであれば必ず
存在する(rootだけチェックすれば良いという意味ではない)。
passwd ファイルには、こうやって1行につき1ID分の情報が記録されている。
: (コロン) によって項目が区切られていて、普通は

ユーザーID:
暗号化されて記録されたパスワードあるいはパスワードの記録方式:
ユーザーIDの番号:
グループIDの番号:
コメント:
ホーム名:
ログイン方法:


と言う順番に記録されている。

■■パスワードの変更日が記録されている場合は、こう表示される■■
(2)行の root の次のコロンで区切られた次の項目を見よう。 root の次は
:x: となっているから、 パスワードの記録方式は、 [ x ] である。
x とは何ぞや? これは、パスワードが /etc/shadow という別のファイルに記録
されていることを示している。
/etc/shadow ファイルについては、別途、下の方で説明する。

■■パスワードの変更日が記録されない場合は、こう表示される■■
ここが x では無い場合がある。その場合、以下のような表示になる。
UNIX/Linux ユーザーパスワード変更日の確認_b0196181_2071268.gif


root : の右側に、 x ではなく、 fBEpGezy・・・ と並んでいるのが判る。
このfBEp・・・の部分が暗号化されたパスワードである。
もし、このように /etc/passwd ファイルの中の、 ユーザーID名の次が x ではない、
なにか英数字と記号がごちゃごちゃに並んでいるようなものが書いてあったら、
それは暗号化されたパスワードである。
このように /etc/passwd ファイルの中に直接パスワード(の暗号化されたもの)を記述する
方式は1990年代までは割と頻繁に用いられていた。今でも、古い管理方式を踏襲している
システムではこのように /etc/passwd にパスワードが記述されている。
このように /etc/passwd ファイルにパスワードが保存されているシステムでは、パスワードの
変更日付は判らない。

■■パスワードの変更日付の求め方■■
さて、幸いにして /etc/passwd ファイルのパスワード欄に [ x ] と記述されていると、
パスワードは /etc/shadow ファイルの中に以下のように記述されている。
(なお、/etc/shadow ファイルを画面に表示するには、root権限のIDでログインしていないと
操作できない)
UNIX/Linux ユーザーパスワード変更日の確認_b0196181_18171623.gif



(2)の行を見ていこう。
root:$1$xjG6GktC$7DAag9OW5wf47pQmAKh9J/:14776:0:9999:7:::となっている。
root:から始まって、 その次の長い部分は、暗号化されたパスワードである。
暗号化されたパスワードの次の項目には 14776 と書いてある。これがパスワードの変更日付である。
この5桁の値は、1970年1月1日からの経過日数を示している。
この5桁の値の示す西暦を表示するには、Excelで以下のようにする。

UNIX/Linux ユーザーパスワード変更日の確認_b0196181_2057985.gif


まず、A1セルに、1970/01/01 を入力する。
続いて、B1セルに、5桁の数値、この場合の14776 を入れる。
あとは適当なセルで、A1+B1を計算すればよい。
UNIX/Linux ユーザーパスワード変更日の確認_b0196181_20571893.gif


こうやって、パスワード変更日が2010年6月16日だと判る。
by nekonos5 | 2010-08-07 14:16 | UNIX

内部統制思いつきネタと猫どもの日々
by nekonos5

以前の記事

フォロー中のブログ

最新のトラックバック

最新の記事

怒られるのは、いつも下。
at 2010-08-15 18:32
パスワード変更履歴の確認:ド..
at 2010-08-15 13:43
Windows ユーザのパス..
at 2010-08-10 18:25
UNIX/Linux のパス..
at 2010-08-09 01:35
UNIX/Linux ユーザ..
at 2010-08-07 14:16

ファン

ブログジャンル

画像一覧

イラスト:まるめな