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

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

9.サーバセキュリティ

IPAの「『セキュア・プログラミング講座 (Webアプリケーション編)』 ブートアップセミナー」(http://www.ipa.go.jp/files/000030878.pdf)では、ローカルプロキシツールの例として、OWASP ZAP、Fiddler、Burp Proxyが挙げられている。
最初に掲載されているOWASP ZAPが無償であることからも利用するにはいいと思う。
①OWASP ZAPダウンロード
https://www.owasp.org/index.php/OWASP_Zed_Attack_Proxy_Project
から、Download ZAP
②JREのダウンロード
③OWASP ZAPを使った脆弱性診断
以下に解説があるが、スパイダー機能でURLを見つけ出し、そのURLに対してスキャンをする(攻撃>動的スキャン)
http://gihyo.jp/dev/column/newyear/2016/owasp?page=2
★詳細は別途記載予定

H18SU午後Ⅱ問1の「図5 セキュリティ強化提案書」の穴埋めにチャレンジしよう。
  セキュリティ強化要求仕様書(第2版)に基づき,次のとおりご提案します。
第1ステップ
1.入力検証及び不正データ入力時の無効化
  クロスサイトスクリプティング対策として次の強化を行う。
 (1) Webページに出力するすべての要素に対してエスケープ処理を施す。
 (2) <script>・・・</script>要素の内容を含むWebページを動的に生成しない。
2.パスワード及びセッション情報の不正利用の防止
  セッション管理対策として,次の強化を行う。
 (1) セッション管理情報には   c   を使用し,クッキーに格納する場合は有効期限を設ける。
 (2) HTTPS通信で利用するクッキーには,secure属性を加える。
3.セキュリティ強化要求仕様書(第2版)に含まれていない重要事項
 3.1. ドメイン乗取りの防止
     ドメイン名を管理する   d   サーバが,正しく登録されているか,定期的に調査する。
 3.2. ファイル不正アクセスの防止
   (1) 外部からのパラメタに,Webサーバ内のファイル名を直接指定させない。
   (2) 外部からの入力値でファイル名を指定する場合は,   e   ディレクトリを指定し,かつ,ファイル名にディレクトリ名が含まれないようにする。
第2ステップ
 (以下,省略)
                   図5 セキュリティ強化提案書
d以外は選択式なので、答えをズバリ書くのは難しかったかと思う。
答えは以下。
c  疑似乱数
d ネーム 又は DNS
e 固定

アプリケーションセキュリティ対策の中心になるのがWebアプリケーションのセキュリティ対策である。なぜなら、社外に公開するアプリケーションはWebベースのものが多いからだ。
一方、社内にはWebアプリケーション以外にもクライアントサーバ型のアプリケーションが多く存在しますが、社内運用であれば社外に公開しないため、セキュリティ面のリスクは低減されます。
H20SU午後Ⅰ問4にて、「Webサイトにおける一般的な情報セキュリティ問題と対策」が掲載されている。
表 Webサイトにおける一般的な情報セキュリティ問題と対策

情報セキュリティ問題

対策(例)

・外部から内部ネットワークへの不正侵入

・ネットワーク境界での不要な通信の遮断

・適切なフィルタリングの設定

Webサーバの不適切な設定をねらった不正アクセス

・見慣れないファイルやプログラムがないことの確認

・対象となるサーバの  a 

・推測可能なパスワードの禁止

・適切なアクセス制御の設定

Webアプリケーションの脆弱性をねらった不正アクセス



(例1)SQLインジェクション攻撃

・悪意のある入力に起因する危険なSQL文の実行を防ぐための,変数や演算結果の  b 



(例2)ディレクトリトラバーサル攻撃

Webアプリケーションで用いる外部パラメタから  c  する実装の回避



・・・

・・・

・業務運用及びシステム運用におけるオペレータの故意又は過失による情報漏えい

・業務運用及びシステム運用に伴うログの取得

(以下,省略)

(以下,省略)

(H20SU午後Ⅰ問4より引用)

a、b、cの穴埋めにもチャレンジしてみよう。
正解は以下です。
a ハードニング
b エスケープ処理 又は サニタイジング
c ファイル名を直接指定


少し補足します。aのハードニング(hardening)とは、hard(硬い)という言葉の通り、サーバを硬く(要塞化)することです。bのエスケープ処理に関しては、以下を確認ください。
http://sc.seeeko.com/archives/3841214.html

c2f058cb
不正サイトに誘導されたとして、万が一振り込みやカードでお金を支払ったとするでしょ。でも、その人が通報してたら振り込み先の口座情報などが分かるから、犯人が特定できると思います。身代金要求の誘拐で現金の受け渡しが困難なように、なかなか犯罪にまでつながらないのでは?


犯罪者は巧みで、足がつかない工夫をしているようだ。例えば、確かに銀行口座は身分証明書が必要で本人にしか作れないが、その口座の闇での売買が行われている。だから、振り込まれたらすぐにお金を引き出し、そして口座の身元が警察に突き止められても、真犯人は捕まらない仕組みになっている。
一方、DoS攻撃による現金要求などがあったが、このようにオープンに要求する場合は、TVドラマの身代金要求における現金受渡しと同様に、かなり難しいかもしれない。

1.最小権限(need-to-know)
アクセス権の中で、「最小権限(need-to-know)」の考え方は理解しておきましょう。
アクセス権の付与は、その人に必要な最小限のみを与えるという考え方です。必要以上に付与することで、不正や事故が起こる可能性があります。

過去問(H21秋FE午前)を見ましょう。
問43 利用者情報を管理するデータベース(利用者データベース)がある。利用者データベースを検索し、検索結果を表示するアプリケーションに与えるデータベースのアクセス権限として、セキュリティ管理上適切なものはどれか。ここで、権限の範囲は次のとおりとする。
〔権限の範囲〕
参照権限:利用者データベースのレコードの参照が可能
更新権限:利用者データベースへのレコードの登録、変更、削除が可能
管理者権限:利用者データベースのテーブルの参照、登録、変更、削除が可能

ア 管理者権限
イ 更新権限
ウ 参照権限
エ 参照権限と更新権限
「利用者データベースを検索し、検索結果を表示する」というところがポイントです。正解は参照権限(のみ)なので、ウが正解です。

2.アクセス権に関する過去問をいくつか
(1)H20春 初級シスアド午前 
問51 ディレクトリに、読取り、更新、配下のファイル作成のアクセス権を設定できるOSがある。この3種類のアクセス権は、それぞれに1ビットを使って許可、不許可を設定する。この3ビットを8進数表現0~7の数字で設定するとき、次の試行結果から考えて、適切なものはどれか。
〔試行結果〕
(1) 0を設定したら、一切のアクセスができなくなってしまった。
(2) 3を設定したら、読取りと更新はできたが、作成ができなかった。
(3) 7を設定したら、すべてのアクセスができるようになった。

ア 2を設定すると、読み取りと作成ができる。
イ 4を設定すると、作成だけができる。
ウ 5を設定すると、更新だけができる。
エ 6を設定すると、読取りと更新ができる。
Linuxなどによるファイルのアクセス権 644などの設定をイメージすると分かりやすいでしょう。

この問題では、3ビットでアクセス権を表します。

以下がその一覧です。 
10進数2進数
0000
1001
2010
3011
4100
5101
6110
7111
問題文より、0=000で一切のアクセスができず、7=111で全てのアクセスができることから、「1が許可、0が不許可」であることが分かります。
3=011により、読取りと更新はできたが、作成ができないので、最初の1ビットは、「配下のファイル作成のアクセス権」になります。 4=100であれば、作成だけができるので、イが正解です。

同様の過去問は、平成27年春FE午前問44にもあります。以下に解説を含めて記載しています。
http://sg.seeeko.com/archives/154287.html

(2)H19初級シスアド秋 午前
問47 部門内データの共用と個人用データの集中管理を行いたい。使用するファイルサーバでは、ディレクトリごとに利用者のアクセス権を設定できる。次のような条件で読込みと書込みのアクセス権を設定した場合、許可されるアクセスはどれか。
〔条件〕
(1) 個人のディレクトリは、その個人だけが使用する。
(2) 部門共用のディレクトリを使ってデータを共用し、部門内のだれでも同じデータを読み書きできるようにする。
(3) 部門共通フォームのディレクトリを使って、フォームなどの標準書式を共用する。標準書式の更新はサーバ管理者だけが行う。
ア サーバ管理者は、すべてのディレクトリに対して読取りと書込みができる。
イ サーバ管理者は、部門共通フォーム以外のディレクトリに対して読取りだけができる。
ウ サーバ管理者を除くすべての利用者は、自分以外のディレクトリに対して読取りだけができる。
エ サーバ管理者を除くすべての利用者は、部門共通フォームのディレクトリに対して読取りだけができる。
正解は、エである。

以下に詳しい解説があるので見ていただきたい。
http://www.ipa.go.jp/security/vuln/vuln_contents/csrf.html

過去問では、クロスサイトリクエストフォージェリ」について、以下のように解説されている。
利用者のブラウザによって、利用者の意図しないリクエストがWebサーバに送信され、ログイン中の利用者にだけ許可されたWebサイトの機能が勝手に実行される脆弱性。(H23SC春PM2-2設問3(1))
ポイントは、「ログインしている」ということです。ログインしなければできない権限での不正ですから、たとえば、ログイン状態でのみ行える購買や決済行為をしてしまうとか、本人の名で不正な書き込みをしてしまうなどが引き起こされます。
 
[  ]に入る字句を述べよ。

「今回のように、ログインした会員だけが、予期しない処理を実行させられてしまうセキュリティ攻撃は、[  ]と呼ばれている。
 この攻撃が成功する主たる要因は、会員の正しい要求と悪意のあるコードの要求を区別できないことである」(H23秋AP午後問9参照)
 SNSサイトなどにCookieなどのセッション情報を保持したままスクリプトが自動実行されます。これにより、意図しない書き込みがされたり、商品購入サイトで勝手な購入がされることがあります。対策に関しては、H23秋AP問9設問4に書かれています。
 正解は、「クロスサイトリクエストフォージェリ(Cross Site Request Forgeris)」です。フォージェリ(forgery)とは「偽造」という意味です。「サイトをまたがって(Cross Site)のリクエストの偽造」と考えればよいでしょう。
情報セキュリティスペシャリスト試験を目指す女性SE 

どちらもサイトをまたがって(クロスサイト)の攻撃ですよね?
違いがよくわかりません。
ポイントは、SNSなどにログインしているのかどうかです。ログインしなければできない処理がいくつかあります。たとえば、会員情報を書き換えたり、その会員としてメッセージを投稿することなどです。

過去問(H23秋AP問9)には、被害の具体例を含めた記述がありますので、クロスサイトリクエストフォージェリの動作を理解する意味で、参考にしてください。
〔想定される原因〕
(1)会員掲示板ページを出力する処理に問題があり,この問題を悪用した<script>タグを用いた悪意のあるコードが,会員掲示板ページに埋め込まれた形跡があった。
(2)ログインした会員が,この悪意のあるコードが埋め込まれた会員掲示板ページを参照すると,そのコードが自動的に実行され,会員の登録情報を書き換える処理や特定の商品の注文処理が行われるようになっていた。

また、どんな被害や問題が発生するかは、以下の記述が参考になります。
〔原因から想定される脅威〕
(1)登録情報や会員掲示板情報に対して,ログインした会員が予期しない処理を勝手に実行させられることによって起こる情報の改ざん
(2)ログインした会員が予期しない注文処理を勝手に実行させられることによって起こるサービスの悪用

IPAの資料に、CSRF対策が記載されています。
リクエスト強要(CSRF)への対策は、ユーザ本人以外の者が捏造(ねつぞう)したコンテンツに基づいて発せられたHTTPリクエストを Webアプリケーションが受け付けないようにすることである。
そのためには、代金決済やコミュニティ脱退等の重要な処理の場面において、秘密の「照合情報」をWebアプリケーションとブラウザの間でやりとりし、第三者が用意した偽のコンテンツから発せられたリクエストを区別できるようにする。
具体的には、フォームを表示するプログラムによって他者が推定困難なランダム値を hiddenフィールドとして埋め込み送信し、フォームデータを処理するプログラムによってそのランダム値がフォームデータ内に含まれていることを確認する。
そのランダム値がフォ-ムデータに含まれていない場合、処理を見合わせるようにする。
https://www.ipa.go.jp/security/awareness/vendor/programmingv2/contents/301.htmlより)

では、この知識を踏まえ、過去問(H28春SC午後Ⅰ問1)を解いてみましょう。
(2)フレームワークにCSRF対策機能がない場合は,次のルールに従った実装をして, CSRF対策とする。
・ POSTメソッドによるアクセスだけを用いる。
・前画面で,HTMLフォーム内に[ e ]を[ f ]フィールドの値として埋め込む。
・画面遷移時に受信したデータが,埋め込んだ[ e ]と一致するかを確認する。
さて、先ほどのIPAの解説資料の通りです。
攻撃者が推測可能な文字ではいけませんので、eにはランダム値を入れます。フィールドとしては、hiddenフィールドを使います。
※hiddenフィールドを使うには、GETではなくPOSTメソッドの必要があるのです。

【解答】
e ランダムな値
f hidden

・出会い系サイトから子供を守る
詳しくは、サイバー警察のサイトにある出会い系サイトによる犯罪が増えているようだ。
親はパソコンにソフトを入れるように促している。
またサイトの事業者は、年齢確認として、18歳以上かどうかを選ぶページを作る必要がある。
c2f058cb
でもこれって、クリックするだけでしょ。コンビニでたばこを買うときに免許証を見せたりするチェックとは違い、全く意味がないと思う。→サイバー警察に電話して聞いてみよう。

過去問(H23春SC午後Ⅱ問2)の「Web検査の主な検査項目と内容」を紹介する。Web検査の項目はつまり、一般的なWebへの脅威そのものだ。
「検査する脆弱性の内容」から、空欄の「検査項目」を答えてほしい。

検査項目検査する脆弱性の内容
オブジェクトの直接参照存在を明示していないコンテンツやアプリケーションのデータファイルが,ディレクトリやファイル名,パックアップファイルなどを指定してアクセスされる脆弱性
[ a ]HTML出力文字列のエスケープ処理が不適切な場合,攻撃者の作成した不正なリンクによってWebサイトを閲覧した利用者のブラウザ上でスクリプトが実行される脆弱性
[ b ]利用者のブラウザによって,利用者の意図しないリクエストがWebサーバに送信され,ログイン中の利用者にだけ許可されたWebサイトの機能が勝手に実行される脆弱性
HTTPヘッダインジェクション外部から渡されたパラメタをレスポンスのHTTPヘッダに反映する場合,不正なヘッダを生成されたり,レスポンスボディに不正な文字列を挿入されたりする脆弱性
[ c ]入力フォームのパラメタなどへの不正な文字列挿入によって, SQL文やOSのコマンドが不正に実行される脆弱性
不正メール送信パラメタ文字列をメールヘッダに反映して電子メールを送信する場合,スパムメール送信などに利用される脆弱性
[ d ]パス文字列の処理が不適切な場合,攻撃者の不正な入力によって,管理者がアクセスを想定していないファイルにアクセスされる脆弱性
不適切なセッション管理クッキーなどを利用したセッション管理が不適切な場合,なりすましによる不正なアクセスが発生する脆弱性

正解は以下である。
a クロスサイトスクリプティング
b クロスサイトリクエストフォージェリ
c SQLインジェクション・OSコマンドインジェクション
d パス(ディレクトリ)トラバーサル 

データベースに関するセキュリティ対策は、通常のセキュリティ対策と基本的には同じである。たとえば、データベースの暗号化、アクセス権設定によるアクセス制御、利用者認証を実施する。また、万が一のデータ破壊に備えてバックアップをきちんと取ることが大切である。それ以外に、SQL インジェクション対策としてのサニタイジングなどがある

スポンサードリンク

↑このページのトップヘ