情報処理安全確保支援士(情報セキュリティスペシャリスト) - SE娘の剣 -

情報処理安全確保支援士(情報セキュリティスペシャリスト)試験に合格するためのサイトです。
過去問を多数引用しながら、基礎知識をしっかり学んでもらうように作ってあります。
また、情報処理安全確保支援士(情報セキュリティスペシャリスト)を楽しく学べるように工夫したいと思います。

9.サーバセキュリティ

0b330982
インターネットでクレジット情報入れるけど。たしかにSSLで暗号化されているかもしれないけど、店側には私のクレジット番号がバレてますよね?かんたんに悪用されません?



たしかに、私もそういう経験がある。どうしても欲しい物があって、その店に連絡したらクレジットの情報を言わされた。「大丈夫です。セキュリティは守りますから」と言われて、どうしても欲しかったから言ったけど、店側のモラルに任されている場合がある。クレジットを安全に取引するSETの仕組みも普及していないし。
ただ、最近では、クレジットカードの認証サービスで、購入した店舗ではなく、クレジット会社に認証を行い、パスワードを入れることも多くなってきた。こうなると安全性はかなり上がるよね。
6b2fb508
でも、そういう仕組みを導入しない店もまだあるでしょ。クレジット番号がバレると悪用されるのでは?サインもしないし。




たしかに、その恐れは十分にある。とはいえ、ネット決済ということは、商品を誰かの家に配達する必要がある。そこが犯人の家だったという単純なことはないかもしれないが、入力するときのIPアドレス情報を含めて、何らかの足がつく。カードの金額上限もあるしね。
4d80b27a
あの上限って勝手に増えていないですか?先日見たら99万円に上がっていた。それと、私の名前にして第三者の住所(犯人)に送ったら、カード会社も私がやったのか、不正な第三者がやったのかが分からないと思うわ。



例外はあると思うけど、基本的に住所と名前が一致しないと、郵便や宅配便は届かないよ。だから、第三者があやちゃんのカード情報を手に入れ、あやちゃん宛だけど自分の住所にダイヤを送ろうとしても送れない。社会全体として、セキュリティを保つ仕組みになっている。


OSのアクセス制御の方式で理解すべき用語は以下の3つだ。

任意アクセス制御(DAC:Discretionary Access Control)
Discretionaryは”自由裁量”という意味で、任意アクセス制御といわれる。
普通のOSを想定してもらえば分かるように、ユーザが自分で権限を設定できる。
Windowsであれば、右クリックで設定できるし、Linuxであればchmodコマンドで設定可能だ。
情報セキュリティスペシャリスト試験を目指す女性SE 

この方式では何か問題がありますか?





このあとの過去問(H18SV午後Ⅱ問1)を見てもらうと分かる。たとえば、役員しか知らないファイルは役員しかアクセスできないようにアクセス権を設定したとする。しかし、その役員は、一般社員のフォルダにアクセス権を持つだろうから、そのフォルダにコピーできたりしてしまうのだ。すると、一般社員が閲覧できる可能性がある。自由裁量でやっている以上、セキュリティには抜けがでるだろう。だから、以下の強制アクセス制御の考え方も必要になってくる。

強制アクセス制御(MAC:Mandatory Access Control)
Mandatoryは”強制的”という意味で、MACとは、管理者が強制的にアクセス権を設定する方式。
SElinuxなどで採用されている。

役割ベースアクセス制御(RBAC:Role-Based Access Control)
この方法は、DACとMACと並列にある考え方ではない。DACとMACはどちらも一長一短があり、両者の改良版というような位置づけである。
RBACは役割ごとに権限を与える方法。Windowsの権限のグループと考えればよい。
たとえば、AdministratorsグループやPower Usersグループでは、実行できる権限がそれぞれ決められている。そのグループにユーザを入れることで、権限管理がしやすい。

その他
最小特権とは、WindowsのAdministrator権限のように全ての権限を持つのではなく、権限を小さく分割するもの。管理権限を小さく分離すれば、その権限が乗っ取られた場合でも受ける被害が小さくなる。

過去問
強制アクセス制御(MAC)とラベルについて、H18SV午後Ⅱ問1にて出題されている。
H氏:そうだろうか。一般のOSでは,ファイルに対してアクセス制御を行っているだけなので,OSのアクセス制御機能だけでは足りないと思うよ。
G君:具体的には,何か足りないのでしょうか,
H氏:一般のOSでは,基本的にはファイル識別とファイルアクセス者の利用者IDに基づいてアクセス制御を行う。アクセス制御のルールはアクセス制御リストなどに保持されるが,このリスト管理はファイル所有者が行う。
G君:ファイル所有者の裁量によってアクセス権が規定されるので,[ d ]アクセス制御と呼ばれているのですね。でも,何が問題なのですか。
H氏:例えば,あるファイルを別のファイルにコピーするとしよう。元のファイルに対する参照権限と,コピー先ファイルへの書込み権限があれば,ファイルのコピーは可能だ。つまり,ファイルの内容を別のファイルに移動することが可能となる。その結果,[ d ]アクセス制御の場合には,重要なファイルの内容が意図せず漏えいしてしまう可能性が出てくる。
G君:分かりました。では,どのような対応が必要なのでしょうか。
H氏:ISO/IEC 15408 に基づいた,OS用プロテクションプロファイルの一つであるLabeled Security Protection Profile によると,高度な機密保護のためには,情報フロー制御が必要であるとされている。
G君:なるほど。X社情報セキュリティ対策基準では,情報が取扱レベルの上位から下位の方向へ移動しないように情報フロー制御されているのですね。
H氏:そのとおりだ。X社情報セキュリティ対策基準では,情報資産の機密性を重視するため,取扱レベルが社外秘以上の情報資産においては[ g ]アクセス制御が必要となるね。
dには任意が入る。つまりDACだ。
gには強制が入る。つまりMACだ。

過去問(H27年秋SC午後1問3)にて、アクセス制御の具体的な内容があるので紹介します。実際に、Linuxなどで設定されたことがある人には、おなじみの内容でしょう。

(a) WebAPサーバ1とWebAPサーバ2に,図4のアクセス制御の設定を行うことで,送信元のIPアドレスが127.0.0.1である場合だけ,サーブレットコンテナの管理画面へのアクセスを許可する。
<Location /manager/>
Order deny, allow
Deny from all
Allow from 127.0.0.1
</Location>
図4 アクセス制御の設定
 この設定はApacheの設定ファイル(httpd.conf)で定義されるアクセス制御方法です。以下に意味を説明します。

<Location /manager/> →対象となるパス。この場合は/manager/
Order deny, allow →許可,拒否の順番。今回の場合、すべてを拒否し、allowで定義されているものだけ許可する。
Deny from all →拒否対象の定義。今回の場合は全てを拒否する。
Allow from 127.0.0.1 →許可対象の定義。今回の場合は自分自身(127.0.0.1)のみ許可する。
</Location>

この設定により/manager/へのアクセスは「127.0.0.1」からのみアクセスを許可するというルールになります。
もう少し説明すると、「全てのIPアドレスからの接続は拒否する」というdenyルールの後に,「127.0.0.1からのみ許可する」というallowルールが定義されていからです。
また、「127.0.0.1」はループバックアドレスと呼ばれ,自分自身を示すアドレスです。
この結果、インターネットや他の端末からはアクセスできませんが,サーバ自身にログインしてからならアクセスが許可されることになります。

 データベースの監査ログを取得する目的は何か?(H20SV 午前問題 問35より)」 
ログの取得に関しては、データベースに特化したことではない。ログデータは、誰が、いつ、何にアクセスしたかを、成功/失敗を含めて記録するのだ。
過去問(H20SV 午前問題 問35より)では、データベースの監査ログを取得する目的として、「問題のあるデータ操作を事後に調査する」と述べられている。

もう一問見てみよう。
ログの取得は,利用者認証のような[ a ]のための対策にはなりませんが,いつ,どのような事象が発生したかを記録しておくことは,[ b ]のための対策として重要だと思います。

設問 [ a ][ b ]にあてはまる字句を答えよ (H20秋SU午後Ⅱ問1より)
929c854c 
これ、難しいですね。
でも、意味は分かります。ログは、直接的に防御するようなものではなく、記録をして後から追跡できるためのもの。防犯カメラと同じですよね。防犯カメラが万引き犯を防御できなくても、後から警察にて捕まえるための記録になります。
そう。具体的なログとしては、Linuxサーバのログであれば、システムログである/var/log/messagesや、接続および認証のログなどを含むセキュリティログの/var/log/secure。Apacheによるwebサーバであればaccess_log に記載される。

この問題は、実際には選択式
aは予防
bは検知

HTTPヘッダインジェクションとは
情報セキュリティスペシャリスト試験を目指す女性SE

インジェクションは「注入」という意味ですから、HTTPのヘッダに悪意のコードを注入(インジェクション)するのですね。
そう考えてよい。
情報処理振興機構(IPA)の「安全なウェブサイトの作り方 改訂第7版」には、HTTPヘッダ・インジェクションについて次のように説明されている。
ウェブアプリケーションの中には,リクエストに対して出力する HTTP レスポンスヘッダのフィールド値を,外部から渡されるパラメータの値等を利用して動的に生成するものがあります。たとえば,HTTPリダイレクションの実装として,パラメータから取得したジャンプ先の URL 情報を,Location ヘッダのフィールド値に使用する場合や,掲示板等において入力された名前等を Set-Cookie ヘッダのフィールド値に使用する場合等が挙げられます。このようなウェブアプリケーションで,HTTP レスポンスヘッダの出力処理に問題がある場合,攻撃者は,レスポンス内容に任意のヘッダフィールドを追加したり,任意のボディを作成したり,複数のレスポンスを作り出すような攻撃を仕掛ける場合があります。このような問題を「HTTP ヘッダ・インジェクションの脆弱性」と呼び,この問題を悪用した攻撃手法は「HTTP ヘッダ・インジェクション攻撃」と呼びます。
http://www.ipa.go.jp/security/vuln/websecurity.htmlより引用)

ここにあるに「掲示板等において入力された名前等を Set-Cookie ヘッダのフィールド値に使用する場合」に関して、過去問(H27春SC午後Ⅰ問1)では具体的な例が掲載されている。

具体的に書く
入力欄の文字列に以下を入れる

%0d%0a%0d%0a%3chtml%3e%3cbody%3e%3cscript%3ealert%28%221%22%29%3c%2fscript%3e%3c%2fbody%3e%3c%2fhtml%3e

これをデコードすると以下になる
「改行コード」「改行コード」<html><body><script>alert("1")</script></body></html>

すると、Webサーバに対するHTTPリクエストは以下のようになる
GET /search?kensaku=jewelry「改行コード」「改行コード」<html><body><script>alert("1")/script></body></html>
HTTP/1.1
Accept: text/html, application/xhtml+xml, */*
Accept-Language: ja-JP
Accept-Encoding: gzip, deflate
Host: www.example.co.jp
Cookie: SESSIONID=134D96E470da240421svr5B019

これに対し、WebサーバからクライアントへのHTTPレスポンスは以下になる。
HTTP/1.1 200 OK
Date: Tue, 10 Jun 2014 05:45:58 GMT
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache
Set-Cookie:kensaku=jewelry

<html><body><script>alert("1")</script></body></html> ←このようにスクリプトが実行できる
すると改行コードにより、レスポンスヘッダではなくレスポンスボディとブラウザは認識する。ヘッダにはスクリプトが書かれても実行はされないが、レスポンスボディに配置されれば、ブラウザにてスクリプトが実行される。
こうやって、攻撃者は任意の攻撃コードをクライアント側で実行することができる。

HTTPヘッダインジェクションの対策
対策に関しても、同じ過去問(H27春SC午後Ⅰ問1)で述べられている。
U主任:仮に問題があるとした場合,Set-Cookieヘッダの値をセットするサーバ側の処理において,どのような対策が考えられますか。
T君:幾つかの対策があります。例えば,HTTPレスポンスヘッダを適切に出力するために,Webアプリの実行環境やプログラム言語が用意している,ヘッダ出力用の関数やAPIを使用する方法が考えられます。それが使用できない場合は,[ c ]するといった処理を開発者が自身で実装する方法も考えられます。

空欄cは穴埋め問題であり、解答例は以下である。
・出力文字列に改行コードがあるとエラー画面を出力
・出力文字列の改行コード以降の文字列を削除

ログに関するセキュリティ要件は、過去問(H20SU 午後Ⅱ問1)にてまとめられている。「具体的な機能や方法」について、ご自身で考えて欲しい。

ログ管理に関するセキュリティ要件

具体的な機能や方法

ログを収めるサーバのハードディスク容量を使い切ってしまい、ログが書き出せなくなることを防ぐための機能を設ける。

ログを収めたファイルの改ざんや消去を防ぐための機能を設ける。

取得したログの点検・分析を支援するための機能を設ける。(ログの見える化による不正行為検出率の向上などが期待できる)

利用者がシステムに不正行為を働くことを抑止する。

過去問(H20SU 午後Ⅱ問1)の内容は以下である。

ログ管理に関するセキュリティ
要件

具体的な機能や方法


ログを収めるサーバのハードディスク容量を使い切ってしまい、ログが書き出せなくなることを防ぐための機能を設ける。



 

・日々のデータ量と将来の予想データ量、それと保存期間を考慮してハードディスク容量を計算する。

・使用量を常時監視し、所要量に達したら自動的に外部記憶媒体に退避する。


ログを収めたファイルの改ざんや消去を防ぐための機能を設ける。

・要塞化した専用のログサーバを設置し、ログを集約する。

・接続可能なポートを制限したログサーバにログを集約する。


取得したログの点検・分析を支援するための機能を設ける。(ログの見える化による不正行為検出率の向上などが期待できる)

・ログ解析ソフトを活用する。

 

利用者がシステムに不正行為を働くことを抑止する。

システムの利用者に対して、システム上でログを取得し、点検・分析することを周知する。

(H20SU 午後Ⅱ問1「図3 ログ管理に関するセキュリティ要件、設問4」を引用・一部修正)

ログ管理に関しては、過去問(H24SC秋午後Ⅰ問2)に良問がある。一度解いてみてほしい。
その中で、Bシステムで取得しているログが表にまとめられている。まあ、一例としてみてもらえばいいだろう。

表1 取得しているログ 
ログを取得するイベント取得する情報
ログイン成功 日付,時刻,機能番号(0001),端末ID,利用者ID,成功(1)
ログイン失敗日付,時刻,機能番号(0001),端末ID,ログインしようとした利用者ID,失敗(0)
ログアウト付,時刻,機能番号(0099),端末ID,利用者ID
ログインとログアウト以外の機能の利用成功日付,時刻,機能番号(1000~9999),端末ID,利用者ID,成功(1)
ログインとログアウト以外の機能の利用失敗日付,時刻,機能番号(1000~9999),端末ID,利用者ID,失敗(0)

この問題では、是非とも理解してほしい設問があった。その部分を抜粋する。
〔モニタリングの実施〕
Bシステムのモニタリング手順をまとめてから2週間後にツールが完成し,ツールによるモニタリングを開始した。D部長は、③モニタリングの実施を社内に通知するよう指示した。ただし,④モニタリング条件はセキュリティ上の懸念から開示しないよう指示した。

設問2 〔モニタリングの実施〕について,(1)~(4)に答えよ。
(1)本文中の下線③について,どのような効果があると考えられるか。20字以内で述べよ。
(2)本文中の下線④について,モニタリング条件の開示によるセキュリティ上の懸念とは何か。40字以内で述べよ。

試験センターの解答例は以下である。
設問2
 (1) 悪意ある行動を抑止する効果
 (2) モニタリング条件を回避するようにして悪意ある行動をとられること


■参考情報
総務省の「ログの適切な取得と保管」には、具体的に取得すべきログの種類と内容として、以下の記載があります。
http://www.soumu.go.jp/main_sosiki/joho_tsusin/security/business/admin/22.html

ログ保存期間の目安に関しては、IPAの資料に法令・ガイドライン等が記載があります。政府機関は1年以上保存とあり、一つの目安になるでしょう。
https://www.ipa.go.jp/files/000052999.pdf

「インターネット上で、安全なクレジット決済の取引処理を提供するために定められたプロトコル(H16SU午前 問23)」を何というか
PKIを利用したインターネットでカード情報を安全に取引する規格である。大手クレジット会社と大手ソフトウェアメーカが規格化したもので、正解は「SET(Secure Electronic Transaction)」です。
残念ながら普及していません。パソコンにソフトが必要なのが原因なのか、そのあたりはよく分かっていませんが。

db2fc28cこの話は、決して私の話じゃないですよ。
知人からうけた相談です。





ワンクリック詐欺(ワンクリック不正請求)ですね。かなり巧みというか心理をついている。
一つは、ユーザ(被害者)がクリックしたという行為をしていること。メールが一方的に来ただけでなく、自らクリックしていることから、「あなたは(クリックして)同意しました」と表示されると、その通りと考えてしまうから。
もう一つは、IPアドレスだったり、携帯番号の個体識別番号であったり、ブラウザの種類などが知られたことにより、自分のことを特定されたと思ってしまう。
c2f058cb
でも、IPアドレスでおおよその住所は分かるんですよね。それと、プロバイダに聞いたら個人も特定できますよね。




大丈夫です。おおよそ(関東とか関西)のエリアしか分かりません。また、プロバイダが情報を教えるわけありません。個人情報は特定できません。
d18680c9
でも、教えるかもしれないでしょ。





その場合、プロバイダに責任がありますから、プロバイダに損害賠償請求ができます。大事なのは「無視」することです。「支払いません」などと連絡をとったり、クレジットカード情報を入力したら、本当に個人情報が伝わってしまいます。※たしか、この詐欺に対しては、電子消費者契約法により、守られているはず。

Webサイトでは、クライアントとサーバー間で情報を保持するセッション管理を行っています。Webサイトから買い物をするときに、商品を選ぶページから決済をするページに画面が切り替わります。セッション管理を行っていれば、ページが変わっても、クライアントの情報を保持できるのです。
セッション管理には、Cookieを用いられることが一般的です。
cookieは、WebサーバがSet-Cookieという指示を出して、ブラウザにユーザ情報などを保存します。
以下を見てください。
Set-Cookie:domain=example.com; session_id=uid20101017143045;secure;path=/874045/

Set-Cookieという指示で、session_idという情報をクライアントPCのブラウザに保持するように指示しています。クライアントはサーバに対してこのsession_idを提示することで、セッションを維持することができます。
cookie
もう少し詳しく解説します。
cookieは、Netscape社が開発しました。
過去問ではcookieに関して、「Webサーバに対するアクセスがどのPCからのものであるかを識別するために,Webサーバの指示によってブラウザにユーザ情報などを保存する仕組み(H19FE午前問36)」と述べられている。
Cookieには有効期限があり、有効期限がくるとブラウザから削除される。有効期限がないものは、無期限に使えるのではなく逆にブラウザを閉じると削除される。
Cookieに書き込む方法は、WebページにHTMLにて、Metaタグに記載する方法と、JavaScriptにてdocument.cookie=
で書く方法がある。

H22SC秋午後Ⅰ問3設問3(2)には、Set-Cookieヘッダの例が搭載されている
Set-Cookie:session_id=uid20101017143045;secure;path=/874045/
このsecureの意味は何か。

クッキーに関しては、たまに出題されます。
内容はそれほど難しくないため、理解しておくとよいでしょう。secureは、SSLの暗号化通信の場合にのみ、クッキー(Cookie)が送信されます。暗号化されていない場合は、盗み見られる可能性があるから、送信されない。

それぞれの意味は以下である。
・NAME:Cookieの名前
・expires:Cookieの有効期限。値を指定しない場合は、ブラウザを閉じた時点で有効期限が切れる。
・domain:Cookieを送るドメイン名。クライアント端末が次回Webサーバに接続した際に、ここで指定したドメインと一致した場合にCookieを送る。(例)seeeko.com
・path:ドメイン名に加えて、URLのパスを指定したい場合に指定する。(例)/cgi
・secure:暗号化された通信(HTTPS)の場合にのみCookieを送る。domain、pathが一致しても、HTTP通信の場合はCookieは送らない。

過去問(H27SC秋午前2)をもう一問見てみましょう。
問13 WebサーバがHTTPS通信の応答でCookieにSecure属性を設定したときのブラウザの処理はどれか。
ア ブラウザは,Cookieの“Secure="に続いて指定された時間を参照し,指定された時間を過ぎている場合にそのCookieを削除する。
イ ブラウザは,Cookieの“Secure="に続いて指定されたホスト名を参照し,指定されたホストにそのCookieを送信する。
ウ ブラウザは,Cookieの“Secure"を参照し,HTTPS 通信時だけそのCookieを送信する。
エ ブラウザは,Cookieの“Secure"を参照し,ブラウザの終了時にそのCookieを削除する。
正解はウです。

Cookieの場所と実際のCookie
Cookieは、Windows8.1の場合、隠しフォルダとして、以下にあります。

C:\Users\ユーザ名\AppData\Local\Microsoft\Windows\INetCache
ブラウザの「インターネットオプション」「全般」タブ「設定」「ファイルの表示」からも開くことができます。

実際のCookieのファイルは以下のようなものですが、利用者にはよくわからない情報です。
Website_cookie_data
203.0.113.124.2301262640211636
nw.seeeko.com/
1024
62517216
・・・・



スポンサードリンク

↑このページのトップヘ