kuhudaro.md

進捗ありますように

セキュスペ対策.md

今週末のセキュスペ対策のために日曜日からちょっとずつ参考書読みながらファイルに纏めたので、ここに記しておく。

ちなみに使った参考書はこれ。

図が分かりやすいのと、午後問題対策が豊富なので買った。 たまによく分からないところがあったので適宜ググりながら読んだらまあまあ理解も捗った気がする。

個人的には応用情報のときよりはある程度深いので勉強のモチベーションが保てたように思う。

(マークダウンは1037行あるので、ブログにしたらどうなってしまうのか気になったので記事にした。)

セキュリティの基礎

情報セキュリティとは

機密性、完全性、可用性

機密性

許可された利用者だけが許可された範囲で利用できる

完全性

改ざんされてない

可用性

いつでも使える
→データのバックアップなど

リスクの発生

リスク=情報資産+脅威+脆弱性

脅威の種類

物理的

技術的

人的

攻撃者

脆弱性の種類

物理的

技術的

人的

リスクマネジメント

リスクアセスメント

ベースラインアプローチ

標準化された手法やツールを用いる

JRAM: JIPDEC Risk Analysis Method

インタビューを元に行う

ALE: Annual Loss Exposure

発生頻度と損失額を算定しておき、年間予想損失額を算出

CRAMM: JIPDEC Risk Analysis Method

JRAMににてるが、5段階評価

詳細リスク分析

自社限定の分析

リスク対応

リスク分析五、リスクアセスメントの結果を元に手段を講じる
手段としては、以下のものがある

リスク回避

利益に対してリスクが大きすぎる時、リスク因子ごと排除
ex. webサイトの運用を止める

リスク最適化

予防措置や被害を最小化
ex. バックアップなどをとる、権限を制限する

リスク移転

他社に転嫁する
ex. アウトソーシング、保険

リスク保有

意思決定のもとにそのままにする

リスク対応の選択

被 移転    回避
害
額 保有    最適化
↑
・→発生頻度

脅威とサイバー攻撃の手法

様々なサイバー攻撃の手法

不正アクセス

権限を超えた好意をネットワークを介して意図的に行うこと

ネットワークスキャン

あらゆるIPにping
→対策:ステルスモード(pingに応答しない)、プライベートIPアドレスをNATと組み合わせて利用

ポートスキャン

あいてるポートから、そのコンピュータの役割が推定できる
→不要なポートは閉じ、必要なポートもIPアドレス認証などをする。

バッファオーバーフロー

大量のデータを送信することで、別のアプリケーション用のメモリ領域にデータが保存される。

パスワード奪取

ブルートフォースアタック

全てのパスワードを試す。 + パスワードを複雑にする + 失敗したらロックする

辞書攻撃

使いそうなパスワードを試す + 意味のある言葉を使わない


以下は、侵入後にやること

ログの消去

証拠隠滅

バックドアの作成

別の侵入経路を作成 + 送信データも確認

セッションハイジャック

TCPの場合 1. 盗聴して通信内容を知る 1. サーバーorクライアントのふりをして通信を勝手に行う
HTTPではセッションIDがテキストで送られていれば簡単にハイジャックできる
UDPでは、早ければもっと簡単(キャッシュポイズニングも似てる)

→対策 + セッション番号の割り当てに乱数を使う + 暗号化・認証を行う + UDPではポート番号をランダムに選択する

セッションフィクセーション

攻撃者がセッションIDを用意しておき、ユーザーに使わせる
→ + セッションIDをログインごとに変更 + セッションの有効期限を短く

盗聴

スニファ

同じデータが流れるエリアに居るだけで良い
→ + 入退室管理 + 暗号化

電波傍受

無線LANは指向性がないので傍受が容易
→ + 暗号化(WEP,WPA,WPA2)

キーボードロギング

なりすまし

IPスプーフィング

IPアドレス認証を突破するためにIPアドレスを偽装

踏み台

他の人のPCで攻撃する

DoS攻撃

TCP SYN Flood

クライアントが最後のACKに応答しないことで、資源を確保したままにする
→ + 一定時間で強制終了 + IDS, IPSを導入

Connection Flood

実際にコネクションを確立する
→攻撃者の特定は容易

UDP Flood

ネットワークを輻輳させる
(TCP SYN Floodと似てるが、UDPにしたもの)
→不要なUDPを閉じる

Ping Flood (ICMP Flood)

大量のping
→wanからのpingに応答しない

Ping of Death

DDos攻撃

大量のノードから攻撃

分散反射型DoS攻撃 DRDos

標的サーバーを偽装してSYNを踏み台サーバーに送ると、大量のSYN/ACKが標的に送られる

Webシステムの攻撃

Webビーコン

メール受信者の行動を、サーバーへのアクセスなどによって取得する

フィッシング (phishing)

有名サイトになりすます

ファーミング (pharming)

正規のアドレスでも違うサイトにアクセスされてしまう。
ex. キャッシュポイズニング
→サーバのディジタル証明書を確認するなど

スクリプト攻撃

クロスサイトスクリプティング (XSS)

フォームにスクリプトを送信し、webサイト上で任意のスクリプトを実行する
サニタイジング(無害化)

クロスサイトリクエストフォージェリ (CSRF)

ログイン状態であることを利用してスクリプトを実行させる
→すぐログアウトとか

SQLインジェクション

  • バインド機構
  • エスケープ処理
  • 詳細なエラーを吐かせない

OSコマンドインジェクション

HTTPヘッダインジェクション

ヘッダに不正な文字列を挿入

キャッシュサーバへの仲介

キャッシュサーバがヘッダを作る時にヘッダインジェクションを行う

DNSキャッシュポイズニング

ドメイン名を不正なIPアドレスに解決 1. キャッシュサーバに問い合わせ 1. 正規の回答が返る前に、攻撃者が送信

ディジタル署名を取り入れたDNSSEC (DNS Security Extensions)を用いる

DNS Changer

問い合わせに行くDNSサーバーを攻撃者のものにする

標的型攻撃

昔は大量にフィッシングとかをしていたが、近年は標的を絞って行う

その他

ソーシャルエンジニアリング

人的な脆弱性を利用

ショルダーハッキング

スキャベンジン

ゴミ箱に捨てられた情報をつなぎ合わせて復元すること

会話

スパムメール

メール爆撃

メールサーバに対するDoS

コンピュータウィルス

分類

ウイルス(狭義)

他のプログラムに帰省する

ワーム

独立して破壊活動を行い、自己増殖する

トロイの木馬

きっかけが与えられると破壊活動や増殖を行う

ウイルスの3機能

自己伝染機能

潜伏機能

発病機能

感染経路

媒体感染

記憶媒体を通じた感染

MBR感染

起動時に読み込まれるディスクの先頭部分

ネットワーク感染

メール感染

.exeが送られるなど

ファイル共有感染

システムのネットワークから感染

マクロウイルス

wordやexcelなどのマクロ機能で感染

ウイルスへの対策

ウイルスチェックソフト

パターンファイル をもとにウイルスを検出

ヒューリスティック

コードからウイルスが行いそうな処理を見つける

ビヘイビア法 (動的ヒューリスティック法)

実際に動作させてウイルスか判定

ウイルスチェックソフトの限界と対策

パターンファイルにないとダメ

→自動アップデートなどを行う

亜種に対抗できない

圧縮データに弱い

感染後の処理

  1. 初動対応
  2. システムの利用停止
  3. ネットワークから遮断
  4. ユーザへアナウンス
  5. 復旧
  6. ウイルスと影響範囲の特定
  7. 復旧手順の確率と復旧作業
  8. 事後処理
  9. 原因の特定と対応策の策定
  10. 関係機関への届け出

セキュリティ技術 - 対策と実装

ファイアウォール

ネットワークをローカルとリモートに分け、ローカルのセキュリティを維持する設計思想(ペリメータセキュリティモデル)を採用している
境界にあるのがファイアウォール

レイヤ3フィルタリング

IPドレスを利用して通過/普通科を決定

レイヤ4フィルタリング

ポート番号とプロトコルも用いる

ルータとの違い

ルータは主にアクセス制御

レイヤ7フィルタリング

アプリケーション層の情報を元にフィルタリング

ステートフルインスペクション

前後の文脈を観て検査
ex. 前後のパケットや上下のプロトコルとの整合性

ディープパケットインスペクション

アプリケーション情報を使った検査
ex. メールに「機密事項」など

ルールベース作成の注意

インバウンド(外→内)だけでなく、アウトバウンド(内→外)にも制限をかける

シングルサインオン

プロキシサーバ

リバースプロキシとシングルサインオン

サーバー側のプロキシサーバを用いて、
複数のサーバーにアクセスする際にユーザー認証を一度だけで済ませる

その他のシングルサインオン

クッキー

SAML (Security Assertion Markup Language)

一度ログインしたら元のサイトが次のサイトに認証情報を送信

WAF

HTTPなどを解釈して攻撃から守る装置
webアプリだけを対象にしている点でファイアウォールと違う

DMZ (DeMilitarized Zone)

公開サーバーを設置するための緩衝ゾーン(非武装地帯)をDMZと呼ぶ + 多段のファイアウォール + 1台のファイアウォールに3枚以上のNIC

その他のファイアウォール

パーソナルファイアウォール

クライアントノード上で動くソフトウェア

コンテンツフィルタリング

リモートアクセス

外部からローカルネットワークのリモートアクセスサーバ(RAS)に接続

PPP (Point to Point Protocol)

WANでMACフレームの代わりに用いるもの

PPPの認証技術

PAP (Password Authentication Protocol)

平文で送信

CHAP (Challenge Handshake Authentication Protocol)

EAP (PPP Extensible Authentication Protocol)

最もよく利用されている
MD5とかを用いる

VPN

公共ネットワークの中で仮想的な専用線を作る
暗号化と認証をする

VPNの種類

インターネットVPN

IP-VPN

通信事業者の広域IP網を用いる

VPNの2つのモード

トランスポートモード

端末が暗号化を行う + ◯通信路中のどこでも暗号化される + ☓IPヘッダは暗号化されない

トンネルモード

VPNゲートウェイを利用して暗号化 + ◯ゲートウェイを設置するだけで良い + ☓ローカルネットワーク内ではパケットが暗号化されない + ☓拠点間のみ

VPNを実現するプロトコル

IPsec, PPTP

PPTP (Point to Point Tunnel Protocol)

データリンク層で暗号化や認証を行う

SSL-VPN

SSLを用いる

IPsec

ネットワーク層のIPそのものを暗号化する
暗号化を交渉するIKEフェーズ→実際に伝送するIPsecフェーズ

SA (Security Association)

IPsecのIKEフェーズで確立されるコネクションのこと

AH (Authentication Header) とESP (Encapsulating Security Payload)

認証だけを行う場合はAH、暗号化も行う場合はESP

IDS (Intrusion Detection Systems)

侵入検知システム + ホスト型: 対象ノードのみ + ネットワーク型: ネットワーク内すべて

Misuse検知法 (不正検知法)

シグネチャに一致する攻撃を検知

Anomaly検知法 (異常検知法)

正常な状態から外れる事を検知

IPS (Intrusion Prevention Systems)

侵入防御システム

IPSの配置

ネットワークとネットワークの境界に設置

不正データの排除

サニタイジング

不正なデータを無害化すること一般

エスケープ処理

処理系で使ってはまずい文字を、使う直前に書き直す

プレースホルダ

静的プレースホルダ

プリペアドステートメントを用意し、構文解析を済ませておく

動的プレースホルダ

webアプリ上でバインディング

信頼性の向上① RASIS

Reliability: 信頼性

MTBF(1/故障率)とかを用いる

Availability: 可用性

稼働率(MTBF/(MTBF+MTTR))を用いる

Serviceability: 保守性

修理のしやすさ
MTTR(平均修理時間: Mean Time To Recovery, 1/修理率)を用いる

Integrity: 完全性

Security: 安全性

信頼性の向上② 対象外設計

フォールトアボイダン

高品質なものを投入

フォールトトレランス

呼称が怒ることを前提に、被害を限定化する

フェールセーフ

被害を最小限にする
ex. バックアップを容易

フェールソフト

核になる機能を損なわない

フールプルーフ

人為的なミスを予防する

フォールトマスキング

故障しても自立回復

耐障害設計の手法

故障予防

故障監視/運用

故障復旧

性能管理

信頼性の向上③ バックアップ

考慮すべきもの + データの範囲 + 頻度 + 許容される時間 + 世代管理の有無 + 保存場所

バックアップ手法

フルバックアップ

差分バックアップ

フルバックアップ以降の差

増分バックアップ

フルバックアップ以降ステップごとに差分

バックアップ運用

リストアのリハーサル

廃棄管理

遠隔地管理

信頼性の向上④ 新しいバックアップ技術

NAS (Network Attached Storage)

ネットワークに直接接続するファイルサーバ

SAN (Storage Area Network)

ストレージ専用のネットワーク

ネットワーク管理技術

syslog

ルータなどは、サーバにログを送る

NTP (Network Time Protocol)

コンピュータや通信機器の時刻を合わせるためのプロトコル

管理台帳の作成

SNTP (Simple Network Management Protocol)

マネージャとエージェントによって、障害の通報を行う標準プロトコル

セキュアOS

Trusted OS

TCSEC(Trusted Computer System Evaluation Criteria)によって評価
B1以上(B1,B2,B3,A1)

セキュアOS

セキュリティ機構を強化しているOS

クラウドとモバイ

クラウド技術の脆弱性と対策

情報資源が手元を離れる

サービスの供給がネットワーウ経由

海外法が適用される可能性がある

保管された国の法律の適用を受ける

バイル機器の脆弱性と対策

盗難、紛失への対策

生体認証の利用

セキュリティ技術-暗号と認証

セキュリティ技術の基本

システムが行うセキュリティ対策の技術群

セキュリティ技術の種類

暗号化

認証

本人かどうかを判断する

コンピュータウイルス対策

フィルタリング

出入りする情報の流れを仕分けすること

信頼性工場技術


暗号

暗号化の考え方

盗聴リスクへの対応

盗聴リスクと暗号化

盗聴: ネットワーク上を流れるパケットを傍受する行為
暗号化: 平文を変換し暗号文にするもの
復号: 暗号文を元の情報に戻す

暗号の基本と種類

一定の暗号化アルゴリズムを用いるが、鍵となる変数には違うものを用いる

共通鍵暗号方式

暗号化と複合に同一の鍵を用いる + ペアは同じ秘密鍵を持つ + 鍵の伝達方法に問題がある + ペアごとに異なる鍵が必要

実装技術

DES (Data Encryption Standard)

平文をブロックに分割して転置と換字を行う
秘密鍵は56ビットのデータ列→7京通り

ブロック暗号: ブロックに分割してブロックごとに暗号化する方式 + ECBモード: とりあえず分割→同じブロックは同じ暗号文になってしまう + CBCモード: 前のブロックとの排他的論理和を計算して暗号化 (最初のブロックは初期化ブロックを用いる) + OFBモード: 初期化ベクトルを毎回暗号化していき、平文との排他的論理和を暗号文とする

FEAL (Fast Data Encryption Algorithm)

暗号化を行う回数を選択できるようにしたことでDESを高速化した

TripleDES

DESのアルゴリズムの中で異なる鍵を用いて暗号化→復号化→暗号化を行う

AES (Advanced Encryption Standard)

DES同様にブロック化暗号方式だが、ブロック長を長く取って安全 128,192,256ビットから選べる

秘密鍵の管理

なくすとヤバいので、相互監視するのもやむなし

公開鍵暗号方式

暗号化鍵と復号化鍵を分ける

しくみ

のはもう一方で復号可能
一方の暗号化鍵を公開(公開鍵)
もう一方の復号鍵を受信者が管理(秘密鍵)
n人でも鍵は2n個でよい
必要なCPUパワーは共通鍵暗号方式の数百~数千倍

実装技術

RSA (開発者の頭文字)

素因数分解を用いる

楕円曲線暗号

RSA買得に用いられる数体ふるい法に強い

ハイブリッド方式

共通鍵の配布に公開鍵暗号を用いる

Diffie-Hellman 鍵交換アルゴリズム

お互い同じ数字を知っている状態で、双方乱数を用いて生成された数字をやり取りすると、直接やり取りしていない共通の数字を知ることが出来る
→盗聴の可能性がない


認証

認証システム

アクセスコントロールと認証システム

アクセスコントロール:ユーザーの識別、認証、権限管理を行うこと

識別

どのユーザーがアクセスしようとしているのか

認証

たしかにその本人か

権限管理

パスワード認証

クリアテキスト認証 (パスワード認証)

平文で送信→ネットワークで弱い

チャレンジレスポンス認証

  1. クライアントがユーザIDを送信
  2. サーバはチャレンジコード(乱数)をクライアントに送信
  3. クライアントはパスワードと組み合わせたハッシュ値をサーバに送信
  4. サーバはハッシュ値が正しいことを確認

ワンタイムパスワード

ログインするごとにパスワードを変更する

S/KEY

  1. クライアントがユーザIDを送信
  2. サーバーはシードとシーケンス番号S(チャレンジコード)をレスポンス
  3. パスフレーズとS-1回ハッシュ処理したものをサーバに送信
  4. サーバは受信したものに1回ハッシュ処理したものと、シードにS回ハッシュ処理したものを比較

時刻同期方式

時刻をトリガにしてワンタイムパスワードを生成

パスワード運用の注意

リスク + ユーザの不注意による漏洩 + 辞書攻撃 + 総当たり攻撃

パスワードの要件

複雑だが素早く入力でき覚えやすい
→矛盾 ∴パスワード認証には限界

ユーザID発行上の注意

  • ある程度複雑なIDが良い
  • 適切なライフサイクルコントロールをする

二要素認証

パスワードと何か別の認証要素を使う

バイオメトリクス認証

盗難や紛失の心配がない

指紋

樹脂素材などで突破されるので、体温や皮脂なども併用するシステムもある

虹彩

コピーしにくい

声紋

個人の声の特有な波形

ディジタル署名

なりすましと改ざんへの対策
公開鍵暗号のプロセスを逆にたどる
平文を秘密鍵で暗号化し、それを公開鍵で複合したものが平文と一致することから改ざんしていないことを確認できる

メッセージダイジェスト

実際には平文をハッシュ関数に通したメッセージダイジェストを用いる
ハッシュ関数は不可逆で衝突の起きない、長さ一定のものである必要がある

MD5 (Message Digest)

128bit

SHA-1 (Secure Hash Algorithm)

160bit
MD5よりも復元がしにくい

SHA-2

SHA-1よりも長い

SHA-3

アルゴリズムの抜本的改革

ディジタル署名公開鍵暗号の複合

p.257の図が分かりやすい

電子メールのエンコードと暗号化

MIME (Multipurpose Internet Mail Extensions)

ascii以外のいろんなビット列をメールで送れるようにした

base64

どんなメッセージが含まれていても一連の2進数として捉え、64種類の文字に変換

S/MIME

MIMEを拡張して暗号化と認証の機能を蒸した者
ボディ(メール本文)は暗号化されるが、ヘッダ部はそのまま

PKI (Public Key Infrastracture )

ディジタル署名の弱点

秘密鍵が本当にその人のものか証明できない

PKI

第三者機関によって正当な鍵であることを証明

ディジタル証明書の発行

認証局(登録局と発行局)が公開鍵を公開する際に、
被認証者と認証局のディジタル証明書を施したディジタル証明書を発行

認証局の階層構造

ディジタル証明書の失効

ディジタル証明書には有効期限がある
CRL(Certificate Revocation List): セキュリティインシデントなどで失効させられたディジタル証明書のリスト

ディジタル証明書は取引相手の"真っ当さ"は保証できない

PKIで問われる関連技術

GPKI (Government Public Key Infrastructure)

政府が提供するPKI機能

OCSP (Online Certificate Status Protocol)

失効を簡単に確認するためのプロトコル

SET (Secure Electronic Transaction)

インターネット上でクレジット決済を安全に行うための規格

タイムスタンプ

ある時刻における存在証明と完全証明のために、タイムスタンプを用いる

タイムスタンプの作り方

時刻認証局と時刻配信局によって時刻を認証する

認証サーバの構成

認証サーバとは

アクセスポイント(無線LANなど)に認証情報を持つと攻撃されやすい
→高度な認証機能を持つ認証サーバに移転させる

RADUIS (Remote Authentication Dial-In User Service)

アクセスサーバと認証サーバを分離

Kerberos

暗号化にアルゴリズムを選択できる
レルム内の各ノード(プリンシパル)の認証情報をKDC(鍵発行局)が管理する

SSL/TLS

SSL (secure Socket Layer)

トランスポート~セッション層において動作するプロトコル
TCPの代わりに利用できる(UDPはダメ)
サーバ認証、クライアント認証、セッションの暗号化を行う

SSLの通信手順

ハンドシェイク

  1. サーバを認証する
  2. 暗号化アルゴリズムを決める
  3. 暗号化鍵とMAC鍵を作る
  4. プレマスタシークレットと公開鍵
  5. MAC(ここまでのやり取りのダイジェスト)によって改ざんがないことを確認

    データの転送

    MACとパケットを暗号化したものを送信

    新しい認証方式

    事物による認証

    耐タンパ性

    細工に対する耐性
    ex. 免許証 > 保険証

    ICカード

    ICカードの認証プロセス

  6. 本人の公開鍵で共通鍵を暗号化
  7. ICカードのチップ上の秘密鍵を復号
  8. サーバーから送られてきた認証情報を共通鍵で復号
  9. 端末で認証

ICカードの問題点

磁気ストライプがあったりする

多要素認証

セキュリティマネジメント

セキュリティマネジメントシステムのPDCAサイクルについて

情報セキュリティポリシ

文書の形で明確に示される、セキュリティへの 取り組みビジョン、取り組み基準、罰則規定のこと
残留リスク があることを認識する

法律との違い

各組織が自身の事情を勘案して定めるもの

情報セキュリティポリシを活かすISMS

死文化(規定文書が効力を失うこと)を防ぐための仕組みが情報セキュリティマネジメントシステム(ISMS)
作成のためにはベースラインアプローチを用いる

ISMSの規格

英国のBS7799-1がベストプラクティスを示し、ISOやJISにも受け入れられた

認証基準

第三者機関が評価する際に使用するガイドラインとしてBS7799-2が定められた

情報セキュリティポリシの種類

3階層 それぞれ世代管理しておく必要がある

情報セキュリティ基本方針

経営層レベルで策定し、ビジョンを示す文書。
社長の名前で公表される

情報セキュリティ対策基準

部署ごとの事情をかみして具体化したもの
(ここまでの2階層を情報セキュリティポリシと呼ぶ)

情報セキュリティ対策実施手順

担当者の社員がどのような手順を踏めばいいか示すマニュアル

他の社内文書等の整合性

情報セキュリティポリシを具体化する組織

CSIRT (Computer Security Incident Response Team)

インシデントが発生した時に対応する組織の総称

SOC (Security Operation Center)

セキュリティにまつわる実業務を行う部書

ISMSの運用のポイント

認証基準である

第三者機関に認めてもらう必要がある

適用範囲を定める

部署を絞って取得できる

資産管理大腸の作成・更新が必須

死文化させない措置

セキュリティ委員会へ経営層を参加させる

罰則規定を盛り込む

規定の見直し

セキュリティ教育の実施

他のマネジメントシステムとの関わり

他の分野の認証も取得

ISMS審査のプロセス

見積り

審査工数の把握

監査の準備

監査のリーダー、目的、範囲などを策定

審査契約の締結

審査計画書に基づいてスケジュール調整

予備審査

初回審査

計画と文書が存在するかのチェック(文書審査)

本審査

ISMS認証基準への適合性を判断

開始会議の開催

実地監査

監査所見の作成

終了会議の開催

報告

フォローアップ

セキュリティシステムの実装

セキュリティ製品の導入

比較属性*重要度で比較

ペネトレーションテスト(脆弱性検査)の実施

どこまで社員に周知するかは考える必要がある
抜き打ちが理想的だが、業務を止める可能性がある

セキュリティシステムの運用

セキュリティパッチの適用

ベンダによってアナウンスはまちまちなので、セキュリティホールが公開されたら早急に対応する

Exploitコード

脆弱性を検証するプログラム
セキュリティパッチが公開されるより早いゼロデイ攻撃が行われる可能性もある

ログの収集

原因追求の手がかりやシステム監査時の監査証跡になる

ログの監査

監査基準を元に定期的に評価する

サービスマネジメント

サービス水準という観点から情報システムを管理・運用していくこと

サービスレベルアグリーメント (SLA)

どの程度の水準を達成すれば良いのかを提供者とユーザで合意して明文化したもの
サービスマネジメントの目標となる
定量データで定める必要がある

ITIL (Information Technology INfrastructure Libraly)

PDCAサイクルを回すベストプラクティス

サービス・サポート サービスデリバリ
サービスデスク サービスレベル管理
インシデント管理 ITサービス財務管理
問題管理 キャパシティ管理
構成管理 ITサービス維持性管理
変更管理 可用性管理
リリース管理

ファシリティマネジメント

ハードウェアに着目したもの
電源容量, 停電, 排熱, 盗難管理など
停電はUPSによって停電時にも正常シャットダウンまでの時間を確保することで対策

セキュリティ教育

ユーザへの教育

教育の時期

入社時・ポリシなどの変更時・新システムの導入時

教育の方式

  • PBL (Project Based Learning): 与えられた課題について受講者が主導して解決
  • カフェテリア方式: コースの中からユーザ自信がピックアップして受講

セキュリティ技術者・管理者への教育

セキュリティ教育の限界

会社に恨みを持つ内部犯やヒューマンエラーなどの可能性は常に存在する

セキュリティインシデントへの対応

対応手順を事前に整備しておく

初動処理

インシデントを発見したユーザがその場で対応するのが一番やってはいけない 1. 作業手順を確認して記録をつける 1. 管理者に報告 1. スナップショットの保存 1. ネットワークからの切り離し

影響範囲の特定と要因の特定

要因を特定するまでは復旧させない

システムの復旧と再発防止

再発防止策を体系化させる

BCP (Business Continuity Plan): 事業継続計画

業務を止めるリスクが生じた時に業務を止めずに継続するための対応手順を示した文書
リスクの例 + 突発的な要因: 自然災害(日本で主), テロ(欧米で主) + 段階的、持続的な要因: 感染症、水不足、電力不足

BCP策定の考え方

いきなり100%を目指さない 1. 最低限の許容限界で出来る限り再開 1. 目標レベルを目標時間までに達成する

BCM (Business Continuity Management): 事業継続管理

重大な事故が発生した場合でも事業を継続できる仕組みを作り込むという発想

BCP,BCM策定に必要な情報

  • 業務中断コスト
  • 対策コスト
  • 業務中断を許容得きる範囲
    →RTO(Recovery Time Objective: 目標復旧時間)が決まる

システム監査

運用を第三者的な視点からチェックする実地少佐
目的は、内部統制が機能しているか評価すること
システム監査はシステムに関わる事項、セキュリティ監査は情報資源全般

内部統制とは

不正行為などが行われないような業務手続きを定め、管理すること

監査基準

明文化されている必要があり、検証できる形の監査証跡が必要

監査の種類

第一者監査: 自組織

第二者監査: 利害関係者

第三者監査: 独立した監査機関

監査人の選定

倫理的で公平でスキルがあって独立で論理的な人

監査の流れ

合格・不合格ではなく安全性を維持するための活動なので、PDCAサイクルで行われる

監査活動のステップ

ISMS審査の流れに似てる

監査の開始

目的・範囲・基準の明確化
計画書が作成される

文書レビュー

監査基準への適合性を判断

現地監査活動の準備

アポイントとか

現地監査活動の実施

システムログのサンプリングや担当者へのインタビューにより監査証拠を収集
→監査調書を作成

フォローアップ

修正(不適合状態を除去)と是正処理(不適合の根本原因を除去)をおこなう

被監査者側が対応すべきこと

可監査性を高めておく

ソフトウェア開発技術とセキュリティ

脆弱性を残存させないためのソフトウェア開発技術

システム開発のプロセス

システム開発の流れ

複雑で大規模なシステムを短期間で作るために体系化されたシステム開発技術が必要

CMMI (Capability Maturity Model Integration)

システム開発を行う組織の評価尺度

システム開発の基本的骨格

基本計画

要求機能やスケジュールの決定

外部設計

ユーザ側から見た機能を決定

内部設計

システム開発側から見た機能を決定

プログラム設計

モジュール分割を行う
モジュールは、強度が強いほどよく、結合度が弱いほど良い

運用・保守

故障が発生する前に保守を行う

ソフトウェアのテスト

視点による分類

ブラックボックステスト

ユーザ視点
実運用において使われるデータやエラーデータを投入

ホワイトボックステスト

開発側の視点で行うテスト
内部構造が設計通りに動作しているか、全てのケースでテスト

判定条件網羅
命令網羅

プロセスによる分類

開発プロセスに着目したテスト

単体テスト→プログラム設計

モジュールを単独で動かすテスト

結合テスト→内部設計

モジュールを接続して連携の確認

システムテスト→外部設計

要件通りの性能が得られているか

検収テスト→要件定義

ユーザー主導で、要求事項を満たしているか

運用テスト→運用

ユーザー主導で、実運用と同じ条件で行う

結合テストの手法

ビッグバンテスト

モジュールを一斉に接続して行うテスト

ボトムアップテスト

下位から上位へ結合しつつ実施するテスト
擬似的な上位モジュールをドライバと呼ぶ

トップダウンテスト

過剰位から下位へ結合しつつ実施するテスト
擬似的な下位モジュールをスタブと呼ぶ

レグレッションテスト(退行テスト)

修正した時に他の部分に悪影響を及ぼしていないか

テストデータの作り方

同値分割

性質ごとのグループに分割し、各グループの代表値を取得

限界値分析

境界周辺にあるデータを集中的に入力

脆弱性チェックツール

ファジング

総当り的なテスト

テストケースの自動生成

総当り法
ランダム
リバースエンジニアリング

問題が起こりそうなデータを投入

ファジングツールの使い方

対象による分類
生成できるファウによる分類

長さ, 書式, 辞書に登録されたファズ

ファジングの問題点

本当に総当たりなわけではないので慢心しないこと
原因がわからないこともある

システム開発技術

プロセスの進め方

ウォーターフォールモデル

逐次的に行っていく
手戻りが難しい

プロトタイプモデル

プロトタイプを作ってユーザの反応を見てから本番開発に着手

スパイラル・モデル

一部分ごとにプロトタイプを作り、フィードバック

レビュー

複数のメンバで議論しながらチェックすること

インスペクション

参加者の役割を決めてき、焦点を絞って迅速に評価

ウォークスルー

手続きをステップごとにシミュレーション

システム設計のアプローチ手法

プロセス中心アプローチ

業務の処理手順を軸にシステム設計
o 設計しやすい
x 柔軟性が低い

データ中心アプローチ

o データが一元管理され最適化
o データを媒介にシステム間の連携
o プロセスに比べデータは変化しづらい
x データの構造を把握していないとプログラムが記述しづらい

DFD (Data Flow Diagram)

データのライフサイクルを図化したもの

オブジェクト指向分析

データと手続きをまとめて扱う
o オブジェクトに対してメッセージを行うことで処理を行える

プロジェクトマネジメント

プロジェクトマネジメント技術

レビューを通じて進捗、コスト、人的資源、品質をコントロールしていく

PMBOK (Project Management Body of Knowledge)

品質・納期・コストに着目するのではなく、資源などのバランスを取りながら業務を遂行

WBS (Work Breakdown Structure: 作業分割構造)

大規模な作業を経験や技術が追いつく作業まで分解する

スケジュール管理で使われるツール

アローダイアグラム

作業の手順と所要時間を可視化する有向グラフ

最早結合点時刻

次の作業が始められる最も早い日時

最遅結合点時刻

影響を及ぼさずに最も遅らせた場合の日程

クリティカルパス

スケジュールに余裕がない部分

ガントチャート

時間軸を横軸にし、作業計画を棒グラフで示した工程管理図

ソフトウェアの見積り方法

ファンクションポイント法(FP法)

機能を3段階に分類(基準点)+ソフト特有の複雑さを6段階に分類
= ファンクションポイント

COCOMO法

LOC法(行数を元に見積もる)ではなく、複雑さや難易度を見積もり根拠にしたもの


セキュアプログラミング

C/C++

C言語はなぜ脆弱か

Cはメモリアクセス機能が強力で低首位順言語のような柔軟性を持つ
そのため、安全機構が乏しくプログラマが安全性を意識する必要がある

C言語で安全なプログラムを書く方法

各段階で考慮するものが違うので、できるだけ早い段階で脆弱性を見つける

代表的なC/C++脆弱性

主に実装段階で考慮するもの

ファイルの別名検査

ファイル名を入力してもらうつもりがディレクトリ修飾子を挿入されてしまうこと
ディレクトリトラバーサル攻撃
→対策はパスを受け付けるかチェックすること

シンボリックリンク

シンボリックリンクを張ることで、意図せず重要なファイルにアクセスさせられる
→対策 + シンボリックリンクかどうか判定 + ファイル名の検査

レースコンディション

何らかの状態に依存しているとき、攻撃のタイミングによっては状態が変わる
→状態が保たれているかチェック、例えば状態作成直後と操作前で一致しているか

バッファオーバーフロー

条件が4つある 1. プログラム内部に任意のコードを送り込める 1. バッファオーバーフローでジャンプアドレスを書き換えられる 1. ジャンプアドレスが示す先へ、プログラムの制御を渡せる 1. 任意のコードが実行される
対策は、バッファサイズとデータサイズを比較するロジックを作ること

Java

サンドボックスモデル

信用できないコードを動かす場所
Javaではコードに対してアクセス権を付与している

クラス

取扱に注意を要するクラスにパーミッションを付加する必要がある

パーミッションの付加方法

セキュリティマネージャが管理

ECMAScript

サーバー側の対策が問われやすい

ECMAScriptにおけるエスケープ処理

HTMLだけじゃなくjsでのエスケープ処理が必要 + /// + '/' + "/" + 改行 → \n

国際標準・法律

国際標準とISMS

ISO/IEC 15408

情報システム機器のセキュリティレベルを表すための基準
3つのパートから成る

概念と一般モデル

同一分野の製品の共通仕様書(PP)と個別仕様書(ST)を作成

セキュリティ機能要件

セキュリティ保証要件

機能要件がどの程度保証されているか

OECDプライバシーガイドライン

個人のプライバシーを保護する目的
8原則: 同意・正確/最新・目的明確化・利用制限・安全保護・運用方法の公開・個人参加・責任

ISMS標準化の流れ

認証基準: ISO/IEC 27001→JIS Q 27001
ガイドライン: ISO/IEC 27002→JIS Q 27002

JIS Q 27001

個別技術ではないく、マネジメントシステムに対する責任の明確化などが対象

ISMSの構築

国内のガイドライン

政府機関の情報セキュリティ対策のための統一基準

情報セキュリティ監査制度

情報セキュリティ監査基準

対象: 監査基準,監査人
ポイント: 監査人の行動規範

情報セキュリティ管理基準

対象: 非監査企業,非監査組織
ポイント: 監査においてどのような点が評価されるのか

情報システム安全対策基準

コンピュータウイルス対策基準

システム監査基準

助言・勧告であって命令はできない

コンピュータ不正アクセス対策基準

プライバシーマーク制度

個人情報保護に関するコンプライアンス・プログラム要求事項(JIS Q 15001)

利用者が損になることをするな!

SLCP-JCF2013

共通フレーム
「システム」と「ソフトウェア」が完全に区別された

クラウドサービス利用のための情報セキュリティマネジメントガイドライン

法令

コンピュータ犯罪に対する法律

不正アクセス禁止法

ネットワークを介して権限のないことをすること

刑法で規定されるコンピュータ犯罪

電磁気記録不正作出及び併用

支払用カード等電磁的記録不正作出罪

不正指令電磁的記録作成罪(ウイルス作成罪)

バグでウイルス的になったとき/研究目的などのいくつか懸念がある

電子計算機損壊等業務妨害

サーバーとかを破壊

電子計算機使用詐欺罪

端末の不正操作で虚偽のデータを与えるなど

不正競争防止法

不当な噂を流すことや営業秘密のクラッキングなど

迷惑メール防止法

個人情報保護

個人情報保護法

生存している個人に関する情報

知的財産保護

著作権法

プログラムやデータベースは保護対象だが開発言語やアルゴリズムは含まれない
有効期限は50年

特許権

出願することで権利が発生→先願主義
出願日から20年

電子文書

電子署名

印鑑証明だけでなく、電子署名も申請性の保障手段になった

e-文書法(電子文書法)

法定書類を電子文書で作成することを認めた法律
電子署名とタイムスタンプが義務付けられている

サイバーセキュリティ基本法

プロバイダ責任制限法

ネット上で権利侵害などがあった時に被害者が開示請求を行う権利