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

SOY

SOY CMSの開発秘話を投稿しました。→SOY CMSの開発秘話
ブログ内検索
 

SOY InquiryでRCE(Remote Code Execution)の脆弱性に対応しました

SOY InquiryでRCE(Remote Code Execution)の脆弱性に対応しました。任意コード実行 - Wikipediaクリティカルな脆弱性でSOY Inquiry 2.0.0.3以前のバージョンすべてが対象です。下記ページから対応版をダウンロードできるので、至急バージョンアップをお願いします。https://saitodev.co/soycms/soyinquiry/

 

【SEO対策】他のCMS向けの総当り攻撃を避ける

今回の対策はSEOに直結するかわからないけれども、サイトを運営していてページの表示速度を下げる要因なので触れておく。とあるサイトを公開した後にアクセスログを確認したら衝撃的なログがあった。そのログというのが、https://example.com/wp-loginhttps://example.com/wp-adminへのアクセスだった。このサイトは世界ナンバーワンのシェアを誇る某CMSを使用していないので関係ないといえば関係ないけれども、アクセスログに上記のパスで埋...

 

SOY InquiryでGoogleのreCAPTCHA v3に対応しました

表題の通り、SOY InquiryでGoogle reCAPTCHA v3に対応しました。reCAPTCHA: Easy on Humans, Hard on Bots先にreCAPTCHAについて触れておくと、お問い合わせ時にフォームに入力したのが人間であるかを確認するために、機械では認識しにくい文字列が描写された絵に記載されている内容を専用のフォームに入力したり、私はロボットではありませんのチェックボックスをお問い合わせの下の方に設置して、...

 

ApacheでLet's Encryptの自動更新する為にCertBotを導入した

Let's Encrypt - Free SSL/TLS Certificates当サイトをHTTP/2対応して表示の爆速化してみたの記事でApacheで運営しているサイトでLet's Encryptを利用してhttpsからはじまるURLでサイトを表示できるようにしている。Let's Encryptは3ヶ月毎に更新のため、Let's Encryptのインストールの際、cronで期限が切れそうになったら自動更新するコマンドを登録していたけれども、先日、期限切れを伝えるメールが届いた。...

 

SOY Inquiryで同一IPアドレスからの連続した問い合わせをブロックする

SOY Inquiryで悪質なお問い合わせをブロックする機能を追加しましたの記事で、10秒に一回のペースで内容が空のお問い合わせが届き、データベースとメールボックスの容量が空になりかけたということがあった。この問題に対して、メールアドレスを必須にしていても空だった場合や特定のメールアドレスのドメインをブロックすることで迷惑なお問い合わせを防ぐことが出来た。上記の記事でも記載した通り、この対処ではまだツメが甘いわけで、更なる対応をしてみた。そ...

 

SOY Shopでクレジットマスターの対策を強化しました

クレジットカードの番号を盗む方法として最近聞くのが、クレジットカード支払いが可能なネットショップで、様々なカード情報を試してみるというブルードフォースアタック(総当り攻撃)のカード版のような話がある。SOY CMSで総当たり攻撃に対応してみたクレジットマスター - Wikipediaネットショップを設置したサーバはもちろん、クレジットカード代行会社のサーバの負担は大きいだけでなく、オーソリ毎に使用料が発生する代行会社のサービスを利用している場合、攻撃を試みられる度...

 

SOY ShopのPAY.JPクレジットカード支払いモジュールでカード情報非通過化対応をしました

PAY.JP - クレジットカード決済サービス本題に入る前にPAY.JPクレジット決済モジュールですが、詳しい説明が下記の記事に記載してありますので今回の記事を読む前に事前にご確認ください。SOY ShopでPAY.JPクレジットカード支払いモジュールを作成しましたSOY ShopでPAY.JP定期課金モジュールを作成しました上記を踏まえた上で本題に入ります。2018年8月1日14:00から加盟店(SOY Shopをインストールして、PAY.JPクレジット支払いモ...

 

Apache上で利用しているLet's Encryptの失効

先日、当サイトのサーバを引っ越した。引っ越した理由はバックアップスクリプトの実行時に使用するメモリが上限に達しつつあったため、より大きなメモリを使用することができるVPSサーバを使用する必要が出てきた。SOY CMSのサイトのバックアップをDropboxで行う現在使用しているさくらのVPSでは、スケールアップというサービスがあって、実際はサーバの引っ越しせずとも対処はできたのだけれども、スケールアップを行う – さくらのVPSニュースそれを知らずにサーバを新規で借りて、しかもサー...

 

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

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

 

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

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

 

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

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

 

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

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

 

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

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

 

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

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

 

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

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

 

IP偽装をしてみた

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

 

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

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

 

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

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

 

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

Webサイトのフォームではhttpsにしないと大変なことになるよという話をする機会が連日続いたので、なぜ大変か?を実際に見てもらうことにした。※httpsは暗号化して通信する仕組み。httpの通信は暗号化していない。SOY CMSの常時SSL化で対応したことちなみに今回の記事はOhmshaの基礎からわかるTCP/IP ネットワークコンピューティング入門を参考にしています。はじめにネットワークを監視するためにWireshark · Go Deep.オープンソース・ソ...

 

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

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

 

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

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

 

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

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

 

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

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

 

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

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

 

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

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

 

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

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

 

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

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

 

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

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

 

ブログで絵文字の機能は使わない方が良いかもしれない

SOY CMSの記事投稿画面で絵文字を使いたいSOY CMSのブログで投稿されたコメントを編集したい先日、SOY CMSで絵文字を使用する方法を記載した。ふとね、絵文字の画像のパスってどうなっているんだろう?って気になったので、ソースコードを見てみたのよ。そうしたら、img src="ドメイン/cms/soycms/js/tinymce/plugins/emoticons/img/smiley-cool.gif" alt="cool"こうだった。って、これ…/cm...

 

SSHの鍵認証でログイン設定

SSHで外部のネットワークからログインできるようにするで外部のネットワークからログインできる様にした。外部からのログインを可能にするのは結構緊張する。できる限りアクセスできる穴みたいなものを封じておきたい。ポート番号を推測しにくいものにして、ファイヤウォールの設定もしたけど、総当り攻撃をされたらいつかはログインされてしまう。サイバー攻撃が何と多いことかSOY CMSで総当たり攻撃に対応してみた更には、sshでログインする際に入力するパスワードは暗号化されず平文...

 

SSHで外部のネットワークからログインできるようにする

使わなくなったパソコンにSambaを入れて、ファイル共有用のサーバを構築してみた先日、Sambaを入れたマシンですが、家から少し離れた場所にあるので、ふと操作したいなと思っても、マシンの場所に行かなければ操作できないといろいろと面倒だ。脆弱性が報告された場合、関係ないといえど、修正バッチはすぐに対応しておきたいのが心情というものだし…ということで、遠隔操作できるようにSSHを入れたので、今回はその時行った操作のメモを残す。Secure Shell - Wikipedia ...

 

Goで運営しているサイトでLet's Encryptを利用してみた

さくらのVPSにGoの環境を構築してみた先日、さくらのVPSを借りて、Goで書いたWebアプリを公開してみたのですが、Goといえば、httpsから始まるURLを開くだけでHTTP/2になるという超素敵な仕様があり、(GoでHTTP/2が標準実装になったのはバージョン1.6からです)HTTP/2 - Wikipedia是非ともHTTP/2で運営してみたいということで、ちょうど先日正式公開となったMozillaのLet's Encryptを利用してみた。Mozilla Jap...

 

さくらのVPS + Apache2.4のサーバでSSL対応してみた

さくらのVPSにApache2.4をインストールしたサイトをSSL対応したので、その時の作業をメモとして残す。さくらのVPSでSOY CMSを動かした時のメモの続き今回はhttp://example.comというサイトで、京都市内にあるという仮定で話を進めます。ちなみにApacheのバージョンは2.4.7CSRを使用して認証局から証明証を発行してもらう場合です。Apache HTTP Server - Wikipedia予備知識として、CSRとは、...

 

SOY CMSの常時SSL化で対応したこと

最近、Googleが常時SSL化を奨めているでしょ。httpsをランキングシグナルに使用すると明示しているので、このサイトも常時SSLにしてみた。Google ウェブマスター向け公式ブログ: HTTPS をランキング シグナルに使用しますと言うわけで、このsaitodev.co、さくらインターネットの共有サーバとSOY CMSで常時SSL化をする為に行ったことを書きます。因みに常時SSL化とは、どのページを開いても、URLがhttpsで始まることを言い、このhttps...

 

SOY CMSで総当たり攻撃に対応してみた

サイバー攻撃の中で有名なものとして、総当たり攻撃(ブルートフォースアタック)というものがあり、すごくシンプルに言うとSOY CMSであれば、管理画面のURLを特定したい攻撃したいサイトのログイン画面を発見したら、思いつく限りIDとパスワードの組み合わせを試してみる攻撃のことを言う。サイバー攻撃が何と多いことかSOY CMSに総当り攻撃を仕掛けてみる。その4IDは特定されにくいものを用意し、パスワードが半端なく強固だとして、突破されることはないとしても、ログインを...

 

そもそもSOY CMSを使っていると特定されないために

SOY CMSであれば、管理画面のURLを特定したいでSOY CMSの管理画面のURLは分からない様にできた。でも、使用しているCMSがSOY CMSとわかった時点で、攻撃者は管理画面のURLを躍起になって探す可能性がある。その間に意味不明なアクセスが多発するかもしれない。それってDoS攻撃っぽいものまで発展する可能性すらある。DoS攻撃 - Wikipediaというわけで、サイトがSOY CMSで運営されていることを隠す方法についてを記載します。一つ目がSOY...

 

SOY CMSであれば、管理画面のURLを特定したい

運営しているサイトがSOY CMSであるか調べてみるで、表示しているサイトがSOY CMSで運営しているか調べる方法を記載した。SOY CMSで運営していることが分かった場合、管理画面のURLを探って、侵入(ログイン)を試みたいと思うよね?ということで、今回は管理画面のURLに付いて記載します。SOY CMSのログインページというのがこれ。URLの規則は、http://ドメイン/cms/admin/もしくはhttps://ド...

 

運営しているサイトがSOY CMSであるか調べてみる

サイバー攻撃が何と多いことかであるサイトが何のCMSで運営されているか知る方法としてWordPressを例に記載した。前から使用しているCMSがSOY CMSだと特定する手段ってありませんか?ということをよく聞かれる。SOY CMSはHTMLそのままで運営することが可能という仕様のため、ページのソースを表示するで暴くことはできません。よくやることとして、WordPressで構築したサイトをそのままSOY CMSへ移行することもあるため、ページのソースを表示するでWordP...

 

サイバー攻撃の前にパスワードの管理を

サイバー攻撃が何と多いことかに続いて、パスワードの管理周りであったことを書こうかと。先日のこと、Facebookでつながっている人からメッセージが届いた。そのメッセージはブランドバックの広告だった。おいおい…Facebookのアカウントが乗っ取られてるじゃないか…ということで、メッセージを送ってきた人に唐突にこう聞いてみた。最近、GMailが乗っ取られたりしていませんか?とGMailと言えば、世界的なIT企業のGoogleさんが...

 

サイバー攻撃が何と多いことか

昨年秋頃、知人からとある相談を受けた。知人の知人のWebサイトが乗っ取られて、いろんなサイトに攻撃していると知人の知人のサイトの管理画面のURLを教えていただき、ログインしてみた。知人の知人のWebサイトはWordPressというCMSで運営していた。管理画面を開いてみたけど、特に変わりはなかった。しかしだよ、画像をアップロードするフォルダにfunction.phpというファイルが生成されており、このファイルを調べてみたら、いろんなサイトに悪質な攻...

 

Goで一方向ハッシュ関数によるパスワードの暗号化を書いてみた

普段の帳簿周りを自動化したいから、自分ら用にちょっとしたアプリを作ることにした。せっかくの機会なので、Goで一方向ハッシュ関数によるパスワードの暗号化を書いてみたので、勉強がてらメモを残しておく。Go (プログラミング言語) - Wikipedia暗号学的ハッシュ関数 - Wikipedia一方向ハッシュ関数とは、アプリでアカウント登録の際にパスワードの設定をしてもらうでしょ。それをそのままサービス側のデータベースに保存すると危ないので、入力したパスワ...


Powered by SOY CMS  ↑トップへ