今回は、さくらのVPSのセキュリティについて確認する。
参考)ネコでもわかる!さくらのVPS講座 ~番外編「WebサイトのセキュリティはSiteGuardで安心」
https://knowledge.sakura.ad.jp/12348/
やること
1.攻撃の種類についてのまとめ。
2.SiteGuard Lite をインストールする。
3.SiteGuardの設定
4.SiteGuardでの攻撃検知を確認する。
1.攻撃の種類についてのまとめ。
・SQL インジェクション
参考)SQLインジェクションとは?Webサイトのセキュリティ対策を学ぼう
https://academy.gmocloud.com/advance/20150608/700
サイトの入力画面で、WEBサーバ(データベース)に命令するようなSQL文を入力し、
それをWEBサーバに実行させてしまう攻撃
クライアント(攻撃側)からサーバへの攻撃。
・クロスサイトスクリプティング(XSS)
参考)クロスサイトスクリプティング(XSS)
https://www.trendmicro.com/ja_jp/security-intelligence/research-reports/threat-solution/xss.html
動きのあるサイトを見たときに、その動きを表現するスクリプトの中に悪意のあるスクリプトをまぎれこませておいて
ユーザにそのスクリプトを実行させ、ユーザの情報を抜き取ったりする攻撃。
サーバからクライアント(サイト閲覧側)への攻撃。
・OS コマンドインジェクション
参考)OSコマンドインジェクション
http://senmon.cfc.ac.jp/studentreport/report2/OS.html
SQLインジェクションのOSコマンド版。
サイトの入力画面で、WEBサーバ(OS)に命令するコマンドを入力し、
それをWEBサーバに実行させてしまう攻撃。
クライアント(攻撃側)からサーバへの攻撃。
・ディレクトリトラバーサル
参考)脆弱性を利用した攻撃手法(3) --- ディレクトリ・トラバーサルとOSコマンド・インジェクション
http://tech.nikkeibp.co.jp/it/article/COLUMN/20070130/260021/
WEBサーバが意図しないフォルダへアクセスしようとする攻撃。
例えば入力画面で、上位のフォルダを示す「../」と組み合わせた文字を入力し、
WEBサーバが意図しないフォルダへアクセスを試みる。
クライアント(攻撃側)からサーバへの攻撃。
・HTTP ヘッダインジェクション
参考)HTTPヘッダインジェクションとOSコマンドインジェクションについてご紹介!
https://www.shadan-kun.com/blog/measure/1387/
HTTPの構造を利用した攻撃
HTTPはURLに色んな情報を入れることができる。
URLにクッキーを入れたり、スクリプトを埋め込んでおいて、ユーザの情報を抜き取ったり、悪意あるスクリプト
を実行させたりする。
悪意あるサイト(URL)からクライアント(ユーザ)への攻撃
攻撃手法としては、攻撃者が用意したサイトのリンクをクリックする等がある。
・ブルートフォース
参考)第30回:今だから学ぶ! セキュリティの頻出用語:ブルートフォースアタックとは?
https://blogs.mcafee.jp/30-bdc1
暗号やパスワードを解読するための方法の1つ。
パスワード等の入力画面に対して、片っ端から試す攻撃
例えば10文字のパスワードだと人間が片っ端から試すととんでもない時間がかかるが、
パソコンだととんでもないスピードで試すことができるので、パスワードを見つけられてしまう。
短いパスワードや、一般的な言葉をパスワードにしていると解読されやすい。
いろいろな攻撃手法があるなあと、悪さするやつとそれを防ぐ側の永遠の戦い。。。
ではどんな攻撃があるのか少しつかめたので、それを防ぐ役割のSiteGuard Liteをインストールしてみる。
ちなみに、SiteGuard Liteは有料みたいですが、さくらのVPSは無料で使えるみたい。
これはうれしい。
SiteGuard Lite の価格を見てみたら個人からするとすごい高い。。。
参考)価格情報
https://www.jp-secure.com/product/price/
2.SiteGuard Lite をインストールする。
まずは、ご利用ガイドを開く。
ご利用ガイドはパスワードがかかっているので、VPSのコントロールパネル上部の
「SiteGuardの利用」をクリックしてパスワードを取得する。
そのパスワードでご利用ガイドが開ける
OpenJDK 8をインストールする
VPSへログインして、rootに移行する
# yum install java-1.8.0-openjdk ・ Is this ok [y/d/N]: y ・ Complete!
成功!
firewalldでTCP/9443のポートを開放する
SiteGuard LiteのWeb管理画面へのアクセス用
# firewall-cmd --add-port=9443/tcp --zone=public --permanent success
successと出れば成功
設定反映のため、リロード(再起動でない)
firewall-cmd --reload
設定確認
# firewall-cmd --list-all # firewall-cmd --list-all public (active) target: default icmp-block-inversion: no interfaces: eth0 sources: services: dhcpv6-client ssh-**** http https ports: 9443/tcp protocols: masquerade: no forward-ports: source-ports: icmp-blocks: rich rules:
設定OK
SiteGuard Liteのインストール
ご利用ガイドよりSiteGuard Liteのダウンロード先を確認する
http://・・・・・.rpm
Apache版のパッケージをwgetコマンドでダウンロード
wget http://・・・・・.rpm ・ ・ ・・・・.rpm' saved
これが表示されればOK
カレントディレクトリにダウンロードしたrpmファイルよりインストール
# ls siteguardlite-・・・・.rpm # rpm -Uvh siteguardlite-・・・・.rpm ・ Install succeeded!
と表示で成功
次にセットアップコマンドを実行
# cd /opt/jp-secure/siteguardlite # ./setup.sh ずらずらーと出てくるが、出てきた問いかけはすべてエンターで進める SiteGuard Lite setup done…
で成功!
ちなみに、SiteGuard付属の証明書ファイルでSSL接続可能。
自分で用意した証明書への変更もできる。
いまのところ、SiteGuard付属の証明書ファイルで進める
以上でインストール完了!
3.SiteGuardの設定
トラステッド・シグネチャ更新URLの設定
さくらのVPSでは、トラステッド・シグネチャというもの(ウィルス対策ソフトでいう定義パターンファイル)
を使用するために、設定を変更する必要がある。
まずは、ご利用ガイド.pdfの12ページを参考に、
/opt/jp-secure/siteguardlite/conf/dbupdate_waf_url.conf
の設定を変更する。
設定ファイル内のLATEST_URLを変更する
#vim /opt/jp-secure/siteguardlite/conf/dbupdate_waf_url.conf
LATEST_URLの部分を、ご利用ガイド記載のものに変更する(とある箇所に_spを追加するだけだった)
管理画面へのアクセスとライセンス情報の登録
インストール時に示されたURL、ユーザID、パスワードでログインする
インストール時に表示されたもの
Please access following URL for starting service.
https://tk2-******.vs.sakura.ne.jp:9443/
(default user:admin, default password:admin)
アクセスできた。
初期は、ユーザ名:admin、パスワード:adminでログイン
上部メニュー「パスワード変更」よりパスワードを変更する
ライセンスキーを登録して正規ライセンスにする。
上部メニューの管理⇒左メニューのライセンス情報
ご利用ガイド記載の内容を記入し、適用 ⇒確認画面が出てくるので「OK」
ライセンス登録が完了すると、評価ライセンスが正規ライセンスへ変わります。
基本設定と管理者への通知メール設定
メイン機能を有効にする
上部メニューのモジュール設定 ⇒ 基本設定のウェブ攻撃検知を有効にする
必要に応じて管理者の通知メールの宛先を入力する
適用をクリックし、確認画面ではOKを選択
これで設定は完了!
4.SiteGuardでの攻撃検知を確認する。
テスト用のURLへアクセス
https://(自分のドメイン)/WAF-TEST-SIGNATURE
無事SiteGuardが動いていることを確認できました。
クロスサイトスクリプティング(XSS)攻撃を試す
POSTメソッドのテストツール
https://so-zou.jp/web-app/network/post/
entity body に を入力し、「送信」
SiteGuardの管理画面より、ブロックしたログを確認できた。
これで一旦、ネコでもわかるシリーズをひととおり確認できました。
ようやく次にRuby on Railsを扱えるよう構築したいと思う
参考)連載:「ネコでもわかる!さくらのVPS講座」の記事一覧
https://knowledge.sakura.ad.jp/serialization/understood-cats-vps/
すごい丁寧に書かれていて、わかりやすかったです。