カテゴリー : セキュリティ

ブログ内検索
 

さくらインターネットの共有サーバでLet's Encryptを利用して常時SSL化してみた

さくらインターネットから共有サーバでLet's Encryptが使用できるようになったという旨のメールが届いたので、 スタンダードプランで運営しているサイトで早速試してみた。 今回の文章を読む前に、 Let's Encryptと常時SSL化の記事のリンクを載せておきます。 Goで運営しているサイトでLet's Encryptを利用してみた 当サイトをHTTP/2対応して表示の爆速化してみた 常時SSL化はSEO上効果はあるか? それでは早速、Let's Encryptを設定...

Read More…

 

Socket.IOのチャットアプリでXSS対策

Socket.IOで個別チャットを作りたい後編 今までSocket.IOでチャットアプリを作ってきたけれども、 誰かが気軽に入力できて、他のブラウザで誰かから送信されたメッセージを表示できる。 送信時にHTMLタグを入れたらどうなるのだろう? そこらへんはSocket.IOはどういう対応になるのだろう? と気になったので、 strongで囲った文字列を投稿してみた。 ※strongで囲まれた文字列は強調文字(太文字)で表示される。 結果は太文字で表...

Read More…

 

PHPの古いバージョンでの不具合報告についての対応

公式のパッケージの更新が再開して、 それと連動して当サイトのお問い合わせが、多い週で週5回と格段に増え、 開発しやすい状態となりました。 お問い合わせの中で時々不具合の報告も入り、 不具合の報告自体は大変ありがたいのですが、 PHPのバージョンが低い環境での不具合の報告も多々あります。 PHPのバージョンが低いというのはPHPのセキュリティのサポートが終了しており、 重大な脆弱性が発見されても一切修正されないバージョンを指します。 ※この記事の投稿時点では、PHP5.5系...

Read More…

 

サイトを公開した直後にWordPressの管理画面ログインがあるか探られた

先日、公開ページを持たない管理画面側だけのサイトを公開したのよ。 ※Web上で使用できる業務アプリです。 SSLの設定の都合上、安いドメインを取得して設定した。 サイトを公開してから毎朝エラーログを確認していたんだけど、 突然エラーが急増した。 エラー内容を確認してみたら、 [Mon Apr 17 03:01:29.554689 2017] [:error] [pid 3538] [client 127.0.0.1:12345] script '/home/*********...

Read More…

 

人はネットワーク内から新しい信用のあり方を発見した

人は価値の象徴として鉱物から金を取り出した お金、すなわち貨幣の信用についての話題が出てきたら、 必ずといって良い程触れておきたいのが もちろんそう! ビットコイン! というわけで、 NTT出版のビットコインとブロックチェーンを何度も読んでみた。 これはコンピュータ関連に触れている人なら有名なオライリーという海外の出版社から発売されたMastering Bitcoinの翻訳版。 何故か、オライリーではなく、NTT出版から発売されている。 なに...

Read More…

 

総当り攻撃を仕掛けられたので、接続元を調べてみたら

どこのサイトとはここでは言いませんが、 知人のサイトが総当り攻撃を受けていた。 管理画面のURLは下記の方法を用いて、 わかりにくいものにしたにも関わらず、 ログイン画面を表示出来た時点でプロの仕業か? SOY CMSであれば、管理画面のURLを特定したい SOY CMSでは総当り攻撃らしきアクセスがあった場合、 SOY CMSで総当たり攻撃に対応してみた こんな感じで接続元のIPアドレスが記録されます。 接続元IPアドレスが身内でないか調べていたところ...

Read More…

 

SOY2DAOでプリペアードステートメントを利用する

前回、SOY2DAOクラスで、SQL構文をそのまま実行して、 一つの配列に結果がすべて入ったものを返すという内容を記載しました。 SOY CMS/Shopのモジュール内でSQLを実行する SQL構文をそのまま実行できることが分かれば、 次に知りたいのはプリペアードステートメントだよね。 プリペアードステートメントといえば、 例えば名前で検索するフォームを設置して、 入力した名前を元にSQL構文を作成して実行する時に用いられるもので、 これをしないと、SQLインジェクション...

Read More…

 

IP偽装をしてみた

少し前に、 接続元IPアドレスを知られたくない時にすることで ブラウザからどこかのサイトにアクセスする時、自身のIPアドレス(住所みたいなもの)を送ることを記載した。 IPアドレスで接続元の情報がどれだけわかるか調べてみたで、 実際にサイトにアクセスした時、運営側はどれくらいの情報がわかるのか?を調べてみた。 固定の回線であれば、地図情報である程度まで絞ることができ、 WiFiであれば全然違うところを指していたけど、 プロバイダ情報は常に知られているので、おそらく足が付く。...

Read More…

 

IPアドレスで接続元の情報がどれだけわかるか調べてみた

接続元IPアドレスを知られたくない時にすることで、 SNSのアカウントを乗っ取ることでどこから誰が接続しているかを隠すことが出来た。 そもそも、 接続元の情報ってどこまでわかるの?ということで、 What Is My IP Address? IP Address Tools and MoreというWebサービスでサイトにアクセスがあったIPアドレスを調べてみた。 ※接続があったと記載しているけど、自身でサイトにアクセスしています。 結果は、 どのプロバイダと契約...

Read More…

 

接続元IPアドレスを知られたくない時にすること

インターネット内に流れているパケットを傍受してみるでネットワーク内でやりとりされているパケットを傍受することが出来た。 傍受する際に利用したソフトをWiresharkという。 このWiresharkだけど、 データを取得した際、 こんな感じで、 SourceとDestinationにIPアドレスという住所みたいなものがやり取りの都度表示されている。 Sourceは この画面を表示したり、入力して送信したりしている、 いわゆる閲覧者側の位...

Read More…

 

インターネット内に流れているパケットを傍受してみる

Webサイトのフォームではhttpsにしないと大変なことになるよ という話をする機会が連日続いたので、 なぜ大変か?を実際に見てもらうことにした。 ※httpsは暗号化して通信する仕組み。httpの通信は暗号化していない。 SOY CMSの常時SSL化で対応したこと はじめにネットワークを監視するために Wireshark · Go Deep. オープンソース・ソフトウェアのネットワークアナライザをインストールしておく。 話を始める前に念を込めて書いておくと、 ...

Read More…

 

インストーラーで再インストール後にサイトを復元

SOY CMSでインストーラを削除せずにいたらどうなるか?で サーバに残っているインストーラを呼び出して再インストールしたら出来てしまった。 再インストールしたCMSにログインしてみると、 当然のことながら、サイトは存在していないが、 サイトを簡単に復元する方法があるので復元してみる。 インストーラで再インストールする時、 インストール先ディレクトリを_cms_の様な感じで、 前の管理画面URLとぶつからない様な値に変更する。 変更後にイン...

Read More…

 

SOY CMSでインストーラを削除せずにいたらどうなるか?

SOY CMSのフォーラムにインストーラを利用した方はインストール後にインストーラを削除してくださいと投稿されていたので、 インストーラを削除しなかった場合はどうなるのかを調べてみた。 SOY CMS フォーラム • トピックの表示 - インストーラー削除のお願い とりあえず、MySQL版のインストーラをダウンロードしてきて試す。 インストーラは /ルートディレクトリ/cms_installer となるように配置し、 ブラウザで、http://example.com/c...

Read More…

 

SOY CMS/ShopでPHPモジュールに使用の制限を設けました

CMSに不正にログインした後、何をする?の最後で、 SOY ShopのテンプレートエディタとSOY CMS/Shop両方のPHPモジュールで攻撃を仕掛けることが可能という内容を記載しました。 これは由々しい問題なので、 SOY ShopのテンプレートエディタにはSOY CMSのPHP許可モードを反映させ、 SOY CMSのPHPの記述を許可にしなければ、PHPは実行されない様に変更しました。 他にPHPモジュールも特別な設定をしなければ、使用出来ないようにしました。 ...

Read More…

 

CMSに不正にログインした後、何をする?

SOY CMSに総当り攻撃を仕掛けてみる。その4 前回までで総当り攻撃でログイン用のアカウントを特定することが出来た。 ログインできる様になったら何をする? これから記載することは世界中で使われているWから始まるなんちゃらプレスというCMSで起こったことをSOY CMSで再現してみる。 対象サイトにログインできるようになったら何をする? 顧客情報を除いて、顧客のメールアドレスを盗む? それとも公開しているサイトの改変してみる? いやいや、 もっ...

Read More…

 

SOY CMSに総当り攻撃を仕掛けてみる。その4

SOY CMSに総当り攻撃を仕掛けてみる。その3では、 コード内にパスワードリストを作って、そのリストに従ってログインのチェックを行った。 これだと、 試したいものが膨大になるとその時点でコードの可読性が落ちる。 ということで、 IDとパスワードはCSVファイルにまとめて、 総当たり攻撃を実行した時にCSVファイルを読み込んでログインのチェックを行う という処理に変更してみる。 ※CSVファイルのエンコードはUTF-8での話です 前回のコードに太文字のコ...

Read More…

 

SOY CMSに総当り攻撃を仕掛けてみる。その3

SOY CMSに総当り攻撃を仕掛けてみる。その2 前回、トークンがあろうが、シェルからSOY CMSのログインを試みる様にコードを改変した。 今回は、簡単な辞書を用意して繰り返し実行してみる。 ※試すアカウントのIDはadminで固定で話を進める。 まずはパスワードの配列を用意する。 pws := []string{ "password", "aaaaaaaa", "bbbbbbbb", "cccccccc", "hogehuga", "******...

Read More…

 

SOY ShopにEC CUBE2.4系のログインチェックを導入しました

EC CUBEからSOY Shopにデータベースを引っ越す EC CUBEインポートプラグインで下記の様なご要望がありました。 EC CUBEのマイページで登録した顧客のパスワードを、 SOY Shopに移行した後も利用したい。 会員制サイトとなると、 パスワードの変更通知を送っただけで離脱されるお客様が多いのではないか? という懸念がありました。 パスワードというものは、 データベースを悪意のある人に見られても良いように平文では保管しない という運営のルールみたい...

Read More…

 

SOY CMSに総当り攻撃を仕掛けてみる。その2

SOY CMSに総当り攻撃を仕掛けてみる。その1 前回、Go言語でSOY CMSに対して総当り攻撃の初期段階のコードを書いてみた。 ※初期段階:ログインを一度試すだけのコード しかし、 ログインフォームにトークンのチェックを実装したことにより、 あっけなく無効化した。 ということで、 今回は前回実装したトークンのチェックを通過するように書いてみる。 まずトークンのチェックは何かだけど、 SOY CMSであれば、管理画面のURLを特定したい ...

Read More…

 

SOY CMSに総当り攻撃を仕掛けてみる。その1

SOY CMSで総当たり攻撃に対応してみた 以前、SOY CMSに総当たり攻撃を受けた場合は通知を送信するという機能を実装しましたが、 そもそも総当たり攻撃はどうやってやるの? ということで、書いてみることにする。 手順としては、 ・IDとパスワードの対が大量にある辞書データを用意する(ここは省略) ・何度もログインのPOSTを行うプログラムを用意する ・辞書データを元に何度もログインのPOSTを送信し続ける というわけで、 POSTのプログラムを用意すれば対応できると...

Read More…