情報システム管理 情報システム管理
6 . セキュリティ
水野嘉明
1 .
セキュリティについてセキュリティの必要性、クラッカー の攻撃手段、など
2 .
セキュリティ対策どのようにして、セキュリティを 守るか
本日の内容 本日の内容
2
1
.1 セキュリティの必要性1
.2 セキュリティに関する情報源1
.3 クラッカーの攻撃手段1 1 . . セキュリティについて セキュリティについて
3
1 1 . . 1 セキュリティの必要性 1 セキュリティの必要性
セキュリティは、サーバ管理の基本
最優先課題としなければならないサーバ管理者として、“常識
”が求められる
4
サーバの特質
24時間運転
外部に対して開かれている
元々インターネットは、大学や 研究機関が相互に助け合って発展 本質的には不正に対して脆弱
1 1 . . 1 セキュリティの必要性 1 セキュリティの必要性
5
セキュリティが甘いと・・・
ビールス・ワームに感染
乗っ取り (外部から不正操作)
物理的に不正操作
機密情報の漏洩
破壊(データの破壊、物理的な破壊)1 1 . . 1 セキュリティの必要性 1 セキュリティの必要性
6
他のマシンへの攻撃の踏み台ボット、
IRC
サーバ⇒
SPAM
メールやDDoS
攻撃 に利用サイトの改竄
⇒ ビールス、ワームの配布
フィッシングサイト開設偽サイトを用いた詐欺
1 1 . . 1 セキュリティの必要性 1 セキュリティの必要性
7
知らない間に、加害者となる
セキュリティの甘いサーバは、皆 の迷惑被害者から、 損害賠償 を請求さ れることも有り得る
(「知らなかった」「気付かな かった」 ではすまされない)
1 1 . . 1 セキュリティの必要性 1 セキュリティの必要性
8
「不正アクセス行為の禁止等に関 する法律」 第五条
「・・(サーバ管理者は)当該 特定電子計算機を不正アクセス行 為から防御するため必要な措置を 講ずるよう努めるものとする。」
1 1 . . 1 セキュリティの必要性 1 セキュリティの必要性
9
1 1 . . 2 セキュリティに関する 2 セキュリティに関する 情報源 情報源
セキュリティ上の問題点・脆弱性につ いての情報源
CERT/CC
(コンピュータ緊急対応チーム/調整 センター)
JPCERT
(日本版CERT
) IPA
(情報処理推進機構) OS
、コンピュータメーカ、セキュリ ティソフトのメーカ等の公式サイト10
1 1 . . 3 クラッカーの攻撃手段 3 クラッカーの攻撃手段
パスワードの不備を利用した攻撃
パスワード解析ツール⇒ 辞書攻撃、総当り攻撃
ソーシャルエンジニアリング ⇒ なりすまし、盗聴root のパスワードを入手した
ら、 何でもやり放題
11 セキュリティホールの利用
OS やサーバプログラムのよう な大きなソフトには、バグは必 ず存在する
⇒ 不正なプログラムの実行
1 1 . . 3 クラッカーの攻撃手段 3 クラッカーの攻撃手段
12
ウイルス/ワーム
Windows に感染するものが非常
に多い
Linux のセキュリティホールを
利用するものも、多数ある
1 1 . . 3 クラッカーの攻撃手段 3 クラッカーの攻撃手段
13
1 1 . . 3 クラッカーの攻撃手段 3 クラッカーの攻撃手段
Web サイトの改ざん
Web サイトを閲覧するだけで、
ウィルスに感染する恐れ
FTP の ID とパスワードが盗まれ
、 Web サイトの改ざんが芋づる 式に広がる
14
サーバマシンの破壊・妨害
物理的な破壊
ディスクの盗難、解読
DoS/ DDoS 攻撃
1 1 . . 3 クラッカーの攻撃手段 3 クラッカーの攻撃手段
15
1 1 . . 3 クラッカーの攻撃手段 3 クラッカーの攻撃手段
具体的な攻撃手段の例
ボット / ゾンビ
ウイルスやトロイの木馬により
、他人のコンピュータを遠隔操 作で悪用できるようにする
スパムメールや DDoS 攻撃の発 信源にされる
16
1 1 . . 3 クラッカーの攻撃手段 3 クラッカーの攻撃手段
DoS / DDoS
((Distributed) Denial of Service)
サーバへの要求を連続して大量に送 ることにより、サービスを妨害する 攻撃が
DoS
攻撃ボットを利用し、多数のマシンから
DoS
攻撃を行うのがDDoS
攻撃17
1 1 . . 3 クラッカーの攻撃手段 3 クラッカーの攻撃手段
SQL
インジェクション
Web
上のデータベースに対する攻撃不正な
SQL
文を渡して、様々な不正 を行う(注)
SQL
:データベースを操作 するための言語18
1 1 . . 3 クラッカーの攻撃手段 3 クラッカーの攻撃手段
クロスサイトスクリプティング
Web サイトの掲示板などに、不 正なスクリプトを書き込む攻撃
閲覧すると、不正スクリプトが 実行される
19
1 1 . . 3 クラッカーの攻撃手段 3 クラッカーの攻撃手段
ガンブラー
Web
サイトを改ざんして、「Web
感染型ウイルス」を組み込む感染したマシンから
FTP
パスワー ドを盗聴し、そのWeb
サイトを改 ざん⇒ 感染が多数に広がる
20
1 1 . . 3 クラッカーの攻撃手段 3 クラッカーの攻撃手段
ポートスキャンサーバのポートに順番にアクセス
–
サーバ内で動作しているアプリケーションや
OS
の種類を調べる–
進入口がないか調べる攻撃の前準備
21
2
.1 サーバの物理的管理2
.2 セキュリティホールへの対応2
.3 パスワードの管理2
.4 不要サービスの停止2
.5 フィルタリング2
.6 ログの監視2
.7SELinux
2 2 . . セキュリティ対策 セキュリティ対策
22
2 2 . . 1 サーバの物理的管理 1 サーバの物理的管理
電源
UPS(無停電電源装置)の利用内蔵バッテリを備え、停電時などに サーバに電力を提供
電源容量の確認ブレーカが落ちることが、たまにある
コードの整理コードのカバー、プラグのロック、フ リーアクセスフロア など
23
熱と ほこり
空調
タバコの煙は論外
(昔は結構問題となった)
盗難と破壊への対策
マシンルームへの入退出の制限
筐体のロック
ワイヤーの利用
2 2 . . 1 サーバの物理的管理 1 サーバの物理的管理
24
ビールス・ワーム対策
FD/CD/DVD/USBメモ リの使用を制限・禁止
ソフトウェアのインストールを制 限・禁止⇒ ドライブを接続しないことも ある
2 2 . . 1 サーバの物理的管理 1 サーバの物理的管理
25
2 2 . . 2 セキュリティホールへ 2 セキュリティホールへ の対応 の対応
ソフトは速やかに、アップデートする
自分で気をつけていることは困難 更新があったときに、
自動で通知 あるいは
自動的に アップデート をするように設定する
26
2 2 . . 2 セキュリティホールへ 2 セキュリティホールへ の対応 の対応
セキュリティ上のアップデートは、忘れずに行なわなければならない
アップデートにより、不具合が発生 することもある自動通知 +
テストしてからアップデート
27
2 2 . . 3 パスワードの管理 3 パスワードの管理
長さや期限を制限
最低の長さを規定
英大文字・小文字・数字・記号を混ぜ る
期限: エージング☆
DES
暗号化だと最大8文字
MD5
暗号化を用いる (256
字迄)28
シャドウ・パスワードを利用する
暗号化したパスワードを、誰でも読 める/etc/passwd
ファイルではな く、/etc/shadow
ファイルに格納 する( BSD
では/etc/master.passwd
)
ほとんどのUNIX
で、標準2 2 . . 3 パスワードの管理 3 パスワードの管理
29
アカウントは、必要最小限に
アカウントが多いほど、不正ア クセスの入り口が増える
不要となったアカウントは、す ぐに削除する
(退社した人間のアカウントが 残っており、そのアカウントで不 正アクセスされた例がある)
2 2 . . 3 パスワードの管理 3 パスワードの管理
30
ソーシャルエンジニアリング に注意
各ユーザに注意を徹底する☆ 電話で会社の幹部や客のふり
をして、聞きだそうとする⇒ 誰かにパスワードを聞かれ ても教えないこと
☆ 「パスワードをメモに書いてディ
スプレイに貼り付け」 ⇒ 不可
2 2 . . 3 パスワードの管理 3 パスワードの管理
31
2 2 . . 4 不要サービスの停止 4 不要サービスの停止
動いていないプログラムは、セ キュリティホールとはならない 不要なサービスは、停止する
32
サービスを提供するのは
デーモン
スーパーデーモンから起動され るサービスプログラム
稼働状況の確認
rc?.d ディレクトリを確認
ps / sysv-rc-conf / service / chkconfig などのコマンド
2 2 . . 4 不要サービスの停止 4 不要サービスの停止
33
サービスを停止する
今動いているサービスを停止する⇒ invoke-rc.d / service コマンド
システムの起動時に、自動で起動 するのを停止
⇒ update-rc.d / sysv-rc-conf /
chkconfig コマンド
2 2 . . 4 不要サービスの停止 4 不要サービスの停止
34
今動いている
sendmail
を停止する$ invoke-rc.d sendmail stop
$ update-rc.d -f sendmail remove
起動時に sendmail を起動しない
ようにする (リンクを rc?.d か ら削除)
2 2 . . 4 不要サービスの停止 4 不要サービスの停止
35
$ service sendmail stop
$ chkconfig --del sendmail
2 2 . . 4 不要サービスの停止 4 不要サービスの停止
inetd によるサポートは、
/etc/inetd.conf で定義
不要なサービスは、コメントア ウトしておく
36
2 2 . . 5 フィルタリング 5 フィルタリング
TCP/IP
では、データは「パケット」を単位として送受信される
パケットには以下の情報がある送信元の
IP
アドレス、ポート番号宛先の
IP
アドレス、ポート番号
これらの情報を基に、パケットその ものの通過を制御するのがパケット・フィルタリング
37
SSH
サーバWeb
サーバFTP
サーバ(動作していない)
サーバ
パケット・
フィルタ
IP
アドレスa.b.c.d
からは許可IP
アドレスa.b.c.d
以外からは拒否ポート
20
は拒否 ポート80
は許可2 2 . . 5 フィルタリング 5 フィルタリング
38
再掲
パケット・フィルタリングの設定 iptables
にて設定(前回 「5
.
ネットワークとファイアウォール」にて説明)
2 2 . . 5 フィルタリング 5 フィルタリング
39
代表的なサービスとそのポート番号サービス 機能 番号
Web Web
サーバ80
FTP
ファイル転送(データ)20 FTP
ファイル転送(コマンド)21 SSH
リモートホストの操作(暗号化)
22
Telnet
リモートホストの操作23
DNS
ホストの名前解決53
SMTP
電子メールの配信25
POP3
メールサーバからの受信110
2 2 . . 5 フィルタリング 5 フィルタリング
40
2 2 . . 6 ログの監視 6 ログの監視
ログ (log : 航海日誌 )
システムの運用記録
ログの確認は、サーバの安全性 を確認するための基本作業
不正な操作は行われていないか
その他の不具合は発生していな いか
41
ログの効用例
必要なデーモンが止まっている
不必要なデーモンが動いている
アプリでエラーが発生している
不正なアクセス(攻撃)がある
手当たりしだいのログイン
DDoS 攻撃
ポートスキャン
2 2 . . 6 ログの監視 6 ログの監視 すべて、ログ により発見で
きる
42
ログの種類
システムが生成する シスログ
syslogd というデーモ ンにより出力される
各ソフトが出力するログ
例えば、Webサーバなどが 出力するログ
2 2 . . 6 ログの監視 6 ログの監視
43
プログラムサービス
(例:
Telnet)
プログラムサービス
(例:
Apache)
syslogd
ログファイル
ファイルログ 独自に出力
システムに依頼
2 2 . . 6 ログの監視 6 ログの監視
44
シスログの例 (
/var/log/messages
)2 2 . . 6 ログの監視 6 ログの監視
45
syslogd の設定
どのような種類のシスログを
どこへ出力するか
/etc/syslog.conf ファイルに て 設定
2 2 . . 6 ログの監視 6 ログの監視
46
/etc/syslog.conf
の記法
ファシリティ:出力元を指定
auth, cron, kern, lpr, mail
・・・
プライオリティ:重要度
info, notice,
・・・alert, emerg
出力先:ファイル名、端末などファシリティ
.
プライオリティ 出力先2 2 . . 6 ログの監視 6 ログの監視
47
/etc/syslog.conf 例
2 2 . . 6 ログの監視 6 ログの監視
48
2 2 . . 6 ログの監視 6 ログの監視
ファシリティの種類49
ファシリ
ティ 対象
auth
認証に関するログauthpriv
認証に関するログcron
定期実行プログラムcron kern Linux
カーネルlpr
プリンタ2 2 . . 6 ログの監視 6 ログの監視
ファシリティの種類 ( 続き)
50
ファシリ
ティ 対象
news
ニュースsyslog
シスログuser
ユーザプロセス(一般ア プリ)uucp
ファイル転送プログラムuucp
daemon
上記以外のデーモンlocal*
アプリケーションに依存2 2 . . 6 ログの監視 6 ログの監視
プライオリティの種類
51
Priority
内容debug
デバッグ情報info
一般的な情報notice
重要な通知warn
警告err
一般的なエラー2 2 . . 6 ログの監視 6 ログの監視
プライオリティの種類 (続き)
52
Priority
内容crit
致命的なエラーalert
緊急に対処すべきエラーemerg
システムが停止しそうな状態にあることを示す情報
2 2 . . 6 ログの監視 6 ログの監視
主なログファイル53
/var/log/wtmp
ログインの履歴/var/log/authlog
認証時のログ/var/log/cron cron
の実行結果/var/log/maillog
メール関連/var/log/messages
システムメッセージ/var/log/httpd/
access_log Apache
のアクセスロ グ2 2 . . 6 ログの監視 6 ログの監視
dmesg コマンド
カーネルのログやブート時のメッセ ージを表示する
last コマンド
最近ログインしたユーザの一覧表示
logrotate
ログファイルがパンクしないよう、
ローテーションさせる仕組み
54
2 2 . . 6 ログの監視 6 ログの監視
サーバでは、ログが大量に発生
適当な間隔(例えば 1 ヶ月)毎 に、ログを分けて保存
新しいログファイルが作成され るたびに、一番古い世代のログ ファイルを削除する
55
2 2 . . 6 ログの監視 6 ログの監視
ログローテーションの推移
56
ファイル名 4月時点 5月時点 6月時点 7月時点
log
4月分のログ 5月分のログ 6月分のログ 7月分のログlog.0
3月分のログ 4月分のログ 5月分のログ 6月分のログlog.1
2月分のログ 3月分のログ 4月分のログ 5月分のログlog.2
1月分のログ 2月分のログ 3月分のログ 4月分のログ2 . 7 SELinux
従来の Linux 、 UNIX は、
root の権限が強大
root 権限を奪われると、お手上げ
root の権限を制限
= SELinux
57
2 . 7 SELinux
ファイアウォールやセキュリティホー ルへの対応
侵入されるのを防ぐ SELinux
侵入されても、被害を最小限にする58
2 . 7 SELinux
SELinux
TE (Type Enforcement)
プロセス毎に、必要最小限のアクセ ス権限だけを割当てる
RBAC (Role Based Access Control)
ユーザ(含
root
)のアクセス権限を role
(役割)に基づいて分離する 59
2 . 7 SELinux
SELinux の概念図
60
ファイル等のリソ ース
RBAC RBAC TE TE
プロセスユーザ
アクセス権限 があるかを検
査
2 . 7 SELinux
SELinux
の設定
ユーザーにはロール、プロセスには ドメイン、リソースにはタイプとい うラベルを付与する
ユーザーはどのドメインを許可され ているかを設定
ドメインがタイプに対してどのような操作ができるかを設定 61
2 . 7 SELinux
SELinux の設定
実際の設定方法は、複雑
標準のポリシーを活用
GUI ツールを利用
62
【課題5】
シスログデーモン syslogd を、毎回
起動するよう設定せよ KNOPPIX におけるサービス制御ス
クリプトは、 sysklogd
update-rc.d コマンドを用いる
設定は、もちろん root で行う
設定したならば、いったん終了し、
ブートしなおす
63
【課題5】
次のログファイルを提出せよ
/var/log/messages
/var/log/auth.log
次ページの手順で 1 つのファイル
( report5 )にまとめ、 manaba のレポート 5 に提出する
64
【課題5】
一つのファイルにまとめる手順
65
$ ( root に su )
# cp /var/log/messages report5
# echo --- >> report5
# cat /var/log/auth.log >> report5
# chmod +r report5
# exit
次回の予定 次回の予定
1 . DHCP
サーバDHCP
の仕組みと設定2 . NAT
NAT
の仕組みとNAT
ルータの実現66