Upload
takahashi-yugo
View
331
Download
2
Embed Size (px)
DESCRIPTION
マルウェアを知ると、攻撃者が知りたいコトが見えてきます。 攻撃者からの視点でセキュリティを学んでみましょう。
Citation preview
マルウェアに学ぶ Apache + PHP セキュリティ
(公開版)
• @yugo_tak • KLab株式会社 • KLabの前はWeb開発 • 好きな言語はPHPとJavaです。 • 最近はPHPの独自フレームワーク作ったりjMeterのプラグインを作ったり、Arduinoなんかで遊んでます
自己紹介
セキュリティの話をします
SQLインジェクション、XSS、CSRF対策などなど‥
〃∩ ∧__∧ ⊂⌒ (・ω・ ) 色々たいへんだおー `ヽ_つ_~つ
今回はそういった教科書的なお話ではなく
マルウェア、つまり攻撃者側からの視点でセキュリティを学んでみましょう
今回はApacheとPHPで動いているWebアプリケーションをターゲットとした実際にあるマルウェアをご紹介します
早速、マルウェアが動いている画面をみてみましょう
攻撃する際には、脆弱性のあるファイルアップロード機能等を経由して 不正にこのマルウェアファイル(数行のPHP1ファイルのみ)をアップロードします
実際のマルウェアの画面
実際のマルウェアの画面ファイル閲覧&編集
実際のマルウェアの画面サーバー情報閲覧
実際のマルウェアの画面
SQL実行
その他、コマンド実行やネットワーク情報取得などなど‥
(́・ω・)ω・`)ヒー/⌒ つ⊂⌒ ヽ怖いよー
こうなる前に
Apache + PHPなWEBアプリケーションの セキュリティ再入門!
設定ファイルを見直すだけでも セキュアにできる
PHP編
PHP
register_globals問答無用でOff!
(PHP 4.2.0からはデフォルトでOff)
PHPallow_url_fopen
内部ファイルのアクセスを制限open_basedir
外部ファイルの読み込みを禁止
PHPsession.referer_check
セッションのファイル保存場所の変更 デフォルトでは/tmpに保存される
session_save_path
なりすまし防止 ※ただし、リファラーは改変できることをお忘れなく
PHPdisable_functions
危険な関数を使えないようにしておく
enable_dl
apache_*のapache統合関数系 execなどのコマンド実行系など
拡張モジュールを使用できなくする
PHP
コレ!
さきほどのマルウェア
Apache編
Apache
mod_proxyアクセス制御の統一 アプリサーバーの分離
ネットワークトポロジの隠蔽 ログの統一
Apache
mod_security
WAF(Webアプリケーションファイアウォール)
Apache
mod_evasive
DoS/DDoS対策
Timeout値を短くする
Apache
chrootでjail環境
万が一侵入されても被害を限定する
Apache
不必要なモジュールを読み込まない
パフォーマンスも向上!
Apache
ServerSignatureをOff
サーバー情報を最小限に
ServerTokensをProduct Only
でも完全にサーバー情報を隠蔽することは難しい(httprint)
気休めにすぎない‥?
最後にもうひとつの事例を紹介
• Apache Slapper Worm OpenSSLの脆弱性をついてApacheが動いているサーバーに侵入 http://www.cert.org/historical/advisories/CA-2002-27.cfm
Apache Slapper WormはhttpレスポンスのServerヘッダーフィールドからサーバーの種類、バージョン番号を取得して脆弱なサーバーに攻撃をしかけていた
ささいなこと、気休めと思えることでも 出来ることはやっておこう!
ありがとうございました