MeltdownおよびSpectre脆弱性で気を付けるべきこと

2018年のITセキュリティはMeltdownとSpectreで幕を開けましたね。

https://meltdownattack.com/meltdownattack.com

d.hatena.ne.jp

世界的にも国内でも大きく話題になりましたので、わざわざここで紹介する必要もないかと思います。

Intelが大きく着目されていますが(確かにIntelのCPUが大きく影響を受けます)、AndroidiOSも影響を受けることがわかっています。

ただし、この脆弱性の影響度合いは、使うコンピュータにより大きく異なる点に注意が必要でしょう。

自分のPCやスマートフォンの場合、影響は大きくない

普通のPCやスマートフォンで、これらの脆弱性を使うためには、まず本体の上でコードが実行できなくてはなりません。「危険なコードが実行される」時点で、通常は侵入済みなので、今回の脆弱性以前の問題です。

普通の人にとって、コードが実行されるのはブラウザでのJavaScript。これだけは対策が必要ですが、既に次のバージョンのブラウザなら対策済みです。

なお現実に最も多く使われているブラウザであるChromeは1月23日のバージョン64で対応と、やや対応が遅れた状況です(現実に脆弱性が攻略されはじめたら緊急で対策するとは思いますが……)。

また、IEとEdgeについては、マイクロソフトのパッチを適用するためには、セキュリティソフト(アンチウイルスソフト)が対応している必要があります。この対応がない間は、Windows Updateで確認してもこのパッチは来ません。アンチウイルスマイクロソフト純正(Windows DefenderやMicrosoft Security Essentials)なら当然対応しているので更新しましょう。

レンタルサーバVPSや「クラウド」含む)は要注意

低価格なレンタルサーバ、ほとんどのVPS、「クラウド」の多くは、物理的な1組のCPUを複数の利用者で共用するため、これらの脆弱性を使うことで他の利用者の領域を盗み出せてしまいます。

共用部分がなくても、間接的に攻略が可能だと困りますので、チェックはしておきたいところ。

サービスの種類にもよりますが、利用者側での手順(OS更新など)が必要な場合もあるので、「自分が使っているサービス名 Meltdown」とかで要チェックです。

(※サービスのトップページには何も書いてないのに、meltdownつけて検索すると別ページでアナウンスがある、というケースもあるので、最初から検索した方が無難です)

Chrome拡張でまたおかしな更新。今回は暗号通貨マイニング

Chrome拡張、10万ユーザに暗号通貨マイニングをプッシュ」

www.bleepingcomputer.com

Chrome拡張「Archive Poster」(Tumbler用ツール)が、12月はじめの更新でCoinHive暗号通貨マイニングスクリプトを実行するようになりました。この挙動を示すのはバージョン4.4.3.994~4.4.3.998です。

この手の話は、しばしば拡張がオリジナルの作者から他人に譲渡(売却)されて、その先で改変されるというパターンを辿りますが、今回はそのような話はなさそうです。意図的なのか間違いなのかなど、一切不明です。

この件は多数のレビューに反映され、フォーラムにも投稿があったものの、google側は「拡張の開発者に連絡してください」と木で鼻をくくったような回答(ちなみにこの拡張は連絡先がなかったそうです)。

現在(12月30日)、同名の拡張は4.4.4.0となっており、タイトルには「[SAFE]」と入り、レビューは全部消えているようです。発行者名が違うこと、利用者数が100と非常に少ないことから、新規にアップされた同名のもの、と考えられます。

なお、次のghacks.netの記事によれば、従来の拡張は削除された模様。

Google、暗号通貨マイニングをする拡張"Archive Poster"をひっこめる」

http://https//www.ghacks.net/2017/12/30/google-pulls-crypto-mining-chrome-extension-archive-poster/

さらに次のpcmag.comの記事によれば、この拡張を出した会社から「乗っ取られた」というコメントがあったそうです。

Chrome拡張、密かに暗号通貨マイニングをするようハックされる」

uk.pcmag.com

Essence LabsはPCMagへのメールで次のように述べました。 「古くからのチームメンバーの1人で、本拡張の更新の責任者だった者のGoogleアカウントが、どういうわけか他のGoogleアカウントに乗っ取られました」

Chrome拡張は更新を止める手段は存在しないようです(Firefoxは個別に設定可能)。また、仮に更新を止める手段があったとしても、脆弱性対応の更新はすべきですから、どちらにせよ利用者が適切に判断できなければならない、ということになってしまいます。つまり、どちらにせよかなり難しい問題です。

1つの答えは、自分の入れた拡張に関するレビュースコアを日単位程度でチェックし、急激な変化があった場合には利用者に通知する、というものでしょうか(※こういうものがあるかは知らずに書いてます)。あとは、入れる拡張の数をなるだけ少なくして、管理しやすくすることも必要でしょう。

Eto.Formsの安定したGUI操作(GTK対策)

これは、C# Advent Calendar 2017への投稿でもあります。24日が未投稿のままだったのでいただいちゃいました。

Eto.FormsでGUIアプリケーションを書いていると、個人的な範囲だと、Windowsだと問題ないのにLinux(GTK)だと挙動(特に初期設定)がおかしい、という場面に割とあたります。Shownイベントに書いてもLoadCompleteイベントでもだめ、とか。

なので、力づくな対応策を考えてみました。「フォームが見えたら幅と高さが正の値になる」という前提で、それまでUITimerで待つというものです。とりあえず手元(Windows, Linux)では正常に動いてます。

(2017-12-30改訂:コードを少し整理しました。挙動はほぼ同様です)

public class MyEtoForm : Form
{
   #region ===== Prepared detection =====

    public bool IsPrepared
    {
        get { return _isPrepared; }
        set
        {
            if (value == _isPrepared) return;
            if (value == true)
            {
                Prepared?.Invoke(this, EventArgs.Empty);
                if (showCheckTimer.Started) { showCheckTimer.Stop(); }
            }
            _isPrepared = value;
        }
    }
    private bool _isPrepared = false;

    public event EventHandler<EventArgs> Prepared;

    UITimer showCheckTimer;
    int initPreparedCounter = 0;

    void InitPreparedDetection()
    {
        if (showCheckTimer == null) {
            showCheckTimer = new UITimer { Interval = 0.05 };
            showCheckTimer.Elapsed += (s, e) => { CheckPrepared(null,EventArgs.Empty); };
        }
        Shown += CheckPrepared;
    }

    void OnShown(object s, EventArgs e)
    {
        if (IsDisplayed)
        {
            IsPrepared = true;
        }
        else
        {
            if (showCheckTimer.Started == false)
            {
                initPreparedCounter = 0;
                showCheckTimer.Start();
            }
        }
    }

    void CheckPrepared(object s, EventArgs e)
    {
        if (IsDisplayed)
        {
            if (initPreparedCounter < 1)
            {
                initPreparedCounter++;
            }
            else
            {
                IsPrepared = true;
            }
        }
    }

    bool IsDisplayed
    {
        get { return (Width > 0 && Height > 0); }
    }

   #endregion

    public MyEtoForm()
    {
        InitPreparedDetection();
    }

}

このMyEtoFormを継承します。

  • GUIを操作する準備ができたか示すプロパティ IsPrepared
  • GUIを操作する準備ができたら発生するイベント Prepared (引数はただのEventArgs.Empty)

この2つがメンバに加わるので、ご自由にご利用ください。

なお、macOSでの動作は確認していません。申し訳ないです。

リトアニア、カスペルスキー製品の利用を一部業種で禁止

リトアニアカスペルスキーのソフトを重要なコンピュータ上で使うことを禁止」

www.reuters.com

リトアニアカスペルスキーアンチウイルス製品を禁止、サイバー諜報を懸念」

news.softpedia.com

米国がKaspersky製品を連邦政府で使うことを禁止しましたが、旧ソ連バルト三国の国の1つリトアニアが、重要インフラに使うコンピューターについて、同社製品の使用を禁止しました。

具体的には、エネルギー関連や金融、運輸といた業界が対象で、米国とは違って民間企業も対象です(米国は連邦政府のみ禁止)。またリトアニア政府機関内では、サイバーセキュリティ庁により機密情報を扱わないことが確認されたコンピュータ以外は、やはり禁止となります。

Kaspersky側はこれに反発、対抗措置を検討するとロイターにコメントしています。

アルゼンチンのスターバックス、WiFi接続でマイニング

スターバックスWiFi、客のノートPCを乗っ取り暗号通貨のマイニング」

motherboard.vice.com

Webページにスクリプトをしかけて訪問者に暗号通貨のマイニングをさせる話は多数出ていますが、ブエノスアイレススターバックスで店のWiFiに接続したらマイニングさせられたそうです(なお、使われたスクリプトはCoinHiveなので、掘る対象はBitCoinではなくMoneroとみられます)。

これに気づいた人がツイートしたところ、後でスターバックス公式から問題のスクリプトは除去した旨の返答がありました。また、MotherBoard(元記事のサイト)へのコメントとして、このスクリプトWiFi接続プロバイダが行っていたもので、店舗とは無関係であり、また当該店舗以外では行われていなかった、と述べています。

次の記事によれば公衆WiFiは提供者に関わらず気軽に使う人が多いようですが、まあ少しは気にした方がいいのかもしれません。もっとも、今回の話のように正規の提供者が何か仕込んでいる場合もあるのは困りものですが。

mmdlabo.jp

14億のパスワードがまとまった形で拡散中

「14億件もの流出パスワード、平文としてネットで広まる」

thehackernews.com

新たなデータ流出などではないのですが、Pastebinに貼り付けられたものやBitCoin関連、LinkedIn、MySpaceなどといった過去の流出情報を統合したデータ集が拡散しています。最初はダークウェブ限定だったものの、半月ほど前にRedditにリンクを張り付けた者がおり、さらなる拡散を呼んでいる状態。

セキュリティ研究者が調べた範囲では、結構な数のデータが正しいものだったようで、「使いでのある」データと言えてしまうようです。

なお、パスワードを集計すると、例によってトップ層は"123456"、"123456789"、"qwerty"、"password"などおなじみのものが並びます。

とりあえず、上記記事末尾付近にあるようなトップ層のパスワードは選ばないことと、パスワードはそれぞれ別のものを使うことは、徹底した方がいいでしょう。

Microsoft、WordのDDE機能をデフォルト停止する

マイクロソフト、WordのDDE機能を停止、マルウェアの攻撃を抑えるため」

www.bleepingcomputer.com

DDE (Dynamic Data Exchange)機能を使って簡単に外部プログラムを起動できる(極めて古くからの)仕様が10月に判明し、マルウェアにさっそく使われていました。

[mokake.hatenablog.com/entry/2017/10/31/083644:embed:cite]

DDEによる起動では、確認ダイアログは出るものの「リンクを更新しますか?」といった内容なので、OKしてしまうのは仕方ないと思います。

マイクロソフトは当初、「これは仕様だから対策しない」と言ってましたが、マルウェアの「活用」を受けて、12月の定例パッチで対策しました。対象にはWord 2003といった非常に古いものも含まれるあたり、かなり広範に使われていたことが分かります。

このパッチで、WordのDDE機能はデフォルトでOFFになりました。なお新規レジストリ項目(元記事参照)により制御可能です。

ちなみにExcelについては、下記ページに情報があります。ただ、肝心な部分が非常に見つけづらいのですが。

https://technet.microsoft.com/ja-jp/library/security/4053440.aspxtechnet.microsoft.com

次の設定を行います。[ファイル] > [オプション] > [セキュリティ センター] > [セキュリティ センターの設定] > [外部コンテンツ] > [ブック リンクのセキュリティ設定] = [ブック リンクの自動更新を無効にする]

Outlookについては、あいにくレジストリ設定しかないようです。この辺、悪く言えばまだまだ狙い放題ですね。