2005/12/21 PHP 脆弱性とバージョンアップ 日本 PostgreSQL ユーザ会 四国支部 / 日本 PHP ユーザ会 /Momonga Project 大垣 靖男 / / /

Slides:



Advertisements
Similar presentations
Trac と Eclipse の 便利な機能. プロジェクト管理システム: Trac 0. はじめに バージョン管理システム: Subversion 統合開発環境: Eclipse ・ Wiki による情報 管理 ・進捗状況の管理 ・プログラムの作 成 ・リポジトリに データを集める.
Advertisements

AZUR moodle. Moodle オープンソースの e ラーニングプラットフォーム 一般的には CMS や LMS と呼ばれる Web サイトを管理・更新できるシステム CMS ⇒コンテンツマネジメントシステム LMS ⇒学習管理システム(ラーニングマネジメントシステム)
Internet Explorer 障害解析 最初の一歩 - IE のトラブルを理解する -. 概要 Internet Explorer を使用中に発生するトラブルの 種類と、調査のための切り分け方法を紹介します! (以降は IE と略称で表記します) よくあるお問い合わせ Web ページの表示が白画面のまま完了しない.
ネットワークプログ ラミング論 平成27年 11 月 1 6日 森田 彦. 【基礎課題 6-1 】の解答 ① サーブレットを記述して保管するとコン パイルが自動的に行われる。 ② サーブレットの記述後、開発者がコンパ イル命令を実行しなければならない。 ③ プロジェクト名が Web アプリケーション.
1 安全性の高いセッション管理方 式 の Servlet への導入 東京工業大学 理学部 千葉研究室所属 99-2270-6 松沼 正浩.
OpenOffice.org 2.3の 紹介と今後の展開について
MediaWiki 開発者コミュニ ティに参加するには Ryan Lane Wikimedia Foundation Inc.
BBT大学 Ruby on Rails開発環境セットアップマニュアル
IIS 4.0で開発をするコツ Webアプリケーション構築.
情報処理実習 第05回 Excelマクロ機能入門 操作マクロ入門.
Linux/Apache/PostgreSQL/PHPを利用した 高性能Webシステム構築
本気で導入するOpenOffice.org 3つのポイント
リレーショナル・データベース データベース論 第10回.
サイバーセキュリティ演習 ― Webセキュリティ基礎&実践―
Webアプリケーション開発の 基本的なポイント
OpenOffice.org のバグがなおるまで
技術トピックス 2014/10.
下藤 弘丞 SecureWeblogの構築.
サイバーセキュリティ演習 ― Webセキュリティ基礎&実践―
SOHOシステムの構築と運用 東北NTユーザ会新潟勉強会資料.
コンピュータウィルスと脆弱性 メディアコミュニケーション論Ⅲ 7/18/08.
2006年11月15日 植田龍男 Webサービス II (第8回) 年11月15日 植田龍男.
受動的攻撃について Eiji James Yoshida penetration technique research site
UNIX Life KMSF M2 saburo.
情報基礎演習B 後半第5回 担当 岩村 TA 谷本君.
CakePHPを業務に導入する Shin x blog 新原 雅司.
Mavenによる プロジェクト管理 近畿大学理工学部 情報学科3年  小野実.
Handel-C基礎 および 7セグとマウスのハンドリング
システムプログラミング 第5回 情報工学科 篠埜 功 ヒアドキュメント レポート課題 main関数の引数 usageメッセージ
EGSに対応した粒子軌跡と 計算体系の3次元表示ソフト - CGVIEW -
市販のソフトウェアが これほど脆弱な理由 (それをどのように解決するか).
Phenixサーバ クラックまとめ.
Vulnerability of Cross-Site Scripting
仮想計算機を用いたファイルアクセス制御の二重化
PHP Framework Update symfony 編 株式会社ディノ 月宮紀柳.
Perlを用いた 学内専用アップローダの作成
JQueryでAjax 藤田@ジャストプレイヤー ※参考しまくり文献 jQuery日本語リファレンス.
Telnet, rlogin などの仮想端末 ftp などのファイル転送 rpc, nfs
09 06/23 PHP と SQL (MySQL) の連携 その2
(B2) 親: minami, kazuki 多様な認証機器に対応する 認証システム (B2) 親: minami, kazuki.
TA 高田正法 B10 CPUを作る 2日目 SPIMのコンパイル TA 高田正法
データベース設計 第9回 Webインタフェースの作成(1)
サンデーPonセットアップマニュアル <目次> 1.動作環境について 2.セットアップ作業 ①. ソースの設置
第8章 Web技術とセキュリティ   岡本 好未.
セキュリティビジネスの可能性に関する報告
第2回 SQL インジェクション その攻撃と対処 NECラーニング 山崎 明子.
SpectreとMeltdown ITソリューション塾・第28期 2018年5月30日 株式会社アプライド・マーケティング 大越 章司
Microsoft MVP for Development Tools – Visual C++
C言語講習 第0章 Hello, world!.
Microsoftのマルチプラットフォーム戦略
Java Bytecode Modification and Applet Security
インターネットにおける真に プライベートなネットワークの構築
Microsoft MVP for Development Tools – Visual C++
Webセキュリティ 情報工学専攻 1年 赤木里騎 P226~241.
PKI 情報工学専攻 1年 赤木里騎 P91~102.
オープンソース開発支援のための リビジョン情報と電子メールの検索システム
EGSに対応した粒子軌跡と 計算体系の3次元表示ソフト - CGVIEW -
Microsoft MVP for Development Tools – Visual C++
目次. 目次 バージョンアップガイドについて リリース日 バージョン情報 2011年9月26日 (月) バージョンアップガイドの内容 バージョンアップガイドはNIコンサルティングの製品に関する最新のリリースをまとめた統合的なユーザーガイドです。新機能や機能強化の内容、その導入に必要な情報を提供します。最新の機能を利用するガイドとしてお役立てください。
Ajilius は、オープン ソースの手頃な価格と エンタープライズ レベルの機能との間にスイート スポットを発見
サイバーセキュリティ演習 ― Webセキュリティ基礎&実践―
Cell/B.E.のSPE Isolationモードを用いた監視システム
Webアプリケーションと JSPの基本 ソフトウェア特論 第4回.
リレーショナル・データベース J2EE I (データベース論) 第2回 /
CO-Client Opeartion 1.1 利用履歴データベースの設計 (スキーマ バージョン 対応)
C言語講習 第0章 Hello, world!.
データ管理プラットフォームの 最適化によるサイバー セキュリティの強化
目的とするユーザーコードを 作成するために
SYSVOL複製 を DFS レプリケーションに移行する
セキュリティビジネスの可能性に関する報告
Presentation transcript:

2005/12/21 PHP 脆弱性とバージョンアップ 日本 PostgreSQL ユーザ会 四国支部 / 日本 PHP ユーザ会 /Momonga Project 大垣 靖男 / / /

2005/12/22 目次 $GLOBALS 問題 $GLOBALS 問題の危険性を理解する前提 $GLOBALS 問題の危険性 $GLOBALS 問題の影響を受ける環境 $GLOBALS 問題の影響 もし register_globasl=on (相当)が必要な場合 register_globals=on のサーバ対策 PHP プロジェクトの対応 バージョンアップの薦め

2005/12/23 $GLOBALS 問題 セッションの値、サーバが設定する値が信頼できない事態 PHP 4.2 以前は正に最悪な状態であった register_globals=on の場合に大きな影響 PHP 脆弱性の中では「最悪」レベル

2005/12/24 $GLOBALS 問題の危険性を理解する前提 危険なコード その 1 include $_GET[ ‘ file ’ ]; 危険なコード その 2 include $_GET[ ‘ file ’ ]. ’.php ’ ;

2005/12/25 $GLOBALS 問題の危険性 危険なコード その 1 include dirname($_SERVER[ ‘ SCRIPT_FILENAME ’ ). ’ /lib/mylib.php ’ ; 危険なコード その 2 header(dirname($_SERVER[ ‘ REQUEST_URI ’ ). ’ other_file.php ’ );

2005/12/26 $GLOBALS 問題の影響を受ける環境 基本的には register_globals=on しかし、安直な register_globals=off 対策アプリの方が問題が大き い場合も … import_request_variables 関数 foreach ループ

2005/12/27 $GLOBALS 問題の影響 意外に多い影響 …. osCommerce (EC アプリ)は 2005 年 11 月時点でも register_globals=on で無ければ動作しない … register_globals=Off であれば安全 ?! 「ではない」 Wiki! (wiki.sorceforge.net) の様に import_request_variables 関数を 使用を薦めるアプリも Manbo ( CMS )の様に foreach で resiger_globals=on をエミュレー トするアプリも

2005/12/28 さらに PEAR.php もスクリプトによっては攻撃の対象に! echo $_SERVER[ ‘ REMOTE_ADDR ’ ] などが XSS 攻撃の対象に ! header 関数が関連すると HTTP Response Splitting 攻撃の対象に ! select * from hoge where ipaddress = ‘ $_SERVER[ ‘ REMOTE_ADDR ’ ] ’ ; などが SQL インジェクションの攻撃対象に ! $_SESSION により認証制御行っていても成り済まし放題に !

2005/12/29 もし register_globasl=on (相当)が必要な場合 1. php.ini で register_globals=off 2. 値に GLOBALS 等のスーパーグローバル配列が含まれていないか確認 3. import_request_variables 関数でインポート  サンプルコード if (!empty($_REQUEST['GLOBALS']) || !empty($_REQUEST['_SERVER']) || !empty($_REQUEST['_ENV'] || !empty($_REQUEST['_FILES'])) { error_log('Crack attempt from '.$_SERVER['REMOTE_ADDR'].' - '.$_SERVER['SCRIPT_FILENAME']); exit; } import_request_variables('gpc');

2005/12/210 register_globals=on のサーバ対策 register_globals=on でサーバを運用すること自体が間違い register_globals=on では実行させない PHP6 では register_globals 設定は無くなる if (ini_get( “ register_globals ” )) die( ‘ Should be register_globals=Off for security reasons ’ );

2005/12/211 PHP プロジェクトの対応 $GLOBALS 問題に対する対応は適切とは言いがたい対応 PHP プロジェクトでは他のセキュリティ問題への対応に不備があ る場合も … 無用のパッチが掲載されていたり … セキュリティレベルを下げる変更が …

2005/12/212 PHP 脆弱性リスト %AD%A5%EA%A5%B9%A5%C8 ChangeLog を見ないと分からない修正も … 中には ChangeLog には載っていない修正も …

2005/12/213 バージョンアップの薦め 基本的に PHP はメンテナンスされている最新リリースバージョン を使用 PHP 4.4.x PHP 5.1.x クリティカルなシステムの場合、 CVS 変更レベルでの注意も必要 バージョンアップ以外では Hardened PHP もオプションの一つ

2005/12/214 最近の mbstring 関数の問題 廣川さんが mbstring 関連の問題に関連するパッチをコミット mb_send_mail 関数 mb_encode_mimeheader 関数 mbfilter が誤変換する問題 PHP 4.4.2( 未リリース)、 PHP で修正済み

2005/12/215 とは言っても PHP 5.1.x は PHP くらいまで待ってもよいかも PHP5.0.x には $GLOBALS 問題がある。パッチ無しでは絶対に registger_globals=on で運用してはならない バージョン間で微妙な不整合が …

2005/12/216 QA 期間でのテスト QA は以前のバージョンとの整合性確認も目的の一つ 互換性問題を発見すれば対応される可能性が高い RC 段階に入った時点で自分のコードでの問題を確認 その為には Unit Test 等の活用が必要

2005/12/217 まとめ オープンソースは参加してこそ使いこなせる RC 期間に QA 参加するだけでも不意のセキュリティホール情報で もスムーズにバージョンアップが可能に

2005/12/218 余談:よくある間違い safe_mode はセキュリティの為の設定である しっかり作ったコードならユーザが直接参照しないファイルを DocuemntRoot に配置しても構わない 入力間違いは十分チェック(サニタイズ)しているので安全な コードである エラーが発生した場合、エラーメッセージを出さなければクラッ カーにスクリプトの脆弱性を知られずにすむ ソースを公開していなければ SQL インジェクション等の攻撃を受 ける可能性は少ない

2005/12/219 余談:フレームワーク万能論