WEBサイト
サポート
WEBディレクターを本気で支援する!
WEBツール
WEBサイトサポートブログ
Myページ
WEBツール
WEBサイトサポートブログ
Myページ
サインイン
GEO|AI情報一覧
SEO情報一覧
運営会社
お問い合わせ
トップページ
ブログアーカイブ
トップページ
>
WEBサイトサポートブログ
>
セキュリティ
【WEBツール紹介】サーバー、WEBサイトのセキュリティ対策に貢献されてるIPAの攻撃兆候検出ツール iLogScanner をもっと使おう!
新ツール公開。サイトへの攻撃が日常になった今、まずはこれを利用して調査しよう IPA提供 攻撃兆候検出ツール iLogScanner で簡単ログ分析ツール ★iLogツカウン 企業や政府といった大きな組織でなくとも、無差別でサイトへの攻撃、侵入トライ・ハックトライが今や日常だ。 サイトやWEBページは簡単に便利に「創れる」ようになったが、「守る」というところは、まだまだ専門家やシステムに強いところが普通にやってるレベル。 でも、間違いなく常に狙われている。WEBディレクターの立場として、常に意識を持っていなければならないところだ。 もちろん、すでに業界化してて、多くのセキュリティ対策会社や有料の脆弱性検査サービスは存在する。 資金に余裕があり、任せているところは。どうぞ、だけれど、お金かけないでも注意すること、できるレベルのセキュリティ対策はある。 この、WEbサイトサポートでも、外から脆弱性監査をする「WEBサイトの 外からできるセキュリティ対策監査ツール★ミエルン」というのを用意しているが、 すでに攻撃を受けている。その兆候があるのでは? を調べてくれるのが、IPA(独立行政法人 情報処理推進機構)が提供してくれている「ウェブサイトの攻撃兆候検出ツール iLogScanner」だ。 PCにインストールして利用できる優れものだが、Java環境が必要だったり、ファイルの形式などの制限もあり、この素晴らしいツールをもっと容易に、利用してもらえるような仕組みを用意した。 もちろん、実際の保守の現場ではこれでは足りず、他の様々なログの解析や目視も含め、「守り人」をやっているわけだが、このツールをつかってまずは、現在「攻撃」されているのか、その兆候はあるのか、チェックしておこう。 ウェブサイトの攻撃兆候検出ツール iLogScanner IPA 独立行政法人 情報処理推進機構 が提供してくれている「iLogScanner」は、ウェブサーバのアクセスログから攻撃と思われる痕跡を検出するためのツールだ。 ウェブサイトの攻撃兆候検出ツール iLogScanner 「ウェブサイトのログを解析することで攻撃の痕跡を確認でき、一部の痕跡については攻撃が成功した可能性を確認できます。また、SSHやFTPサーバのログに対しても、攻撃と思われる痕跡を検出することができます。」と謳われている。 htmlファイルで詳細な結果を見ることができる いくつものサーバー、サイトの「守り人(保守)」やらせてもらってて、相当お世話になっている、無償で使える素晴らしいツールだ。 とても重宝させていただいて、ほんとにありがとうございます。 みなさんもぜひ、サイトにアクセスされ、ご利用されてくださいね。「推し」です。 ただ、使えば使うほど、色々とこうだったらなぁ、とかもやもやも貯まってきて、あとは、このツールもっと当たり前に使われるべきだろう、という勝手な「推し」も生まれてきて、今回のこのツール「★iLogツカウン」提示ということになった。あー、同じことまた言ってる。 iLogScanner を使うにすこしだけ、工夫を組み込んだ access.log ファイルは、基本、ローテートって言って、巨大ファイルにならないように、日別とか(まれに月別)ごとにファイルが分割保存されてて、それをひとつづつ指定するのは、少し手間(?)だったかな。 あと、tarファイルや gzファイルに圧縮されていることも多く、それを毎回解凍するのも面倒(?)な。 さらに、ログの記述形式、ね。iLogScannerでは特定の形式しか受け付けないから、それも毎回変換する手間が省けたらなぁ。 などの理由で、それらを仕組みで用意して あとはとにかく、広くこのツールを利用し、少しでも、WEBサイトを営まれている方々の安心につながれば・・・です。 iLogScanner はサーバーに組み込むこともでき、それをその通り組み込んでいるだけで、iLogScannerのすばらしい機能には何も手を加えていません(できるはずもないし)。 こちらで、変換・準備したソースを与えるというだけの 工夫ツールになります。 取得した、アクセスログファイルをセットして使ってみてください ツールの性格上、また当サイトへのセキュリティ考慮もあり、利用記録がわかる「会員限定ツール」にさせていただいている。ご容赦ください。 [実行] ボタンをクリックして、少しお待ちいただくと・・・ 圧縮されたファイルがダウンロードできるようになって ダウンロードされたファイルを解凍すると・・・ 走査対象の一つにまとめられた logファイルと、3つの解析結果ファイルが取得できます。 xmlファイル:iLogScanner が吐き出した xmlファイル(無修正) jsonファイル:xmlファイルを、みなさんが他の用途で利用しやすいように、jsonファイルに加工したもの excelファイル:結果をExcelファイルで見れるようにしたもの(iLogScannerの結果そのまま) Excelで状況が確認できます 対策のところは、最新の情報含め、こんごもっと整備したいと思っています。 検出されないのが一番いいでがね・・・ これからこれを さらに改善してゆく様子も、またオープンに公開したいと思います。 ぜひ、大事なサイトを守るためにお役立てくださいね 各所でお伝えしているように、この WEBサイトサポートでは、基本的にみなさんの詳細な情報を保存することはありません。生成が終え、ファイルダウンロードをしていただいた時点で、お預かりした元のログファイル、結果ファイルなど、すべて、すぐに削除されます。ご安心ください。 今日はここまで。またお目にかかりましょう。
このサイト、最初に何を整えるか・・・まずは少しセキュリティ対策を施す。SQLインジェクション対策とか、XSS防止とか・・・
しれっとオープンしてから数日。引き続きずっと触ってます。成長させる。 このサイトでは、今もいくつかのツールを提供してて、さらに今後も、サイト運営の現場で役に立つツールを、どんどん用意したい。 安心して使ってもらうためにも、このサイトを長く利用してもらうためにも、セキュリティ対策が必要だ。こんな小さなサイト、誰が狙うか、とも思うけども、最低限はしておかなくてはね。あ、どこかのハッカーさん、狙ってやろうなんて思わないでね、お金も得るものもは何もないから。 で、こうやってその事も書き留めておけば、誰かの目に留まり役に立つかもしれない・・・ "うちには関係ないよ" は 関係ない 「この規模のサイトが、狙われるわけないでしょ」・・・実は、ネットの攻撃は無差別に“自動”で仕掛けられるものが大半。たとえば放置しているWordPressの管理画面に、世界中からブルートフォース(総当たり)アタックが日常的に来るのは、実際によくある話。だから「最低限」だけでも、しておかないとだめなんだよね。サーバ委に対する、権限とかが影響して、できることにはもちろん限りもあるけどね。 セキュリティ対策の考え方 専門的な技術的な説明ではなく、なるべくわかりやすく記録しておく。 インターネットにおけるセキュリティ対策は、どこの時点で、何から守るかを明確に定義して、それに粛々と対応してゆくことが大事だと思っている。 何層かにわけた図とかよくあるけど、要に次の3つに分けられると思う。 一番外側 フロントと呼ばれるブラウザで直接アクセスするところ アクセスしたあと、プログラムなどの仕組みが動いているところ 大元のアクセスする基本部分 言い換えるね。 フロント(入口) └ サイトを見に来た“誰でも触れる部分” → ログイン画面、フォームなど 仕組み(中身) └ サイトを動かしているプログラム部分 → CMS(WordPress等)、各種プラグイン、APIなど 土台(基盤) └ サーバやOS、データベース、ネットワーク設定 じゃ 実践記録を。 フロント(入口) .htaccess というサイトにおいて色々な設定ができるファイル。最近は、rootという権限を持っていないサーバーでも、レンタルサーバーでも設定できるようになってきているね。 # ======================================== # リスト表示させない # ======================================== Options -Indexes # ======================================== # ファイル保護 # ======================================== <Files ".htaccess"> Order Deny,Allow Deny from all </Files> <Files ".htpasswd"> Order Deny,Allow Deny from all </Files> # ======================================== # アップロードファイル保護 # ======================================== # ログ・設定ファイル保護 <Files "*.log"> Order Deny,Allow Deny from all </Files> <Files "*.ini"> Order Deny,Allow Deny from all </Files> <Files "*.conf"> Order Deny,Allow Deny from all </Files> # バックアップファイル保護 <Files "*.bak"> Order Deny,Allow Deny from all </Files> <Files "*.backup"> Order Deny,Allow Deny from all </Files> <Files "*.old"> Order Deny,Allow Deny from all </Files> <Files "*.tmp"> Order Deny,Allow Deny from all </Files> # ======================================== # 著名な攻撃への基礎対策 # ======================================== # SQLインジェクション対策 RewriteCond %{QUERY_STRING} (union|select|insert|delete|update|drop|create|alter|exec|script) [NC] RewriteRule ^(.*)$ - [F,L] # XSS対策 RewriteCond %{QUERY_STRING} (<script|<iframe|<object|<embed|javascript:|vbscript:|onload|onerror) [NC] RewriteRule ^(.*)$ - [F,L] # パストラバーサル対策 RewriteCond %{REQUEST_URI} (\.\.\/|\.\.\\|%2e%2e%2f|%2e%2e\\) [NC] RewriteRule ^(.*)$ - [F,L] # 不正なユーザーエージェント対策 RewriteCond %{HTTP_USER_AGENT} ^$ [OR] RewriteCond %{HTTP_USER_AGENT} (sqlmap|nmap|nikto|w3af|acunetix|nessus|openvas) [NC] RewriteRule ^(.*)$ - [F,L] # ======================================== # セキュリティヘッダー強化 # ======================================== <IfModule mod_headers.c> # XSS Protection Header always set X-XSS-Protection "1; mode=block" # Content Type Options Header always set X-Content-Type-Options "nosniff" # Frame Options Header always set X-Frame-Options "SAMEORIGIN" # Referrer Policy Header always set Referrer-Policy "strict-origin-when-cross-origin" # サーバー情報隠蔽 Header unset Server Header unset X-Powered-By </IfModule> 少し説明、付けておきますね。 リスト表示させない ディレクトリの中身が丸見えだと、地味に危ない。見えなくしておくのが吉。 Options -Indexes ファイル保護 設定とかログとか、大事なファイルは外から見えないようにガード。 <Files ~ "\.(env|git|htpasswd|htaccess|ini|log|sh|bak)$"> Order Deny,Allow Deny from all </Files> アップロードファイル保護 もしもユーザーに変なファイルを上げられても、実行させなければとりあえずセーフ。 <FilesMatch "\.(php|cgi|pl|py|exe|sh)$"> Order Deny,Allow Deny from all </FilesMatch> バックアップファイル保護 消し忘れたバックアップ、意外と多い。ここも一応ブロック。 <FilesMatch "\.(bak|old|save|orig)$"> Order Deny,Allow Deny from all </FilesMatch> SQLインジェクション対策 URLに怪しいSQLキーワードが入ってたら強制シャットアウト。ざっくりだけど結構効く。 RewriteCond %{QUERY_STRING} (union|select|insert|delete|update|drop|create|alter|exec|script) [NC] RewriteRule ^(.*)$ - [F,L] XSS対策などHTTPヘッダー追加 サーバーやブラウザに一声かけておくだけで守れる部分は結構ある。 Header always set X-XSS-Protection "1; mode=block" Header always set X-Content-Type-Options "nosniff" Header always set X-Frame-Options "SAMEORIGIN" Header always set Referrer-Policy "strict-origin-when-cross-origin" Header unset Server Header unset X-Powered-By ほんと、シンプルな基本だけど、ひとまず・・・ Google reCaptcha フォームにはこれだね。いまは Version3(V3)。私はロボットじゃない とか バイクのある写真選べ とかなくなって使いやすくなった。閾値をセットして、アクセスがロボットかどうかを判断してくれる。完全、100%とは言えないだろうけど、最低限、ね。ありがとうございます。 1. API KEy の取得 https://developers.google.com/recaptcha?hl=ja こちらで まずはキーを取得。サイトキー と シークレットキー 2.フロント側 {サイトkey) には取得したサイトキーをセット。 <script src="https://www.google.com/recaptcha/api.js?render={サイトkey)"></script> <script> grecaptcha.ready(function() { grecaptcha.execute('{サイトkey)', {action: 'submit'}).then(function(token) { var recaptchaResponse = document.getElementById('recaptchaResponse'); recaptchaResponse.value = token; }); }); </script> 送信フォームにこれを追加しておく recaptcha の値を格納するところ。 <input type="hidden" name="recaptcha_response" id="recaptchaResponse"> 3.サーバー側 これは phpサイトでの一例。 $_val は送られてくる Recaptcha の値。$_sid はシークレットキー、ね。 public function ckRecaptcha($_val,$_sid) { $_rt = null; if( (!empty($_val)) ){ $recaptcha_secret = $_sid; $recaptch_url = 'https://www.google.com/recaptcha/api/siteverify'; $recaptcha_params = [ 'secret' => $recaptcha_secret, 'response' => $_val, ]; $recaptcha = json_decode(file_get_contents($recaptch_url . '?' . http_build_query($recaptcha_params))); if(!( (!empty($recaptcha)) &&(!empty($recaptcha->score)) )){ $_rt = false; }else{ if ($recaptcha->score >= 0.6) { $_rt = true; } else { $_rt = false; } } } return $_rt; } こういう関数を用意してチェック。でも実際は、サーバーの様々な理由から簡単に導入できず数日悩むこともあるんだよね・・・まぁ、それに泥臭く対応するのが仕事なんだけど。 今日はここまで。本当はもっと フロント側やったことあるので、また、ここに追記しておきます。 後日、 仕組み(中身) 土台(基盤) でやったことも公開しておきます。お役に立てれば・・・
2025/05/31
THU
00:00:00
ブラウザ・OS 最新バージョン
毎日更新:2025-09-08 調査更新済
Android(stable)
未取得
Chrome Android(stable)
140.0.7339.51
Chrome iOS(stable)
140.0.7339.101
Chrome(beta)
141.0.7390.7
Chrome(dev)
141.0.7378.4
Chrome(stable)
140.0.7339.81
Edge(stable)
140.0.3485.54
Firefox(stable)
142.0.1
Opera(stable)
121.0.5600.50
Safari iOS(stable)
未取得
Safari(stable)
未取得
iOS(stable)
未取得
現在の貴方のIPアドレス
216.73.216.31
Google アナリティクス(GA4)
Google Search Console
リッチリザルトテスト
Google 検索セントラル
Google トレンド
WEB担当者フォーラム
LISKUL
Google Developer Console
chatGPT
Claude
Gemini
copilot
Microsoft の AI 画像ジェネレーター
ImageFx
HTML Escape / Unescape
value press
PR-FREE
ツナググ
このサイトで書いている人
株式会社ツクルン
Webアドバイジング・クリエイター
池田南美夫
もうすぐ●●歳。ずっーと現役SE。日本にインターネットが上陸してから、ずっーと携わる。 ほんとは超アナログ人間のギター弾き、バンドマン。でも音楽活動とSE、案外似てる。