自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

54億美金蒸發(fā),83歲老人失蹤!藍(lán)屏元兇30天崩一個(gè)系統(tǒng),微軟急發(fā)事故報(bào)告

人工智能 新聞
史上最大規(guī)模TI故障,已經(jīng)為財(cái)富500強(qiáng)帶來了54億美元損失,甚至導(dǎo)致一位83歲老人失蹤至今未歸。如今,微軟終于給出了一份詳盡的分析報(bào)告。

7月19日那場震驚全球的「史上最大規(guī)模IT故障」,影響還在繼續(xù)……

25日,情況最為嚴(yán)重、持續(xù)時(shí)間也最長的航司——達(dá)美航空,終于完成了系統(tǒng)修復(fù),恢復(fù)正常運(yùn)營。期間,共有2500多個(gè)航班被迫取消。

27日,美國奧蘭多警察局發(fā)布尋人啟事稱,一名83歲男子在因CrowdStrike宕機(jī)導(dǎo)致回家航班被取消后,已經(jīng)失蹤一周了。

圖片

根據(jù)分析和保險(xiǎn)服務(wù)商Parametrix的計(jì)算,這次宕機(jī)事件給財(cái)富500強(qiáng)企業(yè)帶來了高達(dá)54億美元的損失。

圖片

而這種搞崩全球設(shè)備的操作,可以算是CrowdStrike家的傳統(tǒng)藝能了。

首席執(zhí)行官George Kurtz早在2010年的Windows XP時(shí)代,就曾在McAfee用一個(gè)更新搞崩了全球設(shè)備;跟CEO的作風(fēng)類似的,CrowdStrike在過去的四個(gè)月里,差不多每30天就要搞垮一個(gè)操作系統(tǒng)!

圖片

終于,在7月27日,微軟針對這次CrowdStrike導(dǎo)致的全球藍(lán)屏事件,給出了一份官方的分析。

圖片

「Windows安全工具的集成與管理最佳實(shí)踐」

而看完報(bào)告之后,網(wǎng)友紛紛開啟了嘲諷模式:

「難道CrowdStrike的高層領(lǐng)導(dǎo)都睡著了?為什么連續(xù)幾個(gè)月來每30天都會(huì)發(fā)生這么多事件?」

圖片

「微軟已經(jīng)在言辭上盡可能地保持委婉了,但這絕對是對CrowdStrike的一記耳光!」

CrowdStrike不知道如何展開工作,并且需要基本的質(zhì)量保證(QA)實(shí)踐指導(dǎo),我們很樂意教他們……

接著,便列出了一堆在用戶模式下運(yùn)行的功能,告訴他們?nèi)绾伪苊庑枰趦?nèi)核模式下運(yùn)行太多東西。

圖片

有人表示,自己在微軟工作的朋友對此深表不滿,每次有類似的宕機(jī)事件,微軟都得背黑鍋。

「接口之所以這樣設(shè)計(jì),是因?yàn)椴辉趦?nèi)核模式下進(jìn)行,就很難在實(shí)時(shí)文件系統(tǒng)過濾中獲得足夠的性能。這是困擾很多操作系統(tǒng)的難題。」

圖片

實(shí)際上,微軟允許第三方代碼加載到自己的內(nèi)核,跟其他的主要操作系統(tǒng)內(nèi)核(Linux或Apple XNU之類)并沒什么不同。

這次的問題主要是,CrowdStrike在內(nèi)核模式下做了很多本可以在用戶模式下完成的事情。

圖片

接下來,就讓我們看看,微軟官方對于宕機(jī)事件的詳細(xì)分析。

CrowdStrike事件分析

在博客中,微軟解釋了為什么現(xiàn)在的安全產(chǎn)品,必須使用內(nèi)核模式驅(qū)動(dòng)程序。

為此,Windows也為第三方解決方案提供了安全措施。

圖片

報(bào)告中,CrowdStrike將原因歸根為內(nèi)存安全問題,特別是CSagent驅(qū)動(dòng)程序中的越界讀取訪問違規(guī)

對于CrowdStrike給出的解釋,微軟利用Microsoft WinDBG內(nèi)核調(diào)試器和任何人都可免費(fèi)誰用的幾個(gè)擴(kuò)展,來執(zhí)行了如下分析。

基于Microsoft對與該事件相關(guān)的Windows錯(cuò)誤報(bào)告(WER)內(nèi)核崩潰轉(zhuǎn)儲(chǔ)的分析,可以觀察到反映這一點(diǎn)的全球崩潰模式:

FAULTING_THREAD:  ffffe402fe868040


READ_ADDRESS:  ffff840500000074 Paged pool


MM_INTERNAL_CODE:  2


IMAGE_NAME:  csagent.sys


MODULE_NAME: csagent


FAULTING_MODULE: fffff80671430000 csagent


PROCESS_NAME:  System


TRAP_FRAME:  ffff94058305ec20 -- (.trap 0xffff94058305ec20)
.trap 0xffff94058305ec20
NOTE: The trap frame does not contain all registers.
Some register values may be zeroed or incorrect.
rax=ffff94058305f200 rbx=0000000000000000 rcx=0000000000000003
rdx=ffff94058305f1d0 rsi=0000000000000000 rdi=0000000000000000
rip=fffff806715114ed rsp=ffff94058305edb0 rbp=ffff94058305eeb0
 r8=ffff840500000074  r9=0000000000000000 r10=0000000000000000
r11=0000000000000014 r12=0000000000000000 r13=0000000000000000
r14=0000000000000000 r15=0000000000000000
iopl=0         nv up ei ng nz na po nc
csagent+0xe14ed:
fffff806`715114ed 458b08          mov     r9d,dword ptr [r8] ds:ffff8405`00000074=????????
.trap
Resetting default scope


STACK_TEXT:  
ffff9405`8305e9f8 fffff806`5388c1e4     : 00000000`00000050 ffff8405`00000074 00000000`00000000 ffff9405`8305ec20 : nt!KeBugCheckEx 
ffff9405`8305ea00 fffff806`53662d8c     : 00000000`00000000 00000000`00000000 00000000`00000000 ffff8405`00000074 : nt!MiSystemFault+0x1fcf94  
ffff9405`8305eb00 fffff806`53827529     : ffffffff`00000030 ffff8405`af8351a2 ffff9405`8305f020 ffff9405`8305f020 : nt!MmAccessFault+0x29c 
ffff9405`8305ec20 fffff806`715114ed     : 00000000`00000000 ffff9405`8305eeb0 ffff8405`b0bcd00c ffff8405`b0bc505c : nt!KiPageFault+0x369 
ffff9405`8305edb0 fffff806`714e709e     : 00000000`00000000 00000000`e01f008d ffff9405`8305f102 fffff806`716baaf8 : csagent+0xe14ed
ffff9405`8305ef50 fffff806`714e8335     : 00000000`00000000 00000000`00000010 00000000`00000002 ffff8405`b0bc501c : csagent+0xb709e
ffff9405`8305f080 fffff806`717220c7     : 00000000`00000000 00000000`00000000 ffff9405`8305f382 00000000`00000000 : csagent+0xb8335
ffff9405`8305f1b0 fffff806`7171ec44     : ffff9405`8305f668 fffff806`53eac2b0 ffff8405`afad4ac0 00000000`00000003 : csagent+0x2f20c7
ffff9405`8305f430 fffff806`71497a31     : 00000000`0000303b ffff9405`8305f6f0 ffff8405`afb1d140 ffffe402`ff251098 : csagent+0x2eec44
ffff9405`8305f5f0 fffff806`71496aee     : ffff8405`afb1d140 fffff806`71541e7e 00000000`000067a0 fffff806`7168f8f0 : csagent+0x67a31
ffff9405`8305f760 fffff806`7149685b     : ffff9405`8305f9d8 ffff8405`afb1d230 ffff8405`afb1d140 ffffe402`fe8644f8 : csagent+0x66aee
ffff9405`8305f7d0 fffff806`715399ea     : 00000000`4a8415aa ffff8eee`1c68ca4f 00000000`00000000 ffff8405`9e95fc30 : csagent+0x6685b
ffff9405`8305f850 fffff806`7148efbb     : 00000000`00000000 ffff9405`8305fa59 ffffe402`fe864050 ffffe402`fede62c0 : csagent+0x1099ea
ffff9405`8305f980 fffff806`7148edd7     : ffffffff`ffffffa1 fffff806`7152e5c1 ffffe402`fe864050 00000000`00000001 : csagent+0x5efbb
ffff9405`8305fac0 fffff806`7152e681     : 00000000`00000000 fffff806`53789272 00000000`00000002 ffffe402`fede62c0 : csagent+0x5edd7
ffff9405`8305faf0 fffff806`53707287     : ffffe402`fe868040 00000000`00000080 fffff806`7152e510 006fe47f`b19bbdff : csagent+0xfe681
ffff9405`8305fb30 fffff806`5381b8e4     : ffff9680`37651180 ffffe402`fe868040 fffff806`53707230 00000000`00000000 : nt!PspSystemThreadStartup+0x57 
ffff9405`8305fb80 00000000`00000000     : ffff9405`83060000 ffff9405`83059000 00000000`00000000 00000000`00000000 : nt!KiStartSystemThread+0x34

如果深入分析這個(gè)崩潰轉(zhuǎn)儲(chǔ),就可以恢復(fù)訪問違規(guī)時(shí)的堆棧幀,從而了解更多起因了。

然而不幸的是,由于使用WER數(shù)據(jù)時(shí),微軟只能接收到壓縮狀態(tài),因此就無法反向反匯編,查看崩潰前的更多指令了。

不過,在反匯編中可以看到,在讀取R8寄存器中指定的地址之前,有一個(gè)NULL檢查:

6: kd> .trap 0xffff94058305ec20
.trap 0xffff94058305ec20
NOTE: The trap frame does not contain all registers.
Some register values may be zeroed or incorrect.
rax=ffff94058305f200 rbx=0000000000000000 rcx=0000000000000003
rdx=ffff94058305f1d0 rsi=0000000000000000 rdi=0000000000000000
rip=fffff806715114ed rsp=ffff94058305edb0 rbp=ffff94058305eeb0
 r8=ffff840500000074  r9=0000000000000000 r10=0000000000000000
r11=0000000000000014 r12=0000000000000000 r13=0000000000000000
r14=0000000000000000 r15=000000000000
000
iopl=0         nv up ei ng nz na po nc
csagent+0xe14ed:
fffff806`715114ed 458b08          mov     r9d,dword ptr [r8] ds:ffff8405`00000074=????????
6: kd> !pte ffff840500000074
!pte ffff840500000074
                                           VA ffff840500000074
PXE at FFFFABD5EAF57840    PPE at FFFFABD5EAF080A0    PDE at FFFFABD5E1014000    PTE at FFFFABC202800000
contains 0A00000277200863  contains 0000000000000000
pfn 277200    ---DA--KWEV  contains 0000000000000000
not valid


6: kd> ub fffff806`715114ed
ub fffff806`715114ed
csagent+0xe14d9:
fffff806`715114d9 04d8            add     al,0D8h
fffff806`715114db 750b            jne     csagent+0xe14e8 (fffff806`715114e8)
fffff806`715114dd 4d85c0          test    r8,r8
fffff806`715114e0 7412            je      csagent+0xe14f4 (fffff806`715114f4)
fffff806`715114e2 450fb708        movzx   r9d,word ptr [r8]
fffff806`715114e6 eb08            jmp     csagent+0xe14f0 (fffff806`715114f0)
fffff806`715114e8 4d85c0          test    r8,r8
fffff806`715114eb 7407            je      csagent+0xe14f4 (fffff806`715114f4)
6: kd> ub fffff806`715114d9
ub fffff806`715114d9
                          ^ Unable to find valid previous instruction for 'ub fffff806`715114d9'
6: kd> u fffff806`715114eb
u fffff806`715114eb
csagent+0xe14eb:
fffff806`715114eb 7407            je      csagent+0xe14f4 (fffff806`715114f4)
fffff806`715114ed 458b08          mov     r9d,dword ptr [r8]
fffff806`715114f0 4d8b5008        mov     r10,qword ptr [r8+8]
fffff806`715114f4 4d8bc2          mov     r8,r10
fffff806`715114f7 488d4d90        lea     rcx,[rbp-70h]
fffff806`715114fb 488bd6          mov     rdx,rsi
fffff806`715114fe e8212c0000      call    csagent+0xe4124 (fffff806`71514124)
fffff806`71511503 4533d2          xor     r10d,r10d


6: kd> db ffff840500000074
db ffff840500000074
ffff8405`00000074  ?? ?? ?? ?? ?? ?? ?? ??-?? ?? ?? ?? ?? ?? ?? ??  ????????????????
ffff8405`00000084  ?? ?? ?? ?? ?? ?? ?? ??-?? ?? ?? ?? ?? ?? ?? ??  ????????????????
ffff8405`00000094  ?? ?? ?? ?? ?? ?? ?? ??-?? ?? ?? ?? ?? ?? ?? ??  ????????????????
ffff8405`000000a4  ?? ?? ?? ?? ?? ?? ?? ??-?? ?? ?? ?? ?? ?? ?? ??  ????????????????
ffff8405`000000b4  ?? ?? ?? ?? ?? ?? ?? ??-?? ?? ?? ?? ?? ?? ?? ??  ????????????????
ffff8405`000000c4  ?? ?? ?? ?? ?? ?? ?? ??-?? ?? ?? ?? ?? ?? ?? ??  ????????????????
ffff8405`000000d4  ?? ?? ?? ?? ?? ?? ?? ??-?? ?? ?? ?? ?? ?? ?? ??  ????????????????
ffff8405`000000e4  ?? ?? ?? ?? ?? ?? ?? ??-?? ?? ?? ?? ?? ?? ?? ??  ????????????????

觀察以上結(jié)果,就可以證實(shí)CrowdStrike的分析是正確的——

在CrowdStrike開發(fā)的CSagent.sys驅(qū)動(dòng)程序中,存在越界讀取內(nèi)存安全錯(cuò)誤。

另外,微軟還發(fā)現(xiàn),csagent.sys模塊被注冊為文件系統(tǒng)過濾驅(qū)動(dòng)程序——通常被反惡意軟件用來接收與文件操作有關(guān)的通知。

安全軟件會(huì)用它來掃描保存到磁盤的任何新文件,比如通過瀏覽器下載的文件。

typedef union _FLT_PARAMETERS {
  ...    ;
  struct {
    PIO_SECURITY_CONTEXT     SecurityContext;
    ULONG                    Options;
    USHORT POINTER_ALIGNMENT Reserved;
    USHORT                   ShareAccess;
    PVOID                    Parameters;
  } CreatePipe;
  ...    ;
} FLT_PARAMETERS, *PFLT_PARAMETERS;

而且,文件系統(tǒng)過濾器還可以作為監(jiān)控系統(tǒng)行為的安全解決方案的信號(hào)。

正如CrowdStrike在博客中指出,他們內(nèi)容更新的一部分,就是更改傳感器邏輯,以處理與命名管道創(chuàng)建相關(guān)的數(shù)據(jù)。

而文件系統(tǒng)過濾驅(qū)動(dòng)程序API,允許驅(qū)動(dòng)程序在系統(tǒng)上發(fā)生命名管道活動(dòng)時(shí)接收調(diào)用,從而能夠檢測惡意行為。

這種驅(qū)動(dòng)程序的一般功能,是與CrowdStrike分享的信息相關(guān)聯(lián)的。

6: kd>!reg querykey \REGISTRY\MACHINE\system\ControlSet001\services\csagent


Hive         ffff84059ca7b000
KeyNode      ffff8405a6f67f9c


[SubKeyAddr]         [SubKeyName]
ffff8405a6f683ac     Instances
ffff8405a6f6854c     Sim


 Use '!reg keyinfo ffff84059ca7b000 <SubKeyAddr>' to dump the subkey details


[ValueType]         [ValueName]                   [ValueData]
REG_DWORD           Type                          2
REG_DWORD           Start                         1
REG_DWORD           ErrorControl                  1
REG_EXPAND_SZ       ImagePath                     \??\C:\Windows\system32\drivers\CrowdStrike\csagent.sys
REG_SZ              DisplayName                   CrowdStrike Falcon
REG_SZ              Group                         FSFilter Activity Monitor
REG_MULTI_SZ        DependOnService               FltMgr\0
REG_SZ              CNFG                          Config.sys
REG_DWORD           SupportedFeatures             f

可以看到,在CrowdStrike分析中指定的控制通道文件版本291也出現(xiàn)在了崩潰中,這表明文件已被讀取。

如何確定文件本身與崩潰轉(zhuǎn)儲(chǔ)中觀察到的訪問違規(guī)相關(guān)聯(lián)呢?這就需要使用這些工具對驅(qū)動(dòng)程序進(jìn)行額外的調(diào)試了。(這次咱不討論)

!ca ffffde8a870a8290


ControlArea  @ ffffde8a870a8290
  Segment      ffff880ce0689c10  Flink      ffffde8a87267718  Blink        ffffde8a870a7d98
  Section Ref                 0  Pfn Ref                   b  Mapped Views                0
  User Ref                    0  WaitForDel                0  Flush Count                 0
  File Object  ffffde8a879b29a0  ModWriteCount             0  System Views                0
  WritableRefs                0  PartitionId                0  
  Flags (8008080) File WasPurged OnUnusedList 


      \Windows\System32\drivers\CrowdStrike\C-00000291-00000000-00000032.sys


1: kd> !ntfskd.ccb ffff880ce06f6970
!ntfskd.ccb ffff880ce06f6970


   Ccb: ffff880c`e06f6970
 Flags: 00008003 Cleanup OpenAsFile IgnoreCase
Flags2: 00000841 OpenComplete AccessAffectsOplocks SegmentObjectReferenced
  Type: UserFileOpen
FileObj: ffffde8a879b29a0


(018)  ffff880c`db937370  FullFileName [\Windows\System32\drivers\CrowdStrike\C-00000291-00000000-00000032.sys]
(020) 000000000000004C  LastFileNameOffset 
(022) 0000000000000000  EaModificationCount 
(024) 0000000000000000  NextEaOffset 
(048) FFFF880CE06F69F8  Lcb 
(058) 0000000000000002  TypeOfOpen

我們可以做的,是通過崩潰轉(zhuǎn)儲(chǔ),來確定在崩潰發(fā)生時(shí),運(yùn)行的系統(tǒng)上是否存在其他由CrowdStrike提供的驅(qū)動(dòng)程序。

6: kd> lmDvmCSFirmwareAnalysis
lmDvmCSFirmwareAnalysis
Browse full module list
start             end                 module name
fffff806`58920000 fffff806`5893c000   CSFirmwareAnalysis   (deferred)             
    Image path: \SystemRoot\system32\DRIVERS\CSFirmwareAnalysis.sys
    Image name: CSFirmwareAnalysis.sys
    Browse all global symbols  functions  data  Symbol Reload
    Timestamp:        Mon Mar 18 11:32:14 2024 (65F888AE)
    CheckSum:         0002020E
    ImageSize:        0001C000
    Translations:     0000.04b0 0000.04e4 0409.04b0 0409.04e4
    Information from resource tables:
6: kd> lmDvmcspcm4
lmDvmcspcm4
Browse full module list
start             end                 module name
fffff806`71870000 fffff806`7187d000   cspcm4     (deferred)             
    Image path: \??\C:\Windows\system32\drivers\CrowdStrike\cspcm4.sys
    Image name: cspcm4.sys
    Browse all global symbols  functions  data  Symbol Reload
    Timestamp:        Mon Jul  8 18:33:22 2024 (668C9362)
    CheckSum:         00012F69
    ImageSize:        0000D000
    Translations:     0000.04b0 0000.04e4 0409.04b0 0409.04e4
    Information from resource tables:
6: kd> lmDvmcsboot.sys
lmDvmcsboot.sys
Browse full module list
start             end                 module name


Unloaded modules:
fffff806`587d0000 fffff806`587dc000   CSBoot.sys
    Timestamp: unavailable (00000000)
    Checksum:  00000000
    ImageSize:  0000C000


6: kd> !reg querykey \REGISTRY\MACHINE\system\ControlSet001\services\csboot
!reg querykey \REGISTRY\MACHINE\system\ControlSet001\services\csboot


Hive         ffff84059ca7b000
KeyNode      ffff8405a6f68924


[ValueType]         [ValueName]                   [ValueData]
REG_DWORD           Type                          1
REG_DWORD           Start                         0
REG_DWORD           ErrorControl                  1
REG_EXPAND_SZ       ImagePath                     system32\drivers\CrowdStrike\CSBoot.sys
REG_SZ              DisplayName                   CrowdStrike Falcon Sensor Boot Driver
REG_SZ              Group                         Early-Launch
6: kd> !reg querykey \REGISTRY\MACHINE\system\ControlSet001\services\csdevicecontrol
!reg querykey \REGISTRY\MACHINE\system\ControlSet001\services\csdevicecontrol


Hive         ffff84059ca7b000
KeyNode      ffff8405a6f694ac


[SubKeyAddr]         [VolatileSubKeyName]
ffff84059ce196c4     Enum


 Use '!reg keyinfo ffff84059ca7b000 <SubKeyAddr>' to dump the subkey details


[ValueType]         [ValueName]                   [ValueData]
REG_DWORD           Type                          1
REG_DWORD           Start                         3
REG_DWORD           ErrorControl                  1
REG_DWORD           Tag                           1f
REG_EXPAND_SZ       ImagePath                     \SystemRoot\System32\drivers\CSDeviceControl.sys
REG_SZ              DisplayName                   @oem40.inf,%DeviceControl.SVCDESC%;CrowdStrike Device Control Service
REG_SZ              Group                         Base
REG_MULTI_SZ        Owners                        oem40.inf\0!csdevicecontrol.inf_amd64_b6725a84d4688d5a\0!csdevicecontrol.inf_amd64_016e965488e83578\0
REG_DWORD           BootFlags                     14
6: kd> !reg querykey \REGISTRY\MACHINE\system\ControlSet001\services\csagent
!reg querykey \REGISTRY\MACHINE\system\ControlSet001\services\csagent


Hive         ffff84059ca7b000
KeyNode      ffff8405a6f67f9c


[SubKeyAddr]         [SubKeyName]
ffff8405a6f683ac     Instances
ffff8405a6f6854c     Sim


 Use '!reg keyinfo ffff84059ca7b000 <SubKeyAddr>' to dump the subkey details


[ValueType]         [ValueName]                   [ValueData]
REG_DWORD           Type                          2
REG_DWORD           Start                         1
REG_DWORD           ErrorControl                  1
REG_EXPAND_SZ       ImagePath                     \??\C:\Windows\system32\drivers\CrowdStrike\csagent.sys
REG_SZ              DisplayName                   CrowdStrike Falcon
REG_SZ              Group                         FSFilter Activity Monitor
REG_MULTI_SZ        DependOnService               FltMgr\0
REG_SZ              CNFG                          Config.sys
REG_DWORD           SupportedFeatures             f


6: kd> lmDvmCSFirmwareAnalysis
lmDvmCSFirmwareAnalysis
Browse full module list
start             end                 module name
fffff806`58920000 fffff806`5893c000   CSFirmwareAnalysis   (deferred)             
    Image path: \SystemRoot\system32\DRIVERS\CSFirmwareAnalysis.sys
    Image name: CSFirmwareAnalysis.sys
    Browse all global symbols  functions  data  Symbol Reload
    Timestamp:        Mon Mar 18 11:32:14 2024 (65F888AE)
    CheckSum:         0002020E
    ImageSize:        0001C000
    Translations:     0000.04b0 0000.04e4 0409.04b0 0409.04e4
    Information from resource tables:
6: kd> !reg querykey \REGISTRY\MACHINE\system\ControlSet001\services\csfirmwareanalysis
!reg querykey \REGISTRY\MACHINE\system\ControlSet001\services\csfirmwareanalysis


Hive         ffff84059ca7b000
KeyNode      ffff8405a6f69d9c


[SubKeyAddr]         [VolatileSubKeyName]
ffff84059ce197cc     Enum


 Use '!reg keyinfo ffff84059ca7b000 <SubKeyAddr>' to dump the subkey details


[ValueType]         [ValueName]                   [ValueData]
REG_DWORD           Type                          1
REG_DWORD           Start                         0
REG_DWORD           ErrorControl                  1
REG_DWORD           Tag                           6
REG_EXPAND_SZ       ImagePath                     system32\DRIVERS\CSFirmwareAnalysis.sys
REG_SZ              DisplayName                   @oem43.inf,%FirmwareAnalysis.SVCDESC%;CrowdStrike Firmware Analysis Service
REG_SZ              Group                         Boot Bus Extender
REG_MULTI_SZ        Owners                        oem43.inf\0!csfirmwareanalysis.inf_amd64_12861fc608fb1440\0
6: kd> !reg querykey \REGISTRY\MACHINE\system\Controlset001\control\earlylaunch
!reg querykey \REGISTRY\MACHINE\system\Controlset001\control\earlylaunch

從上述分析中可見,CrowdStrike加載了四個(gè)驅(qū)動(dòng)程序模塊。

其中一個(gè)模塊根據(jù)CrowdStrike的初步事件后審查時(shí)間線,會(huì)頻繁接收動(dòng)態(tài)控制和內(nèi)容更新。

利用此次崩潰的獨(dú)特堆棧和屬性,便可以識(shí)別出由CrowdStrike特定編程錯(cuò)誤導(dǎo)致的Windows崩潰報(bào)告。

圖片

圖1 CrowdStrike驅(qū)動(dòng)程序相關(guān)的崩潰轉(zhuǎn)儲(chǔ)報(bào)告隨時(shí)間的變化(僅包括選擇上傳的用戶)

總之,這次全球宕機(jī)事件告訴我們:任何無效內(nèi)存訪問之類的可靠性問題,如果沒有結(jié)合安全部署實(shí)踐,都會(huì)導(dǎo)致嚴(yán)重的后果。

所以,為什么安全解決方案必須在Windows上使用內(nèi)核驅(qū)動(dòng)程序呢?

對此,微軟給出了以下解釋。

為什么安全解決方案,必須依賴內(nèi)核驅(qū)動(dòng)程序

首先最重要的一點(diǎn)原因,就是內(nèi)核驅(qū)動(dòng)程序允許系統(tǒng)范圍的可見性。

而且,它能在早起啟動(dòng)時(shí)運(yùn)行,這樣就能檢測出像啟動(dòng)工具包和根工具包這樣的威脅(要知道,后者可是在用戶模式應(yīng)用程序加載前,就可以運(yùn)行的)。

微軟為內(nèi)核驅(qū)動(dòng)程序提供了一套豐富的功能,包括用于進(jìn)程和線程創(chuàng)建的系統(tǒng)事件回調(diào),以及可以監(jiān)控文件創(chuàng)建、刪除或修改的過濾驅(qū)動(dòng)程序。

而且,內(nèi)核活動(dòng)還可以觸發(fā)回調(diào),讓驅(qū)動(dòng)程序決定何時(shí)阻止文件或創(chuàng)建進(jìn)程。

因此,許多供應(yīng)商都是用NDIS驅(qū)動(dòng),在內(nèi)核中使用驅(qū)動(dòng)程序來收集各種網(wǎng)絡(luò)信息。

性能

內(nèi)核驅(qū)動(dòng)程序,還會(huì)帶來潛在的性能優(yōu)勢。

比如,它可以幫助進(jìn)行高吞吐量的網(wǎng)絡(luò)活動(dòng)分析或數(shù)據(jù)收集。

當(dāng)然,有許多場景可以在非內(nèi)核模式下優(yōu)化數(shù)據(jù)收集和分析操作,微軟也會(huì)繼續(xù)與生態(tài)系統(tǒng)合作。

防篡改能力

加載到內(nèi)核模式的另一個(gè)好處,就是防篡改能力。

即使攻擊者具有管理員權(quán)限,安全產(chǎn)品也不希望軟件被惡意軟件、針對性攻擊或惡意的內(nèi)部人員擊潰。

另一個(gè)要求,就是讓驅(qū)動(dòng)程序盡早加載,以便盡早觀察到系統(tǒng)事件。

為此,微軟提供了一種機(jī)制,可以在啟動(dòng)過程的早期,啟動(dòng)標(biāo)記為早期啟動(dòng)反惡意軟件(ELAM)的驅(qū)動(dòng)程序。

內(nèi)核驅(qū)動(dòng)程序提供了以上好處,但是是以彈性為代價(jià)的。

因此,安全供應(yīng)商在使用內(nèi)核驅(qū)動(dòng)程序時(shí),就必須仔細(xì)權(quán)衡利弊,平衡可見性和防篡改需求,與在內(nèi)核模式下操作的風(fēng)險(xiǎn)。

微軟表示,如今安全工具已經(jīng)可以在安全性和可靠性之間實(shí)現(xiàn)平衡。

例如,安全供應(yīng)商可以使用在內(nèi)核模式下運(yùn)行的最小傳感器進(jìn)行數(shù)據(jù)收集和執(zhí)行,以限制暴露于可用性問題的風(fēng)險(xiǎn)。

其余的關(guān)鍵產(chǎn)品功能則在用戶模式下隔離進(jìn)行,然后再恢復(fù)。

圖片

圖2 平衡安全性和可靠性的示例安全產(chǎn)品架構(gòu)

而對于用戶模型保護(hù)方法,Windows也同樣提供了幾種防篡改的方法,比如基于虛擬化的安全(VBS)隔離區(qū)和受保護(hù)進(jìn)程,以及ETW事件和用戶模式接口,如反惡意軟件掃描接口。

如何在更高安全模式下進(jìn)行部署

微軟表示,Windows本質(zhì)上是一個(gè)開放、多功能的操作系統(tǒng),可以通過集成工具輕松鎖定,以提高安全性。

此外,Windows也在不斷增加安全默認(rèn)值,包括在Windows 11中默認(rèn)啟用的數(shù)十個(gè)新的安全功能。

圖片

在Windows的自我防御方面,默認(rèn)啟用的關(guān)鍵反惡意軟件功能包括:

  1. 安全啟動(dòng)(Secure Boot):通過在系統(tǒng)啟動(dòng)過程中強(qiáng)制執(zhí)行簽名一致性,防止早期啟動(dòng)惡意軟件和rootkit
  2. 測量啟動(dòng)(Measured Boot):通過集成的證明服務(wù)(如設(shè)備健康證明)提供基于TPM的硬件加密測量,以檢測啟動(dòng)時(shí)的屬性。
  3. 內(nèi)存完整性(Memory integrity,也稱HVCI):防止在內(nèi)核中運(yùn)行時(shí)生成動(dòng)態(tài)代碼,確??刂屏魍暾?/span>
  4. 易受攻擊驅(qū)動(dòng)程序阻止列表:集成在操作系統(tǒng)中并由微軟管理,與惡意驅(qū)動(dòng)程序黑名單相輔相成
  5. 受保護(hù)的本地安全機(jī)構(gòu)(Protected Local Security Authority):負(fù)責(zé)保護(hù)一系列憑據(jù),企業(yè)版默認(rèn)開啟基于硬件的憑據(jù)保護(hù)
  6. Microsoft Defender Antivirus:在整個(gè)操作系統(tǒng)中提供反惡意軟件保護(hù)

利用Windows集成的安全功能來防止攻擊,可以提高安全性,同時(shí)減少成本和復(fù)雜性??蓞⒖嫉淖罴褜?shí)踐如下:

  1. 通過App Control for Business來編寫一個(gè)安全策略,只允許受信任和/或業(yè)務(wù)關(guān)鍵的應(yīng)用程序
  2. 結(jié)合內(nèi)存完整性(Memory integrity)與特定的允許列表策略,利用基于虛擬化的安全性(VBS)進(jìn)一步保護(hù)Windows內(nèi)核
  3. 以標(biāo)準(zhǔn)用戶身份運(yùn)行,并僅在必要時(shí)提升權(quán)限
  4. 使用設(shè)備健康證明(Device Health Attestation, DHA)監(jiān)控設(shè)備的正確安全策略,包括硬件基礎(chǔ)的機(jī)器安全姿態(tài)測量

為反惡意軟件生態(tài)提供最佳實(shí)踐

最后,微軟計(jì)劃利用新推出的數(shù)十種安全功能和架構(gòu)改進(jìn),來幫助反惡意軟件完成方法的現(xiàn)代化,從而提升安全性和可靠性:

  1. 提供安全部署指南、最佳實(shí)踐和技術(shù),使執(zhí)行安全產(chǎn)品更新更安全
  2. 減少內(nèi)核驅(qū)動(dòng)程序訪問重要安全數(shù)據(jù)的需求
  3. 提供增強(qiáng)的隔離和防篡改能力,如VBS enclaves技術(shù)
  4. 啟用零信任方法,如高完整性證明

微軟表示,Windows今后將繼續(xù)創(chuàng)新并提供新的方法,使安全工具能夠安全地檢測和響應(yīng)新興威脅。

責(zé)任編輯:張燕妮 來源: 新智元
相關(guān)推薦

2020-02-25 16:48:15

微盟集團(tuán)人為破壞癱瘓

2023-03-13 00:24:21

微軟活躍用戶OpenAI

2019-06-26 10:16:52

微軟Windows谷歌

2019-08-15 08:58:55

銷售培訓(xùn)班碼農(nóng)

2021-07-15 09:49:08

B站宕機(jī)黑客

2013-03-14 10:14:17

微軟云計(jì)算公有云

2022-02-07 22:52:07

自動(dòng)駕駛安全技術(shù)

2022-03-09 14:14:20

收購微軟谷歌

2022-09-14 15:17:26

網(wǎng)絡(luò)安全收購

2015-06-29 15:13:28

閑置服務(wù)器數(shù)據(jù)中心

2009-04-29 08:38:27

IT職場隨筆

2022-08-24 08:22:39

漏洞網(wǎng)絡(luò)攻擊微軟

2018-10-31 10:15:32

互聯(lián)網(wǎng)

2021-01-25 13:45:14

模型人工智能深度學(xué)習(xí)

2022-04-08 08:48:16

線上事故日志訂閱者

2013-07-12 10:18:39

微軟CEO鮑爾默微軟

2022-03-26 18:49:29

芯片顯卡

2024-08-29 10:47:27

2021-08-26 16:46:43

網(wǎng)絡(luò)安全白宮微軟谷歌

2021-04-15 08:12:45

微軟AI人工智能
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)