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

オペレーティングシステムJ/K
(アクセス管理とセキュリティ)
2005年11月14日
酒居敬一([email protected])
http://www.info.kochi-tech.ac.jp/k1sakai/Lecture/OS/2005/
アクセス管理とセキュリティ
• 利用形態
• マルチユーザ環境
– 計算機を複数の利用者で共有使用する環境
• 利用者の概念
• アクセス制御
• 資源管理
• 安全性(セキュリティ)
アクセス形態
• ローカル計算機を利用
– コンソールログイン(ログオン)
• キーボードとディスプレイを使用
• シリアルコンソール
• リモート計算機を利用
– リモートログイン
• SSHやTELNETなど
• ネットワーク越しに遠隔の資源を利用
– ネットワークサービス
• NFS(Network File System)やsamba
• HTTP
利用者(ユーザー)の概念
• OSの中で異なる利用者を区別する
• OSの中では利用者は番号(UID)で識別される
• UIDと利用者名を結びつけるしくみがある
• UIDは所有者として付加される
– ファイル
– プロセス
• 一般利用者と別に特権を持つ利用者がある
– root とか Administrator がスーパーユーザーとか
管理者と呼ばれている、特権をもつ利用者である
例: UNIXにおけるログイン
1. initプロセスがgettyを起動
 このときの情報はinittabなどに書かれている
2.
3.
4.
5.
6.
7.
geetyはログインを受け付けるデバイスを初期化
gettyプロセスはユーザー名入力を待つ
gettyプロセスがユーザー名を引数にloginを起動
loginはパスワード入力を待つ
認証を行い、ログインが可能かどうかしらべる
ユーザーIDやセッションIDを設定しシェルを起動
 5と6は、いわゆるパスワードファイルを参照して決定する
8. シェルは当該ユーザーの初期化スクリプトを実行
9. プロンプトを出して入力を待つ
資源管理
• CPU時間
• プログラムサイズ
• データサイズ
• スタックサイズ
• ディスク使用量
• ファイル使用数
[sakai@star sakai]$ ulimit -a
core file size
(blocks, -c)
data seg size
(kbytes, -d)
file size
(blocks, -f)
max locked memory
(kbytes, -l)
max memory size
(kbytes, -m)
open files
(-n)
pipe size
(512 bytes, -p)
stack size
(kbytes, -s)
cpu time
(seconds, -t)
max user processes
(-u)
virtual memory
(kbytes, -v)
[sakai@star sakai]$
制限をかけることで他の利用者や
システムサービスに影響がないようにする
0
unlimited
unlimited
unlimited
unlimited
1024
8
8192
unlimited
4092
unlimited
UNIXにおけるシステムサービス
• サービスを提供するプロセス→Daemon(守護神)
– Demon(悪魔)ではない。
• ネットワークサービス
– SSHd、HTTPd、FTPd、NFSdなど
• システムサービス
– init, bdflush, syslogdなど
アクセス制御の必要性
• 誰でもアクセスしていいのか?
– 来客者が勝手に使ってもいい?
• どこからアクセスしてもいいのか?
– ネットカフェからのアクセスもいい?
• 何でもアクセスしてもいいのか?
– リモートユーザーが計算機を停止してもいい?
アクセス制御
• ログインによる計算機の利用
– 時間帯や曜日
– 同時ログイン数
• デバイス
– ユーザーやグループ
– 利用者がローカルであるかリモートであるか
• ネットワーク
– IPアドレスやEtherアドレス
– プロトコル
– ネットワークデバイス
安全性
• 一般利用者の安全性
• 特権を持つ利用者に関する安全性
• 遠隔利用のときの安全性
– システムの安全性
– データの安全性
一般利用者の安全性
• パスワードにより利用者を特定する
• 利用可能な資源に制限をかける
• 利用可能なデバイスに制限をかける
• 電源やリセットスイッチに施錠する
• 利用可能なコマンドに制限をかける
一般利用者は何をしても大丈夫
特権を持つ利用者に関する安全性
特権を持つ利用者は何でもできてしまう
• パスワードにより利用者を特定する
• 特権を持つ利用者になれる人間を制限する
• ログインを制限する
– リモートログインの禁止
– ログインできるデバイスを制限する
遠隔利用のときの安全性
• システムの安全性
– リモートアドレスによる接続の制限
– サービスの制限
– 使い捨てパスワードの使用
– パケットのフィルタリング
• データの安全性
– データの暗号化
セキュリティ対策
• システムに欠陥が無い保障は無いのが現状
• 複数の制限機構を利用する
– カーネル内のパケットフィルタ
– デーモンにおける接続の制限
– アプリケーションにおける制限
– 部屋の施錠とか、スイッチの保護など物理的制限
– 不正利用を監視する