日記アプリDay Oneのシンクエラーが続いている件

iPhoneやMac, iPadで人気の日記アプリDAY ONEが、クラウドと日記データを同期するシンク機能がエラーを起こし、同期できない状況が長く続いているようです。

Day Oneとは

iPhoneのアプリの中でも古参で、そしてアプリアワードの常連の人気日記アプリ。数年前のメジャーアップデートからはサブスクリプション(年額制)の導入とともに、写真保存枚数の増加など多くの機能も追加されていました。

中でも、データをクラウドに保存する機能は年々強化され、DropboxやiCloudへデータを保存できます。
そしてそのクラウドを経由させ、他のデバイス、例えば自宅のMacやiPadなどともデータを同期でき、使い勝手に不満はありません。

そして今回、その同期ができなくなる、というエラーが発生しました。

同期エラーの発生は5月8日頃から

2017年5月8日にとある考え事をiPhoneからDay Oneに記録したのですが、それをMacから再編集しようと思いMacのDay Oneを開いた時、「シンクエラー」のアラートが出ていることに気づきました。

今までも時折同期エラーが発生することはあったため、こちらの環境(Wifiなどネット回線やデバイスなど)が原因かもとしばらく置いてみたり、再起動しても変わりません。

そしてこのシンクエラーが、iPhoneのDay Oneの同期設定にも発生されていることから、Day Oneサービス自体の障害を疑い始めていました。

公式サポートサイトで情報が公開

公式サポートサイトを見てみると、同期に問題が生じていることが報告されていました。

Sync status for Day One Sync

Edit May 8, 2018 3:51 PM Mountain Time
We’ve had a significant sync outage and Day One sync will be offline for an unknown period of time. We have identified an issue, we are working to solve it, and will bring Day One Sync back online as quickly as possible. We are also looking for ways to avoid this in the future.

Day Oneの同期機能に深刻な問題が発生しており、復旧までの時間は未定です。
同期エラーの原因は絞り込んでおり、一刻も早く復旧させるために全力を尽くしています。
合わせて、今後再発しないよう改善策も検討中です。

時間が明記されていませんが、クリティカルな問題が発生しているとの報告が、かなり早い段階でアナウンスされていました。

その後、6〜10時間ごとに復旧の進捗状況が追加されて行きましたが、想定よりも深刻であったようで、「9日のうちには」と予告しつつもなかなか難しい状況が続いていることが報告されていました。

大きめの修正作業後も、すぐには改善は見られない状況であったが・・?

日本時間5月10日深夜の時点で、サーバのバランス調整テストでエラーが発生していたため、予定よりも遅れる旨のアナウンスがありました。
その後、状況が好転し、間も無く同期機能全体が復旧しそうだ、という投稿がされました。

May 10, 2018 6:45 AM Mountain Time
Good news! I am happy to report the overnight processes are done and the server team has reported that the backend is ready to go live. We are waiting for the rest of the staff to arrive this morning (for support) and we plan to go live hopefully within a few hours.

うれしいお知らせです。徹夜の復旧作業が完了し、サーバーエンジニアチームがバックエンド側が公開可能、との連絡がありました。
この後、朝に到着する他のスタッフのサポートのもと、数時間以内の復旧を目指しています。

フルタイムでの復旧作業の末、なんとか元どおりに使えるようになる見込みのようです。

Day Oneをお使いの方は、あと少し辛抱して様子を見守りましょう。

iPhoneやMac, iPadのデータは消えてしまう?

公式サポートの回答としては、

Keep in mind that your data is stored locally. We do not recommend deleting the app and reinstalling to troubleshoot. We recommend enabling local backups and using iCloud device backups (iOS).

日記のデータはお使いの機器内に保存されます。エラー解決のために、Day Oneアプリの削除や再インストールは絶対に行わないでください。iOSのサービスであるiCloudの同期バックアップを使い、機器内のデータのバックアップを行われることをお勧めいたします。

とのことでした。

ですので、自らDay Oneアプリをアンインストールしたり、再度インストールしたりしなければ、記録したデータが消えることはありません。

念のためも込めて、iTunesやiCloudを使ったバックアップは取っておくようにしましょう。


これほどメジャーなアプリで、ここまで長期間の障害が発生することは珍しいかと思いましたが、開発者はヒヤヒヤものだろうと、そちらの方に関心が向きました。

やはり、IT機器はこのリスクが確実にあるので、「無くなってもいいもの」を前提に使うようにしたほうがいいと再確認しました。

WordPressのログイン画面が崩れCSSが読み込まれていないように見える時

とあるサイト構築の際、とあるタイミングからWordpressのログイン画面が崩れ、HTMLのプレーンなテキストだけのページとなってしまったことがありました。

下記のような感じです。

入力フィールド、ログインボタンなどは表示され、IDとパスワードを入力すると通常通り管理画面へログインできます。
しかし、ログイン画面だけが崩れている、という状況です。

どこかで何かが読み込まれていないのは明らかですが、その対処法をこちらに。

SiteGuardプラグインを使っていませんか?

ブラウザのWebインスペクタなどを確認すると、javascriptの「/wp-admin/load-styles.php」が読み込めていない、とのエラーが表示されていました。

このファイルはログイン画面の表示装飾を制御しているもので、必ず読み込まれるものです。

通常であれば問題なく読み込まれるはずですが、このサイトはセキュリティプラグイン「SiteGuard」を使用していたため、通常のログインURLからオリジナルのログインURLへと変更していました。

SiteGuardは優秀なプラグインですが、何かの理由によりこれを読み込むことができなくなっているかと推察できます。

SiteGuardプラグインから除外パスを指定する

解決のために、まずSiteGuardの「管理ページアクセス制限」ページを開きます。
すると、「除外パス」指定テキストエリアが表示され、いくつかの項目が表示されます。

ここには説明文が記載されていますが、SiteGuardは/wp-admin/から始まるパスのファイルへのアクセスを制限しますが、ここに入力してあるファイルについては許可する、というものです。

管理ページ(/wp-admin/以降)に対する攻撃から防御するための機能です。ログインが行われていない接続元IPアドレスに対して、管理ページのアクセスを、404(Not Found)で返します。ログインすると、接続元IPアドレスが記録され、当該ページのアクセスを許可します。24時間以上ログインが行われない接続元IPアドレスは、順次削除されます。この機能を除外するURL(/wp-admin/以降)を指定することができます。

ここに「load-styles.php」を追加します。

すると、カスタムされたURLからアクセスした時でも、ログイン画面が通常通り整えられた状態で表示されます。


多くの場合、この「load-styles.php」が原因となっていると思われますが、プラグインを使用していなくても、

・サーバのWAF(ファイアーウォールではねられている)

・サーバにSiteGuardが設定されている

などといったケースもあるようです。

その場合はサーバコントロールパネルからでも除外パスまたはファイルが指定できるケースがあるようですので、チェックしてみてください。

wordpress利用者要注意。気づきにくい改ざんの実例と対策

このところ、wordpressサイトの改ざん、不正コードの埋め込みの対応に関する依頼をよく受けています。

症状としてはスパムが多くなった、遅く感じる、サーバ会社から報告があったなどがきっかけですが、共通する症状があり、意外と影響は深刻です。

お心当たりある方もない方も、管理されているサイトをチェックしてみていはいかがでしょうか。

症状は?

ご相談のサイトを調べてみると共通する特徴として、

  • アクセスすると表示スピードが異様に遅くなる
  • Chromeでアクセスすると、覚えのないダウンロードリンクが表示される
  • スパム審査サイトなどからでは判明しない
  • テーマなどサイト内のPHPファイルにコードが埋め込まれている
  • サーバはさくらやロリポップなど一般的な共用サーバ
  • 実際に埋め込まれたのは数カ月以上前

と言ったものがあります。サーバ会社から注意を受けると、サーバ内の他のサイトへの影響を考えて閉鎖される恐れもあるため心配ですね。

今回は、サイトにアクセスすると「font hasn’t found(フォントが見つかりません)」のメッセージが表示され、「 Chrome_Font.exe」などの不正ファイルをダウンロードさせるという手口です。

特にChromブラウザからアクセスがあった場合、影響を受けるとのことです。

PCの設定によっては自動的にダウンロードされる場合もあるようです。

Remove the BrowserMe.exe or Chrome_Font.exe Fleercivet Ad Clicker Trojan

EITest Nabbing Chrome Users with a “Chrome Font” Social Engineering Scheme

影響としては、

  • サイトの表示が異様に遅くなる時がある
  • 迷惑広告や不要なポップアップウィンドウが表示される
  • PCの速度が遅くなり、フリーズが発生したりする
  • 他のウィルスからの被害を受けやすくなる
  • IDやパスワードを盗まれる恐れがある

実際、とあるサイトではwordpressのユーザーが新規に作成され、勝手に投稿がされるという影響にまで及んでいました。
時期的に見て関連性があるかと思われます。

原因は?

FTPやwordpressのIDとパスワードがどこかからか漏れたことがまず考えられます。

または、wordpress自体やプラグインのセキュリティホールからの侵入です。メンテやアップデートが遅れがちの場合、気をつけなければいけないですね。

発見方法

WordPressはPHPファイルで構成されていますが、wordpressと関連のあるPHPファイルに下記のような不正なコードが埋め込まれていました。

一見何かの命令文やスクリプトに見えますが、こう言ったものがないかを確認して見てください。

上記のファイルは最上階層にあるwp-config.phpファイルですが、こう言った重要な設定の記載されているファイルにも書き込みがなされていました。

 

今回はPHPへ書き込みをするタイプのようで、データベースへはこのコードは埋め込まれていなかったがmySQLにまで影響を及ぼすタイプのものであれば、別の対応が必要です。

解決方法

  1. まずはサイト全体のダウンロードとバックアップ。
  2. 上記の不正コードを使い全体を検索し、コードの埋め込まれたファイルを検索。
  3. 「置き換え」を使って、不正コードを全て削除。
  4. 修正したファイルのアップロード。

もしバックアップしているデータがあれば、これをサーバにアップし上書きするだけでもいいかもしれません。

またもし確実にしたい場合は、wordpress.comから最新のwordpressファイルをダウンロードし、上書きすることができます。
その際、設定ファイルやプラグイン、テーマファイル、uploadフォルダ内は上書きしないように気をつけてください。

防御方法

#1.まずはPCのセキュリティを強固なものに。

FTP、mySQL、そしてwordpressのIDやパスワードといった設定情報保管方法も見直しましょう。

なんだかんだ言っても、パスワードを定期的に変更するフローを持っておくのはいいのかもしれません。

#2. サーバのセキュリティ設定を見直しましょう。

サーバから可能であれば、WAF(ファイアーウォール)の導入や、IPアドレス、ログインできるPCへの制限を行ないましょう。もちろんこれには運用上のポリシーとも関係するので、クライアントがいる場合は運用方法の見直しも含めることも忘れずに。

#3.FTPディレクトリ内のファイルの権限をしっかりと確認しよう。

設定情報の含まれている.htaccessやwp-config.phpは特に見直しましょう。

ロリポップの対策ページには、下記の情報が乗せられていました:

サイト改善への対策をお願いします

ディレクトリ、ファイルのパーミッションを以下の値での設定を推奨しております。

HTML・画像ファイル 604 rw—-r–
CGIの実行ファイル 700 rwx——
CGIのデータファイル 600 rw——-
.htaccessファイル 604 rw—-r–
ディレクトリ 705 rwx—r-x

パーミッションの設定を「777 (rwxrwxrwx)」や「666 (rw-rw-rw-)」などに設定されている場合は、「誰でも書き込める」設定となっているため、改ざんが行われる可能性がございます。ご確認の上、上記の値に変更してください。

-「.htaccess」ファイルが書き換えられる事例が多発いたしております。パーミッションが「604 (rw—-r–)」であるかご確認ください。
-「wp-config.php」のパーミッションは「400 (r——–)」に変更をお願いいたします。

#4. WordPressのセキュリティプラグインを入れて設定しよう。

主にログイン対策となりますが、セキュリティプラグインの導入も水際で防ぐことになります。

繰り返しとなりますが、これも運用方法とセットで。壁を一つ作ることは、日々の運用の手間などを一つ増やすことなので、実効性や使い方を考えましょう。

可能なクライアントのサイトにて、私は以下のプラグインを使っています:

SiteGuard WP Plugin – 管理画面への不正ログインを防ぐWordPressプラグイン

#5. wordpressのプラグインは、常に見直そう。

「便利そう」ということで使っていても、日々発見される脆弱性や危機に応じて更新や開発を行っていないプラグインも多々あります。

そういったプラグインから侵入されるケースもあるため、開発が1、2年行われていない場合は代替プラグインの導入をしましょう。


wordpressは、というよりウェブサイトもうほぼ保守運営ありきなのは事実です。

放置していて、後々面倒のタネになってしまうことも少なくありません。

保守というとどうしても後手になってしまいがちですが、せっかくなので全体をクリーンにする機会にしてみては。

サポートもしていますのでお気軽にご相談ください。

 

困っていることはないですか?何かできることありますか?

タイトルの問いかけをはじめに使ったのは、いつかディレクションしていたチームのとあるメンバーへだ。

初めてのチームであったこともあるし、ちょっと進行が鈍り始めていた頃だったかもしれない。
しかしそう問いかけると、相手から今まで尋ねてくれなかったようなことが返ってきた。
すると何か、相手との関係が変わったような気がした。
一本、線を越えられたような気がした。

プライドが高い人なら、反応でわかる。
わたしは大丈夫。
しかしそんな人でない場合、そう問いかけると、自分が相手のことを気遣っていて、そしてへりくだる姿勢と伝わるので、応対が柔らかくなる。

願いを返してくれたなら、受け止めてできる限りはやってみよう。
だいたい、そういった返答はこちらが可能な範囲でのものが多い。
もちろん自分でできないことを抱え込んでしまっては良くない。
困っていることを聞いて、うん、やっぱりできないなと思ったら丁寧に断ることができる。
一度聞いときながら断ると気分を害してしまう気がするが、真摯な気持ちで聞いてみたのが前提にあるから、関係がマイナスになることは少ない。

人に頼りにくいもの。
つよがりが身を守っていることもあるし、日本人の場合共存よりも自立が求められる文化でもある。

それでも、「どうしようかな」「聞きたいんだけどな」と感じていることもある(自分がそうだからだ)。
みんな最初の一歩が一番難しい。
その一歩が踏み出しやすいような、そんなワードがまだまだあると思う。

急にサイトの表示トラブルが起きた場合は、使用している外部サービスも見直してみよう【AddClips編】

とあるウェブサイトにて、ページの上部の看板から下のコンテンツが表示されない!という相談がありました。

実際に訪れてみると、確かにヘッダのメニューあたりまでしか表示されていません。

しかし、2分ほど待つとゆっくり残りのコンテンツが表示されてきました。牧歌的なISDNの頃のホームページならわからなくはないですが、今時こんなに重たく感じることはありません。

まずはどこにエラーが起きているか、調べてみよう

ブラウザでHTMLソースを見られる、インスペクタを開きます。
Safariであれば「開発 > Webインスペクタ」、Chromeであれば「開発管理 > ソースを表示」、他のブラウザも実装しているインスペクタを見ると裏側の状況が見えます。

今回はSafariを使いましたが、ここで「リソース」を見ていると、読み込めていないファイルが原因になっていないかわかりますし、「ネットワーク」や「タイムライン」を見ると、どのファイルや機能が遅延を起こしているかが分かったりします。

「デバッガ」のセクションにて「Failed to load resource: データベースの要求が時間切れになりました。」というエラー文が。
そして対象となっているファイルは「AddClip.js」の文字が。

Failed to load resource: データベースの要求が時間切れになりました

ウェブサービス「AddClips」は2016年3月末に終了していた

AddClips、比較的最近の記憶に引っかかったのは、facebookのタイムラインで見かけた、ランサーズ秋好社長が自社サービス「AddClipsを終了する」というメッセージでした。

結構有名なサービスのため一時的にはニュースが駆け巡ったかとは思いますがまだ知らない人も多いかもしれません。
実際にサイトにアクセスすると、2016年3月31日でサービス終了したとの告知が。

そして実際のソースにも、AddClipsのサーバにjavascriptを読みに行っている箇所がありました。

addclips

これがいわゆる、「データベースの要求切れ」、何度もサーバに要求して、その間他のデータを表示させなかった原因であったようです。
この箇所を削除すると、問題なく表示されるようになりました。

3月を過ぎてもしばらくは使えていたので、もしかしたらサーバ内の該当スクリプトはその後もしばらくは置いていたのかもしれません。

表示に問題がある場合、原因の一つとして外部から読み込んでいるスクリプト、ブログパーツ、プラグインなどを疑ってみることも必要ですね。

無料のサービスほど、変化が早いネット業界

AddClipsは2007年のベータ版から公開され使われていたとのことで、およそ10年に渡ってソーシャルメディアの発展に活用されていました。無料、そして貼り付けるだけで使えるという容易さゆえにいろんなサイトで見かけていましたが、この度役目を十分果たして勇退、というところでしょう。

しかし今回のように、同じサーバ内に置いてそこを参照ではなく、外部ファイルを参照する方法が使われている場合、トラブルになるかもしれません。
ネットのサービスには無料で使えるサービスは多いため、今回のようにいきなり使えなくなるゾンビのようなサイトやサービスもどんどん出てくる気がします。
もちろんサーバ環境はWordPressなどのCMSやプラグインなどの仕様、対応状況が原因となることもあるでしょう。

無料サービスほど自己責任なので、ちゃんとしたメンテナンスの大切さを感じるところです。