-オープンソースのSNSエンジン OpenPNEプロジェクト-

その他

Home

【脆弱性情報】JVN#20502807: Snoopy における OS コマンドインジェクションの脆弱性 と OpenPNE への影響について(追記あり)

10 / 29 水曜日 2008

昨日(2008/10/28)、JVN(Japan Vulnerability Notes)にて公開された「#20502807 Snoopy における OS コマンドインジェクションの脆弱性」について、 OpenPNE の一部バージョンにおいて影響があることが明らかになりました。

対象:OpenPNE ver1.8~2.6
影響範囲:対象となる OpenPNE を利用するすべてのSNS

当該バージョンをお使いの方は、 「#20502807 Snoopy における OS コマンドインジェクションの脆弱性」 の「対策方法」を参考に、 OpenPNE に存在する以下のライブラリを最新版のものに差し替えてください。

OpenPNE2.3.0 以降のバージョン: lib/include/Snoopy.class.php
OpenPNE2.3.0 未満のバージョン: lib/magpierss/extlib/Snoopy.class.inc (差し替えの際には、最新版のファイル名を Snoopy.class.php から Snoopy.class.inc に変更してください)

※本件については公式SNSの kaz_a さんからご報告いただきました。この場を借りて御礼申し上げます。


【追記:2008/10/31 10:35】
今回の脆弱性の対象となるOpenPNEのバージョンについて追記いたします。OpenPNE2.8以降は Snoopy を利用しなくなったため、 2008/10/31 までにリリースされた OpenPNE2.8〜2.13 は今回の脆弱性の影響を受けません

そのため対応の必要があるのは、OpenPNE 2.6以前のバージョンのみとなります。

OpenSocial開発環境をそろえる その2 ~Partuza!導入~

10 / 21 火曜日 2008

開発チームの川原です。
前回に引き続きOpenSocialの開発環境を構築してみます。

この記事での設定をする前に、Shindigの設定をおこなってください。

OpenSocial開発環境をそろえる その1 ~Shindig導入~

今回はPartuza! の導入について、まとめてみました。

動作環境

前回のApacheとPHPの環境に加えて以下の環境が必要になります。

PHP

openssl, mysqli拡張が有効になっている必要があります、
また、「php.ini」のshort_open_tagは On にしてください。

(設定例)
「php.ini」の設定で

extension=php_openssl.dll
extension=php_mysqli.dll

の行をコメントアウトして

short_open_tag = On

が Off になっていれば On にしてください。
phpinfo()関数の結果で、上記の2つの拡張が有効になっていることと
short_open_tagが On になっているかを確認してください。

MySQL
4.1.x以上

Partuza! のチェックアウト

Partuza! を手に入れるために、前回のようにSubversionを
使いチェックアウトします。

リポジトリURL: http://partuza.googlecode.com/svn/trunk

opensocial2-1.gif

以下、説明のためチェックアウト先のディレクトリをpartuzaとします。

Partuza! のデータベースセットアップ

Partuza! のデータベースを用意します。以下のクエリを実行してください。

CREATE DATABASE `partuza` DEFAULT CHARACTER SET utf8;

次に、partuza/partuza.sqlをインポートします。

mysql -u username -p --default--character-set=utf8 partuza < partuza/partuza.sql

これで、partuzaデータベース内に、35個のテーブルが
作成されていれば成功です。

Partuza!自体の設定

「partuza/html/config.php」
で、接続に利用するための設定がされている必要があります。

以下の個所を、各自の環境に合わせてください。
(ブログシステムの関係で一部全角になっている文字があるので、コピーするときは気をつけてください)

'db_host' => 'localhost',
'db_user' => 'root',
'db_passwd' => '',
'db_database' => 'partuza',
'db_port' => '3306',

ShindigからPartuza!が用意したライブラリを使えるように設定

OpenSocialのアプリケーションが利用したいデータを取得・設定できるようにするために、
Shindig が Partuza! のデータにアクセスできるようにしなくてはいけません。

「partuza/Shindig」にある
「PartuzaService.php」
「PartuzaDbFetcher.php」

という2つのファイルがShindigに必要なライブラリになります。
これらのファイルを Shindig から使えるようにするために、
Shindig 側の設定をおこないます

前回にチェックアウトしたShindigにある、
「php/config」に「local.php」というファイルを作り
以下のようなコードを書き込みます。

<?php
$shindigConfig = array(
  'person_service' => 'PartuzaService',
  'activity_service' => 'PartuzaService',
  'app_data_service' => 'PartuzaService',
  'extension_class_paths' => 'Partuzaのチェックアウト先/Shindig',
);

また、「PartuzaDbFetcher.php」 には、Partuza! と同じくデータベースの設定を
する必要があります。

以下の箇所を、各自の環境に合わせてください。

$this->db = mysqli_connect('localhost', 'root', '', 'partuza');

(引数は次のようになります)
mysqli_connect(ホスト, ユーザ名, パスワード, データベース)

バーチャルホストの設定

http://partuza/
でPartuza!にアクセスアクセスできるようにします。

「httpd.conf」に以下の設定を追加してください。

<VirtualHost *:80>
  ServerName partuza
  DocumentRoot "partuzaチェックアウト先/html"
  <Directory />
    AllowOverride All
    Allow from All
    Order allow,deny
  </Directory>
</VirtualHost>

Apacheの再起動をおこない、hostsファイルに以下の行を追加します。

127.0.0.1 partuza

http://partuza/ にアクセスして、以下の画面がでれば成功です。

opensocial2-2.gif

次回は、OpenSocial対応アプリを追加してみます。

OpenPNE3のインストール その1 ~symfony導入からOpenPNE3導入まで~

10 / 14 火曜日 2008

※この記事の情報は OpenPNE3-alpha2 時点のものであり、最新ではありません。正式版 OpenPNE3.0 は、この手順通りに導入することはできません。

最新のセットアップ情報は OpenPNE3 セットアップ手順 のページをご覧ください。

openpne3_setup.gif

現在開発中のOpenPNE3を実験的に動かしてみたい!
開発に関わってみたい!

というヒトのために、現在のOpenPNE3をインストールするための方法をまとめてみたいと思います。

今回はOpenPNE3で利用しているsymfonyの導入に関して記していきたいと思います。

前提として以下のものがインストールされているものとします。
・Apache
・PHP(5.1以上)
・PEAR(1.4.0以上)
・MySQL
・Subversion

以下の例は、CentOS5.2のものです。

まずは、PEARを利用してsymfonyをインストールしてしまいましょう。

symfonyの導入

チャネルを登録をします。
$ pear channel-discover pear.symfony-project.com

チャネルが正しく登録されれば以下のコマンドによりパッケージ一覧を見ることができるでしょう。
$ pear remote-list -c symfony

symfonyをインストールします。
$ pear install symfony/symfony

これだけで、symfonyの導入が完了します。
ちゃんと導入されていのるか確認してみましょう

以下のコマンドを実行します。

$ symfony -V
symfony version 1.1.4 (/usr/share/pear/symfony)

ここで、バージョンが表示されますが、その後にあるカッコの中身が symfony のライブラリが
インストールされた場所になります。
これは後ほど必要になりますので、メモなどをしておくと楽でしょう。

これで、symfonyのインストールは完了です!
次に、OpenPNE3を導入します。

OpenPNE3チェックアウト

今回は、開発中の最新版をOpenPNE3というディレクトリを指定してチェックアウトします。
$ svn co https://trac.openpne.jp/svn/OpenPNE3/trunk OpenPNE3

設定ファイルコピー

チェックアウトが終了したら、OpenPNE3の設定を行います。
OpenPNE3のconfigディレクトリには、設定しなくてはいけないファイルが3つ存在します。
OpenPNE2のconfig.php.sampleのように、*.sampleファイルを.sampleなしのファイルにコピーします。

$ cd OpenPNE3
$ ls config/*.sample | sed -e 's/\.sample$//g' | awk '{print "cp "$1".sample "$1}' | sh

config/ProjectConfiguration.class.phpの編集

$ vi config/ProjectConfiguration.class.php

3行目の ##SYMFONY_LIB_DIR##
の箇所を symfony のライブラリがあるディレクトリに置き換えます。
これは上記のsymfony -V で確認したものになります。

例:
require_once '/usr/share/pear/symfony/autoload/sfCoreAutoload.class.php';

データベースの設定

データベースの設定を行います。

以下のコマンドを実行します。
これは、データベースのDNSを設定するものです。
パスワードやデータベース名は適宜変更してください。

$ symfony configure:database mysql://root@localhost/OpenPNE3

これにより、config/propel.ini と config/databases.yml ファイルの設定が変更されます。

新規にデータベースを作成します。

$ echo "CREATE DATABASE OpenPNE3 DEFAULT CHARACTER SET utf8" | mysql -u root

config/databases.yml を編集します。
最後の行に、以下の1行を追加してください。

encoding: utf8

このとき、上の1行

dns: 'mysql://....

の行の書き始めに合わせるようにしてください。
タブは使ってはいけません。スペースでそろえるようにしてください。

以下のコマンドを実行することにより、上で設定したデータベースに
テーブルの作成や、初期データの挿入が1度に行われます。便利ですね。

$ symfony propel:build-all-load pc_frontend

パーミッションの設定

最後にパーミッションを適切なものに変更します。

$ symfony project:permissions

これで下ごしらえが完了しました。

現在は、このような手順を踏む必要がありますが、
インストールの手順は今後もっと簡単になるように変更されると思います!

次回はブラウザからアクセスできるようにします。

OpenSocialを研究中です

10 / 08 水曜日 2008

今月より、OpenPNE3の開発に関わることになりました開発チーム川原です。

前回の海老原さんの記事でもあったように、OpenPNE3では
OpenSocialに対応していて、OpenPNEにどんどん機能を拡張できるようになります。

そこで、一足お先にPartuzaを使ってOpenSocialの研究を行っています。
partuza

画像にある、ToDo Listや電卓といった便利なガジェットをはじめ、
SNSの人間関係情報の上で動作するアプリケーションの開発が可能となっています。

今回の目標として、さりげなく便利なOpenSocialアプリを開発してみようと思います。

まだ、手探りの状態なので
「こんなの作ってみた!」とか「OpenSocialを使ったこんな便利なものがある」
という耳寄りな情報がありましたら、ぜひとも開発チームの川原 ([email protected]) まで
連絡をください!

本日のOpenPNE勉強会で、頂いた要望。

03 / 09 日曜日 2008

本日のOpenPNE勉強会の報告です。

これまで手嶋が毎週開催してきたOpenPNE勉強会としては、最後になるかもしれません。
今後は月1~2回を目標にして、OpenPNEのソースコード、開発について勉強する会にしていきたいと思います。

今日あがった要望についてまとめておきます。
Geeklogプロジェクト
今駒さんから2点的確な要望を頂きましたので、忘れないように掲載しておきます。

  • スキン素材などの提供画像データのPNG化
  • 最新情報部分のレイアウト移動

です。PNG形式で配布しておくと、レイヤーデータとしての保存が可能なため、後からフォントの入れ替えや一部分のみの差し替えが簡単だそうです。
最新情報部分のレイアウト移動が可能になると、日記中心型SNS、コミュニティ議論中心型SNSなど、ある程度誘導できるので望ましいそうです。

また、OpenPNEのスキンデータ、テーマなどを提供する仕組み、イベントも打ちたいね。と言う話でも盛り上がりました。

OpenPNE公式のセミナーを展開することになりました。

03 / 05 水曜日 2008

OpenPNEでハッピーデジタルSNSを運営されているハッピーコムさんと打ち合わせをさせて頂きました。以前にも告知しましたが、そのセミナーが好評との事で、定期的に開催させて頂くことになりました。

OpenPNEプロジェクトはSNSの成功にとって必要な3要素(運営、ビジネスモデル、SNSエンジン)のうち、「SNSエンジン」の部分しかカバーできていません。特に本セミナーは、運営面を支援する位置づけにしていきたいと思います。セミナーの告知のために、本ブログの編集者アカウント「OpenPNE Achademy」を発行しました。

※OpenPNEに対しての要望も頂きました。

  • コミュニティ・トピックの内容をRSS出力したい
  • イベントを外部公開し、SNS非参加者は「ゲスト」として参加できるようにしたい。
  • SNS内に投稿された日記などを、SNS管理者がワンボタンでBLOGにポスト(BLOGAPIを使用)できるようにしたい。

OpenPNE紹介ムービーを見つけました。

02 / 19 火曜日 2008

今日こちらのBlogを見て、初めて見つけました。

玄箱PNEプロジェクトの紹介

01 / 30 水曜日 2008

手嶋です。

玄箱PNEプロジェクトを紹介します。

玄箱PNEプロジェクト(http://trac.openpne.jp/wiki/pne-kurobako)
は、OpenPNEを玄人志向の玄箱PROで動作させる事を目的としたプロジェクトです。

OpenPNEプロジェクトは、なるべく多くのオーナーにSNSを運営してもらう事をミッションとしています。通常技術的にOpenPNEがインストールが出来ない人は、So-netSNSを利用すれば良いのですが、社内SNSなどではセキュリティポリシーやファイヤーウォールに阻まれ、SNSを作ることが出来ません。

こうした利用者に向けて、LinkStation等のNAS間隔でOpenPNEを利用してもらおうと言うのが、本プロジェクトの目的です。

成果物としてDebianパッケージなどを公開中です。

目指せ!ヨドバシ・ビックでPNEを山積み。

wkyInstallerによる簡単OpenPNEインストール

01 / 04 金曜日 2008

手嶋です。あけましておめでとうございます。
※2008年からは本ブログのエントリーは記名式で行きたいと思います。

新年一つめのエントリーは、レンタルサーバユーザーに朗報!から行きたいと思います。

これまでOpenPNEは、SSHが利用できないレンタルサーバユーザーに優しくなかったのですが
(※開発者が全員自前サーバ保有して、SSHでセットアップ作業をしています)

ひろろんさんがwkyInstallerと言う素敵なインストーラを開発されました。

詳しくは

https://www.openpne.jp/docs/pne-setup/

このエントリーをご覧ください。

「OpenPNEカスタマイズによるSNSサイトの構築と運営」4冊目のOpenPNE本が出版されました!

11 / 15 木曜日 2007

本日11月15日秀和システムから通算4冊目となるOpenPNE本が出版されました。

著者は、OpenPNEプロジェクトに2年以上参加されている、荒木さん、田端さんです。

OpenPNEのバージョンアップに追従しながら、カスタマイズを行いたい方におすすめです。

続きを読む

ページの先頭に戻る