ラベル Security の投稿を表示しています。 すべての投稿を表示
ラベル Security の投稿を表示しています。 すべての投稿を表示

2015年11月28日

「PostgreSQLセキュリティ総復習」のスライドを公開しました

昨日開催されたPostgreSQLカンファレンス2015でのセッション「PostgreSQLセキュリティ総復習」のスライドを公開しました。


目次は以下のような感じです。

2015年10月13日

Postgres Advanced Security Packテクノロジープレビュー版をリリースしました

本日、「Postgres Advanced Security Pack」というパッケージのプレビュー版をリリースしましたので、ご紹介させていただきます。

■「Postgres Advanced Security Pack」とは何か?


「Posetgres Advanced Security Pack」は、オープンソースで公開されている PostgreSQL のセキュリティ関連の拡張を複数まとめてビルド、RPMパッケージにしたものです。

PostgreSQLの拡張モジュールは、別々の開発者によって個別に開発・配布されているため、自分自身の環境で導入しようとすると手間がかかったり、あるいは単に知られていなかったりしますが、それらの問題を解決して、より簡単に導入できるようにすることを目的としてパッケージ化したものです。

このパッケージを使うことによって、PostgreSQLデータベースにセキュリティ関連の拡張を簡単に追加することができます。

現在、本パッケージには以下の3つのEXTENSION(拡張)が含まれています。

2015年9月23日

sql_firewall 0.8.1をリリースしました

先月リリースした sql_firewall の修正版としてバージョン0.8.1をリリースしました。

sql_firewallの詳細については、前回の記事を参考にしてください。
0.8.1における修正点は以下の通りです。
  • Fix sql_firewall.c to suppress `unused-const-variable' warning on OS X.
  • Fix sql_firewall_import_rule() to check file status before importing a rule file.
  • Fix JumbleRangeTable() to jumble query with relation name instead of oid.
  • Fix JumbleExpr() to use function name on query jumbling instead of the oid.
  • Fix README to add the Compatibility section.
  • Add COPYRIGHT and ChangeLog.
sql_firewallは、クエリの種類を「クエリID」と呼ばれるハッシュ値を使って識別しています。

以前は、クエリIDの生成がテーブルや関数の OID に依存していたので、テーブルや関数の DROP & CREATE をすると、例えそれらの名前が変わらなくてもクエリIDが変わる、という現象が発生していました。(これは sql_firewall の元となった pg_stat_statements でも同様です)

バージョン0.8.1では、この点を修正し、テーブルや関数を作り直してもクエリIDが同一に保たれるようになりました。

2015年8月27日

PostgreSQL用SQLファイアーウォール「sql_firewall」リリース

先日、sql_firewallというPostgreSQLの拡張モジュール(EXTENSION)をリリースしました。 このモジュールは、PostgreSQL上で実行可能なSQLを制限することで、SQLインジェクションを防ぐことを目的としたものです。

今回はこの sql_firewall について、その仕組みと使い方を簡単にご紹介します。

■sql_fiewallの仕組み


sql_firewallには、以下の3つの動作モードがあります。
  • 学習モード(learning)
  • 警告モード(permissive)
  • 防御モード(enforcing)

2015年6月6日

PostgreSQLの透過的暗号化(TDE)モジュールを使ってみる

先日、NECさんからPostgreSQLの暗号化モジュール「Transparent Data Encryption for PostgreSQL Free Edition」がGPLv3ライセンスのOSSとしてリリースされました。
多くの方がご存じの通り、データベースのセキュリティは、近年非常に重要なトピックの一つになっています。

PostgreSQLには、以前からpgcryptoと呼ばれるモジュールが提供されていましたが、これはあくまでも暗号化を実現するSQL関数を提供するレベルで、実際に使おうとするとアプリケーションから明示的に呼び出す必要があるなど、使いこなすには煩雑なモジュールでした。(私も昔のプロジェクトで使っていたことがあります)
今回NECさんからリリースされた暗号化モジュールは、この(主にアプリケーションから見た)煩雑さを解消する「透過的暗号化(TDE)」と呼ばれるテクノロジー領域です。

私自身も以前から非常に興味を持っていた領域ですので、公開されたOSS版のコードを試しに使ってみました。

■「Transparent Data Encryption for PostgreSQL Free Edition」とは何か?


「今回リリースされたモジュールはつまり何なのか?」という質問に対してダイレクトかつシンプルに答えると、「暗号化をサポートしたPostgreSQLのユーザ定義のデータ型、ユーザ定義関数、およびサポートスクリプト」となるかと思います。

PostgreSQLでは、ユーザ定義のデータ型を作成することができますが、アプリケーションからそのデータ型に対して入出力する処理も自由に実装することができます。今回のモジュールは、その入出力の処理に暗号化機能を追加したものだと考えればよいでしょう。そのため、暗号化に対応したデータ型を使っている特定のカラムに対して、透過的に暗号化処理を行うことができます。

オリジナルのソースコードは以下から参照することができます。

2013年10月29日

アクセス統計情報を使ってデータベースへのアクセスポリシーを自動生成する

アクセス統計情報を使ってアクセスポリシーを自動生成する PostgreSQLでは、テーブルへのアクセス権限をGRANT/REVOKE文を使って設定することが可能です。

この設定をきちんと行うことによってセキュリティのレベルを高めることができますが、粒度の細かな設定が必要となるため、手間がかかるのも現実です。

今回は、このテーブルへのアクセス権限の設定(アクセスポリシーの作成)を、アクセス統計情報を用いることで(半)自動化してみます。

■アクセス統計情報とは


PostgreSQLには、他のRDBMS製品と同様、アクセス統計情報を取得する仕組みがあります。
アクセス統計情報とは、どのテーブルにシーケンシャルスキャンを何回実行したか、インデックススキャンを何回実行したか、あるいは何ブロックの読み取ったか、といった情報のことで、この情報を使うことによってデータベースにおけるアクセスの特徴やパターンを把握することができます。

もちろん、パフォーマンスチューニングの時には、この情報を活用することになります。

2013年4月4日

【リリース情報】セキュリティリリース(9.2.4、9.1.9、9.0.13、8.4.17)が出ています

先日予告されていた通り、PostgreSQLのセキュリティリリースとして、新しいバージョン9.2.4、9.1.9、9.0.13、8.4.17が公開されました。 本セキュリティリリースのFAQも公開されています。 ここでは、セキュリティリリースのFAQのうち、主要な部分を対訳形式で掲載します。(翻訳に当たっては最善は尽くしていますが)当然ながら非公式な翻訳ですので、詳細は原文をご確認ください。

誤訳や改善の余地などがありましたら、コメント欄などにてフィードバックいただけると助かります。


2013-04-04 Security Release FAQ
2013-04-04 セキュリティリリースFAQ


While this FAQ covers the 2013-04-04 PostgreSQL Security Update in general, most of its contents focus on the primary security vulnerability patched in the release, CVE-2013-1899.

このFAQは2013-04-04のPostgreSQLセキュリティアップデートをカバーしていますので、内容の大部分は、このリリースで修正された主要なセキュリティ脆弱性 CVE-2013-1899 にフォーカスしています。

Who is particularly vulnerable because of this issue?
実際にこの問題によって誰が脆弱性に晒されていますか?


2013年3月30日

【リリース情報】セキュリティFIXがリリースされます

4月4日(木)にセキュリティFIXを含むマイナーアップデートがリリースされる予定です。


今回の対象は、コミュニティでメンテナンスされているすべてのバージョンとのことです。

現在コミュニティでメンテナンスされているのは、9.2系、9.1系、9.0系、8.4系のメジャーバージョンですので、これらについてマイナーアップデートがリリースされる模様です。


なお、コアチームからは「月曜日の午後(日本時間の火曜日?)から木曜日の午前中まで、コードレポジトリのミラーやコミットメールの配送も一時停止し、(各プラットフォーム向けの)パッケージが(ビルド、テストされて)リリースされるまでの間、コミッター以外はコミットを参照できなくなります」とアナウンスが出ています。