japan.internet.com The Internet & IT Network


RSSニュース検索
カテゴリ
> トップページ
> Webビジネス
> Eコマース
> Webファイナンス
> Webマーケティング
> パブリック
> Webテクノロジー
> 携帯・ワイヤレス
> Linux Today
> Linux Tutorial
> J.I.C.ブログ
キャリア
> 転職ならen
> 派遣ならen
> アルバイトならen
> IT求人情報
ヘッドライン
> 今日のヘッドライン
> 週間ヘッドライン
Special Link
> フォトコミュニティ
> ストックフォト
> クリップアート
> イラスト
> フェリカ
> Web2.0
> 写真
イベント&セミナー
> イベントカレンダー
> 書評「IT の耳」
> 出張・接待検索
> ニュースガジェット 注目
無料ニュースメール
> 新規登録
> 変更・解除
> オプトインメールの登録・変更・解除
インフォメーション
> パートナーサイト
転職ならエン
就職ならen
求人ならen
履歴書ならen
アルバイトならエン
CRM/SFAならオラクル
> 会社概要地図
> グループ会社
株式会社アエリア
(株)サンゼロミニッツ
株式会社エアネット
> お問い合わせ
> 広告掲載について
> リンクについて
> 著作権について
> その他お問い合わせ
> 利用規約
> 個人情報保護方針
デベロッパー 2008年4月25日 10:00
デベロッパー・バックナンバー
LAMPセキュリティを強化する4つの方法

著者: Carla Schroder  オリジナル版を読む プリンター用 記事を転送
2008年4月25日 10:00 付の記事
海外internet.com発の記事
このエントリーを含むはてなブックマーク この記事をクリップ! Buzzurlにブックマーク Yahoo!ブックマークに登録 newsing it!

はじめに

 Apache HTTPサーバーのセキュリティは、少なくともLinuxやその他の適切なUnix系オペレーティングシステムで実行している限りにおいては、信頼できます。しかし、今や平凡な静的な読み取り専用Webサイトは絶滅危惧種となりました。最近では、LAMPと呼ばれる一連の技術(つまりLinux、Apache/Lighttpd、MySQL/PostgreSQL/SQLite、Python/PHP/Perl/Ruby)を使って動的Webサイトを提供するのが一般的になっています。これは進歩であるとも、ないとも言えます。

 私個人は、平凡な静的HTMLの日々が好きでした。今と比べてブラウザのHTMLサポートやサイトの質に疑問が多かったとはいえ、少なくとも、エラーを吐き散らす役立たずの巨大なスクリプトを実行して私のコンピュータを過労に追い込んだり、ときには完全に固まらせてしまうことはありませんでした。もしCPUサイクルとメモリを食いつぶすような事態になっても、システムのアップグレード費用がかかるぐらいの被害で済みました。しかも、たとえば仮に私がWindowsとIEを使ってネットサーフィンするほど間抜けだったとしても、Webサイトを開いただけでシステムが感染するようなことはありませんでした。しかし、悪人は次々に新しい悪知恵を生み出すものなので、Linuxを使っているからといって安心してはいられません。

 おっと、脱線しました。この記事のテーマは、LAMPの適切なセキュリティ対策でした。週末を利用してLAMPスタックをインストールし、動的Webサイトを立ち上げるのはとても簡単です。それもこれも、XAMMPやUbuntuのようなLinuxディストリビューションのおかげであり、PHP(PHP: Hypertext Preprocessor)スクリプト言語の桁外れの人気のおかげです。ですが、この簡単さは必ずしも良いことではありません。他人に指図するのは嫌いなのですが、ネット長者を目指す人には自社サーバーのLAMPスタックを隅々まで学ぶために真面目に時間と労力を投じていただきたいものです。インターネットに接続されたサーバーは、特別にセキュリティに気を配る必要があります。動的Webサーバーは複雑なのでなおさらです。副次的なダメージを受けるリスクも大いにあります。昨今では不正アクセスの裏に大規模な組織犯罪が潜んでおり、マルウェアが詐欺、恐喝、窃盗の入り口になっています。彼らはシステムを破壊するために侵入するのではなく、密かにデータを盗み出し、世界規模のボットネットに取り込むのです。

 実行できる最も重要な対策は、PHPを使わないことです。腐った果物を導入する前に、以下に目を通してください。

1. PHP = トラブル

 PHP(PHP: Hypertext Preprocessor)は、LAMPセキュリティ問題の主犯です。比較的若く、生まれは1997年で、今も成長を続けています。PHPの問題点は3つあり、生まれつきの弱点、コーダーの経験不足、そしてPHPのパッチやアップグレードが適用されない未保守サイトの存在です。

 PHPの舞台裏を覗いてみると、決して美しくはない、つぎはぎだらけの混沌状態であることがわかります。まず、命名規則、構文、大文字と小文字の区別に一貫性がありません。組み込み関数の多くは機能に重複があり、似たようなことをするものの完全に同じわけではなく、ドキュメントが満足に書かれていないため、どれが何をするのか定かでありません。かなり詳しいところまで自分で調べない限り(詳細情報については「関連資料」リンクから参照)、プログラミングエラーを起こすのは必至です。

 PHPは、習得が簡単に見えます。ある意味、それは事実です。動的Webサイトを立ち上げる方法を数時間で習得できます。しかし、セキュリティに不備がある場所がどこで、どうすればそれを迂回できるのか習得するには、数年を要するのです。よく知られたセキュリティホールの1つは、入力が検証されないことです。ユーザーからの入力は常に疑ってかかるべきですが、PHPには入力のチェックに役立つツールがこれといってないため、独自の検証ルーチンを書く必要があります。

 Apacheのmod_phpを使ってPHPをApacheモジュールとして実行すると、Apacheプロセスのすべての資格情報がPHPに引き継がれます。つまり、Apacheが読み書きできるものは、PHPでも読み書きできます。これが意味するのは、PHPの乗っ取りに成功すれば、Apacheに直接乗り込んでいって、Apacheが接触するものならどこへでも入り込める、ということです。mod_phpを1人のユーザーしかいない単純なサイトで使うなら許せますが、多数のユーザーが共有するシステムの場合、すべてのスクリプトは同じApacheユーザーの下で実行されるため、これは大惨事を招きます。代わりに、PHPをsuEXECまたはCGIWrapの下で実行すべきです。これらのしくみは、Perl、Python、Rubyのような穏健なスクリプト言語でも利用できます。

 人知れずPHP3やPHP4を使い続けているサイトはたくさんあり、バグフィックスやセキュリティパッチをまったく適用していないサイトもそれ以上にたくさんあります。PHP5がリリースされたのは2004年で、PHP3のリリースともなると1998年までさかのぼります。つまり、これは実に困った物騒な代物なのですが、たいていの場合、新しいPHPリリースにアップデートするには相当な量のコードを書き直す必要があります。さらに厄介なことに、Apache、PHP、MySQLの相性はあまり良くありません。互換性のある正しいバージョンを完全に揃えないと、まともに動いてくれないのです。新規インストールの作業を楽にするXAMMPやUbuntuのLAMPパッケージのようなオプションはたくさんあります。しかし、本当の試練が訪れるのは、システムをアップデートしようとして、どこかでバージョンの同期がとれなくなったときです。

 私見を述べさせてもらうと、Perl、Python、Rubyのどれかを使う方が良いでしょう。最初の手間は少し増えますが、長い目で見ると手間や心配事は激減します。たいていのホスティングサービスは危なっかしい骨董品のLAMPスタックを後生大事に使っているので、まともなWebホスティングサービスを探したい場合はWebHosting Talkをチェックするとよいでしょう。

2. MySQL

 MySQLを堅牢にするには、若干の基本的な対策が欠かせません。つまり、ネットワークにアクセスさせない、chrootを使用して特定のグループとユーザーのみが実行する、破られにくい管理者用パスワードを作成する、匿名アクセスを禁止する、必要のないもの(サンプルのデータベースとテーブル、テスト用のデータベースとテーブルなど)をすべて取り除く、といったことです。Security Focusに掲載されているハウツーが参考になります。これはシリーズの一部で、他にApacheとPHPのセキュリティ強化に関する記事もリンクされています。『MySQL Reference Manual』のセキュリティに関する章も役に立ちます。また、chrootはセキュリティデバイスではありませんが、Security Focusは使用を推奨しています。

3. Apacheを保護する



 Apacheを保護する方法については、今でもこのページが最良の解説と言えるでしょう。

 ユーザーログインやユーザー入力など、すべての機密性の高いセッションは、OpenSSLで保護する必要があります。

4. SELinuxまたはAppArmorを使ってすべてを保護する



 Fedora Linuxには、Apacheポリシーを含む良質のSELinuxポリシーと、グラフィカルな管理ユーティリティsystem-config-selinuxが標準で用意されています。簡単とは言いませんが、ゼロから始めるよりは簡単です。AppArmorも調べてみる価値があります。SELinuxより簡単に扱えるとされており、どちらが優れているかを巡る議論は楽しく、有益な情報が得られます。

まとめ



 簡単に言ってしまうと、Linuxサーバー、あるいはLinuxやUnix系オペレーティングシステムはセキュリティがしっかりしているから安心と思ったら大間違い、ということです。セキュリティの基本を守るのは当たり前で、それに加えてスキルと経験も必要です。攻撃を企む輩は次々に登場しますし、今日では犯罪組織がインターネットの威力に目を付けています。ちょっとしたテスト用の設備を用意するのは簡単で費用もかかりませんし、自由に使えるドキュメントやヘルプは数多くあります。Linuxセキュリティの未来は、SELinuxやAppArmorのようなツールにかかっています。「馬が盗まれた後で馬小屋に鍵をかける」ような古典的な対処法ではなく、このようなセキュリティツールを利用して未知の攻撃から身を守る方法を探っていきましょう。

関連資料

  1. "Little Bobby Tables, we call him"(3コマ目)
  2. Data Validation
  3. Problems with PHP
  4. (Other) Problems with PHP
  5. Top 7 PHP Security Blunders
  6. PHP4は公式に廃版となり、2007年12月31日を最後にサポートが打ち切られました。ただし、"2008年8月8日までは深刻なセキュリティフィックスのみケースバイケースで対応"します。
  7. Fedora SELinux Apache
  8. Novell AppArmor Documentation
  9. Tips for Taming SE Linux


著者紹介

Carla Schroder(Carla Schroder)


関連記事
  • Eコマースの「レコメンド機能」が SEO にも役立つ理由
  • MS、Windows MSDN Deluxe Edition 新パッケージを発売
  • ギガビットイーサネット対応 IPsec システムソリューションを共同開発、エルミックス・FML・FLS
  • EMC が決算発表、19四半期連続の売上2桁増
  • Web サイトの顧客満足をコントロールする方法2 〜そのためにコストはいくらまでかけられるのか?〜


  • 関連テーマ
  • ブラウザ


  • ★最新トップニュース
    国内 Akamai、エンタープライズ向け Web アプリケーション配信で Citrix と提携(Webファイナンス 5月22日 18:20)
    Akamai および Citrix の配信サービスを統合することで、エンタープライズ Web アプリケーションの性能を向上、拡張性とセキュリティを強化できるようにする。
    国内 ドコモ、「PRADA Phone by LG」を6月1日発売画像のある記事(携帯・ワイヤレス 5月22日 18:10)
    NTT ドコモグループ9社は、2008年5月22日、「PRADA Phone by LG」を、6月1日に全国一斉発売することを発表した。
    国内 YouTube、ドコモに加え au 端末にも対応(携帯・ワイヤレス 5月22日 18:00)
    YouTube は2008年5月22日、これまで一部のドコモユーザーのみに携帯電話向けサービスを提供してきたが、新たに au ユーザーへの提供を開始した、と発表した。
    国内 日本 HP、AMD Opteron プロセッサを搭載した x86サーバー製品群を発売画像のある記事(Webビジネス 5月22日 17:50)
    日本 HP は2008年5月22日、x86サーバー「HP ProLiant」とパーソナルワークステーション「HP Workstation」において、最新のクアッドコア AMD Opteron プロセッサを搭載した新モデルを発売した。
    国内 情報セキュリティ意識調査:7割以上が研修機会の拡大必要(Webテクノロジー 5月22日 17:40)
    ネットワークセキュリティ対策や社内の情報管理ルールの明確とその周知が求められている。NRI セキュアテクノロジーズの「情報セキュリティに関するインターネット利用者意識調査」によりわかった。
    トピックス
    > オススメのIT系求人情報【毎週月曜日更新】
    footer_301.gif


    リサーチ
    > デイリーリサーチDLサイト
    > OnlineResearchPortal (リサーチデータバンク)
    > モバイルリサーチ with goo
    footer_301.gif
    キーワード
    > Youtube > MySpace
    > Salesforce > mixi
    > アクセス解析 > BlackBerry
    > テーマ一覧はこちら
    footer_301.gif
    セミナー情報
    > 第1回インターネットコムマーケティングセミナー「新規クライアントを効率的に獲得する Web マーケティング手法とは」(3月26日)多数のご参加ありがとうございました
    footer_301.gif
    デベロッパー
    > DevX
    > CodeGuru
    > developer.com
    footer_301.gif
    j.i.c.ブログ
    ブログ一覧
    Graphic Design Forum 【Graphic Design Forum】
    カラフルな生活 (5月22日)
    ジュピターメディア創設者がITを斬る 【ジュピターメディア創設者がITを斬る】
    (2000年に)そんなこと言っただろうか?(5月22日)
    ベンチャー専門家の目利きブログ「なぜこの企業は伸びるのか?」 【ベンチャー専門家の目利きブログ「なぜこの企業は伸びるのか?」】
    「エンタテインメントをドライブする!!」/エンタドライブ株式会社(5月22日)
    最新テクノロジーの意外な処方箋 【最新テクノロジーの意外な処方箋】
    カウチポテトを極める(5月22日)
    データメーション 【データメーション】
    成功がすべて(5月21日)
    Skypeブログ出張版 【Skypeブログ出張版】
    Skypeにも対応、統合アドレス帳Ripplex(5月19日)
    footer_301.gif
    最新コラム一覧
    「IT の耳」 「IT の耳」

    【書評】『Google を支える技術―巨大システムの内側の世界』(5月22日)
    週刊-サイト別アクセス状況データ 週刊-サイト別アクセス状況データ

    ビデオリサーチインタラクティブ調査(月間インターネットオーディエンスデータ)(5月22日)
    顧客が喜ぶ Web サイト!成功の12箇条 顧客が喜ぶ Web サイト!成功の12箇条

    意思決定に役立つ Web 解析2 〜トレンドを正しく見る方法〜(5月22日)
    ハードウェアから見たデータベース ハードウェアから見たデータベース

    タイムマシン(5月22日)
    百式のネットビジネス研究 百式のネットビジネス研究

    10人が7日間をオンラインで一緒に過ごして、生き残っていくゲーム「Tengaged」(5月22日)
    IT マネジメント IT マネジメント

    職場でフリーソフトウェアは使うべきか?(5月21日)
    e-Japan 先端テクノロジー解説 e-Japan 先端テクノロジー解説

    次世代住民情報システムの方向性について(5月21日)
    DevX DevX

    Eclipse Web Tools PlatformとMavenの統合(5月20日)
    エンジニア転職ノウハウ開発室 エンジニア転職ノウハウ開発室

    30代技術者が不満に感じる同年代との学歴・給与格差(5月20日)
    アイレップの SEM フロンティア アイレップの SEM フロンティア

    NTT ドコモ×Google でモバイル SEM 戦略はどう変わる?(5月20日)
    footer_301.gif
    専門チャンネル
    > セキュリティチャネル > テレコムチャネル
    > サーチエンジンウォッチ
    footer_301.gif
    海外のインターネットコム アメリカ韓国ドイツトルコ
    関連企業のサイト:ストックフォト イラスト ネットストリート ホテル予約サイト タウン情報 出張 事業継承 シミュレーション トランクルーム 優待映画チケット 田舎暮らしガイド オリジナルTシャツ ニタコエ
    Copyright 2008 Jupitermedia Corporation All Rights Reserved. http://www.internet.com/
    space.gif space.gif