Disabling an ActiveX − Welcome to the Microsoft Security Response Center Blog!
Sony の DRM rootkit 削除の ActiveX コントロールに脆弱性があるということで、KB240797に従って、その ActiveX コントロールを無効にする方法が示されている。該当の ActiveX コントロールの CLSID は{80E8743E-8AC5-46F1-96A0-59FA30740C51} と {4EA7C4C5-C5C0-4F5C-A008-8293505F71CC} であるので、KB に従って kill-bit を設定してやるとよいという話。
というわけで、それを参考に、直接手でレジストリを操作しなくても、ActiveX コントロールを無効にするスクリプトを書いてみました。もちろん自己責任でご利用ください。
disable-sony-activex.vbs
Sub SetKillBit( CLSID ) const HKEY_CLASSES_ROOT = &H80000000 const HKEY_LOCAL_MACHINE = &H80000002 strKeyPath = "SOFTWARE\Microsoft\Internet Explorer\ActiveX Compatibility\" & CLSID strValueName = "Compatibility Flags" strComputer = "." Set oReg=GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & _ strComputer & "\root\default:StdRegProv") 'Get display name of CLSID oReg.GetStringValue HKEY_CLASSES_ROOT, "CLSID\" & CLSID, "", strClsidName If IsNull(strClsidName) Then strClsidName = CLSID End If 'Get current setting oReg.GetDWORDValue HKEY_LOCAL_MACHINE, strKeyPath, strValueName, dwValue If IsNull(dwValue) Then MsgBox strClsidName & " is not installed." Else If dwValue = &H400 Then MsgBox strClsidName & " is already disabled." Else If MsgBox( strClsidName & ":" & Chr(13) & _ "Are you sure to disable ActiveX control ?", 4 ) <> 6 Then Exit Sub End If 'backup old value oReg.SetDWORDValue HKEY_LOCAL_MACHINE,strKeyPath,strValueName & "-",dwValue dwValue = &H400 oReg.SetDWORDValue HKEY_LOCAL_MACHINE,strKeyPath,strValueName,dwValue oReg.GetDWORDValue HKEY_LOCAL_MACHINE, strKeyPath, strValueName, dwValue If dwValue = &H400 Then MsgBox "Complete to disable ActiveX control:" & strClsidName Else MsgBox "Failure to disable ActiveX control:" & strClsidName End If End If End If End Sub Call SetKillBit( "{80E8743E-8AC5-46F1-96A0-59FA30740C51}" ) Call SetKillBit( "{4EA7C4C5-C5C0-4F5C-A008-8293505F71CC}" )