暗号通貨のハードウェアウォレットLedgerの脆弱性

Ledgerのセキュリティモデルを破る

saleemrashid.com

耐タンパ性を謳う暗号通貨ウォレット、15歳のハッカーにより裏口を開けられる

arstechnica.com

PCに接続して暗号通貨を安全に保管する、と謳うLedgerのハードウェアウォレットの脆弱性についての記事です。冒頭は、発見者本人が書いた記事です。

Ledgerデバイスに関する注意点

  • 購入は極力本家、または強い信頼のおける販売店から。
  • ファームウェア更新があれば、必ず適用。
  • Ledgerデバイスは常に身に着ける。

基本的には、デバイスが悪意ある者に直接触れられなければ安全ですので、管理が大事です。

経緯

発見者はLedger社に2017年11月に脆弱性について連絡し、攻略用ソースコードも提供しました。

これを受けてLedger社は、先日Nano S製品向けファームウェア1.4.1を公開しました。

しかし、その後Ledger社のCEOがReddit上で行った説明が不正確として、脆弱性の発見者が自ら脆弱性について説明したのが現在です。

Ledger Nano S の構成

Nano Sは、ST社のST31H320「セキュア・エレメント」を基盤としています。しかし、ST31H320はディスプレイもUSBもサポートしません。代わりにNano Sは同じST社の32bitマイコンSTM32F042K6を搭載しています。これが全体のコントローラとなっている、というわけです。

冒頭記事の上から3分の1程度に簡単なブロック図が載っていますが、ここで着目すべきは、(ST31H320の能力から当然ですが)USBもボタンもディスプレイも、あくまでマイコンにつながっており、セキュア・エレメントは、そのマイコンにだけつながっているという点です。

マイコンは特にセキュアなわけではない汎用型で、しかもJTAGピンが背面に見える状況です。

実は、セキュア・エレメントの役割は、マイコン側のプログラムが真正のものかどうか判定することだけなのだそうです。これは「利用者がPCにNano Sを挿した時、マイコンが起動時シーケンスとして書き換え可能領域のバイナリをセキュア・エレメントに送り、真正性を確認する」というプロセスで行われます(詳細は冒頭記事の中央付近にある図を参照)。

脆弱性

さて、セキュア・エレメントで判定する際は、マイコン側からデータを送るわけです。

だから、マイコンファームウェアを書き換えて、元のファームウェアと同じデータだけ送れば、見破ることは(セキュア・エレメントにも利用者にも)不可能です。

Ledgerは(発見者の推測では)これに対して、マイコンのフラッシュ容量が限られていることから、本来のファームウェアと悪意あるコードの両方は搭載できないだろう、とみなしたようです。ちなみに、このためにフラッシュの空き領域にはランダムデータが書き込まれているそうです。

しかし、この発見者は見事に裏をかきました。

  • このマイコンのソフトウェアは、ブートローダーとファームウェアから構成されます。前者が最初に起動し、本来のアプリケーションは後者に書かれています。
  • 製品開発時に双方をビルドする時、コンパイラは「初期化」や「大きな数の演算」のような共通する関数をバイナリに組み込んでしまいます(ちなみに、実際はmemcpyとmemsetと除算関数だった模様)。
  • つまり、ファームウェア側の被る関数の領域を悪意あるコードに置き換えることができます。
  • セキュア・エレメントに対しては、ファームウェアの改造した箇所は、ブートローダーのコードを送れば真正のものと騙せます。
  • もちろんファームウェアが改造箇所の関数を必要とした場合は、ファームウェアの該当する関数を呼び出します。
  • ブートローダーを温存しているので、専用のハードウェアが必要なJTAGではなく、USB経由で、しかもLedger自身が公開しているファームウェア書き換えツールで簡単かつ安全に書き換えが可能です。

ファームウェア更新版と、発見者の考える対策

※対策は実施されていません。

  • 重複する関数を除去し、必要ならブートローダー側の関数を呼ぶように変更した。
    • 重複する関数以外にも、コードを埋め込む手段はある。
  • セキュア・エレメントでのチェック時に、時間制限を追加した(既存コードを圧縮した場合の展開や、USBからのデータ供給に対応する模様)。
    • セキュア・エレメントよりもマイコンの方が高速に動作するので、小規模な処理なら挟めるはず。

発見者は15歳らしい

自称15歳、という情報しかありませんが。

解析やコードの埋め込みに加えて、冒頭の記事の文章も、ちょっと普通の15歳ではありえない水準です。両方というのは、本当なら実にすごいですね。

Slingshot APTに関し「米国の対テロ作戦」との証言

次の件の続報です。

mokake.hatenablog.com

Kasperskyの「Slingshot」報告が、ISISに焦点を当てた諜報活動にダメージ

www.cyberscoop.com

米関係者「Kasperskyの"Slingshot"報告が反テロ作戦にダメージを与えた」

arstechnica.com

Slingshotは、Kasperskyが先日報告した、非常に高度なマルウェア群からなるAPTで、この手のものとしては珍しく、活動領域がアフリカ中心でした。

これについて、cyberscoopに、米国の諜報関係者(現任および「元」)が語ったとするところによると、Slingshotは米国がISISやアルカイダの内部情報を得るために進めていた諜報活動の一環だったとか。

Slingshotは、しばしばネットカフェのPCに、地元の米国協力者によりインストールされていたそうです(ISISなどの「標的」もまた、特定を避けるためにこれらのPCを用いていたとか)。

今回の報告により、作戦の一部は抹消せざるを得ないとして、匿名の関係者はKasperskyを強く非難しています。もっとも、セキュリティベンダーとしてのKasperskyマルウェアの調査や報告を行うのは当然ですし、既に米国市場から事実上追われたKasperskyの立場やロシアの動向などを考えると、どこまで知っていたのか推測するのは困難でしょう。

なお、この記事の情報源は「U.S. intelligent officials」としかなく、クロスチェックもできないため、信頼性の担保は不可能です。

わずか数時間で40万台以上のPCにマルウェアが拡散

「汚染されたP2Pアプリ、Dofoilコインマイナーの急増を起爆」

cloudblogs.microsoft.com

トロイの木馬化したBitTorrentソフト更新、先週40万台のPCを乗っ取る」

thehackernews.com

BitTorrentクライアントツールMediaGetのアップデートに介入して、マルウェアDofoilが挿入される騒ぎが3月6日にありました。わずか数時間で40万台以上に拡散した模様です。

このマルウェアの目的は暗号通貨Electroneumのマイニングです。ただし、C&Cサーバにアクセスすることで、他の機能を入れることも可能だったようです(ただ、Windows Defenderが急激な拡散を検出して食い止めた模様です)。

主な被害者はロシア、トルコ、ウクライナの人々でした。

ちなみに、今回のマルウェア入りアップデータは署名されていたそうです。

アップデータの入れ替えについては、調査にあたったマイクロソフト関係者によれば、2月中旬にMediaGetの配信サーバに侵入があったとのこと。その後、約2週間をかけてマルウェア入りアプリケーションの浸透をはかり、十分とみた時点で発動させたようです。

AMDの多数のCPU、APUに脆弱性。公開方法へは批判多数

f:id:mokake:20180315181649p:plain

AMDのチップに多数の欠陥、悪意あるハックの影響が格段に悪化」

arstechnica.com

「13件のクリティカルな欠陥がAMDRyzen、EPYCプロセッサで見つかる」

thehackernews.com

AMDのEPYCやRyzenシリーズのプロセッサ(AMD Platform Security Processor)には、x86-64とは別にARMコアが搭載され、独自の処理を実行することができます。

ここに任意のプログラムを送り込むことで、実質排除や検出が不可能なマルウェアを常駐できる一連の脆弱性が発見されました。

この脆弱性群は4つあります(脆弱性項目としては13件)。

  • RYZENFALL:Ryzenシリーズの脆弱性で、通常のプロセッサからセキュア領域に任意のコードを送り込み、実行させることが可能
  • MASTERKEY:EPYCとRyzen全てで、ブート時に行われるハードウェアによるBIOSなどのチェックを回避できる脆弱性で、他の脆弱性で送り込んだ悪意あるコードを隠蔽し続けることが可能
  • FALLOUT:EPYC(サーバ向けプロセッサ)のセキュア・プロセッサのブートローダ脆弱性で、悪用により保護領域のメモリの読み書きが可能
  • CHIMERA:RyzenRyzen ProのPromontoryチップセット(のファームウェアとASIC)にバックドアが存在、任意コードの実行や、各種ネットワークデータの読み書きなどが可能

これらの脆弱性は、攻撃に管理者権限が必要です。一般論として管理者権限が奪われている場合、既に乗っ取られた状態です。

ただし、これらの脆弱性によるマルウェアはプロセッサの奥底に埋め込まれ、OSを入れ直してもBIOSを書き換えても削除ができません。事実上、この攻撃を受けたプロセッサは再利用が困難となります。

もっとも、これまでもOS入れ直しなどを超えて残る攻撃手法はありましたし、そもそも数年間見つかることなく行動できた実績もありますので、今回の件が特別すごい、ということはありません。

一般論としては「そもそも管理者権限をとられるところまで至ってはいけない」という話です。

脆弱性は本物という外部コメントあり

本件は、専用ドメイン(amdflaws.com)までとって公開されていますが、そこには技術的詳細はありません。

しかし、発見者から個別に技術的詳細の説明を受けたセキュリティ研究者Dan Guido氏などは、脆弱性は本物であると述べています。

公開に関する問題

発見者(イスラエルCTS)は、この脆弱性について、「一般公開の前日」にAMDに連絡しています。どう考えても、1日では再現できるかどうかでしょう。

また、CTSの発表PDFには次のように書かれています。

we may have, either directly or indirectly, an economic interest in the performance of the securities of the companies whose products are the subject of our reports
(我々(CTS)は、直接または間接的に、当社のレポートの対象となる企業の株価に対して、金銭的な関心をもつ場合があります)

ちなみに実際の株価は、発表後に下落し、その後反発、再び下がって、今は安定しているようです。

なお、今回の発表に関しては、Viceroy Researchという会社から即座に株価に関連する報告が出ており、これも含めて多数の批判が集まっています。

blog.livedoor.jp

いずれにせよ、この公開方法は、自ら悪用したりクラッカーなどに販売するといった方法とは違うものの、セキュリティ研究が恫喝と攻撃ということになりかねず、肯定するわけにはいかないでしょう。

なお、AMDのセキュア・プロセッサについては、Wikipedia英語版のページにもあるように、かえって危険になりかねない、という指摘が2013年には既にあったことは付け加えておきたいと思います。

StackOverflowの開発者アンケート(2018年版)

ソフトウェア開発者なら、ほぼ確実にお世話になっているサイトStack Overflowの2018年アンケート結果が公開されました。

insights.stackoverflow.com

個人的にはSOのアンケート結果をちゃんと見たのが初めてで興味深かったので、取り上げてみたいと思います。

ただし、あくまで「個人的に気になった部分」だけなので、言及すらしてない項目があります。ちゃんと知りたい方は、ぜひ元記事へ(英語だけど調査結果を読むだけなら困らないと思います)。

なお、見出しのカッコ内は元記事の項目名なので、元データを調べたい時にページ内検索用にご利用ください。

続きを読む

中国CNNVD、脆弱性情報データベースを書き換えていることが判明

「中国、公的脆弱性データを改変。国家安全部による影響の隠蔽のため」

www.recordedfuture.com

以前からCNNVD(中国の脆弱性情報データベース)については、脆弱性によって公開タイミングが違うことが指摘されていました。

internet.watch.impress.co.jp

この調査元であるRecorded Futureによる続報が出ました。要するに「CNNVDは脆弱性情報の公開日付を改変している」というものです。

前回、MSS(国家安全部)が脆弱性情報の公開について管轄し、有用な項目はあえて公開を遅らせて利用しているのでは、と指摘していましたが、今回の公開日付改変は、それを裏付けるものとしています。

米国のNVDは、こういったことは(直接には)ないものの、システム的に公開があまり早くないことは前回の報告で言われていたところです。実務では、こういった国家レベルのデータベースは後追いであり、他の情報源を日常的に使う必要がある、ということでしょう。

きわめて高レベルなAPT「Slingshot」が報告される

Slingshot APTのFAQ(よくある質問)

securelist.com

Kasperskyは、高度なマルウェア群による攻撃(APT)を「Slingshot」と名付け、その詳細を発表しました(冒頭記事の末尾に25ページの報告書へのリンクがあります)。

Slingshotは、少なくとも2012年から活動していたとみられます。また、SauronReginといったものと並ぶ非常に洗練されたソフトウェアが使われています。文字列を全て暗号化して保存したり、ハードディスクの未使用領域に暗号化ファイルシステムを作るなど、手間もかかっています。

Slingshotの目的は情報窃取です。侵入経路としてはWindows PCや、ラトビアMicroTik社のルータ(または、その管理ツール)などが使われた模様です。また侵入対象は西アジアやアフリカ(特にケニアとイエメン)の、主に個人(ただし一部は組織)というのが意外なポイントです。

複雑さや洗練具合、活動内容などから国家(あるいは同等水準の組織)による可能性が高いものの、それ以上の推測は困難な模様です。