コンピュータウィルスに弱いWindows7はリスクが高い

今日、興味深い記事を見つけました。先週、テレビの朝の全国ニュースでもやっていたコンピュータウィルスの「WannaCry」に感染したパソコンの 98% が Windows 7 だそうです。


http://www.itmedia.co.jp/news/articles/1705/20/news034.html
「WannaCry」感染の98%は「Windows 7」で「XP」はほぼゼロ

 

Windows 7 のパッチはとっくにリリースされていれるので、普通に使っていれば被害にあうことはありません。しかし、パッチが当たっていないパソコンが多い、という実態です。


派遣先の大学は、インターネットが遅いため、Windows Update が進まないことがよくあります。たまにしか使わない、ちょうど手元にある古いノートパソコンも、Windows Update が当たっていないパソコンの1台。最後に更新を確認したのが、2016/08/06 と出ているので、毎週電源は入っているのですが、去年からOSの更新はされていません。


誰かがメールなどで「WannaCry」を持ち込んだら、このパソコンは、間違いなく感染してたでしょう。


このパッチが当たっていなかったパソコンは、使っていた人がわざとパッチを当ててなかった訳ではありません。Windows Update の設定を確認したところ、自動で更新を確認する設定になっていました。

 

しかし、現実には当たっていない。今日、2時間動かしっぱなしにしたのですが、
OSの更新確認が終わる見込みはまったくありませんでした。パソコンを24時間
ネットに繋ぎっぱなしにしとけば、いつかは更新確認ができてパッチが当たった
かもしれません。でもそれは、1日後か一ヵ月後か解らない状況です。

 

このパソコンは、利用頻度が低いと言っても普通に使っていたパソコンです。それで
半年以上当たっていない訳ですから、同じように使っているのにパッチが当たらない
パソコンはいくらでもありそう気がします。そして、自動で当たるよう設定している
訳ですから、パッチが当たらないのは利用者の責任とは言えないでしょう。


マイクロソフトとしては、こんなことは全て承知していて、去年は強制的にでもWindows 7 の使用を止めさせようとしたのでしょう。でも、うまくいかなかった。こんなコンピュータウィルス騒ぎも予想していたのでは、と思うのですが。さすがにそれは無いか。


とはいえ、かつては OutlookIE を使うのにはセキュリティのリスクを覚悟する必要がある、なんて時代もありました。Windows 7 を使い続けるのは、かなりのリスクを覚悟しなければならない時代になったようです。

 

f:id:muzina_630:20170207164051j:plain

Excel でささっと

派遣先の大学で使われている学生の成績などを管理するシステムや、学内で利用するEメールなどを一括して登録することになった。どうも、やり方は毎年違うらしい。その時の担当者の詳しい方法でやるのだろう。ということで、今年は私のやり方に。


学生の学籍番号は入試番号と紐付けられており、入学が決まると番号は振られる。そして、学内のシステムやEメールには、学籍番号とは違うユニークなIDが設定される。

今年は、次のフォーマットで設定した。

2017 + (イニシャルのアルファべット2文字) + (2桁の数字)

仮に、サイトウ ツカサ さんという学生がいたら、2017ss11 とかになる。


これをどうやって作るか。
私は、Excel でやることにしました。

まず、元になる情報は、学籍番号、漢字の氏名、ひらがなの氏名です。
例えば、こんな感じ。

"2017-01-001" "斉藤 司" "サイトウ ツカサ"

ここから、IDを作成することになります。


まず、イニシャルのアルファベット2文字をどうすか。
ネットで調べると、VBA で作った記事が目を引きました。
そのコードを見ると、文字を判定して、該当するアルファベットを選んでいるだけでした。これなら、VBA にする必要はありません。辞書のシートを作っておいてvlookup() で検索するだけです。

 

1文字目は、"サイトウ ツカサ"の1文字目を left() で切り出し、vlookup() でアルファベットを検索します。


2文字目は、"サイトウ ツカサ"の苗字と名前の間の空白の位置を find() で計算し、その次の文字を mid() で切り出します。そして、1文字目と同じように vlookup()
で辞書を検索してアルファベットを作ります。

 

2桁の数字をどうするか。去年までは rand() で作ったランダムな数字を作って、後から一致してものを探して、手で直したのだそうです。そんな手作業は、間違いを生む原因なので、もちろん却下。

 

ユニークなIDにするには、イニシャルに通し番号を振ればいいだけです。なので、作成途中のシートをコピーして、イニシャルでソートした表を作り、通し番号を振る計算式を作りました。難しいことは何もやってません。こんなのです。

 

[通し番号]
=if(イニシャル = 1行上のイニシャル , 1行上の通し番号 + 1, 1)

 

これで、同じ1行上のイニシャルと同じなら通し番号をふり、違うイニシャルなら1を振ります。あとは、イニシャルが変わる度に、10の位を1つ上げていくだけ。

 

[10の位の数字]
=if(通し番号 = 1 , if(1行上の10の位の数字 > 80, 10, 1行上の10の位の数字 + 10), 10の位の数字)


こんな感じになります。

sa11
ss21
ss22
ss23
st31
st32

この4ケタでユニークがIDができあがりです。これに、年度を足して、2017ss11 といったIDを設定します。


これで、600個を超えるユニークな ID が一瞬で作れます。
まあ、通し番号を作るシートを別に作っているので、元のリストに修正が入ると面倒です。ここは、工夫のしがいがあるなと思ったのですが、そんな依頼は無く、これで完了でした。これくらいあっさりいくと苦労しないで済むのでいいですね。

最近テレビを見なくなった

最近はテレビを見てないので、情報が偏っているのでは、と思うようになってきた。数年前に、夜の時間帯はどのチャンネルを回しても似たようなバラエティか2時間ドラマばかりでつまらないと感じて、テレビを見なくなった。そのうち、仕事がバカみたいに忙しかったり、それを辞めてしばらく夜勤の仕事をやったり、バイトに励むようになってからは、もう全く見てない。

 


食事をしている時間や妻が見ている時間は、ついつい目に入る機会もあるのだが、テレビを見て過ごす時間は、今は1時間未満まで減っていると感じている。


そうすると、以前ならニュース番組やドキュメンタリーで世の中のいろいろなことを知ることがきでたのに、今はそれができないのでは、と感じている。できるだけ、ネットの動画でニュースの解説番組を見るようにしている。


昔と比べて決定的に何かが足りないような気がする。
例えば昔なら、テレビのドラマでいろいろなことを学んだ。歴史のこと、風習のこと、世の中の常識など。私が子供のころから生活スタイルが大きく変わっていないように思うのだが、情報に関しては様変わりしてしまった。


必要な専門情報はすぐに調べられる反面、何が世の中の常識なのか解りにくくなっているような気がする。こう思うようになったのは、年老いた証拠だろうか。最新のメディアについていけなくなったとか。


今、クラウドシステムから申し込んだライターの仕事を副業みたいにしているのだが、歴史をテーマとした記事では、こんな大河ドラマや時代劇があったな、と思い出し、ネットで調べたりすることが多い。まあ、私は日本の歴史を大河ドラマと時代劇で学んだようなものだ。後から本で読んで、ずいぶんと違うじゃないか、と考えを改めたものも多いがそれはドラマの脚色だからしょうがいない。見た当時は、全く違和感がなかったし。


今の子供は、そういう体験はあるのだろうか。うちの子もYouTube などでいろいろな動画を見ている。そういう動画は、元の映像があってそれを真似たものも多いはず。真似た方を覚えていってオリジナルを知らないで過ごすのは、誤った記憶のまま大人になるのでは。


昔は調べようがなかったことでも、今ではネットを使って調べることができる。ただし、間違った情報の中から真実を見つけるのは、なかなか大変だ。その大変さを厭わずに人を言うことを鵜呑みにしないで、自分で調べる習慣を付けさせらたらいいな。


とりあえず、今の子供に対する口癖。
「おまえインターネットが使えるんだから、自分で調べろ」

これに対する子供の口ごたえ
「俺は調べる方法がわかんないから聞いているんだ」

なかなかいいことを言うじゃないか。

PHPで作ったスクリプト、rubyでも作ってみた

1台のサーバーで複数のブログを公開しているので、それぞれの WordPress のバージョンを調べるスクリプトを作って確認したばかりですが、このスクリプトPHP で作りました。WordPress が動作する、というのは PHP が動作する、ということなので、パッケージがインストールされていないので動作しない、といったことはありません。

 

こういうスクリプトruby の方がいい、という思いもあってテスト環境でほぼ同じ機能を ruby でも作ってみました。こっちの方が記述が簡単になり、見やすいように思います。ruby の方が生産性は高いので当然かもしれません。

 

しかし、問題が。MySQLへの接続をどうするか。
PHP では、MySQLへのアクセス機能をモジュールとして組み込む仕組みになっており、WordPressMySQL を使うことから、当然本番システムにも組みまれています。
しかし、ruby は、複数の手段が用意されています。さらに、ruby のプログラムにモジュールとして組み込むのではなく、Perl のように外部のライブラリとして用意する仕組みになっています。

 

当然、本番システムには、ruby というプログラムはインストールされているものruby の外部ライブラリはインストールされていません。Ruby on Rails でシステムを構築すると、この辺の問題は無いのでしょうが、所詮ただのブログサーバーですから。

 

MySQLruby 用ライブラリは、gem の仕組みを使って簡単に入れられるのですが、開発環境とちがい本番環境を途中からいじるのは、ちょっと。


このスクリプトは、コマンドラインから実行するだけで、実行速度を気にする必要がない。なので、外部 コマンドとして mysql を実行し、その結果を ruby で処理させるのがいいかも。
ネットで検索すると、この外部コマンドを使った例が、以外と Google の検索の上位にある。ということは、同じことを考えている人が多いということか。

 

mysql コマンドで、必ず1つのワードだけ出力するようSQLを書き、さらに事前に動作確認してエラー処理を省けば、ソースは簡単に記述できます。誰が使ってもOK、というスプリクトを組むにはそれなりに面倒ですが、割り切って作ればそうでもありません。

 

実際に作ってみたら、案外簡単な記述でもちゃんと動作しました。
やっぱりどうせ使うのなら ruby の方がいいかな。

 

f:id:muzina_630:20170209144233j:plain

WordPressのセキュリティ対応

最近、WordPress 4.7 と 4.7.1 の2つのバージョンで、深刻な脆弱性が発見されました。ログインしなくても誰でもページを修正できてしまう、というものだそうで至急最新版への更新が推奨されています。


派遣先の大学では、講座毎の活動などをブログで情報発信しています。また、県内企業とのプロジェクトをブログをベースにしたWebページで紹介したりもしています。実に多くのブログが使われています。


それらの中には、今回、脆弱性が指摘されたバージョンがあるかもしれません。そうした場合、いたずらされる可能性があるので、管理する立場としては放置できません。しかも、大学の総務宛に、文部科学省の大臣官房政策課情報システム企画室という部門から、この脆弱性に対する注意喚起のメールも届いていたそうです。立場的には、対策を行ったというポーズだけでもする必要があります。


ということで、使われている WordPress のバージョンを確認して、該当するバージョンを使っているサイトの管理者に、更新を指示することになりました。


幸い、学内で使われているブログの多くが1台のサーバーにあり、1つのディレクトリに格納されています。このディレクトリから WordPress のサイトを探し出し、そこで使われている WordPress のバージョンを調べてリストを作ればいい訳です。そして、該当するバージョンが使われていたら、そのサイトの管理者に更新するように伝えて対処してもらうことになります。


ここで、私の作業は、このリストを作ること。

WordPress のサイトかどうかは、ディレクトリの下に、wp-config.php というファイルがあるかどうかで判定できます。また、WordPress のバージョンは、wp-includes というディレクトリの下に version.php というファイルがあり、これに記載されています。

 

また、ブログの名称や管理者の連絡先は、データベースに記載されてますが、先ほどのwp-config.php にデータベースにアクセスするのに必要な情報が記載されているので、これで接続し、該当するデータを取り出せば確認できます。

ということで、PHP で作ることに。


実は、ブログの最終更新日を調べたり、主に画像データですが大量にHDDを使っているサイトを調べたりするため、このディレクトリにある WordPress のリストを作るスクリプトは既に作ってあった。PHPディレクトリ一覧を調べる関数や、ファイルを読み込む関数、MySQL にアクセスしてSQLで問い合わせする、とまあ基本的な関数ばかりで作れます。

 

途中、ディレクトリのリストから WordPress の情報を格納する配列を作って、連想配列でデータを入れていくだけ。最後にそれを使ってCSVファイルに書き出して終了です。別に、ruby とかでもできそうですが、私はこういった処理、特にデータベースにアクセスする処理では、PHPに慣れていたのでPHPを使いました。


こうやって調べたところ、1件だけ該当してしました。そして、担当者に連絡してもらって WordPress を更新してもらいました。


該当するのが1件も無いと、ほんとうに調べたのか、と思われてもつまらないし、そうそう該当するサイトがあっても面倒。1件該当してて、それを確実に更新しました、というのはよかったのかも、なんて思ってます。

 

f:id:muzina_630:20170207164051j:plain

DeNAの第三者調査委員会をかたるメール

昨年の11月末に閉鎖した問題の多かったキュレーションサイトに関連して、私のEメールアドレスに、株式会社ディー・エヌ・エーの第三者調査委員会からのメールが届きました。


まず、タイトルを見て、何かの勧誘か、それともウィルスか、と疑ってしまいました。迷惑メールのフィルターを設定していないメーラーで受け取ったので、まず、やばいのが着たのかもと感じました。


とりあえず、怪しい添付は着いていません。さらに、変に長いURLもありませんでした。もしかしたら、本物かも、と思っています。


私は、複数のEメールアカウントを使っており、今も非公開になっているサイトの作業でのやりとりには、このメールアドレスを使っていませんでした。しかし、作業を行うためにサイトにアカウント登録した際、このEメールアドレスを使ったのかもしれません。


なお、このサイトは仕様上、誰でも記事を書いて公開できる仕組みでした。そのため、アカウント登録の際、Eメールを登録したような気がします。そうやって登録したメールアドレス全員に送ったのでしょう。中には、ほとんどの記事がアルバイトが書いていると知らずに、自分の画像を使い、日記感覚で自分の文章で書いておいたのに、それが非公開になってしまい、しかもこんな問題に巻き込まれた不幸な人もいるんでしょうね。


第三者調査委員会の名を借りて、詐欺に利用するする人がいないとも限りません。
私はこのメールは無視するつもりです。
しかし、クラウドサービスでやり取りしていた発注担当者から連絡があれば、真摯に対応したいと思っています。(たぶん、ないでしょうね。)