WordPress脆弱性 CVE-2017-6514

5/22に CVE-2017-6514の情報が公開されています。2年ほど間に登録されておりWordPress4.7.2に脆弱性があるとされています。JVNのほうにはまだ情報がないようです。 最新のWordPressでもまだ修正されていないのではないでしょうか?感触では、5.2.2で修正されそうな気がします。現時点のWordPress5.2.1.5.2.2の修正内容には該当するものはなさそうです。これから5.2.2向けにコミットされるじゃないでしょうか?

バージョンアップ情報、脆弱性情報の自動チェックを正式運用開始

先に書いた「Webページの更新内容自体が、動的更新によるものかどうかを自動チェックして、通知するかどうかを切り分けるように強化」の完了し、うまく機能することが確認できたので、正式に運用を開始しました。また、「日本語でのメール送信」機能も組み込んだので見やすく、作業効率が改善しました。今後、新たなソフトウェアのチェックが必要になったときにチェックルールをメンテナンスしていきます。

パワーコンディショナーの消費電力の解析、ここまでのまとめ 

これまでにパワコンなどの消費電力について確認した情報を整理します。

1.製品仕様から読み取った情報

1a) 夜間と昼間で電力消費の状態が変化する。
1b) 昼間は発電した電力を消費し、消費電力は変換効率内の扱いとなり表面上は見えない。
1c) 機種によっては充電する機能(UPS)を持っている。

2.収集したデータや動作から確認した情報

2a) ”1a)”の状態が切り替わる時間は(日照時間)時期によって変わる。
2b) 夜間に消費される電力は変わることがある。

3.収集した情報からの推測、予測

3a) 夜間に消費される電力は仕様に記載されている消費電力より大きくなることがある。
3b) パワコン等のファームウェアのバージョン(コード内容)や設定などにより消費電力が変化する。
3c) 昼間は、発電した電力や充電した電力を消費することで動作している。雨天等で長時間発電がない場合、充電した電力も使い切るために外部の電力を消費する可能性がある。

WordPress5.2.1リリース、5.2.2も近いうちにリリース

脆弱性の情報は公開されていませんが、重大な修正が行われていると思われます。WordPress5.2にバージョンアップ済みの場合はすぐに5.2.1にアップグレードしたほうが良いでしょう。 立て続けにリリースしようとしているということは、5.2.2のリリースを待っている場合ではないと思います。 5.2より前のバージョンに影響があるとは書かれていないので、とりあえず静観します。

仮に、これらの修正に脆弱性の修正が含まれているなら、その脆弱性情報の公開は5.2.2のリリースの後になると推測しています。

バックアップした媒体の整理

過去の写真データを参照したくなって、古い媒体を整理しました。様々なタイプの媒体やバックアップしたデータも出てきました。中身をチェックしようとしてドライブ入れてみたが、読めないものもあります。今すぐには不要だが、バックアップしたものが必要となったとき読めるかどうかを整理しまします。

下表内の記号の意味
◎:読み書きを確認済み
〇:読めることを確認済み
無印:未確認

 ドライブ型番HL-DT-ST DVDRAM
GH24NS90
HL-DT-ST DVDRAM
GH24NSD1
備考
メディアタイプ
DVD
DVD-R×
DVD+RW×
DVD-RAM×
CD
CD-R
CD-RW

ドライブ自体が手に入らなくケースとか高額になってしまうなどの問題が発生するので、どの媒体が生き残りそうなのか、見極めたうえでバックアップ媒体をどうするのか考えたほうが良いですね。

移行先、 次期クラウド環境選定

 事実関係の確認ができおりませんが、利用しているクラウドサービスがサービス終了するという情報が出てきております。仮にサービス終了となると以降に数か月単位の準備と移行作業が発生するため事前に検討しておきます。一番良いのは、このクラウドサービスのサービス内容やレベルが向上することです。

 まず、この利用している機能・必要な機能・欲しい機能を整理します。

■現在利用していて、今後も必須の機能

  • 全般: 独自ドメイン 24年ほど継続して利用している独自ドメインを継続して使用したい。 容量:できるだけ多く、高速なものが良い。現状はバックアップ領域も含めて 150GB 利用可能です。
  • メール:メールアカウントの管理 →独自ドメインのメールアドレスを引き続き利用したい。 アドレス数の制限なく利用したい。
  • Web: Apacheサーバ
  • 言語:PHP5、Python2.6、シェル
  • DB:MySQL5
  • 定期実行:CRONでの定期実行、日次、定時実行。

■欲しい機能

・Python3

以上の機能について、各クラウドサービスを調査比較します。そして、「クラウドサーバサービスの比較」として、固定ページにて公開していきます。

トマトとキュウリが伸びてきたので吊り上げ

日、トマトを植えつけましたがすこし遅れで植え付けたトマトのほうが、断然成長しています。条件を少しずつ変えていますが、どの条件が効いてよく成長しているのか不明な状況です。

この場所は掘り返した深さは20cmくらいで他の場所より浅めです。そのため水や肥料がより保持されているのかもしれません。耕しなおすわけにもいかないので、他の場所には肥料を追加して様子を見ます。ひもで釣りあげましたが、この株はまだ自立できていますが、来週あたりには自立できなくなりそうな感じはあります。

先月植え付けたキュウリは、地を這っていたので、トマトと同じように吊り上げました。支柱にかってに巻き付いてくれるとよいのですが、ひげが勝手に巻き付いてくれるように何か工夫してみましょう。

さて、2・週前にキャベツやレタスを植え付けた場所ですが、いまのところ雑草は生えてきていません。

雨が降りだしたら自動で排水 

ほとんど使っていないはずの電気代の月額が5500円とか、9500円に増えていることに気がついて、調べると排水ポンプが稼働しっぱなしになっており、常に「ジョロジョロ」と排水されていることが判明しました。普通は、「ドバー」っと一気に排水されて水がなくなると自動で止まります。これは排水ポンプのフロースイッチが効かなくなっていることが問題原因なので、本来は排水ポンプを修理もしくは交換するところです。しかし、費用も抑えたいし、コンセント側で電源をON/OFFしてやれば同じということで、余っていたスマートコンセントを付けてみました。そして指定した時刻に定期的に排水するように設定しました。この変更で、電気代は月額390円に激減しました。これは意図した通りなのですが、故障する前の電気代は月額1100円程度だったので、期待以上の削減です。ポンプの待機電力より、スマートコンセントの消費電力のほうが小さいとは思えないので、以前は現状のポンプの稼働頻度よりも高頻度でポンプが稼働していたと推測されます。

短時間に多量の雨が降った場合、自動では排水されず、水が溢れるかも知れないので、少し工夫してみます。
IFTTTのサービスを使って、雨が降り出したら排水ポンプを動かすAppletの設定をします。まずIFTTTで「New Applet」すると次が表示されます。

「+this」をクリックして実行する条件”トリガー”を設定します。ここでは「Weather Underground」を使っています。検索枠にサービスの名称” Weather Underground ”の頭から数文字を入れると選択肢が表示されます。
” Weather Underground ” をクリックします。

次に実行条件を選択します。雨が降ったら起動したいので、”Current condition change to ….”(現在の天候がxxxに変わったら)を選択します。

”Current condition” は「Rain」(雨)を、Locationをマップで指定します。「Create trigger」をクリックします。

「+that」をクリックして、何を実行するかを指定します。

”実行条件”と同様に、実行する処理をサービスの中から選択します。ここでは、利用するスマートコンセント”Meross”を指定します。

”Turn on”(電源オン)を選択します。

登録した”排水ポンプ”のスマートコンセントを選択し、「Create action」をクリックします。

設定した内容を任意の名前を指定します。 「Finish」をクリックしIFTTT設定を完了し保存します

以上で、「雨が降りだしたら自動で排水」することができます。排水ポンプを止めるほうはスマートコンセントのスケジュール設定で「1分後にオフ」を登録しているので、1分後に自動的に排水ポンプは停止します。

他のサービスやWebRequest、Webhook、独自実装を組み合わせて排水量制御とか、排水の代わりに灌水の制御をするようにして、雨の状況を予測して灌水するかどうかを制御するとかいろいろできますね。

Pythonで日本語メール送信

定期実行タスクの機能を使ってメール送信していましたが、content-typeを次のようにcharsetを指定したいのに、

Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: 8bit
Content-Language: en-US

つぎのように指定されています。
Content-Type: text/plain; charset=ANSI_X3.4-1968

このcharset指定のメールでは、日本語の文面が文字化けしてしまいます。受信したメーラーで明示的に文字コードを指定することで文字化けは解消しますが、いちいち指定する手間が大変です。そこで定期実行タスクのメール送信機能は使わずに、Pythonから直接送信するように変更します。

Python2.6で使用するので、 Uchida さんのコードを参考にさせていただきました。

参考のための補足情報:

・デバック方法
smtp = smtplib.SMTP(c[‘host’], c[‘port’])
の次の行に 「 smtp.set_debuglevel(True) 」を追加することで、メールサーバとの通信内容を確認できます。

・ユーザー名、パスワードの指定にはダブルクオーテーションでくくるのはNGです。ダブルクオーテーションもユーザー名、パスワードとして送信されます。

user = <アカウント名>
password = <パスワード>

このPython実装でのメールでは、charsetは次のように設定されます。

Content-Type: text/plain; charset="iso-2022-jp"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit

以上の設定により 、メールの日本語文面を文字化けせずに参照することができます。 これをベースに、脆弱性情報の通知メールに送信機能を組み込みます。