31
マルウェアに学ぶ Apache + PHP セキュリティ (公開版)

マルウェアに学ぶ Apache+phpセキュリティ(ネット公開版)

Embed Size (px)

DESCRIPTION

マルウェアを知ると、攻撃者が知りたいコトが見えてきます。 攻撃者からの視点でセキュリティを学んでみましょう。

Citation preview

Page 1: マルウェアに学ぶ Apache+phpセキュリティ(ネット公開版)

マルウェアに学ぶ Apache + PHP セキュリティ

(公開版)

Page 2: マルウェアに学ぶ Apache+phpセキュリティ(ネット公開版)

• @yugo_tak • KLab株式会社 • KLabの前はWeb開発 • 好きな言語はPHPとJavaです。 • 最近はPHPの独自フレームワーク作ったりjMeterのプラグインを作ったり、Arduinoなんかで遊んでます

自己紹介

Page 3: マルウェアに学ぶ Apache+phpセキュリティ(ネット公開版)

セキュリティの話をします

Page 4: マルウェアに学ぶ Apache+phpセキュリティ(ネット公開版)

SQLインジェクション、XSS、CSRF対策などなど‥

     〃∩ ∧__∧      ⊂⌒ (・ω・ )  色々たいへんだおー        `ヽ_つ_~つ

Page 5: マルウェアに学ぶ Apache+phpセキュリティ(ネット公開版)

今回はそういった教科書的なお話ではなく

Page 6: マルウェアに学ぶ Apache+phpセキュリティ(ネット公開版)

マルウェア、つまり攻撃者側からの視点でセキュリティを学んでみましょう

Page 7: マルウェアに学ぶ Apache+phpセキュリティ(ネット公開版)

今回はApacheとPHPで動いているWebアプリケーションをターゲットとした実際にあるマルウェアをご紹介します

Page 8: マルウェアに学ぶ Apache+phpセキュリティ(ネット公開版)

早速、マルウェアが動いている画面をみてみましょう

Page 9: マルウェアに学ぶ Apache+phpセキュリティ(ネット公開版)

攻撃する際には、脆弱性のあるファイルアップロード機能等を経由して 不正にこのマルウェアファイル(数行のPHP1ファイルのみ)をアップロードします

実際のマルウェアの画面

Page 10: マルウェアに学ぶ Apache+phpセキュリティ(ネット公開版)

実際のマルウェアの画面ファイル閲覧&編集

Page 11: マルウェアに学ぶ Apache+phpセキュリティ(ネット公開版)

実際のマルウェアの画面サーバー情報閲覧

Page 12: マルウェアに学ぶ Apache+phpセキュリティ(ネット公開版)

実際のマルウェアの画面

SQL実行

その他、コマンド実行やネットワーク情報取得などなど‥

Page 13: マルウェアに学ぶ Apache+phpセキュリティ(ネット公開版)

(́・ω・)ω・`)ヒー/⌒ つ⊂⌒ ヽ怖いよー

Page 14: マルウェアに学ぶ Apache+phpセキュリティ(ネット公開版)

こうなる前に

Apache + PHPなWEBアプリケーションの セキュリティ再入門!

Page 15: マルウェアに学ぶ Apache+phpセキュリティ(ネット公開版)

設定ファイルを見直すだけでも セキュアにできる

Page 16: マルウェアに学ぶ Apache+phpセキュリティ(ネット公開版)

PHP編

Page 17: マルウェアに学ぶ Apache+phpセキュリティ(ネット公開版)

PHP

register_globals問答無用でOff!

(PHP 4.2.0からはデフォルトでOff)

Page 18: マルウェアに学ぶ Apache+phpセキュリティ(ネット公開版)

PHPallow_url_fopen

内部ファイルのアクセスを制限open_basedir

外部ファイルの読み込みを禁止

Page 19: マルウェアに学ぶ Apache+phpセキュリティ(ネット公開版)

PHPsession.referer_check

セッションのファイル保存場所の変更 デフォルトでは/tmpに保存される

session_save_path

なりすまし防止 ※ただし、リファラーは改変できることをお忘れなく

Page 20: マルウェアに学ぶ Apache+phpセキュリティ(ネット公開版)

PHPdisable_functions

危険な関数を使えないようにしておく

enable_dl

apache_*のapache統合関数系 execなどのコマンド実行系など

拡張モジュールを使用できなくする

Page 21: マルウェアに学ぶ Apache+phpセキュリティ(ネット公開版)

PHP

コレ!

さきほどのマルウェア

Page 22: マルウェアに学ぶ Apache+phpセキュリティ(ネット公開版)

Apache編

Page 23: マルウェアに学ぶ Apache+phpセキュリティ(ネット公開版)

Apache

mod_proxyアクセス制御の統一 アプリサーバーの分離

ネットワークトポロジの隠蔽 ログの統一

Page 24: マルウェアに学ぶ Apache+phpセキュリティ(ネット公開版)

Apache

mod_security

WAF(Webアプリケーションファイアウォール)

Page 25: マルウェアに学ぶ Apache+phpセキュリティ(ネット公開版)

Apache

mod_evasive

DoS/DDoS対策

Timeout値を短くする

Page 26: マルウェアに学ぶ Apache+phpセキュリティ(ネット公開版)

Apache

chrootでjail環境

万が一侵入されても被害を限定する

Page 27: マルウェアに学ぶ Apache+phpセキュリティ(ネット公開版)

Apache

不必要なモジュールを読み込まない

パフォーマンスも向上!

Page 28: マルウェアに学ぶ Apache+phpセキュリティ(ネット公開版)

Apache

ServerSignatureをOff

サーバー情報を最小限に

ServerTokensをProduct Only

でも完全にサーバー情報を隠蔽することは難しい(httprint)

気休めにすぎない‥?

Page 29: マルウェアに学ぶ Apache+phpセキュリティ(ネット公開版)

最後にもうひとつの事例を紹介

• Apache Slapper Worm OpenSSLの脆弱性をついてApacheが動いているサーバーに侵入 http://www.cert.org/historical/advisories/CA-2002-27.cfm

Apache Slapper WormはhttpレスポンスのServerヘッダーフィールドからサーバーの種類、バージョン番号を取得して脆弱なサーバーに攻撃をしかけていた

Page 30: マルウェアに学ぶ Apache+phpセキュリティ(ネット公開版)

ささいなこと、気休めと思えることでも 出来ることはやっておこう!

Page 31: マルウェアに学ぶ Apache+phpセキュリティ(ネット公開版)

ありがとうございました