Windows10インサイドプレビュー版に追加されたランサムウエア対策機能

Windows10のプレビュー版にランサムウエア対策機能が追加という記事が出ていたので早速見てみた。

コントロールされたフォルダーアクセス 1
試用したのはWindows 10 HomeのインサイダープレビューのBuild 16232。

コントロールされたフォルダーアクセス 2
Windows Defenderを起動する。
左下の を押す。

コントロールされたフォルダーアクセス 3
設定画面で「ウイルスと脅威の防止の設定」を押す。

コントロールされたフォルダーアクセス 4
ウイルスと脅威の防止の設定の画面を下にスクロールする。

コントロールされたフォルダーアクセス 5
コントロールされたフォルダーアクセスのスイッチをオンにする。(上の画像はオフ)
追加設定として必要に応じて「保護されているフォルダー」「アプリをコントロールされたフォルダー アクセスで許可する」をそれぞれ開く。

コントロールされたフォルダーアクセス 6
「保護されているフォルダー」の画面。[+]で保護したいフォルダーを追加する。

コントロールされたフォルダーアクセス 7
C:\Dataを追加してみた。保護する必要がなくなれば[削除]で解除される。当然だがフォルダーそのものが削除されるわけではない。

コントロールされたフォルダーアクセス 8
「アプリをコントロールされたフォルダー アクセスで許可する」の画面。
イマイチわかりにくいけど保護しているフォルダー・ファイルを書き換えても良いアプリを登録するみたい。

コントロールされたフォルダーアクセス 9
動画再生アプリのVLCを登録してみた。VLCで保護中のフォルダを書き換えさせたくないと思ったら[削除]する。

コントロールされたフォルダーアクセス 10
許可していないアプリ(上の画像の例ではWindowsのペイント)で保護中のフォルダに画像ファイルを保存しようとした。
画面右下に警告画面が出た。かつ、保護中のフォルダにはファイルを保存できなかった。たしかに機能はしているみたい。
1つ前の画面の文言からするとWindowsに最初から入っている「ペイント」はマイクロソフトがフレンドリと特定したアプリじゃないってことね。っていうか「フレンドリと特定したアプリ」というのがわからん。

これでランサムウエアから本当にフォルダ・ファイルが守られるのかは手持ちにランサムウエアが無いので確認できていないけど本当に大丈夫?大幅に使い勝手が悪くなるだけじゃない?
まぁデフォルト無効で使いたい人だけが有効にするものだろうからVista時代に蛇蝎のごとく嫌われたUACみたいなことにはならないとは思うけど。

関連記事:

Google TTSを利用してAsteriskで日付・時刻の読み上げ

Google TTSを利用してAsteriskのIVRで日本語読み上げでAsteriskでGoogle TTSに喋らせるというのを書いた。
で、せっかくなのでものすごく簡単な日時読み上げのAGIサンプルを作ってみた。

普通に日時を読み上げるAGI

/usr/local/share/asterisk/agi-bin/speaktime.agi
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
#!/usr/local/bin/perl

use Asterisk::AGI;
use POSIX qw(mktime);
use lib qw(/usr/local/share/asterisk/agi-bin/);
use MyAsterisk;
use strict;

my $agi = new Asterisk::AGI;
$agi->exec("SayUnixTime", "time(),,bdaHM");
$agi->stream_file('vm-goodbye');
要日本語音声ファイル
入手: http://www.voip-info.jp/index.php/Asterisk_日本語音声 (FreeBSDのportsならjapanese/asterisk-sounds)

Google TTSで日時を読み上げるAGI

/usr/local/share/asterisk/agi-bin/googlettstime.agi
1
2
3
4
5
6
7
8
9
#!/usr/local/bin/perl

use strict;

my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime();
my @dweek = qw/日 月 火 水 木 金 土/;
$mon++;
my $out = "$mon月$mday日$dweek[$wday]曜日$hour時$min分$sec秒です";
print "SET VARIABLE TTSCLOCK $out";

「SET VARIABLE {Asteriskに渡す戻り値の変数名} 戻り値」これを表示するスクリプトを作ればAsteriskのダイヤルプランに渡すことができる。
普通に実行すれば「SET VARIABLE TTSCLOCK 6月28日水曜日19時58分20秒」のような文字列が表示される筈。

ダイヤルプラン

/usr/local/etc/asterisk/extensions.conf (の一部)
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
[general]
writeprotect=no
priorityjumping=no

[globals]
SPEAKINGCLOCK=317
GOOGLETTSCLOCK=318

[default]
;=== 日時読み上げ (普通) ===
exten => ${SPEAKINGCLOCK},1,Goto(speakclock,s,1)

;=== 日時読み上げ (Google TTS) ===
exten => ${GOOGLETTSCLOCK},1,Goto(googlettsclock,s,1)

[speakclock]
;=== 日時読み上げ (普通) ===
exten => s,1,Answer()
exten => s,n,Wait(1)
exten => s,n,AGI(speaktime.agi)
exten => s,n,Wait(1)
exten => s,n,Hangup()

[googlettsclock]
;=== 日時読み上げ (Google TTS) ===
exten => s,1,Answer()
exten => s,n,agi(googlettstime.agi)
exten => s,n,agi(googletts.agi,"${TTSCLOCK}",ja)
exten => s,n,Wait(1)
exten => s,n,Hangup()

defaultコンテクストからフローに入るとする。
317に発信すると普通の時刻読み上げを行って切断。
318に発信するとGoogleTTSを使った日時読み上げ。
27行目のgooglettstime.agi実行で現在の日時を作成、28行目でそれを喋らせる。その後通話切断。

読み上げサンプル

普通に日時を読み上げ

細切れの部品を繋いで読むのでぎこちない(けど各部品は人間の声なので綺麗)。

GoogleTTSで日時読み上げ

なめらかに読み上げるけど合成の声っぽさは多少。

どちらも実際に通話したものをスマートフォンの通話録音機能を使用して録音している。雑音もあるがご容赦。

関連記事:
Up