OSS/Linux

Custom Executor 試作版

現状、PostgreSQLのエグゼキュータを拡張するにはいくつか方法が考えられる。 Executor(Start|Run|End)_hookを使う エグゼキュータ全体を乗っ取る。逆に言えば、一部の処理(例えば集約演算)だけを俺様実装にしたい時には、本体側のコードをコピーするなり…

単体型GPUへのDMA転送コストを考える

PostgreSQLの検索処理(特にスキャン周り)をGPUにオフロードするにあたって、できるだけCPU処理の負荷を軽減したい。というのも、PostgreSQLは基本シングルスレッドなので、GPUがバリバリ並列計算しようとしてもデバイスへのデータ供給が追い付かなければ計…

OpenCLでCPU/GPUを使い分ける?

最近、PG-Stromに興味があるという方からちょくちょく、個別に質問メールを頂く事がある。 その中で頂いたコメントに興味深い洞察が。 GPUによるアクセラレーションは確かに興味深い機能だけれども、PG-Stromの本質は突き詰めていえばパイプライン処理のお化…

SE-PostgreSQLでリモートプロセスのセキュリティラベルを使用する

PostgreSQL Advent Calendar 2012に参加しています。 何を設定する必要があるのか? 何か世のため人のためになりそうなネタは・・・という事で、SE-PostgreSQLでリモートプロセスのセキュリティラベルを使用する方法をまとめてみました。v9.1からサポートさ…

mod_selinuxのアーキテクチャを考える(後編)

前回の記事では、現在の mod_selinux モジュールの問題点を解決するために複数のタスクキューにワーカースレッドを紐付ける方法を考え、そこから一歩考察を進めて、FastCGIを使ってマルチプロセス実装にすればよりセキュアなWebアプリケーション環境を実現で…

mod_selinuxのアーキテクチャを考える(前編)

mod_selinuxはapache/httpdのプラグインで、利用者のHTTP要求の認証(BASICとかDIGESTとか)結果に基づいて、PHPスクリプトや静的コンテンツを参照するContents Handlerの実行権限を切り替える。 やっている事は単純で、ap_hook_handlerの先頭で mod_selinux …

PG-Stromにプロファイラをつけてみた

1月6日(金)に書いた『しゅとろ〜む、しゅとろ〜む』の記事は割と反響が大きかったようだ。 コメント欄に次のような質問を頂いたので、試してみることにする。 通りすがりさん wrote: すばらしい成果ですね. カラム指向的にデータを持っていること自体が性能…

PG-Strom

I've checked up an idea whether it is feasible to implement, or not, since I saw a presentation by Tim Child in Ottawa last year. Is it possible to accelerate sequential-scan of PostgreSQL? We often see sequential-scan instead of index-sca…

しゅとろ〜む、しゅとろ〜む

昨年、オタワでTim Child氏の発表を聞いて以来、実装できないものかと思って暖めていたアイデアがある。GPUの処理能力を使って、PostgreSQLの検索処理を高速化できないか?というものである。 特に複雑な計算を含むクエリの場合、Index-Scanに落ちないで、全…

Leaky Views と Security Barrier : PostgreSQL Advent Calendar #4

このエントリはPostgreSQL Advent Calendarに参加しています。12/4(日)担当也。ヨーロッパ中部時間ではまだ12/3(土)ですが。 RDBMSで行レベルのアクセス制御を実現する方法として、利用者に対して直接のアクセス権を付与せずに、特定のビューを通してだけア…

Leaky VIEW まとめ

SELinuxとは関係のない、RDBMSでのセキュリティのお話。利用者に対して、テーブルに対する直接のアクセス権を与えず、特定のビューを通してだけアクセスを許可するのは、行レベルのアクセス制御でよく使われるテクニックである。 つまり、ビューは不可視であ…

OSS開発勉強会-09

今日の勉強会で説明した内容のメモGitHubなんかを使って、何か別のOSSプロジェクト(gitで管理されている)の 派生バージョンを作り、かつ、オリジナルの更新に追従する方法。オリジナルのGitリポジトリのURLを git://github.com/kaigai/my_oss.git とし、 …

OSS開発勉強会-08 (前半)

ひそやか〜に続けている社内勉強会のメモ。 (特に今回は資料もなかったので) libcurl について このライブラリを使うと、HTTP(s)ほかプロトコルでURLにアクセスする プログラムを、非常に簡単に書く事ができる。ソースコードはこちらのリポジトリ参照 http…

さくらのVPSにFedoraをインスコ

話題のさくらVPS、早速申し込んでOSを入れ替えてみた。私の好みにより、Fedora Linuxとする。ただ、実際のところ、非常に簡単にインストールが終わり、 ちょっと拍子抜けしたくらい。まず、標準のCentOS5.4環境にログインし、Fedoraのインストールイメージで…

RBACによるDB管理者の設定

やっとこさdbadm.ppポリシーがFedoraでも有効化されたので、RBACを使った DB管理者の設定方法について記す事にする。ポリシーは selinux-policy-3.9.1 以降を用意してほしい。 現時点ではRawhide(開発者版)向けなので、Fedora15での機能になるハズ。方針は以…

Step to break Row-level security using VIEWs

RDBMSでビューを使った行レベルアクセス制御はよく知られたテクニックである。 だが、PostgreSQLでユーザ定義関数を使って、ビューによる行レベルアクセス制御をバイパスする方法については、よく知られたテクニックであるかどうかは不明である。下のユーザ…

RBACでDB管理者ロールを定義する(前編)

RHEL6もβが公開とかで、そろそろRBACが真っ当に使えるようなSELinuxの標準ポリシーが出てきそうな今日この頃。先んじて設定方法をまとめておく。一応、標準ではwebコンテンツ管理者ロールというのが入っているが、私の興味分野的にアレなので、DB管理者ロー…

データベース管理者ロールを考える

あまり有効に活用されているとは言い難いSELinuxのRBACだが、最近は地味にロールの種類が増えてきているようだ。Reference Policy の policy/modules/roles 以下を見てみると、こんな感じで結構盛りだくさん。 $ ls *.te [kaigai@ayu roles]$ ls *.te audita…

PostgreSQL Conference 2009 Japan

久々の更新w今日と明日は、PostgreSQL Conference 2009 Japan (主催: 日本PostgreSQLユーザ会) に参加 私の発表は明日なので今日は聞くだけ。 Bruce Momjian氏のPg_migratorの話題と、三三株式会社さんの名刺データ管理を提供する SaaSソリューションの…

Japan Linux Symposium 2009 Early Registration

転載。 10月21日〜23日に開催のJapan Linux SymposiumのEarly Registration期間が〜9/15まで延長になったようだ。特に学生さんは3日間通しのパスが$50USなので、この値段なら身銭切って申し込んでもいいと思う。 内容は英語でプロ向けだけど、お仕事として…

まっちゃ445勉強会

虎ノ門、金沢工業大学のサテライトキャンパスをお借りして開催された、まっちゃ445勉強会に行ってきた。 自分としてはあまり馴染みのない分野なので、結構よい勉強になった。体感的には、一日に100〜200通の迷惑メールを受け取っているような気がする。 まぁ…

セキュアOS塾-04

以下の日程で、4回目のセキュアOS塾を開催します。今回は、SELinuxを用いたデータベースのセキュリティ強化機能である SE-PostgreSQL と、Oracleで類似機能を提供する Oracle Label Security を比較しつつ、データベースにおける強制アクセス制御機能の紹介…

Japan Linux Symposium 2009

採択の連絡が来た。 From: Japan Linux Symposium Subject: Your Submission Has Been AcceptedHello,We are pleased to let you know that your submission for the 2009 Japan Linux Symposium (JLS) has been accepted.The conference will be taking pla…

懇親会

そして、懇親会へ移動。 特にお世話になった人に対して、id:haradatsさんから一人一人、 捻りの聞いたお礼の言葉と共に感謝状を贈っていた。会場では、日本SELinuxユーザ会の草創期に活躍されていた懐かしい人にもお会いする。そしてまぁ、次にメインライン…

勉強会

本日は恵比寿のSGIホールでTOMOYO Linuxメインライン化記念勉強会&懇親会。まっちゃだいふくさんから、本日の進行についての説明と、 日本各地のセキュリティ勉強会コミュニティの紹介 ちなみに、タイムテーブルはこんな感じ。 16:30〜16:30/全国で開催さ…

Largeobject Reworks

数日前にTOASTメカニズムで書いたように、PostgreSQLの現在のLargeObjectの実装とTOASTメカニズムの仕組みは非常に似通っている。まず、テーブル定義。TOASTテーブルとpg_largeobjectは非常に似通った構造を持っている。 pg_toast_%u ( chunk_id oid, chunk_…

Oracle Label Securityの価格

SE-PostgreSQLの類似機能を調べてたら面白いモノを見つけた。 ■ Oracle Database Enterprise Edition 製品ライセンス/価格 http://www.oracle.com/lang/jp/corporate/pricing/dbee.html Oracle Label Security ライセンス価格 ... \1,250,000/CPU サポート費…

TOASTメカニズム

PostgreSQLで可変長データ型を扱う時、内部的にはTOASTと呼ばれる機構を利用して、別の隠しテーブルに可変長のデータを格納するようになっている。この時、可変長のデータは適正な長さに分割されて格納されるので、タプル一個あたりのデータ長がブロックサイ…

security_reclaim_label()関数

v8.4の開発サイクルで指摘された、pg_securityシステムカタログのエントリを回収する機能を実装してみた。security_reclaim_label()というSQL関数を実行すると、もう参照されていないセキュリティコンテキストを探し出して削除する。 postgres=# SELECT secu…

Now mod_selinux ready...?

そろそろ Fodora Project への提案を考えている mod_selinux モジュールであるが、地味に改善を進めている。 設定ディレクティブの見直し 従来は、以下の2つの設定項目のみを用意していた。 selinuxMappingFile ユーザ/IPアドレスとドメインの対応関係を記…