21. OSセキュリティに関する知識

Ⅰ.概要

OSのセキュリティ機能として必要な機能と、オープンソースOSとしてもっとも利用が期待されるLinuxのセキュリティ管理に関して、実際の開発・運用の際に必要な管理知識・手法の種類と特徴、内容を学ぶ。

Ⅱ.対象専門分野

職種共通

Ⅲ.受講対象者、受講前提

基礎的なコンピュータ科学、セキュリティ工学基礎(ITSSレベル1程度)を習得、経験を持つレベルの知識を有すること。

Ⅳ.学習目標

・ サーバを運用する際に必要となるシステムセキュリティおよびネットワークセキュリティ強化のための知識を、実習を行うことにより習得し、セキュリティホールのない安全なサーバをLinuxにより構築する。

・ セキュリティ監査ツールを用いてシステムの脆弱性を発見できる。

・ セキュリティホールのあるパッケージのアップデートができる。

・ アカウントの保護のための設定ができる。

・ syslogdの設定、及びlogcheckによるログの監視ができる。

・ Tripwireによるシステムの改ざんチェックを行うことができる。

・ サービスの把握と不要なサービスの無効化ができる。

・ xinetdの設定ができる。

・ iptablesコマンドを使用して、パケットフィルタリングの設定ができる。

・ sshの公開鍵認証方式を用いた暗号化通信、及びVPNの設定ができる。

Ⅴ.使用教科書、教材等

『Linuxサーバセキュリティ』

Michael D. Bauer 著、豊福 剛 訳

Ⅵ.習得スキルの評価方法

講義終了後の受講レポート、定量アンケート、知識確認ミニテスト、演習問題の取り組み状況を総合的に判断して評価を行う。

Ⅶ.カリキュラムの構成

レベル1(基本) 第1回~第8回

レベル2(応用) 第9回~第15回

第1回 OSのセキュリティ機能(講義 90分)

OSのセキュリティの基本概念と必要な機能、その発展の歴史、必然性、利点などを理解する。

(1)インターネットセキュリティの概要

1. 不正アクセスの手口

2. セキュリティ対策の概要

3. 各種クラッキングツールを使用してのroot権限取得

(2)リスクの構成要素の識別と評価

1. システム資源の認識

2. セキュリティ目標の設定

・ 脅威の識別

・ 動機

・ 脆弱性に対する攻撃

3. 防御施策立案

・ システム資産価値低減

・ 脆弱性緩和

・ 攻撃緩和

第2回 Linuxサーバのローカルセキュリティ対策(講義+ワークショップ 90分)

Linuxサーバのローカルセキュリティ対策の基本項目の内容と設定内容を実習で理解する。

(1)基本的な行動

1. ファイルのパーミッション

2. ログの管理と監視

3. ブート時のセキュリティ

4. rootアカウントの保護

5. ログイン制限

6. パスワード管理

(2)改ざんチェック

1. パスワード

2. ファイル

3. システムログ

4. その他のリソース

第3回 Linuxのネットワークセキュリティ対策(講義+ワークショップ 90分)

Linuxサーバのネットワークセキュリティ管理の基本設定、パッケージの導入などの方法とその作業内容を実習で理解する。

(1)ネットワークセキュリティの基本設定

1. パケットフィルタリング(Netfilter、iptablesによるルールの設定の概要)

2. xinetdサービス

3. xinetd設定ファイル

4. telnetサーバの構成

5. xinetdのセキュリティ

(2)盗聴対策

1. 通信の暗号化

2. サーバ通信の監視

第4回 Linuxによるファイアウォール構築(講義+ワークショップ 90分)

Linuxサーバによるファイアウォール設計、基本設定、導入などの方法とその作業内容を実習で理解する。

(1)ファイアウォールとDMZアーキテクチャの種類

1. 内部と外部のアーキテクチャ

2. サーバファイアウォールによるDMZアーキテクチャ

3. DMZへのサーバ配置の決定

4. セキュリティ機能配置の決定

(2)サーバファイアウォール設定のポリシー

(3)iptablesによるセキュリティ管理

1. ルータの設定の確認

2. iptablesの位置づけ

3. iptablesの設定の順序と方法

4. iptablesの運用

第5回 Linuxのサーバセキュリティ設定(講義+ワークショップ 90分)

Linuxサーバセキュリティ管理の基本設定、アプリケーションパッケージの導入などの方法とその作業内容を実習で理解する。

(1)サーバとしての管理方針と実施方法

1. インストール方針

2. サービス提供方針

(2)サーバでのセキュリティ実施方法

1. ソフトウェアを最新状態に保つ

2. 不要なユーザアカウントの削除

3. シェルアクセスの制限

4. 既知のユーザだけにアクセスを限定する

5. chrootされたファイルシステムでサービスを実行する

6. SUID=rootの使用を極力なくす

7. 必要なソフトウェアだけをインストール

第6回 安全なリモートアクセス(講義+ワークショップ 90分)

Linuxの管理者権限の設定、アプリケーションパッケージの導入などの方法とその作業内容を実習で理解する。

(1)セキュアシェルの基礎知識

1. SSHの動作について

2. OpenSSHの入手とインストール

3. SSHの手引き

4. sftpとscpを使って暗号化されたファイル転送を行う

5. SSHの設定を調整する

6. sshdの設定と実行

(2)SSHの応用

1. SSHでの公開鍵暗号

2. RSAとDSAの認証の設定と使用法

3. SSHを使ったリモートコマンドの実行

4. SSHを使ったTCPポートフォワーディング

第7回 SSLによるサーバVPNとCA(講義+ワークショップ 90分)

LinuxサーバによるSSLによるサーバVPNとCAの導入、設定の方法とその作業内容を実習で理解する。

(1)トンネリングの仕組みと設定

1. OpenSSLの設定

2. Stunnelの設定

3. CAを使うための手順

4. Stunnelを用いたクライアント/サーバ間のトンネリング実習

(2)IPsecによる暗号化通信の導入

1. Linux2.6におけるIPsecの構成

2. 鍵交換デーモン

3. x509証明書を用いたPKI

(3)IPsecによる暗号化通信ワークショップ

第8回 ドメインネームサービスのセキュリティ対策(講義+ワークショップ 90分)

LinuxのDNSに関してセキュリティ設定、導入などの方法とその作業内容を実習で理解する。

(1)DNSの基本動作

(2)DNSセキュリティの原則

1. セキュリティリスク

2. アタックの種類と特徴

3. DNSが持つべきセキュリティ機能

(3)BINDにおけるセキュリティ対策

1. BINDのバージョンとセキュリティ

2. セキュリティを考慮した実行環境

3. named.confのセキュリティ対策

4. ゾーンファイルのセキュリティ

5. BINDの高度なセキュリティ:TSIGとDNSSEC

(4)djbdns

1. djbdnsの概要

2. djbdnsのサービス

3. djbdnsのインストール

4. tinydnsの実行

5. djbdnsクライアントプログラムの実行

6. rsyncとsshによるゾーン転送の暗号化

第9回 電子メールのセキュリティ対策(講義+ワークショップ 90分)

Linuxのメールサーバ機能に関してセキュリティ設定、導入などの方法とその作業内容を実習で理解する。Sendmail、Postfixを使用してセキュリティメールの構築方法を理解する。

(1)MTAとSMTPセキュリティ

1. 電子メールのセキュリティアーキテクチャ

・ SMTPゲートウェイとDMZネットワーク

・ SMTPセキュリティ

・ 迷惑メール

・ SMTP AUTH

・ SMTPコマンドによる検証

2. MTAにセキュリティ対策

(2)Sendmailのセキュリティ

1. Sendmailの長所と短所

2. Sendmailのセキュリティ構築

・ Sendmailの入手とインストール

・ Sendmailの設定の概要

・ Sendmail.mcの設定

・ Sendmailをchrootして実行するための設定

・ Sendmailのマップやその他のファイルの設定

・ SendmailにおけるSMTP AUTHの設定

・ SendmailとSTARTTLS

・ TLSを使うSendmailの設定

(3)Postfix

1. Postfixのアーキテクチャ

2. Postfixのセキュリティ構築

・ Postfix入手とインストール

・ Postfixの設定

第10回 Webのセキュリティ対策①(講義+ワークショップ 90分)

LinuxによるWebサーバの設定、導入方法とその作業内容を実習で理解する。

(1)Webサーバのセキュリティ

1. Webの問題と対策

2. 脆弱性とセキュリティ対策のタイミング

3. Webセキュリティの原則

(2)Apacheのセキュリティ構築

1. 導入と設定

・ インストールについて

・ Apacheファイル階層のセキュリティ対策

・ Apacheの設定

・ Apacheの設定ファイル

・ 設定オプション

2. セキュリティコンポーネント

・ 静的コンテンツ

・ 動的コンテンツ:SSI(Server-Side Includes)

・ 動的コンテンツ:CGI(Common Gateway Interface)

第11回 Webのセキュリティ対策②(講義+ワークショップ 90分)

Linuxの管理者権限の設定、アプリケーションパッケージの導入などの方法とその作業内容を実習で理解する。

(1)CGIスクリプトのセキュリティ対策

1. HTTP、URL、CGI

2. フォームデータの処理

3. ファイルのインクルード

4. フォームからのファイルアップロード

5. データベースへのアクセス

6. 他のスクリプトのチェック

(2)Webサーバのセキュリティ応用機能

1. 認証

2. アクセスコントロール

3. セッションとクッキー

4. サイト管理:ファイルのアップロード

5. 新しいフレームワーク:SOAP、Webサービス、RESTのセキュリティ

6. ロボットとスパイダー

7. 攻撃の検知と回避

8. キャッシュ、プロキシ、ロードバランサ

第12回 ファイルサービスのセキュリティ対策(講義+ワークショップ 90分)

Linuxのファイルサービスのセキュリティ設定、導入などの方法とその作業を実習で理解する。

(1)FTPのセキュリティ

1. FTPセキュリティの原則

2. ProFTPDを使った匿名FTPの実現

3. FTP以外のファイル共有方式

・ SFTPとscp

(2)FTPサーバのセキュリティ設定内容と手順

1. パーミッション

2. ftpによるファイル書き込みを禁止する方法

3. welcome.msg

4. /etc/ftp* ファイル群

5. /etc/ftpaccessによるアクセス制御

6. uploadの設定

7. /etc/ftpusers の設定

8. /etc/ftphosts の設定

第13回 システムログの管理(講義+ワークショップ 90分)

Linuxのシステムログの管理の方法、手順、設定、作業内容を実習で理解する。

(1)syslog

1. syslogの設定

2. syslog-ng

・ syslog-ngをソースコードからインストールする

・ syslog-ngを実行する

・ syslog-ngの設定

・ 高度な設定

3. loggerを使ってシステムログをテストする

4. システムログファイルの管理

(2)swatchを用いたログ監視の自動化

1. swatchの導入と運用

・ swatchのインストール

・ swatchの設定の概要

・ swatchの高度な設定

・ swatchの設定最適化

第14回 Linuxによる侵入検知の手法(講義+ワークショップ 90分)

Linuxサーバを用いて、サーバによる侵入検知の仕組み、方法、実際の作業内容を実習で理解する。

(1)Tripwire

1. Tripwireの入手、コンパイル、インストール

2. Tripwireの設定

3. Tripwireによるチェックと更新

4. Tripwireのポリシー変更

5. その他の整合性チェックプログラム

(2)Snort

1. Snortの入手、コンパイル、インストール

2. Snortによるパケットのアナライズ

3. Snortによるパケットのロギング

4. SnortをIDSとして設定

第15回 サーバのセキュリティ監査と設定の自動化(講義+ワークショップ 90分)

Linuxの管理者権限の設定、アプリケーションパッケージの導入などの方法とその作業内容を実習で理解する。

(1)サーバのセキュリティ監査方針

1. ファイアウォールをスキャナで検査

2. セキュリティ機能を理解して活用

3. 要塞ホスト設定のドキュメント化

(2)監査ツール

1. サーバ監査ツール

2. ローカル監査ツール

(3)ログの設定、運用、監視

1. Bastille Linuxを使った自動セキュリティ強化

2. Bastilleの入手とインストール

3. Bastilleの設定と実行

4. Bastilleのログ

以上