セキュリティ

no image

LINE BOT API 実は友達追加時にもCallbackされてた & 署名確認をしよう。

前回こんな記事を書きました。 田村ゆかりさん公式サイトの通知を LINE BOT API で作ってみた。 #yukarin この記事では友達追加をしてもらった際にメッセージを送ってもらって mid(ユーザーID)を保存するという処理だったのですが、友人が 「友達追加時にもCallbackされるからメッセージ送らなくてもmid保存できるよ」と教えてもらいました。   試しに中身を覗いてみた [crayon-5b2a6fc7a0c37802378868/] 注目するのは “opType”: 4 です。 友達追加時は 4 ブロック時は 8 が返ってきます。 LINE Developers にも記載されてました…。   友達追加時に、midを保存。 ブロック時にmidを削除といったことが可能ですね。 ということでPHPで友達追加時に相手のmidを保存するコードは以下に。 [crayon-5b2a6fc7a0c54688934836/] この一々保存するの面倒なので一斉送信できるAPIを公開してくだしゃい   ふとコードを書き直してる時にセキュリティやばくね?ってなって思ってた時に署名とかこないの?って思ったら署名乗ってくるみたいですね…。 Qiitaとか9割方、署名確認してないです。   LINEからのアクセスか検証する LINEからのアクセスの場合、ヘッダーに X-LINE-CHANNELSIGNATURE があり これをbase64デコードしたもの + LINEきたらjsonの内容を LINE BUSINESS CENTER で確認できる ChannelSecret をキーとしたHMAC方式SHA256アルゴリズムのハッシュ値が 合致すればOKということです。 [crayon-5b2a6fc7a0c58333039478/]   ちなみに nginx だとPHPの getallheaders 関数が使えないので [crayon-5b2a6fc7a0c5b245448969/] よく見るこんなのを使います。

no image

WordPressに攻撃してくるリクエストがおもしろい!【block-wpscan】

WordPressを使用しているサーバーは脆弱性だらけとよく言われてます。 セキュリティはしっかりしないと簡単に侵入されたりしてしまいます。 そんな中で面白かったものをいくつか挙げてみたいと思います。 ちなみにここで紹介している不正アクセスは block-wpscan というプラグインでブロック可能です。   オーソドックスなブルートフォースアタック とログを見てみると無かった。これは意外だった。   xmlrpc.php   xmlrpc.php とは xmlrpc.phpはそもそも、これを使うことで標準の管理画面以外からもAPIを使って、記事の投稿ができるようになるもの。どうやらここへのブルートフォースアタックでのっとりをしようとしているか、Pingback機能を悪用して当サーバーを踏み台にして攻撃に利用するためにアタックされる事例が多い – https://iritec.jp/web_service/10258/ ブルートフォースアタックでもなく、落とそうとしたわけでもないですがやっぱりアクセスはあった。 しかも PHP直打ち。何がしたかったんだろうか…。 wp-login.php へのブルートフォースアタックするのもありますが、xmlrpc.php へでもID/PWをブルートフォースアタックすることができます。     意味不明な攻撃 UserAgentも何だか怪しいし、リクエストURLもやばい。 これだけ見ても全く理解できません。 実際のリクエストURLは長いです↓ [crayon-5b2a6fc7a0f8b725193570/] で実際これが何なのか調べてみたら他CMSで使われる PoPs (Points of Presence) といわれる攻撃らしい。 影響あるのは Joomla というCMS。Wordpressには影響なさそう。 ちなみにbase64の部分をデコードしていくと、PHPコードが出てきます。 ということで割愛しますが、詳しくはここで解説されてます。 と、ここまで面白みのある不正なアクセスはそこまでありませんでしたがこれらの攻撃も防げる block-wpscan オススメです!

例外クローラーの追加、判定結果が分かるように。block-wpscan 0.4.2 をリリースしました

block-wpscan WordPressのプラグインです。 不正っぽいアクセスをブロックするものです。 WordPressでwpscan,tor,proxy,コマンドラインからのアクセスをブロックするプラグイン「block-wpscan」   Changelog Twitterbotを例外に追加 なんでブロックされたかを表示     Twitterbotを例外に追加 ブログの記事URLをツイートとかすると”Twitter-bot”からのアクセスがくる。 これがブロックされてたので例外へ追加するように。     なんでブロックされたかを表示 新たに”Judge”という項目を追加 ”Not browser”というのはコマンドラインからのアクセスを指します。 ベンチマーク取ってみたんだけど、何故かプラグインが無効の時のほうが速い…。 なんでだろう。誰かベンチマーク取ったら教えて下さい…。

Chinachuのアクセスログから不審なIPを検知する「wuilog」アップデート

[note] Chinachuのアクセスログから不審なIPを検知してみる [/note] Chinachuのアップデートしたらログの書式が変わってたみたいでうまく動作してなかった。 ということでそれに対応したって話だけです。 rluisr/wuilog – github

Chinachuのアクセスログから不審なIPを検知してみる

夏バテかなって感じる。   録画サーバーに @kanreisa さんが作った「Chinachu」を使っていますがそのChinachuが ロシアの有名P2P放流者によってクラックされたらしい。 Chinachuのパスワードを破ったわけではなく、サーバーに設置されたphpの脆弱性を突きcronを実行しシェルスクリプトを流し込みそれによってconfig.jsonが流出した模様 — すど (@sudosan) 2015, 6月 18 私の場合インターネットに公開しちゃってるしただのBASIC認証だし(TLS云々が面倒)なので とりあえずアクセスログ見て不審なIPを通知するようなのを作った。 wuilog – github 脳震盪起こしながら書いたので適当さは見逃して下さい。 ホワイトリストを自分で書いて、リスト外IPがあったらツイートされます。 twitteroauthを使うようにして下さい。   でこれを使ってIPアドレスを表示して不審なIPのwhoisを見ると シンガポールからアクセスがあったり。(このIPは知り合いのだった) 重複処理はしてないので不審なIPがあったらiptablesとかufwでrejectするようにしないと実行される度に通知されるので 何とかしてください。 あとwhoisコマンドでdescrを取得するのでwhoisコマンド使えるようにしておいて下さい。 descr: So-netとかDocomoとか組織の名前 わざわざwhois見に行く手間が省けますよね(?) iptablesとかなら [shell] vim /etc/sysconfig/iptables -I INPUT -s IP -j DROP service iptables restart [/shell] とかで行けます。   再発は防げるかもしれませんが一発目は防げないし串とか通されたら無理ですけどね^^ 今回のクラック方法が解明されてないけどそれが分かるといいですね。

セキュリティ強化だ!404エラーを返した時に表示されるバージョンを隠そう! on Ubuntu

現在私のサーバーは Ubuntu + Apache でサーバーを動かしておりますが Apacheの設定がデフォルトのままだと404エラーを返したときにOSのバージョンや、Apacheのバージョンなどが表示されてしまいます。 これはセキュリティ上、よろしくないのでこれを非表示にしてみました。 Ubuntu(Debian)の場合 /etc/apache2/conf.d/security の ServerTokens を Prod ServerSignature を off にすれば終了です。