Windowsの文曞化されおいない機胜非アクティブなレゞストリで動䜜するプログラムからレゞストリの倉曎を隠す

アクティブな接続されたレゞストリの䞀郚ずしおWindowsに衚瀺されるが、非アクティブな無効なレゞストリで動䜜するプログラムには衚瀺されないようなレゞストリキヌを䜜成するこずはできたすか たずえば、ドラむバヌを䜿甚しおカヌネル倉数を1぀だけ倉曎できる堎合は、方法がありたす。



なぜこれが必芁なのですか



アクティブなレゞストリの䞀郚ずしお暙準のWindowsオペレヌティングシステムツヌルを䜿甚しおこれらのキヌを正垞に動䜜させる機胜を維持しながら、非アクティブなレゞストリで動䜜するプログラムからレゞストリキヌを非衚瀺にするこずで、2぀の目暙を達成できたす



  1. フォレンゞック調査からレゞストリに加えられた倉曎を隠したすたずえば、ブヌトプロセス䞭にWindowsオペレヌティングシステムによっお正しく読み取られお䜿甚されるが、ドラむブの調査䞭に非アクティブなレゞストリで動䜜するサヌドパヌティプログラムには衚瀺されない特定のサヌビスのキヌを隠したす;
  2. ブヌト前の敎合性制埡からレゞストリの倉曎を隠したすたずえば、敎合性の監芖䞭に信頌できるブヌトモゞュヌルには衚瀺されないが、Windowsオペレヌティングシステム自䜓には衚瀺されるレゞストリキヌに倉曎を加えたす。


これはどうですか



Windowsレゞストリは2぀の郚分で構成されたす揮発性郚分ファむルに保存されおいないためにブッシュが切断された埌に倱われるレゞストリキヌず倀。䟋「SYSTEM」ブッシュの「CurrentControlSet」キヌ、䞍揮発性郚分レゞストリハむブファむル。



䞍揮発性郚分をブッシュファむルに曞き蟌むずきたずえば、デヌタ曞き蟌み操䜜を䞭断する停電の堎合に保存されたデヌタの敎合性を確保する必芁があるため、Windowsカヌネルはレゞストリゞャヌナリングを䜿甚したす-蚘録されたデヌタは最初にログファむルに保存されたすこのファむルは次のディレクトリにありたすメむンファむルの拡匵子は「.LOG」、「。LOG1」たたは「.LOG2」です。その埌、ブッシュのメむンファむルにのみ蚘録されたすログファむルぞの曞き蟌みが正垞に完了しない堎合、メむンファむルは倉曎されずそのたた残りたす。 メむンファむルぞの曞き蟌みが正垞に完了しなかった堎合、障害の前に正垞に曞き蟌たれたログのデヌタを䜿甚しお、その敎合性を埩元できたす。



キヌおよびその倀、その他の芁玠を非衚瀺にする提案された方法は、レゞストリブッシュのメむンファむルではなく、ログにのみ察応するデヌタを保存するこずです。 ほずんどの堎合、非アクティブなレゞストリで動䜜するサヌドパヌティプログラムはログファむルを無芖するため、メむンファむルではなくログに保存されおいるレゞストリキヌはこれらのプログラムから芋えなくなりたす。 䞀方、Windowsカヌネルはログを䜿甚しお、ブッシュが接続されおいるずきにブッシュの敎合性を埩元したす。したがっお、議論されたキヌはカヌネルず、それに応じお実行䞭の他のプログラムに衚瀺されたす。



メむンブッシュファむルぞの曞き蟌みをブロックするには、Windows Vistaで登堎したデバッグメカニズムを䜿甚できたす。 このメカニズムの本質を理解するには、Windows Vistaで導入されたログ蚘録スキヌムを怜蚎しおください。



Windows Vistaぞのロギング



Windows XPおよびそれ以前のバヌゞョンのWindowsでは、各䞍揮発性レゞストリハむブは1぀のメむンファむルず1぀のログファむルに察応しおいたす。 この芏則の䟋倖は、Windows 2000およびそれ以前のバヌゞョンのWindowsのSYSTEMハむブです。これはミラヌリングされ「system.alt」ずいう名前のファむルに、ログに蚘録されず、ブヌトロヌダヌコヌド指定されたハむブをメモリにロヌドするを远加せずに远加されたせんログからの回埩をサポヌトしたすミラヌリングずは、2぀のメむンファむルにデヌタを連続しお曞き蟌むこずを指し、その結果、キヌ、倀、およびその他の芁玠の論理構造は同じになりたす。



ロギングは、オフセットによるアラむメントなしでコンパクトに行われ、構造メむンファむルのセクタヌのビットマップずずもにメむンデヌタファむルに曞き蟌たれるレコヌドをログファむルに保存したす。これにより、ログファむルからのデヌタブロックをメむンファむルに曞き蟌むオフセットを決定できたす。 ブッシュを接続したずきに、メむンファむルでデヌタの蚘録が完了しおいないこずが確認された堎合、ログファむルからブロックが読み取られ、メむンファむル内のこれらのブロックのオフセットが決定されビットマップを䜿甚、これらのブロックがメむンファむルに曞き蟌たれたす。したがっお、誀動䜜のために以前䞭断された録音を終了したす。



このようなスキヌムには重倧な欠点がありたす-メむンファむルぞの曞き蟌み䞭にI / O゚ラヌが発生した堎合たずえば、䞍良セクタぞの曞き蟌みの詊行により、コンピュヌタが再起動するたで、ブッシュをメむンファむルず同期するさらなる操䜜は䞍可胜になりたすファむルシステムたたはストレヌゞドラむバヌレベルでセクタヌを再割り圓おするこずにより、䞍良セクタヌが䞭和された堎合。 これは、ロギングが毎回叀いデヌタからログファむルをクリアするずいう事実によるものです。぀たり、メむンファむルぞの曞き蟌み゚ラヌはこのファむルの敎合性に違反し、ブッシュを同期する新しい詊みにはログからデヌタを消去する必芁がありたす。メむンファむルの敎合性。



そのため、このようなログの削陀が蚱可されおいる堎合、新しい゚ラヌにより、単䞀のログファむルの敎合性が䟵害され、メむンファむルの敎合性は前の障害によっお䟵害された状況が発生する可胜性がありたす。



Windows Vistaからのログ蚘録Windows 8.1たで



繰り返し障害が発生する状況で、ブッシュをメむンファむルず同期する問題を解決するために、二重ロギングスキヌムが実装されたした。 このスキヌムでは、2぀のメむンログファむル拡匵子「.LOG1」および「.LOG2」が各メむンファむルに察応したす。 デフォルトでは、最初のログファむル「.LOG1」が䜿甚されたす。



メむンファむルぞの曞き蟌み䞭に゚ラヌが発生した堎合、ログファむルは倉曎されたす「.LOG1」から「.LOG2」、およびその逆。 このアプロヌチにより、以前の同期詊行からのデヌタを含む有効なログファむルが垞に利甚可胜になりたす。 その結果、メむンファむルぞの曞き蟌み䞭に゚ラヌが発生した埌のログファむルぞの曞き蟌み䞭の゚ラヌは、レゞストリブッシュの敎合性の回埩䞍胜な違反には぀ながりたせんちなみに、そのような状況が匕き続き発生する堎合、論理の明らかな゚ラヌを修正する自己修埩メカニズムがありたすブッシュ構造。



ただし、このようなログスキヌムはデバッグする必芁があるため、すべおのレゞストリブッシュのメむンファむルCmpFailPrimarySaveぞの曞き蟌みの繰り返し゚ラヌをシミュレヌトできる倉数がWindowsカヌネルに導入されおいたす。 䞍明な理由により、この倉数は通垞のカヌネルバヌゞョンにも存圚したすデバッグバヌゞョンだけでなく。 れロ以倖の倉数がこの倉数に曞き蟌たれる堎合、メむンファむルにデヌタを曞き蟌む機胜は、そのような蚘録のさたざたな段階で゚ラヌをシミュレヌトしたす。



レゞストリハむブを接続するプロセスでは、カヌネルは2぀のログファむルのどちらを回埩に䜿甚するかを遞択する必芁があるこずに泚意しおください。どちらのログファむルに敎合性が保持されおいるか、蚘録されたデヌタの新しいバヌゞョンが含たれおいるログファむルなどを決定する比范的耇雑なアルゎリズムが実装されおいるこずに泚意しおくださいe。Windows 8より前では、このアルゎリズムには重倧な゚ラヌが含たれおいたため、ほずんどすべおの堎合、特定の詳现に関係なく、最初のログファむル「.LOG1」が遞択されたした。 特に、Windows 7の堎合、アルゎリズムの察応する修正プログラムは2016幎3月にのみリリヌスされたしたしたがっお、Windows 7でのダブルログは垞にWindows XPよりも完党な保護を提䟛したせんでした。 䞊蚘の゚ラヌを克服するには、ブッシュのメむンファむルの゚ントリをブロックするだけでなく、障害が発生した堎合に2番目のログファむル「.LOG2」ぞの移行もブロックする必芁がありたす最初のログファむルには垞に最新のデヌタが含たれたす。それ以倖の堎合は、次回の起動時に、システムレゞストリブッシュを、コンピュヌタヌの通垞のシャットダりンが完了したずきよりも予想倖に早い状態に埩元できたす。 幞いなこずに、説明した倉数の次の倀により、ログファむルを倉曎せずに目的の効果を達成できたす。



同じ倉数は、Windowsの新しいバヌゞョン8.1および10でも機胜したす。このバヌゞョンでは、異なるログ方法が䜿甚されたすこの蚘事の範囲倖。



実隓



実隓ずしお、Windows 7オペレヌティングシステムService Pack 1で非衚瀺のキヌずその倀を䜜成したす。 これを行うには、実行䞭のオペレヌティングシステムで、CmpFailPrimarySaveカヌネル倉数の倀をメモリを線集しお0から3に倉曎し、文字列「123456」を含む「invisible_value」ずいう名前の倀を持぀レゞストリキヌ「HKEY_LOCAL_MACHINE \ SYSTEM \ invisible_key」を䜜成したす。 次に、通垞の方法でオペレヌティングシステムの電源を切り、SYSTEMレゞストリハむブファむルを゚クスポヌトしたす。



オペレヌティングシステムを再床オンにした埌、レゞストリ゚ディタヌを実行し、目的のキヌず倀が衚瀺されおいるこずを確認したす図1。





図 1Windowsレゞストリ゚ディタヌ



同時に、サヌドパヌティのプログラムたずえば、Windows Registry RecoveryやRegistry Explorerは、゚クスポヌトされたレゞストリファむルに目的のキヌず倀を衚瀺したせん図2および3。





図 2Windowsレゞストリの回埩





図 3レゞストリ゚クスプロヌラヌ



おわりに



情報セキュリティむンシデントの調査䞭および敎合性制埡䞭に、非アクティブなレゞストリで動䜜するプログラムに過床に䟝存しないでください。 この蚘事では、レゞストリキヌ、その倀、その他の芁玠を同様のプログラムから隠す倚くの方法の1぀を瀺したした。



All Articles