メモリ整合性ときいてピンとくる人はあまり居ないでしょう。
字を見れば意味はなんとなく分かりそうだけど、結局何がしたいのか分からない。
この機能自体はWindows10の頃から有りますし、それほど際立ったものではありません。
しかし、これがあれば、データを安全に使うことが、ちょっとは楽になる。
そういう物です。
では、概説。
メモリ整合性はコア分離に並ぶ、windowsのセキュリティ機能の一つです。
「コア分離」とは、Windowsのカーネルと呼ばれる部分。
(今も以前もカーネルと呼ばれるのに、いまはコアとも呼ぶのでしょうか?)
Windowsの一番大事な部分とでも考えて頂ければOKです。
そこが、論理的に隔離された場所に置かれることになります。
これは、CPUに追加された機能「仮想化」というもので実現されています。
OSもアプリケーションも仮想化された論理的な別空間に配置されることで、お互いにアクセスできない様にするための機能です。
そして、メモリ整合性。
これはコア分離をより安全に、確度高く行うためにあります。
「確実に」と言えない所が、まだまだな感じですが?
色々な意味で、Windowsはより堅牢になっていくという事です。
で、Windowsを以前からアップグレードし続けてきた人にとっては、
かなりの障壁があります
ドライバーと呼ばれる、OS以外の物をシステムに組み込むためのソフトウェアが
OSのかなり近くで実行されるため、カーネルに影響を与えやすいと言う問題が有るため
ドライバーがカーネルに影響を与えにくくなる様に、その構造が変更されたのです。
(かなり以前ですけどね)
なので、それに対応していないドライバーが導入されていると、
「メモリ整合性が実行できない」という状況に陥ります。
影響を受けるのは、ドライバーその物であったり、
ドライバーの一部として導入された、サービスで有ったりします。
あたしの場合、はいかの5つです
1.ASIO64.sys
ASIOと言うと、音声のドライバかと思う人も居るかもしれませんが?
Asus IOですね、マザーボードメーカーがマザーボードの管理をするために導入する
AI Suiteとか言うものです。
因みに、現在、このファイルは存在しません。
有ったとしても、ASIO.sysで有ったりします。
因みに、あたしのPCに導入されていたのは13/6/27のタイムスタンプの物で
ものすごく古いものです。
2.ftdibus.sys
知っている人は知っているUSB関連のドライバフィルターです。
良く分からないのですが、当時のUSBのドライバか?装置が、かなり挙動がおかしいのがあったらしく
Windowsをバージョンアップするときに強制的に導入されて、USBが不安定になるのを防いでいたらしいです。
そもそもXpの頃らしいですが? 良くは分かりません。
タイムスタンプは2014/8/26
3.ksaud.sys
CreativeのUSBのサウンドカードを挿すと導入される物です。
タイムスタンプは15/4/27で、これも古いものです。
4.vaud_wdm.sys
良く分からないのですが、これもSound関連みたいですね。
e2esoftの物です。
タイムスタンプは20/7/21と結構新しいものですが、対応していません
5.tib.sys
acronisのバックアップツールですね。
それの、tib(バックアップしたファイル)を読み込むためのものです。
現在は、TIB Mounter Monitorに変わっていて、おそらく最新版のAcronis Cyber Protect Homeにすると入るものです。
旧版のAcronis True Imageを使っているとTIBの方が導入されます。
あたしは、旧版からバージョンアップをしたため、TIBげ消されていなかったと思われます。
ということです。
ドライバも、登録していなければ実行されませんので、ファイルを消すとか言う危険なことを行わなくても、
ドライバをアンインストールすれば問題ないのですが・・・?
問題は、いつ何処で導入されたか分からない者達です。
あたしで言うのであれば、e2esoftのvaud_wdm.sysですね?
バージョンアップ時にwindowsに強制的に入れられるらしいftdibusもそうですね。
いつの間にか入れられていて、どうすれば良いのか判らない。
半ば諦めていたのですが?
実は?かどうかは分かりませんが、デバイスマネージャもかなり進化をしていますよね。
デバイスマネージャを起動して「表示」を「ドライバー(種類別)」にすると、
インストール時に利用したinfファイルごとにまとめられた、デバイスの一覧が出て来ます。
これは、ドライバーが基準になっているため、すでにPCに接続されていない物なんかも表示されます。
それで、さらに「非表示のデバイスの表示」をすれば、さらにもっと表示されて・・・?
たぶん全部表示されるんじゃ無いのかな??
ドライバをアンインストールしても消えなかったドライバ達は、ここで、該当infファイルを選択して、
右クリックして「ドライバーの削除」を実行すると、綺麗に消えてくれました。
ここで消せたのは
ASIO64.sys
ftdibus.sys
ksaud.sys
vaud_wdm.sys
の4つです。
tib.sysの方はサービスだったので
sc query "tib"
sc Stop "tib"
sc Delete "tib"
で、無事削除できました。
それぞれ、
サービスの情報を表示する。
サービスを停止する。
サービスの登録を消す。
の3つです。
まぁ、状態を見る必要が無く、既に動いていない物でしたら一番下のだけでOKです。
因みにqueryで表示されたのは
SERVICE_NAME: tib
TYPE : 1 KERNEL_DRIVER
STATE : 1 STOPPED
WIN32_EXIT_CODE : 0 (0x0)
SERVICE_EXIT_CODE : 0 (0x0)
CHECKPOINT : 0x0
WAIT_HINT : 0x0
ですね。
この情報があれば、もう位置で
sc create "tib" binPath= C:\Windows\System32\drivers\tib.sys type= kernel ・・・・
と打てば再登録できます。
これで、問題なくメモリ整合性をONに出来て、再起動を強要されたので、再起動しました。
その後・・・
何度か再起動した後にさらに
「ASIO.SYS」のエラーが表示されました。
おそらく、ASIO64.SYSを消したので、もうちょっと新しいasio.sysが自動的にインストールされてしまったようです。
で、これ、実はサービスでした。
SERVICE_NAME: AsIO
TYPE : 1 KERNEL_DRIVER
STATE : 1 STOPPED
WIN32_EXIT_CODE : 31 (0x1f)
SERVICE_EXIT_CODE : 0 (0x0)
CHECKPOINT : 0x0
WAIT_HINT : 0x0
これもかなり古かったので
これも削除して・・・
すでに2日過ぎましたが、エラーも警告も出ていません。
OKの様です。
では、それ以外の事柄について
コア分離、これはamdのCPUの場合、AMD-VとかSVMと呼ばれている物です。
これのON OFFは基本的にマザーボードの設定になります。
なのでBIOSの設定画面で、機能を”有効”に変更してください。
windows10の場合はコア分離自体をONにしないと実行されませんでしたが、windows11の場合は、強制的に使用されるので、OFFにすることは出来ません。
っていうか・・・?機能が無いとそもそもインストール出来ないんじゃ無かった??
次、メモリ整合性
これについては、OSが行って居るみたいで?コア分離され「 ハイパーバイザー」が起動していれば、あとはONにするだけなので、
上記「対応していないもの」が無ければすんなりONに出来ると思います。
それ以外の事について・・・
実はintelのCPUを使っていると・・・・
「メモリアクセス保護」というさらに上の機能が使える様になります。
これを起動するとカーネルDMA保護 がオンになり、さらにメモリが保護される様になります。
これは、実はAMDのCPUにも機能はある様なのです。
あたしの使っているRyzenにはないので、もしかしたらProとかThreadRipperを導入しないと無いのかも知れませんが、
機能名としては
AMD-Viだったり、 AMD IOMMUと言うらしいです。
これはBIOSで設定出来るらしく、SVMをONにすると、使える様になるようですが?
そもそも、対応しているマザーボードが少ないみたいですね?
それとも、CPUの種類の問題でしょうか?
残念ながら分かりませんでした。
そもそも、PCが起動するときの動作というのは?
UEFI BIOSが起動し、登録されているHDDからOSをロードして実行されます。
もし、UEFI BIOSに脆弱性が無く、汚染されていないとすれば?
この時点でOSをSecureに起動出来る環境が出来ます。
これが、Windows11で必須になっているセキュアブートです。
しかし、それでも、悪さをしようとする輩がいますので、起動直後のOSが起動されていない状態の所で別の外部装置から強制的に起動させられたときに、メモリの汚染を防ぐため
一番最初の段階で、DMA領域を分離するために必要な機能らしいです。
因みにDMAとは、ダイレクトメモリアクセス
まぁ、そのまんまですね?
CPUを介さず、ハードウェアから、データをメモリ上に書き込んだり、ハードウェアにコピーするために使われる機能です。
主に、HDD等の、ストレージとの遣り取りに使われています。
実例は良く分からないのですが?たとえば、USBメモリ等に不正なデータを書き込んでおいて、それを起動直後に読み込ませ、そこからWindowsが普通に起動してくる最中に、その不正なデータを読み込ませるとか??
そう言う事でしょうか?
何はともあれ、現状としては、Asusの問題か、Ryzenの種類の問題か?AGESAの問題か?
何かは分かりませんが、あたしのPCがでは有効になりませんでした。
現状、メモリ整合性がどれだけ役に立っているのかは分かりませんが?
ウイルスなんかの性能はどんどん上がっていますので、できるだけ入り口は減らしておきたいですよね?
因みに、NX modeと言う物が、AMDのCPUにあります。(intelのCPUにも同じ用な機能はあります。)
これは、書込禁止メモリを設定するための機能です。
おもにコード領域を保護して、書き換えを防ぐものです。
殆どの場合、コード領域を直接書き換えて、感染する様なウイルスは無いと思いますが?
完成度の低いプログラムを実行したりしたときに、他のプログラムまで暴走しない様にするには役に立つんじゃ無いかと思います。
そう言う事で、あたしのXPの頃からバージョンアップし続けてきたPCでも
無事メモリ整合性が動いたというお話でした。
特に、
ftdiはアンインストールする方法が見付かっていなかった部類の物なので
まぁ、このかいわいのなかでは既に見付かって報告されているかも知れませんが
あたしが検索してきた中では、見つけることが出来なかったので、書きました。
デバイスマネージャのUSBの所に有りますので、
不要でしたら、ドライバーの削除をして消すのが良いと思います。
※追加×1
メモリ整合性は何故か頻繁にOFFになります。
原因は分かりません。
一度AsIOのせいで起きましたが、あれは削除したので今は動いていません。
(因みに会社のPCでも起きるので、自宅のPCの問題では無いと考えています。)
そんなときは、ローカルグループポリシーを弄りましょう。
(注:会社のPCとかで、ローカルグループポリシーが無効の場合は、ActiveDirectoryの管理者などに聴いて下さい)
コンピュータの構成→管理用テンプレート→システム→Device Guardにある。
「仮想化ベースのセキュリティを有効にする」
を表示します。
「コード整合性に対する仮想化ベースの保護:」
これが、メモリ整合性のグループポリシーになります。
使っているPC次第ですが?
これを
「UEFIロックで有効化」
もしくは
「ロック無しで有効化」
にすることで、メモリ整合性を強制することが出来ます。
因みに、windowsセキュリティでの変更が出来なくなります。
更に言うと、
「未構成」にすると、Windowsセキュリティで自由に変更出来る様になります。
「無効」
にすると、何がどうなっても、使用されません。
因みに、直ぐ下の「UEFI メモリ属性テーブルを要求する」はかなり危険なスイッチみたいですので?
ONにする前に、対応しているのか事前に確認した方が良いです。
Credential Guard以下については、未だ確認できていません。
触らないか、「未構成」にしておくのが良いでしょう。