「この図に出てくるすべての技術を廃止すれば、コンピュータセキュリティ問題の約80%は解決するだろう」
(twitter.com/matthew_d_green)- OOXML、RTF、OLE、CHM、VBScript など多数のレガシーな Windows ファイル形式と機能を連鎖的に悪用し、最終的に PEAPOD Payload に到達する多段階攻撃フローの図解
- リモートでホストされた OOXML が埋め込みの afchunk.rtf を読み込み、その中の OLE Objects が外部リソース接続と認証情報流出の起点になる
- 攻撃過程で NTLM Credentials が攻撃者の制御する SMB Server に送信され、
.search-msファイルと%LocalAppData%に書き込まれる ZIP を経由して悪性ファイルが配置される経路 - 図中のすべての技術を廃止すればセキュリティ問題の約80%が解消され、Windows は事実上「何にでも対応するマルウェア互換レイヤー」
- Microsoft が正当な事業上の理由からレガシー技術を削除できない一方で、このスタック上ではいかなる 高価値システム も決して安全ではあり得ない、という両立可能な診断
第1段階 — 文書への侵入と認証情報の流出
- リモートでホストされた OOXML 文書が XML を通じて埋め込まれた afchunk.rtf をロード
- afchunk.rtf 内部に2つの OLE Objects が存在し、外部接続と認証情報窃取の分岐点として機能
- OLE Objects が
/MSHTML_C7/start.xmlリンクに接続 - OLE Objects が NTLM Credentials を引き出し、攻撃者の制御する SMB Server に送信
- OLE Objects が
file001.urlも同じ SMB Server を指す
第2段階 — XSLT と iframe 経由
/MSHTML_C7/start.xmlが XSLT format のstart.xmlにつながる- start.xml(XSLT)が RFile.asp に接続
- RFile.asp が2つの iframes を生成し、この iframe が再び攻撃者の制御する SMB Server に接続
第3段階 — SMB Server によるファイル配信
- SMB Server が
[somehex]_file001.htmを配信 [somehex]_file001.htmが .search-ms ファイル につながり、そのファイルが%LocalAppData%に書き込まれる ZIP を引き起こす[somehex]_file001.htmはredir_obj.htmにも分岐し、redir_obj.htm が1111.htmをロード(loads)する
第4段階 — ZIP の展開とペイロード実行
%LocalAppData%に書き込まれた ZIP 内に2222.chmと1111.htmが含まれる2222.chmがfile1.mhtをロード(loads)するfile1.mht→fileH.htm→ Downloader VBScript につながる- Downloader VBScript が最終的に PEAPOD Payload を実行
核心的な批判 — レガシー Windows 技術とセキュリティ
- 図に登場するすべての技術を廃止すれば、コンピュータセキュリティ問題の約80%が解決するだろうという主張
- Windows が「何にでも対応するマルウェア互換レイヤー(malware compatibility layer)」の役割を果たしているという表現
- Microsoft が正当な事業上の理由からこのレガシー技術を削除できないことと、このスタック上にある限り、どんな高価値システムも安全ではあり得ないことは同時に成り立つ
- 工場の「エアギャップ(airgapped)」PLC システム の構成方式を見た経験を根拠に、物理的被害を引き起こす kinetic cyberwarfare が現実ではないことに安堵
1件のコメント
Hacker Newsの意見
あるプラットフォームが多目的に強力であるほど、マルウェアは生まれやすい
コンシューマー向けマルウェアが Linux デスクトップをあまり狙わないのは、シェアが3%程度だからであり、はるかに多くのユーザーに届く Windows デスクトップを狙うほうが得だからだ
もう1つの選択肢は、コンピューターを実質的に高級携帯電話、つまりロックされたメディア消費デバイスにして、すべてをサンドボックスに入れ、「悪い」ことをする権限をなくすことだけだ
もちろん追跡は例外で、OS を作る会社は広告も売っているからだ
完璧になったわけではないが、結局のところ問題は人気そのものではなく、ソフトウェアの安全でない設計にあり、まだ改善の余地は大きい
macOS はこの方向に進んでおり、Qubes はより急進的な例だ
デスクトップコンピューティングの未来は、すべてがそれぞれの仮想マシンで動く方向になる可能性が高い
Linux は Android という形で携帯電話に非常に広く使われており、携帯電話はデスクトップと同じくらい、今ではむしろより魅力的な標的だ
モバイルマルウェアは存在するが、はるかにまれで、入手も難しい
Linux でのソフトウェアのインストール方法は Windows と完全に異なり、バイナリの塊を実行させるにはかなり大きな努力が必要だ
特定のデスクトップ向けコンパイル済みバイナリよりも、コンテナで配布するほうが簡単だと考えられるほどだ
デスクトップを超えて見れば、サーバーの世界には Linux が至るところにあり、サーバーソフトウェアを動かす最も一般的な OS なので、ハッカーにとって非常に価値の高い標的だ
銀行サーバーを掌握する以上に魅力的なことはないだろう
Linux を Windows より本質的に安全にしている要素がまったくないと言うのは、現実味に欠ける
Unix 系は最初からマルチユーザーを念頭に設計されていたため、ユーザー権限は何十年にもわたって一般的な流れに溶け込んでおり、これだけでも root 権限のルートキットやワームを成功させにくくする大きなセキュリティ層になっている
昔の Windows 9x〜XP は事実上全員に管理者権限を与えており、system32 DLL を書いたり置き換えたりするのは簡単だった
Linux を攻撃するには、ユーザーをだまして昇格した権限で何かを実行させるか、root 権限で動くソフトウェアの脆弱性を見つける必要がある
昔の Windows を攻撃するには、ユーザーに自分のソフトウェアを実行させるだけでよかった
モバイルでは Android、つまり Linux が最大で、エンドユーザー基準では Windows よりも大きい
それなのに、Windows ほど Android マルウェアへの不満は多くない
Microsoft が Windows セキュリティに無能だとは思わないが、歴史的に問題を生んだ設計上の決定はある
win9x には i386 でも可能だったプロセス分離がなく、人々は NT カーネルの WinXP でも従来のプログラムがそのまま動き続けることを期待していた
Windows における集中型ソフトウェア配布は、1998年から存在した apt と比べると比較的新しく、拡張子の非表示のような小さな要素でさえ、ChromeOS、iOS、Android、macOS、GNU/Linux よりも Windows を狙いやすい標的にしている
「Linux が Windows ほど人気になればマルウェア開発者が狙うだろう」という話は覚えているが、スマート TV、インフォテインメント、サーバー、スーパーコンピューター、組み込みシステム、モバイル、特に Android まで見れば、Linux はずっと前から Windows より大きかった
デスクトップの低シェアがマルウェアの少なさの主な理由だとは思わない
https://gs.statcounter.com/os-market-share#monthly-202206-20...
Linux はパッケージが非常に多いため攻撃面は広いが、中核部分は非常にオープンで、多くの関心と目が集まる
脆弱性はたいてい素早くパッチされ、Linux の各バージョンと GNU パッケージは事実上インターネット全体を動かしているので、侵入する動機も十分にある
また Linux では、プロセスがやってはいけないことをしているかをはるかに把握しやすく、内部をのぞいて何が起きているのか確認するのも容易だ
Windowsで依然として最大のセキュリティ問題は、拡張子の既定非表示と実行権限ビットの欠如の組み合わせである
攻撃者が Word 文書や見慣れたファイル形式のアイコンを持つ悪意ある実行ファイルを作るのがあまりにも容易になり、一般ユーザーには危険を見抜く手段が事実上ない
実行権限ビットがあれば、怪しい場所から来た exe が権限付与なしにそのまま実行されることはないはずだ
拡張子が既定で表示されていれば、少し知識のあるユーザーなら危険に気づける
Windows はすでに通知を大量に出しているのだから、最初のダブルクリック時に「これは実行ファイルなので注意」と警告するだけでも大きな助けになるだろう
ブラウザから受け取ったバイナリには「潜在的に安全ではない」という拡張属性が付き、最初に開くとき警告が出るが、方向性が逆である
すべてのバイナリは「ユーザーが危険を認識した」という属性が付くまで警告されるべきだ
そのため、マルウェア配布では実行ファイルをばらまくために、攻撃者が制御するインターネット上の SMB サーバーのような面倒な迂回経路を使わなければならない
また、Windows ACL にはユーザー、グループ、ポリシー関連オブジェクトごとの実行権限がある
読み取り可能な実行ファイルでは既定で有効になっているが、実行ファイルを実行不能にすること自体には何の制約もない
しかも、ほぼすべての実行ファイルは既定で「コンピューターを感染させ、ペットを殺し、子どもを悪魔に捧げようとしている」レベルの巨大な警告を表示する
無効化はできるが、ほとんどの場合は有効だ
そのため攻撃者は、RTF OLE 埋め込みや CHM/MHT ラッパーのような周辺的なケースの副作用を利用する
このグラフの半分は、企業環境向けに設定された macOS や Linux でも通用しうる
その大半はブラウザーやオフィスアプリケーションが本来の仕事をしているだけだ
最後にサンドボックスを脱出し、スクリプトが実際のペイロードをダウンロードする終盤に至るまで、OS の文脈で本当に実行可能なコードは存在しないという点が重要だ
ユーザーが手動でブロック解除しなければならない
この機能が無効にされている可能性はある
インターネットからダウンロードしたほぼすべてのものに許可を与えなければならず面倒なため、多くの人が無効化してしまう
既定のブラウザーはダウンロード前に警告し、SmartScreen は未検証アプリの実行可否を尋ね、UAC が最後にもう一度確認する
実際、多くの場所ではユーザープロファイル全体で実行を禁止するよう設定している
最近の Windows では、マルウェアは最悪の要素ですらない
Windows は事実上、ダウンロード可能なテレメトリーエンジンであり、ログイン画面付きのスパイウェア・ゴーカートだ
ショッピングモールの売り込み店員のように振る舞い、監視で選び出した各種商品や不要なものを売りつけていないときは、新しいブラウザーなど「必要ない」のに必要だと、有害な元恋人のようにガスライティングしてくる
アップグレード時には、ハードウェアが対応していることを祈るしかない
Redmond は、まだ十分動く 5 年物の PC が「古い」と説得することに、そしてゴーストタウンのようなアプリストアや少額課金の遊び場を見ろと思い出させることに、同じ尽きることのないエネルギーを注いでいる
どうにか Chrome をインストールしても、Microsoft がマーケティング部門承認外の好みを検知した瞬間、たいていのアプリはその既定設定を長く覚えていない
Windows は幽霊祭りのゾンビ道化師のようにブースの間をよろめき歩き、存在そのもので人を不快にさせたあと、また企業アメリカのサーカステントへ戻っていく
いまや事実上、そこだけが Windows を歓迎する観客の残っている場所なのかもしれない
デスクトップは、安っぽい弁護士広告と落書きが至る所に貼られた Subway の駅のように感じられ、本当にうんざりした
あまりにも多くのボタン操作の組み合わせが、必要でもない別の Microsoft 製品を使えというポップアップにつながるのには驚く
ここまで悪化したとは信じられない
平均的な消費者向けのWindows の代替が必要だ
これは一般的な脱線だ
この記事はコンピューターセキュリティに関するものであり、Windows のユーザー敵対的な体験とは関係がない
Windows はあらゆるものに対するマルウェア互換レイヤーである
Windows NT とそれ以降のすべての Windows は VMS 由来のセキュリティ制御を備えており、ほぼどの OS よりも多くのセキュリティ制御を持っている
しかし、摩擦を減らして採用を増やすため、その大半は無効化または弱体化されている
Linux でもセキュリティ制御は既定で弱められているが、市場参入が遅く、Windows ほどクリックするだけで済む環境ではなかったため、初期には非技術系ユーザーにとって摩擦がより大きかった
問題はセキュリティ制御だけではない
Windows と Linux はどちらも既定でメモリのオーバーコミットを許可しており、安定性には影響しうるが、開発者の採用には有利だ
こうしたものはすべて強化可能だが、既定の動作を前提に書かれたアプリケーションを壊すリスクがある
他の人も言うように、Windows は採用率と利用率が最も高いため、既定の標的になる
いつか Linux が先行すれば、マルウェア作者の関心もさらに高まるだろう
udev、binfmt マウント、eBPF、systemd、そしてそれらが現在結び付いている方式には、まだ未探索の攻撃ベクトルが多い
Linux ゲーム環境が今の勢いで改善し続ければ、その時は思ったより早く来るかもしれない
ゲームプラットフォームは既定動作前提でコーディングされたり、昇格権限を当てにしたりすることが多いため、OS の強化を選択肢から外してしまうし、税務、銀行、メール、ソーシャルメディアを使う機器と分けるために別のゲーム専用機を買う人も多くはない
最初は、このツイートは C、C++ のようなメモリ安全でない言語 とウェブブラウザの JIT コンパイラについての話だと思っていた
「この図に出てくるすべての技術を廃止すれば、コンピュータセキュリティの問題は 80% ほど解決する」という内容だったからだ
Chromium は「重大度の高いセキュリティバグの約 70% はメモリ安全性の問題、つまり C/C++ のポインタミスであり、その半分は use-after-free バグだ」と述べている
https://www.chromium.org/Home/chromium-security/memory-safet...
Microsoft も「毎年 CVE が割り当てられる脆弱性の約 70% は、依然としてメモリ安全性の問題だ」としている
https://msrc.microsoft.com/blog/2019/07/a-proactive-approach...
HN のタイトルも原文を編集したタイトルだ
記憶が正しければ、Rust ベースの DLL 代替を初めてテスト中で、半分でも移行するにはかなり時間がかかるかもしれない
ほとんどのマルウェアは、論理的に OS 内の一般的な機能を悪用している
「コンピュータセキュリティが 80% ほど解決する」という話ではないと思う
別の 攻撃ベクター が使われるようになるだろうし、攻撃経路の大半を防げば、権限がほとんどなく大規模なトラッキングが組み込まれたスマートフォン OS に行き着くだろう
それでもマルウェアは依然としてあふれる可能性がある
https://www.bleepingcomputer.com/news/security/apps-with-15m...
これらすべての根本原因は 後方互換性 であり、本当に扱いにくい
理想的な世界なら、互換性を壊さなければならないたびに膨大な文書を提供し、移行をできる限り painless にするだろう
だが、放棄されたソフトウェアというちょっとした問題がある
いまや、どう動いているのか誰にもわからないソフトウェアが重要業務に必要になっているケースは驚くほど多い
企業や公共に近い機関が、誰も積極的に保守しておらずサポート契約もまったくない独自ソフトウェアで運用することを違法にすべきだろうか
MHTML は実際の問題を解決しているし、VBScript は口調が違うだけの bash のようなものだ
OLE 埋め込みは、いまでは残念ながらあまり使われていないが、優れたアイデアだ
奇妙な表ハックを使わずにテキスト文書の中へスプレッドシートを入れられるのは良い発想だ
VBA マクロはどんなスタートアップよりも多くの企業を動かしている
CHM ヘルプファイルは本当に素晴らしく、実際に何かを探すには Google に頼るしかないひどいウェブサイトに置き換えられてしまったのが残念だ
複雑な検索結果を保存するだけでなく共有できるというのも良いアイデアだったが、十分に宣伝されなかった
「昨年 8 月から 9 月の間に自分のカメラで撮った写真」を見つけられるようにファイルを送る機能は、独自の写真アルバムを送らずに済むので良いアイデアだ
独自依存やひどいビジネス慣行をどう言おうと、Microsoft には競合 OS が何年も、あるいは何十年も後になってようやく追随した優れたアイデアがあった
競合製品の大半では、今でも Microsoft Office のように簡単かつ効果的に文書を埋め込むことはできない
これらの機能は捨てられたのではなく、世界中の何百万人もの人が使っている
Microsoft は実行可能コードをより適切に検出できるよう、ツール設定を改善すべきだ
連鎖の末端にある VBScript は実行されるべきではなかった
ほかの「レガシー」ツールの大半は、マルウェアの可能性のために消えてしまうなら惜しいだろう
VM、DOSBox、Wine などがある
約 10 年前、Home Depot のすべての店舗端末で動く重要なプロセスが Batchman というプログラムに依存していることを知った
Batchman は 1989 年の PC Magazine に載ったタイピング入力ユーティリティだった
互換性を壊せば、誰かが何十年も静かに動いていたそのプロセスを作り直さなければならない
一緒に働いていた HD チームの誰もそのコードを見たことがなく、Batchman が何なのか、何をするのかも知らなかった
最も人気のあるスタックは、常にマルウェアの好む標的になる
別のプラットフォームが獲物の 90% を占めるなら、そのプラットフォームが圧倒的にマルウェア被害者にならないと本当に思うのか疑問だ
参考までに、80 年代に 最前線のマルウェア除去担当者 として働いていたが、当時の主な標的は大学のコンピュータ室にある Apple Mac だった
そのとき除去したもので、最も巧妙だったマルウェアは何だったのか
それは「歴史を廃棄すれば問題はずっと減る」と言っているのに近くないか
だが、歴史 は実際に存在する
それに、Twitter のリンクをクリックするたびに「問題が発生しました」と表示されて再読み込みしなければならないのだが、これが現代の Twitter なのか
だから現代的という基準では、当てはまるとも言えるし当てはまらないとも言える
https://nitter.net/matthew_d_green/status/167913542680678400...