LAMP スタック:品質およびセキュリティ

Similar documents
共通フィルタの条件を設定する 迷惑メール検知 (SpamAssassin) の設定 迷惑メール検知 (SpamAssassin) とは.

目次 はじめに サービス内容 管理者機能 利用者機能

ページの作成について ショッピングカート以外のすべてのページは自作できます また 一部のページだけ自作することもできます トップページだけ自作のものを用意する店舗さんも多数おられます 利用テーマに合わせて文字コードを指定します 制作する HTML ファイルの文字コードは ショッピングカートで利用して

グループ一覧を並び替える すべてのユーザー グループの並び順を変更する ユーザーの登録

講座内容 第 1 回オープンソースの理念 ( 講義 90 分 ) オープンソースという言葉の定義と概念を理解する あわせてオープンソースの基本的なライセンスを理 解する (1) オープンソースの登場と理念 1. オープンソースの定義 2. ネットスケープ社製品のソースコード公開 3. Open So

5-3- 応統合開発環境に関する知識 1 独立行政法人情報処理推進機構

POP/IMAP POP /IMAP over SSL( 暗号化受信機能 ) SMTP Auth( 送信時認証機能 ) SMTP over SSL( 暗号化送信機能 ) ウェブメール メール転送 無制限 50 メール自動返信 迷惑メール対策 ウイルス対策 /Symantec メーリングリスト 無制限

HIGIS 3/プレゼンテーション資料/J_GrayA.ppt

5 バージョンダウン 別アーキテクチャ対応製品を含みます 6 お客様からご要望があった場合にご提供いたします ご契約 1 件につき 各バージョン 1 個までのご提供に限らせていただきます 対象となるバージョンアップ製品については次のとおりです Asianux Server 3 == MIRACLE

Nero ControlCenter マニュアル

1-1- 基 OSS 概要に関する知識 ソフトウェアの新たな開発手法となりソフトウェア業界で大きな影響力を持つようになったオープンソースについて学習する 本カリキュラム Ⅰ. 概要では オープンソースの登場から現在に至る発展の経緯や代表的なソフトウェアの特徴を理解する 講義の後半では実際にソフトウェ

MIRACLE LINUX V4.0 延長プロダクト サポート SLA( サービスレベルアグリーメント ) 文書番号 :ML-CS-0227 本書は ミラクル リナックス株式会社 ( 以下 当社 ) が MIRACLE LINUX V4.0 延長プロダクト サポートサービスの内容について説明するもの

相続支払い対策ポイント

150423HC相続資産圧縮対策のポイント

ハピタス のコピー.pages

Copyright 2008 All Rights Reserved 2

Linkexpress トラブル初期調査資料 採取コマンド使用手引書

Silk Central Connect 15.5 リリースノート

はじめの一歩!ソースコード管理に必要なバージョン管理とは

目的 概要 全体像 概念図 用語の定義 用語 説明 用語 説明 用語 説明 用語 説明 参考資料

Polycom RealConnect for Microsoft Office 365

べきでない悪意のあるSQL 文が攻撃者から入力された場合 データベースで実行される前にSQL 文として処理されないよう無効化する必要がありますが ( 図 1 1) 無効化されずにデータベースで実行された場合 データベースの操作が可能となります ( 図 1 2) 本脆弱性を悪用するとデータベース接続ユ

プラチナサポート SLA ( サービスレベルアグリーメント ) 文書番号 :ML-CS-0549 本書は サイバートラスト株式会社 ( 以下 当社 ) がプラチナサポートサービス ( 以下 当サポート サービス ) の内容について説明するものである 当サポート サービスは以下の 2 種類がある プラ

システム必要条件 - SAS Add-In 7.1 for Microsoft Office

ESMPRO/ServerManager Ver. 6 変更履歴

説明書

システム必要条件 - SAS Add-In 7.1 for Microsoft Office

Oracle Web CacheによるOracle WebCenter Spacesパフォーマンスの向上

障害管理テンプレート仕様書

PowerPoint プレゼンテーション

セットアップカード

システム必要条件 - SAS Add-In 8 for Microsoft Office

-調達要求番号:

初心者にもできるアメブロカスタマイズ新2016.pages

WithMIRACLE登録方法

- 2 Copyright (C) All Rights Reserved.

スライド 1

PostgreSQL / PowerGres サポート&保守サービスのご案内

演習に必要な

オープンソース・ソリューション・テクノロジ株式会社 代表取締役 チーフアーキテクト 小田切耕司

Oracle Enterprise Linux 5における認証

システム必要条件 - SAS Forecast Server 3.1

Using VectorCAST/C++ with Test Driven Development

らくらく在庫:メール転送設定ガイド

サービス内容 サービス内容 ドメインサービス Web サービスのサービス内容についてご案内します このたびは ドメイン /Web サービスをお申し込みいただきまして 誠にありがとうございます 本冊子は ドメイン /Web サービスの運用を管理される方向けの内容で構成されております お客様のご利用環境

XAMPP で CMS のお手軽 テスト環境を手に入れよう 2011/5/21 上村崇 1

メール関連 メールサーバー qmail IMail12.4 メールアドレス数 無制限 無制限 メールボックス容量 任意で設定 1GB 別途アシストアップ社にご連絡いただくことでご契約メールボックス容量まで設定可能 メール送受信容量 別途アシストアップ社にご連絡いただくことで 10MB まで設定可能

PHP 開発ツール Zend Studio PHP アフ リケーションサーハ ー Zend Server OSC Tokyo/Spring /02/28 株式会社イグアスソリューション事業部

Compliance Guardian 3 SP3 Release Notes

X-MON 3.1.0

Copyright All Rights Reserved. -2 -!

Releases080909

Microsoft Word - Circular-Memory-Leak_Mitigation

Copyright Qetic Inc. All Rights Reserved. 2

ColorNavigator 7インストールガイド

6-3.OS セキュリティに関する知識 OS のセキュリティ機能として必要な機能と オープンソース OS とし Ⅰ. 概要てもっとも利用が期待される Linux のセキュリティ管理に関して 電子メール Web CGI DNS などの具体的な管理手法について学ぶ Ⅱ. 対象専門分野職種共通 Ⅲ. 受講

IPA:セキュアなインターネットサーバー構築に関する調査

オープンソース・ソリューション・テクノロジ株式会社 会社紹介

スマートデバイス利用規程 1 趣旨 対象者 対象システム 遵守事項 スマートデバイスのセキュリティ対策 スマートデバイスの使用 スマートデバイスに導入するソフトウェア スマー

Microsoft Word - 最終版 バックせどりismマニュアル .docx

ColorNavigator 7インストールガイド

導入設定ガイド

TFTP serverの実装

v6

DataBase17-10.pptx

FUJITSU Cloud Service for OSS CF サービス仕様書

XMP structure: 1

2011 年第 3 四半期脆弱性対策情報データベース JVN ipedia の登録状況 ( 詳細 ) 1. 脆弱性対策情報の登録状況 1.1 今四半期に登録した脆弱性の種類別件数 す 別紙 2 共通脆弱性タイプ一覧 CWE ( *12) は 脆弱性の種類を識別するための共通の脆弱性タイプの一覧で C

ColorNavigator 7インストールガイド

エンドポイントにおける Web コントロール 概要ガイド

Flatbed Scanner Unit 201ユーザーマニュアル

Symantec Endpoint Protection 12.1 の管理練習問題 例題 1. 管理外検出でネットワーク上のシステムを識別するとき 次のどのプロトコルが使用されますか a. ICMP b. TCP c. ARP a. UDP 2. ある管理者が Symantec Endpoint P

画面 1 どのアプレットを含めるのかを設定する これは Linux カーネルのコンパイルと同様の画面です これを使って どのようなアプレットを含めるのかを設定していきます 例えば Coreutils を選択すると 次のような画面が現れます ( 画面 2) 画面 2 Coreutils を選択した様子

OSSTechプレゼンテーション


アルファメールプレミア 移行設定の手引き

ウイルスバスター コーポレートエディション 10.6 SP3 システム要件

Microsoft Windows向けOracle Database 12cでのOracleホーム・ユーザーの導入

パソコン決裁7 捺印ツールインストールマニュアル

掲示板の閲覧 掲示板の閲覧 登録権または参照権のある掲示板グループの掲示版を閲覧することができます 各利用者の権限は 管理者によって設定されます 掲示板を閲覧する 1 掲示板画面を表示し 閲覧する掲示が含まれている掲示板グループ 掲示板の順にクリックします 掲示板画面の表示方法 ポータル画面の画面説

ユーザー一覧をファイル出力する ユーザーを検索する 登録したユーザー数を確認する

Source Insight

オープンソース・ソリューション・テクノロジ株式会社 代表取締役 チーフアーキテクト 小田切耕司

PowerPoint プレゼンテーション

OSSTechプレゼンテーション

ウェブデザイン技能検定 1 級実技 平成 28 年度 第 4 回 ウェブデザイン技能検定 1 級 実技試験概要 試験にあたっての注意事項 試験者は本試験の留意事項 注意事項に留意して作業を行うこと ペーパー実技試験は 課題 1 から 5 までの 5 課題を 60 分間で行うこと 作業実技試験は 課題

目次 1. XQuartz インストール PlayOnMac インストール Wine のアップデート ターミナル インストール MT4/MT 既知の問題 ターミナルデータ案内 14 2

Protexご紹介

平和教育の目標と主題(案)

db0215

注意 インストール中に ユーザアカウント制御 ( 以下 UAC といいます ) の実行確認画面が表示されることがあります 表示された場合ははいをクリックして インストールを進めてください なお 管理者以外の場合 管理者への昇格を求める UAC 画面が表示される場合がありますので 管理者アカウントのパ

東京エリアDebian勉強会 Debian JP Project - OSC 2017 Tokyo/Fall (第154回出張勉強会)

/ 11

Microsoft PowerPoint - mwpro2_faq_ ppt

PostgreSQL による クラスタ構成の可能性 SRA OSS, Inc. 日本支社 取締役支社長 石井達夫

Microsoft Word - Manage_Add-ons

はじめに 本ドキュメントは Redmine を使用して稼働する定量的プロジェクト管理ツール ( 以下 IPF と略します ) のヘルプです IPF の操作に関わる機能を解説しており Redmine 及び構成管理ツール (Subversion Git) の標準機能については 本ヘルプの記載対象外として

untitled

Simple Violet

スライド 1

Transcription:

LAMP スタック : 品質およびセキュリティ Rich Cerruto 日本アジア担当ディレクター Copyright Coverity, Inc. 2006. All Rights Reserved.Coverity, Inc. の書面による許可を事前に得ることなく 本書の全体またはその一部を複製したり 検索システム ( コンピュータベースなど ) に保存したり 転送したりすることは形式や手段にかかわらず禁止されています

Coverity のベーシックなアプローチ 静的ソースコード解析 検出できる問題 セキュリティ上の脆弱性 システムとプロセスのクラッシュ 無限ループ パフォーマンスの劣化 サービス拒否 権限昇格 アプローチ コードを実行しない テストケースを作成しない すべてのパスを解析する データ メモリ およびファイルの破損 予期しない動作 並列処理の問題 2

オープンソース + Coverity: 静的解析技術の改善 飛躍的な研究所技術 Linux でのソースコード静的解析 Coverity の設立 - - Linux での強化 会社の成長と拡大 1999 2001 2002 2003-06 メタレベルコンパイルチェッカー (" スタンフォードチェッカー ") Linux における 2000 以上のバグの検出 初期バージョンの Linux における数百のバグの公表 Linux コミュニティによるほとんどの欠陥の修正 当社の技術を求める要望が殺到 継続する Linux 作業 :2000 以上のバグの検出 無料サービスを提供する Linuxbugs サイトの作成 150 以上の顧客 -- Juniper Synopsys Symantec nvidia PalmOne およびその他多数 米国国土安全保障省の研究 -- 次世代解析技術の開発とオープンソースへの適用 scan.coverity.com FreeBSD Mozilla によるオープンソース関与の拡大 3

トピック 32 のオープンソースパッケージの品質とセキュリティに関する Coverity の評価方法 LAMP スタックおよび研究の対象となった他のパッケージとの比較 この研究が開発コミュニティに公表された後の反応 4

サンプルバグ No. 1: リソースリーク Perl: perl/ext/storable/storable.xs scan.coverity.com の開発者が確認済み 5

サンプルバグ No. 2: 配列のオーバーラン php-src/ext/standard/ftp_fopen_wrapper.c off by 1 (1 つ違い ) エラー 6

Coverity のアプローチ : scan.coverity.com オープンソースパッケージを自動的にスキャンするためのインフラストラクチャ 毎晩スキャン の使用 Coverity Prevent 2.4.4 の使用 結果を scan.coverity.com に自動的に送信 始動 2006 年 3 月 6 日 32 パッケージ 今後さらにパッケージを追加 7

8 パッケージ一覧の概要パッケージ一覧の概要 XMMS XMMS Samba Samba OpenLDAP OpenLDAP Gcc Gcc Xine Xine Python Python NetSNMP NetSNMP GAIM GAIM X ProFTPD ProFTPD MySQL MySQL FreeBSD FreeBSD WxWidgets WxWidgets PostgreSQL PostgreSQL Mplayer Mplayer Firefox Firefox TCL TCL PHP PHP Linux Linux Firebird Firebird Squid Squid Perl Perl Inetutils Inetutils Ethereal Ethereal SQLite SQLite OpenVPN OpenVPN Icecast Icecast Apache Apache Snort Snort OpenSSL OpenSSL Gnome Gnome Amanda Amanda

最初の実行結果 比較のための主な評価基準として欠陥密度を選択 発表する結果 : LAMP スタックの L および P 部分の詳細データ パッケージ全体の傾向 LAMP スタック全体の比較データ 9

生の数字 L および P Linux PHP Perl Python バグ合計数 1062 205 89 96 システム / プロセスのクラッシュ 予期しない動作メモリリーク 585 117 173 126 40 23 40 8 26 54 7 21 バッファオーバーラン 187 16 15 14 10

欠陥密度 - L および P パッケージ Linux 密度 ( コード 1000 行あたりのバグ ).33 PHP.49 Perl.18 Python.35 11

傾向 : 欠陥密度の基準 Distribution of Defect Densities in Open Source Packages Number of Packages 12 10 8 6 4 2 0 0.000-0.061 0.062-0.191 0.192-0.313 0.313-0.434 0.434-0.555 0.556-0.677 0.677-0.798 >= 0.798 Defect Density Range 12

比較 : LAMP 対基準 How does LAMP stack up? 0.60 0.50 0.43 0.49 Defects per KLOC 0.40 0.30 0.20 0.18 0.22 0.25 0.29 0.33 0.35 0.10 0.00 Perl MySQL Apache LAMP Average Linux Python Baseline PHP 13

PHP 値が最も高い理由 88 の FORWARD_NULL バグ ( 合計 205 中 ) 非標準アサーションによるフォールスポジティブ (10 のサンプルでは 3/10) 主な問題点 コード内のいくつかの部分における NULL ポインタの不適切な取り扱い 14

例 15

16 考慮すべき他の要素考慮すべき他の要素 0.35 0.35 0.18 0.18 0.49 0.49 0.33 0.33 欠陥欠陥密度密度 5,516 5,516 6,613 6,613 3,928 3,928 4,380 4,380 1.0 1.0 以降の以降の経過経過期間期間 ( 日数日数 ) 64 64 846 846 57 57 464 464 保守担当者保守担当者数 272,118 272,118 495,100 495,100 419,192 419,192 3,171,631 3,171,631 コードの行コードの行数 Python Python Perl Perl PHP PHP Linux Linux

L および P の推定される相関関係 経過期間対欠陥密度 ほとんど完璧な相関関係 古いプロジェクトほど欠陥が少ない LOC ( コード行数 ) 対欠陥密度 相関関係なし 最高密度は 419,192 の LOC を持つ PHP 最低密度は 495,100 の LOC を持つ Perl 保守担当者数対欠陥密度 保守担当者数が多いほど欠陥密度が低い Python はこの限りではない 今後の作業 さらに大きなサンプルサイズでこれらの相関関係を調査する 17

欠陥の公表 2006 年 3 月 6 日 欠陥データベースをオンライン化 すべてのオープンソース保守担当者に発表を通知 反応 18

5 日後 確認済み ( 修正済み ) Linux PHP Perl Python システム / プロセスクラッシュ 予期しない動作 リソースリーク バッファオーバーラン 合計修正数 73 (3) 43 (0) 12 (1) 15 (1) 5 0 2 (0) 0 0 0 3 (0) 3 (2) 4 (2) 1 (1) 5 46 (36) 6 (0) 21 (12) 9 (0) 48 19

5 日後の勝者 Python 48 のバグを修正 残りの 38 のバグのうち 23 は 影響少 とマーク付けされ 修正に値しないものと判断 20

30 日後 確認済み ( 修正済み ) Linux PHP Perl Python システム / プロセスクラッシュ 予期しない動作 リソースリーク バッファオーバーラン 合計修正数 87 (49) 32 (23) 31 (18) 39 (21) 111 27 (7) 10 (6) 6 (6) 14 (3) 22 15 (12) 3 (2) 5 (3) 1 (1) 18 40 (44) 5 (2) 21 (18) 9 (2) 66 21

30 日後の概要 4,272 の欠陥を確認 2,594 の修正 2 のセキュリティ勧告 (X.org および NetBSD) 3 つの クリーン なパッケージ Amanda Python XMMS Amanda は初期の欠陥密度が最大 5 つのほとんどクリーンなパッケージ SQLite Ethereal Icecast Squid Samba 500 人以上の開発者が結果を見るために登録 最新の結果は 次のサイトを参照 scan.coverity.com 22

まとめ オープンソース開発者は品質を重視している LAMP スタックの平均欠陥密度は 32 の OSS パッケージの基準を下回っている PHP には最大の欠陥密度があり その主な原因は NULL ポインタの不適切な取り扱いにある 今後の作業 パッケージの経過期間 保守担当者数 LOC と欠陥密度との相関関係を調査する 特定のバグカテゴリを詳細にわたって調査し アーキテクチャ上の機能と相関させる 23