セキュリティ、プライバシ

					2012年06月19日
情報科学類 コンピュータリテラシ

                                       筑波大学 システム情報系 情報工学域
                                       新城 靖
                                       <yas@cs.tsukuba.ac.jp>

このページは、次の URL にあります。
http://www.coins.tsukuba.ac.jp/~yas/coins/literacy-2012/2012-06-19
あるいは、次のページから手繰っていくこともできます。
http://www.coins.tsukuba.ac.jp/~yas/
http://www.cs.tsukuba.ac.jp/~yas/

■連絡事項

試験について メモ用紙の作り方

■セキュリティ

セキュリティとは、安全や機密を保持すること。

対策

◆悪意があるソフトウェア(malicious software)

マルウェア(Malware)ということもある。次のように分類できる。 一般には、悪意があるプログラムのことを「コンピュータ・ウイルス(広義)」 と言うことがある。

◆コンピュータ・ウイルス(狭義)

コンピュータ・ウイルス(狭義)は、悪意があるプログラム一種で、次のような 性質を持つもの。

活動

◆トロイの木馬とワーム

トロイの木馬(Trojan Horse)は、単独のプログラムであり、他のプログラムに 寄生しない。利用者を騙して実行されるのを待つ。

ワーム(worm)は、他のプログラムに寄生しない。

世の中で「ウイルス(広義)」と呼んでいるものの中には、トロイやワームに分 類されるものが多い。

◆ウイルス対策プログラム(Anti-virus Program)

限界

◆バグ、弱点、攻撃

プログラムからバグ(誤り、不具合)を全てのバグを取り除くことはできない。 バグの一部は、セキュリティ的な脆弱性(ぜいじゃくせい)につながる。

悪意のあるプログラムの多くは、セキュリティ的な脆弱性を攻撃する。

「危険なデフォルト」は、本来の機能を有効にしたものなので、バグではない が、利用者が気が付かないと攻撃の対象になる。

◆バッファ・オーバーフロー攻撃

プログラムの脆弱性をつく攻撃の1つ。

現在のコンピュータは、機械語命令もデータも同じメモリに保存する。 データを機械語命令だと解釈して実行することができる。

悪意を持つプログラムが送られて来た場合、本来はデータとして扱わなければ ならないのに、脆弱性があるプログラムは機械語命令として解釈して制御を移 して実行してしまう。

◆キーロガー

コンピュータに打ち込んだキーを、利用者がどんな操作をしていたとしても全 て記録するプログラム。Web ブラウザでユーザ名とパスワード、クレジットカー ド番号等をを打ったとするとそれも全て記録される。

キーボードを使う時には、信頼できるコンピュータを使うこと。

◆DoS (Denial of Service) 攻撃

サーバにある種の要求を送ることで、本来のサーバの機能を停止させてしまう 攻撃。サービス運用妨害、サービス拒否攻撃ともいう。

分類

後者を防ぐことは、難しい。後者で、要求を送るプログラムが1つではなく、 複数のクライアントが協調して1つのサーバを攻撃する場合、分散型DoS攻撃 という。

攻撃対象としては、サーバ(WWWサーバ、メール・サーバ)の他に、ルー タであることもある。

◆防火壁(ファイアウォール(firewall))

防火壁とは、外部のネットワークと内部のネットワークの間に設置し、内部の ネットワークのセキュリティを高めるための仕組み。

インターネットの仕組みの基本:どのコンピュータとコンピュータも通信できる。

防火壁では、そのような本来の仕組みに制限を設け、特定のコンピュータとし か通信できないようにしたり、特定のサービスしかつかえないようにする。

◆個人で身を守る方法

技術者や管理者に求められていること。 技術が未熟な現在、各個人は、ある程度、技術を知る必要がある。

対策

■筑波大学における情報システム利用のガイドライン

筑波大学における情報システム利用のガイドライン は、 筑波大学の情報システムを利用する時に守るべきガイドライン。 難解な表現も多い。

用語集

その他の情報

筑波大学情報環境機構

■Webページに対するアクセス制御と認証

ファイルに対するアクセス制御と 考え方が共通の部分と異なる部分がある。

◆アクセス制御

[再掲]

アクセス制御(access control) とは、「主体」が、「オブジェクト」を「操作」する時、どんな操作なら正し いということを定義して、それがきちんと守られていることをということを保 証することである。

図? アクセス制御における主体、オブジェクト、および、操作

図? アクセス制御における主体、オブジェクト、および、操作

◆Webページにのアクセスにおける主体、オブジェクト、操作

WWWは、もともと大勢の人にメッセージを伝えるための仕組みだが、後付けでア クセス制御の仕組みを入れた。 あるページは、ある特定の人(同じ研究室・部署の人)だけにしか見えないよ うに設定することもできる。

主体
オブジェクト
URLで表現できるもの。木構造を利用した指定や正規表現による指定も可能。
操作

◆Webページに対するアクセス制御の設定

アクセス制御の設定は、普通は、オブジェクト側でなされる。 access.conf は空で、全部 httpd.conf に書くことも多い。 サーバの管理者は、.htaccess を無効にもできる。

coins では www.coins.tsukuba.ac.jp の次の場所にある。

◆IPアドレスやドメイン名によるアクセス制御

httpd.conf や .htaccess に次のように記述する。
order deny,allow
deny from all
allow from 130.158.0.0/16 133.51.0.0/16 192.50.17.0/24

◆学外Webサイトでの筑波大学の識別例

◆WWW Basic認証

WWW ブラウザが1つのページをアクセスするたびに HTTP のヘッダにユーザ名 とパスワードを含める。

GET /dir1/file1.html HTTP/1.1[←]
Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==[←]
[←]
Authorization: には、ユーザが打ち込んだユーザ名とパスワードが Base64 (64進数)で符合化されて含まれている。Base64 は、暗号ではないので、 簡単に元にもどせる。以下の例では、openssl コマンドを使って元に戻してい る。

$ echo QWxhZGRpbjpvcGVuIHNlc2FtZQ== | openssl base64 -d [←]
Aladdin:open sesame$ [←]
$ []
Basic 認証では、パスワードがそのままネットワークを流れてしまう。 この問題点を解消するために、SSL で通信路を暗号化することがよく行われる。

◆WWW Basic認証の設定

ユーザ名とパスワードの対応を保存する方法にはいくつかの方法がある。

■Webブラウザを使う上でのセキュリティとプライバシ

◆IPアドレス

Web サーバと Web ブラウザが通信をする時、互いに相手の IPアドレス を知ることになる。電話なら発信者番号(caller id)の通知を拒否する機能もあ るが、Web にはない。

IP アドレスがわかると、次のようなことがわかる。

サーバは、IPアドレスはわかっても、利用者の名前までは特定できない。学内 のコンピュータの場合、IPアドレスからコンピュータが特定されると、ログイ ンのログから利用者も特定できる。

■WWW の cookie

cookieは、コンピュータ・サイエンス(情報科学類)の専門用語。

協調して動作しているプログラムの間で、ある一連の作業を識別するための数 を意味する。

WWW(World Wide Web)では、1回のデータ転送ごとに通信路が切断される ので、通常はWWWのブラウザ(クライアント)とWWWサーバの間では、途 中経過を保持することができない。

途中経過を保存したい時:

WWWで途中経過を保存するためには、cookie が使われる。

サーバは、その情報を利用して、適切なページ(たとえば前回最後に訪れたペー ジ)を表示させるようにすることができる。

◆cookieとプライバシ

現在の cookie の実現では、利用者のプライバシーを犯す危険性が高いという 問題が指摘されている。

普通のWWWサーバでは、要求を送ってきたコンピュータのIPアドレスを記 録しているので、コンピュータ単位でのアクセス状況を記録することはできる が、個人を特定することはできない。

クッキーを利用することにより、コンピュータではなくどの個人がアクセスし てきたかを記録することができる。

クッキーから電子メールのアドレスや氏名まで調べることはできない。 しかし、インターネットをサーフしている間にどこかでそれを打ち込んだが最 後、クッキーと電子メール・アドレスや氏名との対応が記録されてしまう危険 性がある。

参考

RFC2965 HTTP State Management Mechanism

◆履歴

Web ブラウザは、次のようなことを履歴としてファイル保持している。 これらを保存していると、Web ブラウザの便利さを向上させるが、他人に見ら れるとプライバシが犯されることになる。

◆Webブラウザのプロファイル

Web ブラウザのプロファイルとは、ブックマーク、設定、履歴などの一人ひと り異なる情報を保存したものである。MacOSX の Firefox の場合は、次のディ レクトリにある。 ファイル名の一部に空白とランダム文字列があるので、その部分を「*」(ファ イル名の置き換え機能)を使っている。 手引き 4.1.2節 参照The Unix Super Text 28.2.5項 参照

◆Webブラウザのプロファイルの保護

Webブラウザのプロファイルを他人にアクセスされないようにするためには、 ファイルに対する アクセス制御 をしっかり設定する。 特に、 ディレクトリのxの働き を使って、木構造の性質をうまく使うとよい。 ただし、ホームディレクトリを閉じてしまうと、~/public_html も閉じることになり、 個人の Web ページの内容を Web サーバですらアクセスできなくなることに注意する。

◆プライベート・ブラウジング

Firefox 等の Web ブラウザには、プライベート・ブラウジング機能があり、そ れを有効にすると履歴を一切保存しない状態になる。

■実習

実習時間中には、 以下の課題をできるだけ多く行いなさい。全部を行う必要はない。

★練習問題(1801) Symantec Endpoint Protection

一番上のメニューバーにある Symantec AntiVirus のメニューを開きなさい。

Symantec AntiVirus のメニュー。 (クリックで拡大)

このメニューから 「Symantec Endpoint Protection」、 「Symantec Endpoint Protectionを開く」を選び実行してみなさい。 あるいは、「アプリケーション」にある次のプログラムを実行しなさい。

$ open "/Applications/Symantec Solutions/Symantec Endpoint Protection.app" [←]

「ツール」メニューから「ウイルス情報」を選びなさい。そこに現在利用して いる「ウイルス定義ファイル」に何個の悪意のあるプログラムの定義が含まれ ているかを観察しなさい。その定義ファイルがいつ更新されたものかを調べな さい。

「スキャン」ボタンを使って、ファイルを開き、ファイルにウイルスのパタン が含まれていないか調べなさい。

「ヘルプ」メニューから「Symantec Endpoint Protectionヘルプ」を選択して、 「機能の概要」を読みなさい。

★練習問題(1802) Firefoxのプロファイル

MacOSX の Firefox のプロファイルが保存されているディレクトリを表示して みなさい。
$ cd ~/Library/Application*Support/Firefox/Profiles/* [←]
$ pwd [←]
$ ls -ld [←]
$ ls [←]
$ ls -a [←]

★練習問題(1803) Firefoxのプロファイルの保護

MacOSX の Firefox のプロファイルを保持しているディレクトリには、ls -l で見ると others が r-- となっており、一見、他のユーザがアクセスできるファ イルが存在する。しかしながら、 ディレクトリのxの働き により、保護されており、他のユーザはアクセスできないようになっている。 このことを確認しなさい。
$ ls -ld ~/Library/Application*Support/Firefox/Profiles/* [←]
$ ls -ld ~/Library/Application*Support/Firefox/Profiles [←]
$ ls -ld ~/Library/Application*Support/Firefox [←]
$ ls -ld ~/Library/Application*Support [←]
$ ls -ld ~/Library [←]

★練習問題(1804) Firefoxのプロファイル/.parentlock

Fire.parentlock~/Library/Application*Support/Firefox/Profiles/*/.parentlock Firefoxのプロファイルには、次のファイルがある。 複数の Firefox を同時に実行することでプロファイルが壊れることがある。た とえば、cosmso10 と cosmos11 で同時に Firefox を同時に実行すると、プロ ファイルが壊れることがある。この .parentlock というアクセスは、Firefox が同時に実行した時にプロファイルが壊れることを防ぐ役割がある。

このファイルを ls -l で表示してみなさい。 (1) cd を使う方法

$ cd ~/Library/Application*Support/Firefox/Profiles/* [←]
$ ls -l .parentlock [←]
(2) cd しないで、ファイル名の置き換え機能を使う方法
$ ls -l ~/Library/*/Firefox/Profiles/*/.parentlock [←]
-rw-r--r--  1 yas  prof  0  4 27 15:21 /home/prof/yas/Library/Application Support/Firefox/Profiles/xxxxxxxx.default/.parentlock
(3) cd しないで、ファイル名の補完機能を使う方法
$ ls -l ~/L[tab] [←]
                   以後、補完機能を使いながら打つ
		   Profiles の下には、.default/があるものを選ぶ
		   そのディレクトリの下では、.p を選ぶ
$ ls -l ~/Library/Application\ Support/Firefox/Profiles/xxxxxx.default/.parentlock [←]
-rw-r--r--  1 yas  prof  0  4 27 15:21 /home/prof/yas/Library/Application Support/Firefox/Profiles/xxxxxx.default/.parentlock
$ []

★練習問題(1805) Firefoxのプロファイル/.parentlockの削除

Firefox が異常終了した後に実行しようとすると、「すでに別のFirefoxを開い ています。同時に複数のFirefoxを開くことはできません。」と表示され、実行 できないことがある。この場合は、.parentlock ファイルを削除すると回復す ることがある。

回復方法は、coins の ce のページにも記載されている。これを、Safari 等、 Firefox 以外のブラウザで表示してみなさい。

★練習問題(1806) Firefoxのプロファイル/修復方法

練習問題(1805) と同じページに、 次のトラブルへの対処方法が記載されている。これを表示しなさい。

★練習問題(1807) Firefoxのプロファイル/ブックマークの保存

Firefox には、ブックマークをファイルに保存する機能がある(バックアップ)。 ファイルに保存しておくと、壊れた時にそれから回復させることができる。 これを利用してみなさい。 この方法では、「JSON」という形式で保存される。 後で「復元」を使って回復される。回復する時には、 その時点でのブックマークは全て失われることに注意する。

「バックアップ」ではなく「HTMLとして書き出す」を使う方法もある。 保存したものは、壊れた時には「HTMLから読み込む」で戻せる。 無理にもどさなくても、そのまま HTML ファイルを開いても十分である。

★練習問題(1808) Webブラウザの cookie の状態

Web ブラウザが、cookie をどのように扱う状態になっているかを調べなさい。 cookie を受け付けないように設定してみなさい。

MacOSX Firefox

次のような操作を行ってみなさい。

★練習問題(1809) Webブラウザのキャッシュの設定

Webブラウザは、一度ネットワーク経由で取得したデータをファイルにキャッシュ として保存して、次にアクセスした時に高速に表示する(ネットワークを使わ ないで表示する)機能がある。この機能がどのように働いているかを確認しなさい。

MacOSX Firefox

なぜ「今すぐ消去」ボタンが存在するのか、その理由を考えなさい。

★練習問題(1810) Webブラウザのキャッシュのファイルとディレクトリ

cd, ls, lv コマンドなどを利用して Web ブラウザのキャッシュが保存されて いるファイルとディレクトリを観察しなさい。MacOSX Firefox では次のディレ クトリの下にある。
$ cd ~/Library/Caches/Firefox/Profiles/*/Cache/ [←]
$ du -h [←]
du コマンド は、ディスクの使用量(disk usage)を表示するコマンド。 man du、 手引き 2.3.10 参照手引き 10.8 参照

Firefox 以外のブラウザについてもキャッシュの利用状況を調べてみなさい。

★練習問題(1811) ブラウザのキャッシュの削除

Web ブラウザのキャッシュを削除してみなさい。削除方法は、 手引き 10.8. ディスククォータに関する警告メールが来てしまった 参照。 次の3つのブラウザについて、削除方法が記載されている。

★練習問題(1812) Webブラウザの履歴等の自動消去

Firefox は、次のような項目を保存する機能がある。 これらの履歴を Firefox 終了時に消去する機能がある。この機能を確認しなさ い。

★練習問題(1813) Firefox プライベートブラウジング

Firefox が持つ「プライベートブラウジング」の機能を利用してみなさい。 この機能を無効にしなさい。

★練習問題(1814) .htaccessによるBasic認証のページ(coinsのパスワード)

~/secure_html/ の下に、実験用のディレクトリを作成しなさい。
$ mkdir ~/secure_html [←]
$ mkdir ~/secure_html/ディレクトリ名 [←]
次のドキュメントを参考にして、作成したディレクトリに .htaccess を作成し なさい。 次の3つの方法を比較しなさい。 レポート提出ページや出席ボタンでは、どのような設定になっているかを観察 しなさい。
$ cat ~yas/secure_html/coins/literacy-2012/.htaccess [←]

★練習問題(1815) .htaccessによるBasic認証のページ(htpasswd)

htpasswd コマンドを使ってパスワード・ファイルを作成しなさい。作成したパ スワード・ファイルを利用して、Basic 認証によりアクセス制御を行うように 設定しなさい。 The Unix Super Text 28.7.6項 参照

例:パスワード・ファイル /home1/prof/yas/etc/passwd-doc1 に登録されているユーザだけが、 .htaccess があるディレクトリ以下にあるファイルをアクセスできる。

.htaccess:

AuthType Basic
AuthName "restricted stuff"
AuthUserFile /home1/prof/yas/etc/passwd-doc1
require valid-user
このパスワード・ファイルは、サーバ上でhtpasswd というプログラムで作成する。
$ htpasswd -c /home1/prof/yas/etc/passwd-doc1 user1 [←]
Adding password for user1.
New password:user1のパスワードを打ち込む[←]
Re-type new password:user1のパスワードを打ち込む[←]
$ htpasswd /home1/prof/yas/etc/passwd-doc1 user2 [←]
Adding user user2
New password:user2のパスワードを打ち込む[←]
Re-type new password:user2のパスワードを打ち込む[←]
$ []
一番最初は、-c オプション付で実行する。passwd コマ ンドと同様に、打ち込んだパスワードは、画面には表示されず、また、確 認のために2回打つ必要がある。

htpasswd コマンドの結果、次のようなファイルが作られる。

user1:1fjr1tHIgoG7U
user2:qXaeA9Zge7Yqc
ユーザ名と暗号化されたパスワード(正確にはパスワードのハッシュ値)から 構成される。

パスワードによるアクセス制御の例: 設定ファイル .htaccess

AuthType Basic
AuthName "restricted stuff"
AuthUserFile /home1/prof/yas/etc/passwd-doc1
require valid-user

★練習問題(1816) .htaccessによるBasic認証のページ(dbmmanage)

htpasswd コマンドの代わりに dbmmanage コマンドを使い、パスワード・ファ イルを作成しなさい。作成したパスワード・ファイルを利用して、Basic 認証 によりアクセス制御を行うように設定しなさい。

★練習問題(1817) WWWページに対するIPアドレスによるアクセス制御

特定のIPアドレスのコンピュータからしか表示できないような WWW ページを作 成しなさい。逆に、特定のIPアドレスのコンピュータからは表示できないよう な WWW ページを作成しなさい。

★練習問題(1818) レポート提出ページの.htaccess

レポート提出で用いている report.cgi プログラム は、次の場所にある。
$ ls    ~yas/secure_html/coins/literacy-2012/ [←]
$ ls -a ~yas/secure_html/coins/literacy-2012/ [←]
ここにある .htaccess にどのような記述がなされているかを調べなさい。

■課題18 セキュリティ、プライバシ

回答をテキスト・ファイルに記述し、(レポート提出 ページ)から提出しなさい。

(1) アクセスする時に Cookie の設定を要求する Web サイトを1つ示しなさい。 そのサイトが Cookie の設定を有効にした時と無効にした時で動作が変わるか を調べなさい。

(2) Web ブラウザのプロファイルに含まれている重要な項目を2つあげて説明し なさい。

注意: この課題では、一般的に Web ブラウザが保存する項目を問うている。 練習問題(1802) にあるファイルやディレクトリの 名前を示す必要はない。

(3) Web ブラウザのプロファイルには、プライバシにかかわるものが多く含ま れている。それらは、他の利用者からはアクセスできないように設定されてい る。このことを、ls -l の結果を示しながら説明しなさい。 練習問題(1802) 練習問題(1803) 参照。

(4) The Unix Super Text の次の部分を読みなさい。

次の項目について簡単に説明しなさい。

(5) [加点] Symantec Endpoint Protection が持っている「スキャン」機能を 利用しなさい。ワードプロセッサのファイルや表計算のファイルをスキャンし た後で電子メールに添付して自分自身に送りなさい。また受け取った添付ファ イルを保存し、それを「スキャン」機能で確認しなさい。レポートには、一連 の手順を報告しなさい。 練習問題(1801) 参照。

(6) [加点] Firefox の環境設定で、次の項目の意味を4項目以上、調べなさい。 そして、2項目以上利用しなさい。利用した理由、利用しなかった理由を説明し なさい。

2012/06/18 22:02:55
Last updated: 2012/06/25 15:26:24
Yasushi Shinjo / <yas@cs.tsukuba.ac.jp>