OSS/Linux

Labeled Network Fallback Context

Paul Moore氏の投稿した一連のパッチを試してみた。 http://marc.info/?l=selinux&m=119464373613977&w=2SELinuxはネットワーク経由で接続してきた相手方プロセスのセキュリティコンテキストを取得するAPIを持っていて、これはlibselinuxのgetpeercon()関数…

Fedora 8 リリース

待ちに待った Fedora 8 のリリースhttp://docs.fedoraproject.org/release-notes/f8/ja/このバージョンから、SE-PostgreSQLパッケージがFedora Projectに統合された。(パチパチパチ) 標準のselinux-policyにもデータベース関連のオブジェクトクラスが定義…

Polyinstantiationの誘惑(2)

Polyinstantiation化したテーブルを考える上で、Foreign keyの使い方は厄介である。そもそも Polyinstantiation の目的は、制約条件を本来の意図とは異なる方法で利用される事により機密レベルの高い情報が漏洩することを防ぐことにある。したがって、Primay…

sepostgresql-8.2.5-1.33

バグフィックス版を公開しました。修正1.security_label_to_text()関数とtext_to_security_label()関数で、引数と返り値の型が逆になっていたのを修正いやもう、なんと言うか。orz...修正2.明示的にセキュリティコンテキストを指定した時に、コンテキス…

Polyinstantiationの誘惑(1)

ここ最近、SE-PostgreSQLにどうやってPolyinstantiationの機能を実装しようかと調べ物をしている。 参考にしているのは、Googleで引っ掛けてきた NCSC Technical Report - 005 というヤツ。まだ読んでる途中だけど。 NCSC TECHNICAL REPORT - 005 Vol 1/5 Li…

クイズ

突然ですが問題です。以下のプログラムをx86_64アーキテクチャ(64bit)上で動かした場合の実行結果はどうなるでしょうか? #include <stdio.h> int main(int argc, char *argv[]) { unsigned long code = -1UL; printf("code = %016lx\n", code); printf("…

SE-PostgreSQLベンチマーク

たぶんOSC2007で使うことになるであろうネタ。 PostgreSQL vs SE-PostgreSQL の実行性能を計測してみた。ベンチマークに利用したのは pgbenchで、PostgreSQLの人たちの間では標準的に利用されているTP 実は、以前YLUGのカーネル読書会の前にもパフォーマンス…

Inherited Type Definition

非常に懐かしいネタだが、Karl MacMillan がこのアイデアを再び墓場から掘り出そうとしている。http://marc.info/?l=selinux&m=118961442411429&w=22年半ほど前にこのアイデアについて議論したとき、彼の主張は、同様の事は Reference Policy の interface …

AVC-misses パフォーマンス改善パッチ

himainu氏のところで紹介されている私のパッチを説明する。 http://marc.info/?l=selinux&m=118956715414494&w=2SELinuxのAVCミスヒット時のパフォーマンスを改善するものである。AVCミスヒット時、SELinuxはセキュリティポリシーを探索してAVCエントリを作…

SE-PostgreSQL 8.2.4-1.0 Released!

やっとこさ SE-PostgreSQL 8.2.4-1.0 をリリースできた。正式版のリリースは、Fedoraへのマージの後にしようと決めていたが正解だったようだ。Fedora Projectに入れる過程でパッケージのレビューが行われたが、これによってパッケージの品質が大幅に向上した…

Linux Weekly Newsに載りました

先週のLinux Weekly News、 Securityの記事のトップでSE-PostgreSQLが掲載されています。 技術的にも良くまとめられたアブストラクトになっていて素晴らしい。http://lwn.net/Articles/241464/

FedoraへGo!

ついにReview Requestを出してみた。https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=249522コード自体にBetaからの変更点はないが、インストールパスを /usr 以下に変更するなど、できるだけrpmlintに怒られないよう .spec ファイルを修正した。さて…

filesystem capability

Serge E.Hallyn君が最近頑張って実装しているfilesystem capabilityだが、capabilityを格納しているXATTRのフォーマットを変更したので、libcapを修正してよと頼まれる。具体的にはEffectiveが1bitのbool値になって、この1bitのみによってfilesystem-capabil…

JSELUG Summer Workshop 2007

「SELinuxユーザ会2007年夏の勉強会」で、SE-PostgreSQLについて話してきました。↓当日の講演資料はコチラ http://sepgsql.googlecode.com/files/JSELUG20070704.pdf後ほど、当日の勉強会の様子がニコニコ動画にアップされるようです。多謝であります。 > 伊…

SE-PostgreSQL 1.0β リリース

以下の通り、リリースアナウンスを出しました。http://code.google.com/p/sepgsql/wiki/NEWSRELEASE_20070701 ============================================================ SE-PostgreSQL 1.0β版 リリース (2007/07/01) ================================…

ユーザ定義関数

PostgreSQLに限らず、多くのRDBMSでは CREATE FUNCTION 構文を使って、ユーザ自身で SQL関数を定義することができる。 しかし、素性のよく分からないユーザ定義関数の実行を許すことで、システムに思わぬ穴を開けてしまうことがある。↓の記事はその一例 「ユ…

ベータ版リリースに向けて

SE-PostgreSQL1.0βのリリースに向けて、ここしばらく非常に多忙である。地道なバグ退治の他に、いくつか修正を加えている。 ・table/column/tuple:{use} パーミッションの追加 WHERE句やGROUP BY句での参照など、直接ユーザにデータの内容を返さない場合には…

Guidlines of the Fedora Project

Fedora ProjectへSE-PostgreSQLをプッシュするための情報収集中…。ポータル的な位置にあるのが以下のページ http://fedoraproject.org/wiki/PackageMaintainersこの辺がパッケージをプッシュするためのガイドライン How to become a Fedora Package Collecti…

generic fallbacks of getpeercon()

追記:スレッドのアーカイブは↓ http://marc.info/?t=118080693400002&r=1&w=2数日前にredhat-lsppでgetpeercon()が失敗した際の動作について「それはアプリが対処すべき」というやり取りがあった。 SE-PostgreSQLにも関わる部分なので、「unlabeled network…

条件付きUPDATEと{select}権限

SE-PostgreSQLで以下のようなUPDATE構文を実行する場合、UPDATE tbl_a SET x=10, y='aaa' WHERE z = true;以下の権限が必要になる。 テーブル tbl_a に対する table:{select update} 権限 カラム x, y に対する column:{update} 権限 カラム z に対する colu…

The way to fallback on getpeercon()

In the case when getpeercon() failed, the current version of SE-PostgreSQL cannot handle the situation well, so it closes the connection immediately. But RDBMS can be connected from clients without any configuration of labeled networking, …

pg_dumpコマンド対応

pg_dump --enable-securityで、セキュリティコンテキスト付きのデータベースのダンプを行う。ただし、全てのDBオブジェクトに対して可能というわけではなく、 ・テーブル(Table) ・カラム(Column) ・タプル(Tuple) ・関数(Function) に対するセキュリティコ…

COPY TO/FROM と security_context

COPY TO/FROM 構文の主な用途は、データベースのバックアップとリストアで、pg_dumpコマンドが内部的に使っている。pg_dumpでセキュリティコンテキスト付きのCOPY TO/FROMを可能にするには、若干、COPYコマンドの実装に手を加える必要があった。 実は、昔の(…

解決!OUTER JOIN問題

SE-PostgreSQLでOUTER JOINを使った場合、PostgreSQLの行フィルタリングの制約からサブクエリへの書き換えを行って対処していることは既に書いた通りである。 http://kaigai.sblo.jp/article/3860897.htmlしかし単純に以下のように書き換えてしまうと、LEFT …

SE-PostgreSQL/拡張SQL構文

CREATE TABLE構文/CREATE DATABASE構文/CREATE FUNCTION構文に、CONTEXT='xxx'オプションを追加した。 これによって、明示的にセキュリティコンテキストを指定してDBオブジェクトを新しく作成することができる。この機能拡張の意図は、pg_dump/pg_restoreコ…

カーネル読書会

YLUGのカーネル読書会でSE-PostgreSQLの話をしてきた。発表の途中でガンガン質問が飛んできていい感じ。興味を持ってもらえてる証拠だ。面白かったのは、OS屋からの視点と、DB屋からの視点の差という話。 基本的にOS屋の私としては、DBにデータを入れてしま…

SE-PostgreSQL Security Guide

ひとまず、SE-PostgreSQLのドキュメント(日本語版)を書いた。http://sepgsql.googlecode.com/files/sepgsql_security_guide-1.0beta.pdf但し、5章のバックアップ/リストアの部分はまだ書いていない。これは、pg_dumpとpg_restoreへの機能拡張が済んでいない…

OUTER JOIN

LEFT/RIGHT OUTER JOINの挙動について。定義によると、LEFT OUTER JOINの場合は左側テーブルの全てのタプルに対して、結合条件に対応する右側タプルが存在しない場合には、右側テーブルに対応する部分をNULLで埋めた結果セットを返却する。 つまり、ON〜句で…

SE-PostgreSQL in カーネル読書会(5/7)

5/7 19:00〜 Miracle Linux社 セミナールームにて SE-PostgreSQLをネタにした講演を行います。アナウンス文には入れ忘れていましたが、デモンストレーションも行いますのでお楽しみに。 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 毎度おな…

素朴な疑問

軽くOracle Label Security(OLS)のドキュメントに目を通してみたが、一つ腑に落ちない点がある。OLSは内部的に Virtual Private Database (VPD) という技術を使って実装されているらしいのだが、これは行レベルのアクセス制御(フィルタリング)のために、強制…