PHP カンファレンス 2009・ビジネスデイ 私的不完全議事録 【pcj09】

9/4 にオラクル青山センターで開かれた「PHP カンファレンス 2009 (ビジネスデイ)」の私的不完全議事録です。「私的不完全議事録」シリーズのお約束で、言い回しは完全に再現していません。また、拾えなかった発言は断りなく省いています。参考程度に活用してください。

明らかな誤り、誤字脱字、漢字の変換ミスなどを発見された方は、コメント欄かブックマークコメントで指摘してください。


NetCommonsオープンソース・ビジネスモデルの実現 (永原 篤氏)

事例紹介

自己紹介

  • ハンドル「永原ひつじ」。Twitter の ID は @nagasheep
  • 昭和 43 年、大阪生まれ。30 歳で会社の転勤で上京、39 で独立
  • 技術者
  • 屋号は「オープンソース・ワークショップ」
  • システム開発・Web サイト構築
  • NetCommons を中心に、OpenPNEASP 販売代理店も
  • 100 万〜1000 万くらいの案件を受注している(高額のものは他社と組んで行う)
  • 法人化も検討中
  • NPO 法人コモンズネットの理事
  • 若い技術者が NetCommons のことを生き生きと語るのを見て調べているうちに NetCommons に可能性を感じた。普及活動やビジネス事例などの展開をするうち、NPO 法人コモンズネットの理事を務めることになった
  • OSS コンソーシアム理事兼 CMS ビジネス部会のリーダー
  • 磯谷商店(XOOPS で有名)の長尾氏、RYUS の天野氏と CMS Night というイベントを展開した縁で、コンソーシアム部会の発足を手伝う
  • CMS Nightは「CMS ビズ」として継続中(2 ヶ月に 1 回)
  • WARP プロジェクト


NetCommons とは

  • コミュニティウェア (汎用 CMS)
  • 使い方は大きく以下の 3 つ。これらをひとつで賄う、ちょっと欲張りなソフト

機能説明

  • 掲示

    タスク管理機能が私は気に入っている(メールを送る/送らないの設定ができる)
  • スケジュール

    携帯電話で使えるのが気に入っている点
  • キャビネット(資料置き場)
  • 数々のオールインワン・モジュール (NetCommonsでは機能を「モジュール」と呼ぶ)

    お知らせ・検索・新着状況・オンライン状況、カウンター、RSSヘッドライン、IMAGENE、iframe、カレンダー、施設予約、リンクリスト、ToDo、登録フォーム・日誌・掲示板・キャビネット・アンケート・フォトアルバム・チャット・汎用データベース・小テスト

動作環境

特徴

  • ユーザー側

    • 使いやすい
    • 非常に簡単に記事を書いたり、機能を配置したり、レイアウトを作ったりできる
  • ユーザー側詳細

    • 使いやすさ……管理画面ではなく、編集モードがある

      • カテゴリ・ページが作りやすい
      • 機能を自由に配置できる
      • 管理画面はシステムの設定や会員管理などの場合のみ参照する
    • 操作性が統一されている

(ここで、ページ作成の手順ををスクリーンキャプチャで説明)

  • ベンダー側

    • 国産
    • インストール・構築がしやすい
    • 開発環境が作りやすい
    • ビジネスがしやすい

開発元は?

学校向けなの?

  • 学校の導入事例が非常に多い(2千くらい)が、学校向けとは限らない
  • 営利企業非営利団体、公的機関など、用途は多くある

    例: 九州のある県の Web サイトの公募に「CMS であること(オープンソース CMS が望ましい)」との条件があった。提案はできなかったが、提案できたら面白そう

ライセンス

カスタマイズ

  • デザインのカスタマイズは先月発売の書籍(後述)で紹介
  • 追加テンプレート・モジュールの開発はコモンズネットのソース解析講座を利用してほしい

事例説明

ライフラインとしての NetCommons

  • 全市に導入に着手した時期にインフルエンザの流行に襲われた神戸市の事例
  • 情報が錯綜した例と、生徒や保護者が落ち着いて自体に対処できた例
  • NetCommons を導入済みの学校と未導入の学校が混在していた
  • 導入済みの学校は混乱が少なかった(みんな自分でサイトを見に行った)。未導入の学校は問い合わせが殺到して混乱した
  • 一次情報を簡単に提供できるのは強みだと思った

国立情報学研究所の事例

  • 記事の書きやすさが企業ウェブとして使いやすい
  • 手離れがいい。お客さまがコツを覚えていくスピードが他の CMS より早い。保守契約もしているが、問い合わせ件数が日を追うごとに減ってくる

プロダクトへのニーズ

  • ニーズの収集場所

    • 公式サイト
    • 導入教育機関など
    • コモンズネットから
    • その他の任意団体から (NetCommons ビジネス研究会など)
    • オフライン、組織から
  • ニーズ収集の特徴

    • オフラインでの収集が活発(国産の力)
  • 今後のニーズ

    • 使用される業種や業態が増えることで、新たなニーズが出る期待がある

セキュリティ

  • NetCommons プロジェクトにおいて、セキュリティチェックを行った後にリリースしている。詳細は非公表

NPO 法人コモンズネット

  • NetCommons の普及と情報システム構築支援および情報活用支援を目的とした NPO 法人
  • 法人会員 40 ちょっと、個人会員 40 弱
  • セミナーなども開催

ビジネスでの役割

  • ブランド

    • コモンズネットという組織の存在
    • 技術研修
    • 研究会
    • NetCommons ソリューションリスト

      • NetCommons を使ったソリューションの一覧を作成
      • コモンズネットの一般向けウェブサイトでも公開予定
  • 協業関係の構築

    • NetCommons ソリューションリスト
    • NetCommons ビジネス研究会
    • NetCommons ビジネス MAP

      • 地区ごと、分野ごとのマトリックスを作成すると、空欄がたくさんあることに気づく。また、ビジネスを進める上で、どの会社と組めばいいか分かる
      • 外部公開の予定はない
  • 市場の拡大

会員企業の商品例

セミナー

  • 9/8 に NetCommons 説明会@東京ボランティアセンター
  • 90 分間ほど


書籍

質疑応答

  • IIS + Windows のサーバーにインストールしたらログインできなかった。今後の IIS 対応方針については?

    IIS は試していなかった。すぐに試していきたい。インストールに間違えやすいポイントがあるので、そこでつまづいたのかも(Linux でも同様の事例あり)。IIS についても情報公開していきたい
  • 2.0 はフルスクラッチで書き換えたのか?

    → 全部書き換えた。フレームワークMaple にした。PHP4 でも動く
  • 汎用 CMS はパフォーマンスが不利だが、NetCommons はどうか?

    → パフォーマンスについて問題があると聞いたことはない。2 千人を超えると少しツラいが、1 万人でも使えることを目標にしている



世界標準パブリッシングプラットホーム WordPress (マクラケン 直子氏)

自己紹介

WordPress の生い立ち

WordPress.org …… ソフトウェア、WordPress.com …… レンタルブログ

1. 実績

  • 人気ブログに最も使われている

    (Technorati Top 100 ブログによると WordPress が 36%、WordPress.com も 5%)
  • WordPress.org ダウンロード数 526 万回 (WordPress 2.8)
  • 英語圏が 7 割、活発に更新されているのが 10 くらいだが 40 言語くらいが存在
  • 英語版の数日後に日本語版やフランス版をリリース
  • &
  • 日本でのダウンロード数 1,700 回/日 (WordPress 2.8.x 平均値)
  • WordPress.com のトラフィック アクセス数世界トップ 19 位 (Alexa 調べ)

    Blogger.com に次いで2番目
  • WordPress.com ユニークビジター 約 12 億ページビュー/月 (2009/4 Quantcast データ)
  • WordPress.com ユーザー数 約 700 万人 (2009/5 Quantcast データ)
  • 日本で事例が少ないのは技術的な問題ではないと思っている

2. 拡張性

3. 将来性

  • 世界的な人気 (WordCamp 開催地の地図がスライドに出る)
  • 活発な国内ユーザーコミュニティ

  • 進化スピードの加速

    (1.0(0.7?)→2.0→2.5→2.8 の編集画面がスライドに出る)

WordPress = 世界中で誰もが自由に使えるコミュニケーションツール。他のツールはある日突然料金形態が変わったり、終わっちゃったりするかもしれないけれど、WordPress は今後 10 年、20 年と進化し続けていくと思う

質疑応答

  • WordPress は入れた直後はそんなに軽いアプリではないと思うが、大量のトラフィックを捌いているサイトはどんな負荷対策を?

    → HyperDV (suno 補足: ぐぐっても出てこないので聞き間違えのようです。どなたか情報お願いします)という負荷分散対策を入れているらしい。memcached も併用
  • WordPressMovable Type を比較した際の優劣などは?

    → 私ももともと Movable Type を使っていた。Movable TypePerl で書かれていて、記事やテーマを変更するのにページを生成して保存する。WordPress はデータベースからの動的生成なのが大きな違い。どちらがいいかはサイトによると思う


eZ Publish ディスクール──エンタープライズ WebCMS に求められる機能とその実現 (藤田 拓氏)

  • eZ Systems はノルウェーの会社、社員数 65 名
  • PHP 言語の開発者が所属(Derick Rethans 氏)→このことが eZ Publish の堅牢性と安全性を高めている
  • Web Idol にて 3 回、最高位を受賞
  • TopTenREVIEWS で 1 位に→多機能であることが鍵?
  • 特徴を形づくる4つのポイント

  • WebCMS におけるエンタープライズニーズとは?

    • 更新を楽に? →ブログやコントリビュートでいい
    • よりよりデザインで更新を楽に? →いまどきのブログならデザインは割とどうでもいける
    • エンタープライズは個人ではなく、法人(グループとして存在)
    • かつ、社会を常に意識する (法人で匿名性を持つのは無理)
    • 会社内の個人の発言──イントラではどんどんやろう、でも公開 Web では……
    • チェック機構が必要、イージーに情報を出してはいけない
    • そこでディスクール
  • そんな社会において WebCMS に求められる 5 要素

    • コンテンツ投入
    • ワークフロー
    • アセット管理
    • ユーザー管理・権限管理
    • コンテンツ出力
  • 投入と出力はブログでもそこそこできるが、中間の 3 つができるブログはない
  • (各製品の分布図がスライドに出る)コミュニティポータル系が多い
  • eZ Publish はコンテンツの入出力もブログ以上にできる
  • 企業はすでにシステムを持っているのに、それらの情報をコピペするなんてありえない
  • eZ Publish は他システムの連携を実現
  • 事例: Dolly Dimples(宅配ピザの EC サイト)。ERP 連携の例
  • CMIS への対応
  • ウェブからのコンテンツ投入は?

    • フィールドセットを自由に定義できる
    • 複数コンテンツ一括投入
  • 実は、eZ の管理画面は eZ のテンプレートでできている。管理画面もテンプレートセットの一つ
  • コンテンツ投入のデモ(OOo との連携。odt ファイルを投入すると記事が作成される。複数一括投入も)

事例

  • ELLE

    • eZ のキラーウェブサイト。ここのおかげで eZ が普及した
    • eZ にしてからアクセス数が 10 倍になった。2100万 PV/月
    • US、中国などにも横展開している
  • 日本では信州LiveOn岡三オンライン証券など

柔軟性の高さ

  • コミュニティエクステンションをあまり使わなくても拡張できる。なので、セキュリティとバージョンアップに困らない
  • ブログやフォーラムならエクステンションなしで作れる
  • eZ をベースにしたプロジェクト管理ツール「eZ Teamroom」を近々リリース予定 (http://ez-teamroom.de/
  • ライセンスは無料
  • オープンソースは恐い? 誰が直す? いつ直る? →開発元のサポート

    • サポートパッケージ(298,000 円〜)
    • オフィシャルトレーニングの提供

技術的側面

より高い可用性の実現

CMS の根幹であるデータベース


Oracle で加速させよう! PHP のビジネス活用 〜スケーラブルで高可用性でクラウドで〜 (伊東 裕揮氏)

  • Oracle はコミュニティとの関わりは今まであまりしてこなかった
  • Oracle は最近の買収で製品の数が増えて来ている
  • MySQL をお使いの方?(いっぱい手が挙がる) Oracle をお使いの方?(ちょっと手が上がる) 聞かなきゃよかったですね(会場笑い)
  • 市場での評価の高い PHP──言語別求人件数で第 4 位。この不況下で微増 (日経ソリューションビジネス 3/15 号記事より)
  • 高評価の理由は?

    • 言語習得が容易

      • 人材が豊富、調達が容易
      • オープンソースで、ツールが揃っている
      • 開発リードタイムが短い
    • 人気のあるサイトでの採用実績
  • ラクルは PHP を重要な言語と位置づけ、PHP をもちろんサポートします
  • OraclePHP サポート

    • OCIドライバー開発

      • Oracle Real Aplication Clusters のサポート
    • PHP Developer Center
    • 書籍 "The Underground PHP and Oracle Manual" (Oracle Repository Network に置いてあり、無料でダウンロード可能)。せめてダウンロードだけでも。日本語への翻訳も計画中
  • 急成長する Web サイト→求められるシステム開発のニーズと課題
  • 短期リリース

    開発スタートからリリースまでの時間を可能な限り短縮すること
  • キャパシティ拡大

    急激に人気が出てからのキャパシティ拡大が柔軟なこと
  • 短期リリースは皆さんすでにできているはず。PHPだから。キャパシティ拡大については Oracle がお手伝いしたい
  • Oracle Database + PHP のよく聞く課題

    • 高い

      → 安いのもあります

      • SE1: Oracle Database Standard Edition One 630,400 円/CPU
      • 開発ライセンスは無償(昔は有償だった頃もあったが)。全製品 OTN から無償でダウンロード可能。サポートをつける場合は有償
      → 無償のものもあります

      • Express Edition。商用可能。1CPU、1GBメモリ、1 Database、4GBデータ領域の制限あり。エンジンそのものは他の Oracle Database と全く同じ。サポートは付けられない
      → 無償ツールが揃ってます

      ライセンスは無料、サポートは別
    • 難しい

      → カンタンです。GUI ツールが揃っている。MS SQL Server に勝ったとは言わないまでも追いついて来た

      • インストール
      • 運用管理
      → 無償トレーニングを揃えています

  • なので、とりあえずのとっかかりとして、Amazon EC2PHP + Oracle XE を使ってみませんか?

    • Oracle XE は無償
    • AMI イメージ(Amazon Machine Image)が利用できるのでインストール不要
    • Amazon EC2 は比較的安い
  • 何か実験をやりたいときにオンラインでさも自分のマシンを扱うように使えるので、一度使ったら手放せない
  • Amazon EC2 の利用イメージ

    • Oracle 製品を含む仮想マシンイメージを提供している。インストールで皆さんの手を煩わせたくない
    • Amazon EC2 上に環境構築可能

(ここで実際に Amazon EC2 を使ったデモを実行)

  • Oracle は使い回しのできるライセンス。持っているライセンスは社内でも EC2 でも、どちらでも利用可能。処理能力が移動したに過ぎないと考える。社内の遊休ライセンスを EC2 で使える
  • なぜか?

    • 基本的にデータベースシステムは連続稼動
    • データベースシステムは比較的多くのデータ転送を伴う
  • Oracle SE でも Oracle Real Aplication Clusters が使える
  • インメモリデータベースのパフォーマンス

    • JAL 国内線の検索で使われている。航空便の検索 1 回で 200 本くらいの SQL が実行される
    • 国際線にはこの仕組みはないので遅い
  • Oracle Coherence

    • ヨドバシ・ドットコムで利用されている

まとめ

  • Oracle には安いもの、タダのものもある
  • 技術者育成もタダでやります
  • とりあえず Oracle XE on Amazon EC2 で始めましょう


ソーシャルメディア GREE (田中 良和氏)

グリー株式会社

  • 個人で趣味的に運営していた「GREE」の運営会社として設立
  • 約 5 年弱のベンチャー (2004/12 設立)
  • 東証マザーズ上場 (2008/12)
  • 役職員 108 人、平均年齢約 29 歳
  • 「インターネットを通じて、世界をより良くする。」SNS やゲームにこだわっているわけではない。我々ができること、貢献できることは何かを考え、今は SNS やゲームが貢献できるだろうと思っている

SNS + ソーシャルアプリ

  • 会員→SNS→PV 増加→広告メディア収入
  • 会員→SNS 連動型ゲーム→有料アイテム購入による課金収入

両方やることで学べること、できることがある。

ソーシャルアプリの可能性の追求と楽しさの提供

  • 釣りゲーム「釣り★スタ

    • 友達やチームでやればもっと楽しい
    • 言ってみればカンタンな話だが、常にオンラインで友達とつながっているゲームをカジュアルにやれるというのは、2007 年当時としてはかなり新しかった
  • ペット育成ゲーム「クリノッペ

    • 釣りは男性向けなので、女性向けのサービスをと思って始めた
    • たまごっちは世界で 2 千万個売れているらしい
    • 一人でも育てられるが、友達と一緒に育てあう機能がある
    • 「夫婦ともう一人の 3 人で育て合っている」という人も。うち一人は会ったことがないとか。グリーはバーチャルとリアルの両方で使えるサービスを展開しなくてはと思った
  • 大々的にプロモーションをかけている

    • 新聞折り込み、新聞・雑誌広告、屋外広告、TV CM
    • インターネットサービスのプロモーションに長けている広告代理店なんていない
    • 今では広告代理店出身の社員がいるが、最初は私と CEO と二人で CM を作っていた
    • 他社サイトの広告も出しているし、自社の広告も出している。自分のサイトがバイラルマーケティング
  • コミュニティ監視

    • 「居心地がいい」「ヘンなメールが来ない」というのがコミュニティの質
    • サイト内の健全性がコミュニティの品質に直結する
  • 月間純増 No.1。5 月には純増 100 万人ちょっとだった
  • 利用者の状況 (スライド)

    • 地方にも散らばっている。モバイルサービスにこだわったのはこのため
  • 年齢別構成

    • DQ9 が 400 万人で国民的ゲームと言われているのなら、ウチのサービスも胸を張っていい
    • 30 代以上が全利用者の 4 割、若年層サイトではなく中年層サイト?
  • 売上・利益の推移 (スライド)

    • よりよいサービスを作るためには売上も利益も上げて行かなくてはいけないと確信している
    • エンジニアに対してもそう伝えている
    • 「新しいこと、おもしろい事をする人は儲からないからしょうがない」という考えには賛成しない。超一流の人間は世の中を変えながらお金も生み出している

振り返りとこれから

  • モバイルへの仮説

    • 2006 年当初に、2010 年のビジョンと3つの仮説を構築

      • 5 年先を考えて、未来のユーザーに向けて作る
    • ネットの利用は PC からモバイル中心になる

    • コミュニティサービスがネット利用の中心になる

      • 使いやすい・楽しいの定義が変わっていく
    • コミュニティがコンテンツを融合する
    • ちょっと前までは「日記なんてウェブに書かないでしょ?」「写真なんてウェブに上げないでしょ、危ないから」とみんな言っていた
    • バーベキューに行く車中でマリオカートなどをやっていると、「これを HD でやる必要はないな」と思う。パソコンでやる必要もない
    • PC メールを使っている人は少ない。みんな携帯でメールを使っている。音楽配信にしても、自分は iTunes で買っているが、世の中の人は着メロを買っている
    • 株取引も昔は対面で、今はネットで。そのうち携帯で
    • PC はなくなるとは思っていないが、かなり少なくなると予想している
    • PC はブロードバンドになってブレイクした。携帯は 3G になる 2006 年からブレイクするだろう
    • インターネットがモバイル化する以上、モバイルに対応しないとかつての映画館のようにダメになる
    • 「どうしてモバイルを使ってるの? PC のほうがラクじゃん」とモバイル利用の友人に聞くと「PC は居間にある。寝転びながらできないから」。より多くの人に使ってもらうサービスにするには、寝転びながらできないとダメ。あと、「画面が大きいとどこを見ればいいのかわからない。画面が小さい方がいい」「キーボードもボタンが少ない方が打ちやすい」「PC は起動が遅い。ケータイはすぐ使える」とも言われた。そういうことが価値だと思う人が増えてくる

アプリ設計思想

  • 短時間でも長時間でもできる
  • 初心者もヘビーユーザーも楽しめる
  • 一人でも楽しく、複数でもより楽しい
  • 無料でも有料でも楽しめる
  • すべての年齢・性別に受け入れられる
  • 数百万・数千万人が使えるシンプルさを保つ
  • リアルでもバーチャルでも混在して使える
  • 継続して開発、改善し続けられるチーム力が最も重要

ゲーム業界は 5 万本、10 万本売れれば OK の世界。マスサービスとニッチサービスの考えや設計思想はまったく異なる。

お金が払えない人もいる。永遠に無料の人でも楽しめるようにする。


SNS as a platform

  • SNS がプラットフォームになり、そのインフラを元にしたアプリの利用

    • アプリの中止はゲームになる
  • 自社でキラーアプリを開発する

  • ゲームのみならず、さまざまなアプリケーションを統合する

  • Windows の方がソフトは多いが、MacOS の方が使いやすい
  • 我々の考えるプラットフォーム化を進めていく


今後の目標

  • SNS は、検索やメールと並ぶ、ウェブの利用のキラーアプリになる
  • 2000〜3000 万人が利用する、日本最大のコミュニティを創造する
  • モバイルのみではなく、PC や iPhone などのクロスプラットフォーム

    • テレビがあっても映画があるように
  • ゲームを中心に、様々なソーシャルアプリへ分野を拡大する
  • 中長期的に、日本からグローバル化して、世界の利用者を獲得する
  • 企業を拡大させ、日本を代表するネット企業に成長する



45 分で分かる、安全な Web アプリケーション開発のための、発注・要件・検収 (徳丸 浩氏)

(suno 注: 徳丸氏のサイトに、このプレゼンテーションで使用したスライドが公開されています。本記事末尾の「関連リンク」をご覧ください)

本日お話しするテーマ

  • セキュア開発をベンダーに促すにはどうすればよいか
  • セキュア開発においてコストを低減するには
  • セキュア開発の要件定義はどう考えればよいか
  • セキュア開発で大切な3つのこと

    • セキュリティ要件とセキュリティバグ
    • 開発標準と教育
    • セキュリティテスト
  • セキュリティテストツールとしての「ウェブ健康診断仕様」

自己紹介


発注の話──脆弱性の責任と契約について

  • Web アプリの脆弱性は、発注者側に責任があるという考え方が主流のようだ。耐震偽装マンションの話でも発注者側の問題との声が大きかった。ただし判例があるわけではないので要注意
  • 経済産業省の「モデル契約書」では以下のような記述がある

    なお、本件ソフトウェアに関するセキュリティ対策については、具体的な機能、遵守方法、管理体制及び費用負担等を別途書面により定めることとしている(第 50 条参照)。セキュリティ要件をシステム仕様としている場合には、「システム仕様書との不一致」に該当し、本条の「瑕疵」に含まれる。


    (セキュリティ)

    第 50 条 乙が納入する本件ソフトウェアのセキュリティ対策について、甲及び乙は、その具体的な機能、遵守方法、管理体制及び費用負担等を協議の上、別途書面により定めるものとする。

  • 発注者は自衛のために要求仕様にセキュリティ要件を盛り込んでおくべき

    • そもそも発注者は入り口(発注)と出口(検収)しか関与できない
    • 「何かあったとき」のための保険


RFI/RFP の 3 パターン

  • パターン 1: 提案を求める

    発注者は楽だが、要求も提案も曖昧になりがち
  • パターン 2: 詳細な仕様を出す
  • パターン 3: 検査仕様を提示する

RFI/RFP の書き方

  • 漠然としたものは効果が薄い
  • 脆弱性の名前を列挙する方法 (高木浩光氏提唱)
  • 実装方式を指定する方法
  • 検収の方法を指定する


お勧めの RFP

  • 基本はベンダーに提案してもらう
  • 納品物としてセキュリティ検査結果を添付してもらう
  • 検収時に自らセキュリティ検査を実施する


要件の話

  • 従来言われて来たセキュリティ仕様策定プロセス

    • 情報資産洗い出し→リスク分析→対策
    • 経済産業省のモデル契約書にセキュリティ要求仕様書のサンプルがあるが、SQL インジェクションや XSS などについての記述はない
  • リスク分析は手間の割に効果が少ない

    • 一般的な Web アプリの場合、分かり切っていることをなぞる結果になりやすい
    • 重要なのは、何が重要情報か(what)ではなく、それをどう(how)扱うか
    • 分かり切った資産洗い出しよりも「対策を選ぶ」ようなアプローチのほうが効果的

リバース・リスク・アセスメントのすすめ

  • ベストプラクティスのセキュリティ対策から選択肢、あるいはリスクを許容する
  • 対策・採用/不採用・不採用時のリスク・代替コントロールの 4 点を検討
  • 受託案件では Linux/FreeBSD よりも Windows が採用されるケースが多い。Linux/FreeBSD を指定された場合、「ウィルス対策ソフトをインストールせよ」と言われると困る。その結果として Windows を採用してしまうこともある


脆弱性対策と開発プロセス

  • SQL インジェクションなどが「ないこと」という要求は仕様として盛り込みにくい
  • リクス分析の結果で脆弱性対策をするものではない。対策は常にすべき
  • これらはセキュリティバグであり、バグがないことはわざわざ仕様に明記するものではない
  • 脆弱性対策は、開発標準に盛り込むのがよい

    • だからベンダーの開発標準が重要
    • 開発標準の閲覧を要求するのも一法
  • ただし、契約上の問題は別

    • ベンダーの責任範囲は発注仕様の範囲内


提案: 3 つのポイント

  1. セキュリティ機能(要件)とセキュリティバグは分けて考える

    • 認証方法などのセキュリティ要件は、ユーザーと相談して定義し、その後に粛々と実装する
    • SQL インジェクションなどのセキュリティバグへの対処方法を明確にする
  2. 開発標準の整備とメンバーの教育でチーム力をアップ

    • 方式設計において開発標準やテスト方式を整備しておく
    • コーディング規約をメンバーに学習してもらう。規約を破ると本当に危険だと認識してもらう
  3. コスト要因となるレビューとテストを計画的に

    • コードレビューの方針を決める。内部レビューを基本とし、誰がどの範囲をチェックするのかをン明確にする。レビューできる担当者のリソースを確保する
    • 脆弱性テストの方針を決める。内部テストを基本にし、必要に応じて外部の専門ベンダーに依頼する。テストできる担当者のリソースを確保する


セキュリティ要件とは何か

  • リバース・リスク・アセスメントのところで出て来たような「積極的な」セキュリティ対策
  • 例: パスワード仕様、暗号化、ログ、……
  • セキュリティ仕様の実装は、要件定義からウォーターフォールで粛々と実施
  • 脆弱性対策は開発標準で対応


開発標準と教育

  • SQL インジェクション対策や XSS 対策は開発標準で定義
  • 開発標準は定着が難しい。教育を実施して、テストで定着度を確認するとよい
  • 日経 SYSTEMS 寄稿時に各社にインタビューした際の印象では、「やられサイト」を作って開発者向けにデモしている企業が意外に多く、効果が期待できる


開発標準として利用できるリソース


方式設計のすすめ

  • 開発標準の抽象度が高い場合、基本設計フェーズの「方式設計」として、具体的なコードレベルに落としておくとよい(下記の例では下に行くほどよい)。初めて PHP の話が出て来ましたね(会場笑い)

    • XSS 対策のために特殊文字エスケープする
    • < > & "文字参照によりエスケープする
    • htmlspecialchars() 関数でエスケープする
    • ライブラリ関数 e() を用いる


      function e($p) {
      echo htmlspecialchars($p, ENT_QUOTES, 'UTF-8');
      }
  • 開発言語、アーキテクチャ、ライブラリ、チームの習慣等を考慮し、コピペ可能なレベルまで具体化しておく
  • 方式設計の際には、テスト方法も検討しておくとよい


コスト要素はどこか

  • 「セキュリティ要件」については、機能が増えることになるので、直接コスト増となる

    • 要件詰めをしっかり行う必要がある
  • セキュリティバグについては以下が越すと要因

    • 開発標準作成、開発者の教育
    • セキュリティテスト
  • 「発注者のための…セキュリティ要件書」でコスト増になるのは

    • アカウントロック機能の作り込み
    • SSL の証明書代(大したことはない)
  • 開発標準や教育は一度作れば使いまわせる


検査の話──セキュリティテスト

  • 最終的にはテストで品質を保証することになる
  • ウェブ健康診断とは

  • 12 項目の診断項目から成る。委員会に高木浩光氏の名前が! 技術アドバイザー・委員会オブザーバーに徳丸氏


テスト工程のコスト削減方法

  • できる部分は自分で
  • 必ずしも全項目をテストする必要はない
  • 明らかにテスト不要なものは省く。例: 外部コマンドを利用しなければ、OS コマンドインジェクション調査は不要
  • ソースコード検査のほうが効率がいいものもある