色々メモ書き。ちょいちょい更新する(かも)
情報セキュリティの3要素
情報セキュリティは以下の3要素で構成される
- 機密性: 情報システムが保持している情報が許可されていない範囲からアクセス出来ないこと
- 可用性: 情報システムを利用したい時に利用出来ること
- 完全性: 情報システムが保持している情報が意図せず改竄されないこと
海の向こうでは、可用性>完全性・機密性 という優先度で判断されることが多いのに対し、
我が国では 機密性>完全性・可用性 という優先度で判断されることが多いので、海外事例を読む場合は留意のこと
セキュリティの勘所
不正活動は以下の3要素(MOM)が揃うと実行に移される
- Measure: 手段
- Opportunity: 機会
- Motivation: 動機
不正活動を防ぐには3要素(MOM)の全てか、いずれかを軽減/遮断出来れば実行に移されることはないと言える。
防御について
境界防御(きょうかいぼうぎょ)と縦深防御(じゅうしんぼうぎょ)について
※軍事用語が由来
- 境界防御: システム間・モジュール間のインターフェース部分でバリデーションチェックを行い入力できない物はその段階で除去する方法
- 縦深防御: システム間・モジュール間のインターフェース部分ではバリデーションチェックを行わず、内部に取り込んだ上で入力に都合の悪い情報を除去していく方法
縦深防御では、不正データを内部に取り込んでしまうため、不具合を誘発する可能性がある
セキュリティ観点からは、境界防御を主軸に、境界防御では防ぎきれない物を縦深防御で防ぐ方策を採るのがベストと考えられる。
※システム設計を行い再、「契約プログラミング」と呼ばれる手法を採ると、境界防御を考慮しやすくなる(参考)
http://ja.wikipedia.org/wiki/契約プログラミング
攻撃対象削減対策
- 要塞化の手段の一つ
- 「使用していない機能は、攻撃者が悪用しないように無効にする」
- 「ファイヤウォールで利用していないポートは全て遮断する」「使わないサービス(デーモン)は停止する/アンインストールする」などもこれに相当する
- 攻撃者へのタッチポイントを限界まで減らすことで、手段を封じ、リスク軽減を図ると共に、メンテナンス対象となる物を減らすことでコスト軽減も図ることが出来る
セキュリティ設計原則
Microsoftさん提唱のセキュリティ設計を考える上での原則
項目 | 内容 |
---|---|
オープンな設計 | 攻撃者はソースや仕様を知っているという前提 |
フェイルセーフ名限定の実装 | 失敗しても終了するようにする。失敗したら失敗した、という状態で終了させる。デッドロックさせないようにする |
最小特権 | 処理に必要な必要最低限の特権のみを与える |
経済的メカニズム | 構造は出来るだけ単純にする。メンテナンスコストや実装コストを最小に考える |
特権の分離 | 一つの条件に基づいて操作を許可しないようにする |
すべてに対する仲介 | すべてを毎回チェックする |
最小限の共通メカニズム | 共有ソースに注意する |
心理的な受容 | その実装・そのシステム、あなたは使いたいですか? |
対策方法の選択肢が多く迷ったら場合
対策方法の選択肢が多くて迷った場合、企業ユースの場合は「経済効率性」を軸に対策方法の取捨選択をすると良い。どういうことかというと…
- 完璧な対策だが、払うコストも高い
- まずまずの対策で、払うコストは中程度
- あまり効果が期待できないが、払うコストが安い
と言うような3パターンの場合、中段の方法を採用するのが最もベストバランスである、という判断。
但し、求められるセキュリティのレベルが非常に高く、コスト度外視と言う場合はこの限りでは無い。
SSL/TLS回りの話し
暗号通信に関する分野は非常に専門的で、深く難しい分野なので、ベストプラクティスを取り込んで設定するのが一番安全。
暗号化しているにもかかわらず、設定が残念なことになっていて、ほとんど意味が無い(暗号化しているよ、という表示がされているだけ平文通信をしているよりもたちが悪いかもしれない)なんて事がないよう、常に最新情報を仕入れて設定の更新をするのが良い(去年大丈夫だった設定が、今年も大丈夫か?という保証はないです)
IPA発行資料
- 日本語で詳しく解説されている資料が発表されました(2015/05/12)
- 3つのセキュリティレベルを定めて、暗号化手法やハッシュアルゴリズムの選択について推奨する設定を解説しています
- https://www.ipa.go.jp/security/vuln/ssl_crypt_config.html
Mozillaのコンフィグレーションファイル生成ツール(サイト)
- サーバープログラムの種類や、OSにインストールされているOpenSSLのバージョン、求める設定のAggressiveさを選ぶと、各サーバーの設定ファイルを生成してくれる便利ツールです
- https://mozilla.github.io/server-side-tls/ssl-config-generator/
調査によく使うサイト
メジャーどころばかりなので、ここに書くのも今更感ありますが、メモ書きと言うことで
※その他、良いサイトがありましたらお知らせ頂けると幸いです
脆弱性情報の調査・収集
- CVE details http://www.cvedetails.com/
- Exploit-DB https://www.exploit-db.com/
- PacketStorm http://packetstormsecurity.com/
- JVN https://jvn.jp/index.html
ウィルス・マルウェア・アクセス先のサイト安全性などの確認
- VirusTotal https://www.virustotal.com/