Warning: Declaration of FeedWordPie_Item::get_id($hash = false) should be compatible with SimplePie_Item::get_id($hash = false, $fn = 'md5') in /home/nekyo/nekyo.wp.xdomain.jp/public_html/wp-content/plugins/feedwordpress/feedwordpie_item.class.php on line 0

Warning: Declaration of FeedWordPress_Parser::parse(&$data, $encoding) should be compatible with SimplePie_Parser::parse(&$data, $encoding, $url = '') in /home/nekyo/nekyo.wp.xdomain.jp/public_html/wp-content/plugins/feedwordpress/feedwordpress_parser.class.php on line 0

Warning: Cannot modify header information - headers already sent by (output started at /home/nekyo/nekyo.wp.xdomain.jp/public_html/wp-content/plugins/feedwordpress/feedwordpie_item.class.php:0) in /home/nekyo/nekyo.wp.xdomain.jp/public_html/wp-includes/feed-rss2.php on line 8
セキュリティ – 日々のできごと http://nekyo.wp.xdomain.jp きがついたこと、みたこと、やったこと、かんじたこと Mon, 08 May 2017 04:55:27 +0000 ja hourly 1 Webサイトの脆弱性をチェックする「skipfish」 http://nekyo.wp.xdomain.jp/2015/12/24/web%e3%82%b5%e3%82%a4%e3%83%88%e3%81%ae%e8%84%86%e5%bc%b1%e6%80%a7%e3%82%92%e3%83%81%e3%82%a7%e3%83%83%e3%82%af%e3%81%99%e3%82%8b/ http://nekyo.wp.xdomain.jp/2015/12/24/web%e3%82%b5%e3%82%a4%e3%83%88%e3%81%ae%e8%84%86%e5%bc%b1%e6%80%a7%e3%82%92%e3%83%81%e3%82%a7%e3%83%83%e3%82%af%e3%81%99%e3%82%8b/#respond Thu, 24 Dec 2015 01:14:33 +0000 http://nekyo.wp.xdomain.jp/?p=1777 続きを読む Webサイトの脆弱性をチェックする「skipfish」 ]]> 「Web サイトの脆弱性をチェックして。」と頼まれた。
一般的にはクロスサイトスクリプティングやSQLインジェクションのチェックをすれば良いけれど
面倒だし、人力では抜け漏れが発生するので Google Code で公開されているセキュリティ調査ツール
skipfish」を試してみた。

検出できる脆弱性については SkipfishDoc を参照。

インストール

wget https://skipfish.googlecode.com/files/skipfish-2.10b.tgz
tar xvzf skipfish-2.10b.tgz
cd skipfish-2.10b
make

ディレクトリ内に skipfish が生成される。

使い方

./skipfish -o [レポートを出力するディレクトリ] [調査するURL]

で実行。ただし無茶苦茶時間がかかる。祝日を中一日挟んでも終わっていない。
このままだと年越えてしまう。冬休みに入る前に終わってくれないと困るなあ。

オプションで高速化できるらしい

非推奨のオプションとして

  • -L:サイトコンテンツからのキーワードの抽出を行わない
  • -W-:抽出したキーワードを辞書へと書き込まない

などを指定すると高速化できるらしいが総当たり攻撃のチェックが不十分になるらしい。

プリセットの辞書を使うことでも高速化できるらしい。以下を引数に追加して実行する。
-S dictionaries/extensions-only.wl -W [作成する辞書ファイル]
-S dictionaries/complete.wl -W [作成する辞書ファイル]
ちなみに dictionaries ディレクトリに用意されている辞書は、

  • 最小限の「minimal.wl」
  • 中程度のキーワードを含む「medium.wl」
  • 多くのキーワードを網羅した「complete.wl」
  • 拡張子に対するチェックのみ行う「extensions-only.wl」

の4つ。
もちろん時間があれば、辞書指定せず全件チェックをお勧め。

終わった

とりあえず年内中には終わった。トータルタイムは 47 hr 5 min 13 sec 245 ms。
これからレポートの見方を調べなきゃ(笑)

]]>
http://nekyo.wp.xdomain.jp/2015/12/24/web%e3%82%b5%e3%82%a4%e3%83%88%e3%81%ae%e8%84%86%e5%bc%b1%e6%80%a7%e3%82%92%e3%83%81%e3%82%a7%e3%83%83%e3%82%af%e3%81%99%e3%82%8b/feed/ 0
ssh のセキュリティ強化 http://nekyo.wp.xdomain.jp/2015/10/27/ssh-%e3%81%ae%e3%82%bb%e3%82%ad%e3%83%a5%e3%83%aa%e3%83%86%e3%82%a3%e5%bc%b7%e5%8c%96/ http://nekyo.wp.xdomain.jp/2015/10/27/ssh-%e3%81%ae%e3%82%bb%e3%82%ad%e3%83%a5%e3%83%aa%e3%83%86%e3%82%a3%e5%bc%b7%e5%8c%96/#respond Tue, 27 Oct 2015 05:52:21 +0000 http://nekyo.wp.xdomain.jp/?p=1402 続きを読む ssh のセキュリティ強化 ]]> su コマンドで正しく root になった時に、身に覚えのない「最後の正しいログインの後に xxx 回の失敗ログインの試行があります」とメッセージが表示されたらアタックを疑った方が良い。

ログの確認

/var/log/secure ログを確認する。(Raspberry Pi なら /var/log/auth.log)
以下の様なエラーが出ていたら間違いない。

Oct 27 13:08:31 サーバ名 sshd[3304]: Failed password for root from IPアドレス port 13069 ssh2
secure-20151025:Oct 24 10:03:15 サーバ名 sshd[22948]: Invalid user adolfo from IPアドレス

1行目:IPアドレスから sshを使って、rootユーザでログインしようとして失敗した。
2行目:IPアドレスから sshを使って、adolfoユーザでログインしようとした。

どこから来たか確認

「IP 国 確認」 などでググるとIPアドレスから国コードを調べるサービスが出てくる。
IPアドレスの国を調べると、Bahrain、Botswana、Brazil、Bulgaria、Canada、China、Czech Republic、France、Hong Kong、India、Iran, Islamic Republic of、Italy、Japan、Korea, Republic of、Moldova, Republic of、Netherlands、New Zealand、Nigeria、Poland、Romania、Russian Federation、Serbia、Singapore、Somalia、Suriname、Ukraine、United States

とりあえずサービス作ってみた。


国を判別したいIPアドレスまたはホスト名を入力してをクリック

対策1

/etc/ssh/sshd_conifg

PermitRootLogin no
MaxAuthTries 6

1行目:リモートからのrootログインを不許可にする。リモートからは別のユーザでログインしてから su コマンドで root になる。
2行目:パスワードの間違えを何回まで許すかの設定。
設定した後は、sshd をリスタートする。
/etc/rc.d/init.d/sshd restart (CentOS6≧)とか
systemctl restart sshd (CentOS7)とか

対策2

特定の IP からの ssh アクセスを拒否る。
/etc/hosts.deny に以下の様に追記する。

sshd : 拒否するIPアドレス1
sshd : 拒否するIPアドレス2
        :

でも、はっきりいってキリがない。

対策3

特定の IP からの ssh アクセスのみ許容
/etc/hosts.allow に以下を記述

ALL: 192.168
ALL: 127.0.0.1
sshd: 許可するIPアドレス

1行目:イントラからのアクセスを許可。172.16.x.x 系のネットワークなら 172.16 と記述
2行目:ローカルループバック接続を許可
3行目:外部からアクセスを許可する IP アドレスを記載。職場とか学校とか

/etc/hosts.deny

ALL: ALL

全て拒否
その後 sshd をリスタート
※ 設定を失敗するとターミナルからしか接続できなくなる。
また、DHCP とかで振り直されてIPアドレスが変わっても接続できなくなる。(イントラからはOKだけど)

ちなみに、上記の設定で refused connect すると、アタックスクリプトの仕様的に4回であきらめるみたい。

]]>
http://nekyo.wp.xdomain.jp/2015/10/27/ssh-%e3%81%ae%e3%82%bb%e3%82%ad%e3%83%a5%e3%83%aa%e3%83%86%e3%82%a3%e5%bc%b7%e5%8c%96/feed/ 0