rsyslog + SE-PostgreSQL = ???

Post on 08-Jul-2015

1.255 views 5 download

description

hbstudy#28 (当日力が抜けて死ぬほどぐだぐだした) LT

Transcript of rsyslog + SE-PostgreSQL = ???

hbstudy#28 LT

rsyslog + PostgreSQL9.1.x= ???

ishikawa84g

Agenda

1. ログ

2. 目的

3. システム構成

4. rsyslog とは

5. PostgreSQL 9.1.x (SE-PostgreSQL) とは

6. Labeled IPSec とは

7. 設定

8. まとめ

1. ログ管理

今までのログ

定期的な監視

リソースチェック

障害の発見

インシデント発生時に利用

原因の特定

今のログ

新法制度への対応

社会的リスクマネジメント

セキュリティ要件の強化

⇒ 「何かあってから」ではなく、「何もなくても」

→ 根本は「何かあったらどうする!」だけど....

1. ログ管理

個別サーバでのログ収集の限界

全てのサーバに同一のポリシーを適用する

ローテート期間などの管理が難しい

システムマネジメントツールを利用すればある程度可能

システムの複雑化にともなうログの増加

ハードディスクを圧迫 →システムにも影響

事故または故意による保存ログ消失

基本的にログはファイルで管理される

# rm -rf /var/log/*

2. 目的

システムのポリシーを管理することは難しいが、

せめて、ログを消せない仕組みが欲しい

あと、欲を言うとログを一元管理したい

既存の仕組みで、できればタダで。

妄想2年(最近思い出した)

3. システム構成

以下、実証実験環境

ログ保存用 データベースサーバ (PostgreSQL9.1.x)

普通のサーバ (rsyslog)

ログ転送

4. rsyslog とは

RHEL系で syslogd にとって代わってたシスログデーモン

http://www.rsyslog.com/

rsyslog の r は remote ではなく、reliable

reliable(信頼できる) syslog

主な機能

TCP によるログ転送

セキュアなログ転送が可能(stunnelを使用)

ログ処理が追いつかなくなった場合に、ログをプール可能

RFC3195(http://www.ietf.org/rfc/rfc3195.txt)サポート

標準機能として保存先にデータベースを指定可能

5. なぜ PostgreSQL 9.1.x?

普通の PostgreSQL です。

ただし!

Add a SECURITY LABEL command and support for SELinux permissions control

(PostgreSQL 9.1.0 リリースノートより)

OS レベルの MAC を DB でも制御可能

通称: SE-PostgreSQL

未踏ソフトウェア創造事業 にて 2006年 発表

2011年

5. SE-PostgreSQL とは

未踏ソフトウェア創造事業 にて 2006年 発表

作者は日本人: 海外浩平氏

2011年09月 PostgreSQL 9.1 (一部)標準機能へ

今までOSの権限とまったく結びつかず、 DB 内で最強だった Super User を制御する

同じ Super User を使った場合でも、 コマンドを実行したユーザの権限によって、 DB 内の権限を縮退させることが可能

5. SE-PostgreSQL とは

もっと具体的に

SELECT Only のテーブル

SELECT INERT Only のテーブル

特定のカラムやタプルを隠ぺい

ただし、View を使った場合には見えるとかとか

rsyslog への応用

ネットワーク経由で来たデータベースへのアクセスは SELECT, INSERT 以外許可しない

ログが消せないシステムができる!

勿論、死ぬほど INSERT されたら違う意味で死にます。

SELinux がどうとか関係ない問題

6. Labeled IPSec とは

IPSec の中にセキュリティラベルを混ぜる技術

今まで取得できなかったリモートのラベルを取得可能

ただし、対向も IPSec の設定が必要

Windows 等はラベルの仕組みがない

UnLabel (ラベルなし/ラベル不明)として到達

IPSec が無効な場合も UnLabel となる

困った・・・

UnLabel はFailback Context 機能で解決

分からない時は定義したラベルを付ける

後記

この時、デモが失敗しました。

詳しくはこの辺り参照ください。

PostgreSQL 9.1.0 で SE-PostgreSQL

http://2done.org/index.php?id=42

rsyslog + SE-PostgreSQL で改竄されない?ログサーバ案

http://2done.org/index.php?id=44