簡介
本文檔介紹什麼是排除、如何識別排除以及在思科安全終端上建立排除的最佳實踐。
簡介
本文檔中的資訊基於Windows、Linux和macOS作業系統。
本文中的資訊是根據特定實驗室環境內的裝置所建立。文中使用到的所有裝置皆從已清除(預設)的組態來啟動。如果您的網路運作中,請確保您瞭解任何指令可能造成的影響。
概觀
閱讀本檔案後,您應該瞭解:
- 什麼是排除以及思科安全終端可用的不同型別的排除。
- 如何準備聯結器以進行排除調諧。
- 如何識別潛在的強排除項。
- 如何在Cisco Secure Endpoint Console中建立新排除。
- 建立排除的最佳做法是什麼。
什麼是排除項?
排除集是目錄、副檔名、檔案路徑、進程、威脅名稱、應用程式或不希望聯結器掃描或對其進行定罪的危害指示符的清單。啟用端點保護(如安全端點)時,需要精心編制排除以確保電腦上的效能和安全性達到平衡。本文描述安全終端雲、TETRA、SPP和MAP的排除情況。
每個環境都是獨特的,控制它的實體也各不相同,從嚴格的政策到開放的政策。因此,除外情況必須針對每種情況專門制定。
排除項可按兩種方式分類:思科維護的排除項和自定義排除。
思科維護的排除項
思科維護的排除項是根據研究建立並對常用作業系統、程式和其他安全軟體進行了嚴格測試的排除項。在Exclusions
頁面上的安全終端控制檯中選擇思科維護的Exclusions
,可以顯示這些排除項。
思科監控防病毒(AV)供應商發佈的推薦排除清單,並更新思科維護的排除項以包括推薦排除項。
注意:某些AV供應商可能不會發佈其推薦的排除項。在這種情況下,客戶可能需要聯絡AV供應商,請求推薦排除清單,然後開啟支援案例以更新Cisco維護的排除。
自定義排除
自定義排除項是使用者為終端上的自定義使用案例建立的排除項。可通過在Exclusions
頁面上的安全終端控制檯中選擇Custom Exclusions
來顯示這些排除。
排除的型別
流程排除
進程排除允許管理員從支援的引擎中排除進程。下表列出了每個平台上支援Process排除的引擎:
作業系統 |
引擎 |
檔案掃描 |
系統進程保護 |
惡意活動防護 |
行為保護 |
Windows |
✓ |
✓ |
✓ |
✓ |
Linux |
✓ |
✗ |
✗ |
✓ |
macOS |
✓ |
✗ |
✗ |
✗ |
MacOS和Linux
建立進程排除時必須提供絕對路徑,也可以提供可選使用者。如果同時指定路徑和使用者,則必須滿足這兩個條件才能排除進程。如果未指定使用者,則「進程排除」將適用於所有使用者。
注意:在macOS和Linux上,進程排除適用於所有引擎。
進程萬用字元:
安全端點Linux和macOS聯結器支援在「進程排除」中使用萬用字元。這使得覆蓋範圍更廣,而且排除的內容更少,但如果太多內容沒有確定,也可能是危險的。您只能使用萬用字元來包含提供所需排除所需的最小字元數。
在macOS和Linux中使用進程萬用字元:
- 萬用字元用單個星號字元(*)表示
- 可以使用萬用字元代替單個字元或完整目錄。
- 將萬用字元置於路徑的開頭會被視為無效。
- 萬用字元在兩個定義的字元、斜槓或字母數字之間起作用。
示例:
排除 |
預期結果 |
/Library/Java/JavaVirtualMachines/*/java |
在JavaVirtualMachines的所有子資料夾中排除java。 |
/Library/Jibber/j*bber |
不包括jabber 、jibber 、jobber 等進程 |
Windows
建立進程排除時,您可以提供進程執行檔的絕對路徑和/或SHA-256。如果同時指定路徑和SHA-256,則必須滿足這兩個條件,才能排除該進程。
在Windows上,還可以在路徑中使用CSIDL或KNOWNFOLDERID來建立「進程排除」。
注意:預設情況下不排除由排除的進程建立的子進程。要在建立進程排除時排除其他進程,請選擇「應用到子進程」
。
限制:
- 如果進程的檔案大小大於策略中設定的最大掃描檔案大小,則不會計算進程的SHA-256,並且排除將不起作用。對大於最大掃描檔案大小的檔案使用基於路徑的進程排除。
- Windows聯結器對所有進程排除型別強制限制500個進程排除。
注意:在Windows上,每個引擎應用進程排除項。如果對多個引擎應用相同的排除規則,則對於每個適用的引擎,在此例中必須複製「流程排除」。
進程萬用字元:
安全終端Windows聯結器支援在「進程排除」中使用萬用字元。這使得覆蓋範圍更廣,而且排除的內容更少,但如果太多內容沒有確定,也可能是危險的。您只能使用萬用字元來包含提供所需排除所需的最小字元數。
Windows進程萬用字元的使用:
- 萬用字元用單個星號字元()和雙星號(*)表示
- 單個星號萬用字元(*):
- 可以使用萬用字元代替單個字元或完整目錄。
- 將萬用字元置於路徑的開頭會被視為無效。
- 萬用字元在兩個定義的字元、斜槓或字母數字之間起作用。
- 將萬用字元置於路徑末尾會排除該目錄中的所有進程,但不排除子目錄。
- 雙星號萬用字元(**):
- 只能放置在路徑的末尾。
- 將萬用字元置於路徑末尾會排除該目錄中的所有進程和子目錄中的所有進程。
- 這允許使用最小輸入獲得更大的排除集,但也為可見性留下很大的安全漏洞。請謹慎使用此功能。
示例:
排除 |
預期結果 |
C:\Windows\*\Tiworker.exe |
不包括Windows子目錄中的所有Tiworker.exe進程 |
C:\Windows\P*t.exe |
不包括Pot.exe 、Pat.exe 、P1t.exe 等 |
C:\Windows\*feeds.exe |
排除Windows目錄中以heaves. exe結尾的所有進程 |
C:\* |
排除C :驅動器中但子目 錄中未包含的所有進程 |
C:\** |
排除C :驅動器上的每個 進程 |
威脅排除
通過威脅排除,您可以排除特定威脅名稱以觸發事件。只有在確定事件是誤報檢測的結果時,才應使用威脅排除。在這種情況下,請使用事件中的確切威脅名稱作為您的威脅排除。請注意,如果您使用此類排除,則即使對威脅名稱進行了真正積極的檢測,也不會被檢測到、隔離或生成事件。
注意:威脅排除不區分大小寫。示例:W32.Zombies.NotAVirus和w32.zombies.notavirus都
匹配相同的威脅名稱。
警告:除非經過徹底調查確認威脅名稱為誤報,否則不要排除威脅。排除的威脅不再填充事件頁籤以進行審閱和稽核。
路徑排除
路徑排除最常使用,因為應用程式衝突通常涉及排除目錄。可以使用絕對路徑建立路徑排除。在Windows上,您還可以使用CSIDIL或KNOWNFOLDERID建立路徑排除。
例如,要在Windows的Program Files
目錄中排除AV應用程式,排除路徑可以是以下任一路徑:
C:\Program Files\MyAntivirusAppDirectory
CSIDL_PROGRAM_FILES\MyAntivirusAppDirectory
FOLDERID_ProgramFiles\MyAntivirusAppDirectory
部分路徑匹配(僅限Windows)
如果路徑排除中未提供尾隨斜槓,則Windows聯結器會在路徑上執行部分匹配。Mac和Linux不支援部分路徑匹配。
例如,如果在Windows上應用以下路徑排除:
C:\Program Files
C:\test
則會排除以下所有路徑:
C:\Program Files
C:\Program Files (x86)
C:\test
C:\test123
將排除項從"C:\test"
更改為"C:\test\"
將防止"C:\test123"
被排除。
副檔名排除
副檔名排除允許排除具有特定副檔名的所有檔案。
重點:
- 安全終結點控制檯中的預期輸入為
.extension
- 如果沒有新增任何副檔名,安全終端控制檯會自動在副檔名前新增一個時間段。
- 擴展不區分大小寫。
例如,若要排除所有Microsoft Access資料庫檔案,可以建立以下排除:
.MDB
注意:標準副檔名排除項在預設清單中可用,不建議刪除這些排除項目,因為這樣會導致終端上的效能更改。
萬用字元排除
萬用字元排除項與路徑或副檔名排除項相同,但可以使用星號字元(*)表示路徑或副檔名中的萬用字元。
例如,如果您希望不掃描macOS上的虛擬機器,可以輸入以下路徑排除:
/Users/johndoe/Documents/Virtual Machines/
但是,此排除項僅適用於一個使用者,因此請用星號替換路徑中的使用者名稱,並建立萬用字元排除項,以便為所有使用者排除此目錄:
/Users/*/Documents/Virtual Machines/
注意:萬用字元排除不會停止於路徑分隔符,這可能會導致意外排除。例如C:\*\test
不包括C:\sample\test和C:\1\test** 或C:\sample\test123
。
警告:以星號字元開始排除可能會導致嚴重的效能問題。刪除或更改所有以星號字元開頭的排除項,以緩解CPU影響。
Windows
在Windows上建立萬用字元排除項時,有一個選項應用於所有驅動器號
。選擇此選項會將萬用字元排除應用於所有已裝載的驅動器。
如果您要手動建立相同的排除項,則需要使用^[A-Za-z]
作為該排除項的字首,例如:
^[A-Za-z]\testpath
兩個範例中,C:\testpath和D:\testpath都排除在外。
當為萬用字元排除選擇Apply to all drive letters
時,安全終端控制檯自動生成^[A-Za-z]。
執行檔排除(僅限Windows)
執行檔排除項僅適用於已啟用漏洞防護的Windows聯結器。執行檔排除將某些執行檔排除在利用漏洞防護的保護範圍之外。如果遇到問題或效能問題,您應該只將執行檔從防漏洞攻擊中排除。
您可以檢查受保護進程的清單,通過在應用程式排除欄位中指定其執行檔名,將任何進程從保護中排除。執行檔排除項必須與執行檔名稱完全匹配,格式為name.exe
。不支援萬用字元。
注意:只能通過安全端點控制檯使用可執行排除排除來排除應用程式。與DLL相關的任何排除都需要開啟支援案例才能建立排除。
為防漏洞攻擊找到正確的排除項比任何其他排除型別要複雜得多,並且需要進行大量測試以最大限度地減少任何有害的安全漏洞。
IOC排除(僅限Windows)
IOC排除允許排除雲危害表現。如果您有一個自定義或內部應用程式可能未簽名並且導致某些IOC頻繁觸發,則該選項會很有用。安全終端控制檯提供要從IOC排除中選擇的指示符的清單。您可以通過下拉選單選擇要排除的指標:
注意:如果排除嚴重性高或嚴重的IOC,您將對其失去可見性,並可能使您的組織面臨風險。只有在遇到大量誤報檢測時,才應排除這些IOC。
CSIDL和KNOWNFOLDERID(僅限Windows)
在編寫Windows的路徑和進程排除項時,接受並鼓勵使用CSIDL和KNOWNFOLDERID值。CSIDL/KNOWNFOLDERID值對於為使用備用驅動器號的環境建立進程和路徑排除非常有用。
在使用CSIDL/KNOWNFOLDERID時,需要考慮一些限制。如果您的環境在多個驅動器碟符上安裝程式,則CSIDL/KNOWNFOLDERID值僅指標籤為預設或已知安裝位置的驅動器。
例如,如果作業系統安裝在C:\
上,但Microsoft SQL的安裝路徑已手動更改為D:\
,則維護的排除清單中的基於CSIDL/KNOWNFOLDERID的排除不適用於該路徑。這意味著對於C:\
驅動器上未找到的每個路徑或進程排除必須輸入一個排除項,因為使用CSIDL/KNOWNFOLDERID不會對映該路徑。
有關詳細資訊,請參閱以下Windows文檔:
註:僅Windows聯結器8.1.7及更高版本支援KNOWNFOLDERID。早期版本的Windows聯結器使用CSIDL值。
註:KNOWNFOLDERID值區分大小寫。例如,必須使用valueFOLDERID_ProgramFiles
,而不能使用無效的valueFolderID_programfiles
。
準備聯結器以進行排除調整
要準備聯結器以進行排除調諧,您需要:
- 設定要在調試模式下運行的策略和組。
- 根據正常業務操作運行新調試組中的電腦,並等候獲取足夠的聯結器日誌資料。
- 在聯結器上生成診斷資料,用於識別排除項。
有關啟用調試模式和收集不同作業系統上的診斷資料的說明,請參閱以下文檔:
確定排除項
MacOS和Linux
在Debug模式下生成的診斷資料提供了兩個檔案,可用於建立排除:fileops.txt和execs.txt。fileops.txt檔案用於建立路徑/副檔名/萬用字元排除,而execs.txt檔案用於建立進程排除。
建立進程排除
execs.txt檔案列出了觸發安全終結點執行檔案掃描的可執行路徑。每條路徑都有一個關聯的計數,指出其掃描的次數,並按降序對清單進行排序。您可以使用此清單確定執行事件數量大的進程,然後使用進程路徑來建立排除項。但是,建議不要排除常規實用程式(如/usr/bin/grep)或解釋程式(如/usr/bin/ruby)。如果某個通用程式或解釋程式生成了大量的檔案掃描,則您可以進行更多調查,嘗試建立更有針對性的排除項:
- 排除父進程:確定哪個應用程式正在執行該進程(例如,查詢執行grep的父進程)並排除此父進程。若且唯若父進程可以安全轉換為進程排除時,應執行此操作。如果父項排除應用於子項,則來自父進程的任何子項的呼叫也將被排除。
- 排除給定使用者的進程:確定哪個使用者正在執行該進程。如果某個特定使用者正在高容量下執行該進程,則您可以僅為該特定使用者排除該進程(例如,如果某個進程正被使用者「root」在高容量下呼叫,則可以排除該進程,但僅針對指定的使用者「root」,這將允許安全終結點監控非「root」的任何使用者執行給定進程)。
execs.txt的輸出示例:
33 /usr/bin/bash
23 /usr/bin/gawk
21 /usr/bin/wc
21 /usr/bin/sleep
21 /usr/bin/ls
19 /usr/bin/pidof
17 /usr/bin/sed
14 /usr/bin/date
13 /usr/libexec/gdb
13 /usr/bin/iconv
11 /usr/bin/cat
10 /usr/bin/systemctl
9 /usr/bin/pgrep
9 /usr/bin/kmod
7 /usr/bin/rm
6 /usr/lib/systemd/systemd-cgroups-agent
6 /usr/bin/rpm
4 /usr/bin/tr
4 /usr/bin/sort
4 /usr/bin/find
建立路徑、副檔名和萬用字元排除
fileops.txt檔案列出了檔案建立、修改和重新命名活動觸發安全端點執行檔案掃描的路徑。每條路徑都有一個關聯的計數,指出其掃描的次數,並按降序對清單進行排序。開始使用Path exclusions的方法之一是從fileops.txt查詢最頻繁掃描的檔案和資料夾路徑,然後考慮為這些路徑建立規則。雖然高計數不一定表示必須排除路徑(例如,可以經常掃描儲存電子郵件的目錄,但不能排除該目錄),但該清單提供了識別排除候選目錄的起點。
fileops.txt的輸出示例:
31 /Users/eugene/Library/Cookies/Cookies.binarycookies
24 /Users/eugene/.zhistory
9 /Users/eugene/.vim/.temp/viminfo
9 /Library/Application Support/Apple/ParentalControls/Users/eugene/2018/05/10-usage.data
5 /Users/eugene/Library/Cookies/HSTS.plist
5 /Users/eugene/.vim/.temp/viminfo.tmp
4 /Users/eugene/Library/Metadata/CoreSpotlight/index.spotlightV3/tmp.spotlight.state
3 /Users/eugene/Library/WebKit/com.apple.Safari/WebsiteData/ResourceLoadStatistics/full_browsing_session_resourceLog.plist
3 /Library/Logs/Cisco/supporttool.log
2 /private/var/db/locationd/clients.plist
2 /Users/eugene/Desktop/.DS_Store
2 /Users/eugene/.dropbox/instance1/config.dbx
2 /Users/eugene/.DS_Store
2 /Library/Catacomb/DD94912/biolockout.cat
2 /.fseventsd/000000000029d66b
1 /private/var/db/locationd/.dat.nosync0063.arg4tq
一個好的經驗法則是,任何具有日誌或日誌副檔名的事物都應被視為合適的排除候選對象。
行為保護引擎(僅限Linux)
從Linux聯結器版本1.22.0和行為保護引擎的引入開始,進程排除將應用於所有引擎和檔案掃描。異常高的系統活動會導致故障18,必須將進程排除應用於非常活躍的良性進程,才能修復此故障。由調試模式診斷資料生成的top.txt檔案可用於確定系統中最活躍的進程。有關補救步驟的詳細資訊,請參閱安全終端Linux聯結器故障18指南。
進程排除也可用於使良性軟體的誤報行為保護檢測失效。如果安全終端控制檯上報告的檢測結果確定為良性,則可以排除該進程以確保報告的內容相關;不會出現誤報結果。
Windows
Windows作業系統更加複雜,因為父進程和子進程而提供了更多排除選項。這表示需要更深入的審查,以識別已訪問的檔案以及生成這些檔案的程式。
請從Cisco Security的GitHub頁面參閱此Windows調整工具,以獲取有關如何使用安全終結點分析和最佳化Windows效能的詳細資訊。
在安全終結點控制檯中建立排除規則
注意:在寫入排除項之前,請始終瞭解檔案和進程,以避免終端存在安全漏洞。
完成以下步驟,使用安全終端控制檯建立新的排除規則:
- 在安全終端控制檯中,通過選擇
管理
-> 排除
導航到「策略」頁。(A)找到要修改的排除集並按一下編輯
,或(B)按一下+ New Exclusion Set...
。
- 在
New Exclusion Set
彈出視窗中,選擇要為其建立排除集的作業系統。按一下「Create
」。
- 您將重定向到「新
排除集」
頁面。按一下+ Add Exclusion
,然後從Select Type
下拉選單中選擇排除型別。
Windows:
Mac/Linux:
- 填寫所選排除型別的必填欄位。
- 重複步驟2和3以新增更多規則,或按一下
Save
以儲存排除集。
最佳實踐
建立排除時應小心,因為它們會降低思科安全端點提供的保護級別。排除的檔案未進行雜湊、掃描或在快取或雲中可用,活動不受監控,並且後端引擎、裝置軌跡和高級分析中缺少資訊。
僅當目標例項中使用排除項時,例如與特定應用程式的相容性問題或無法改善的效能問題。
建立排除項時要遵循的一些最佳實踐包括:
- 僅針對已驗證的問題建立例外項
- 不要假定排除是必需的,除非證明它是無法通過其他方法解決的問題。
- 應用排除之前,必須徹底調查和緩解效能問題、誤報或應用程式相容性問題。
- 優先使用進程排除而不是路徑/副檔名/萬用字元排除
- 與使用路徑、副檔名和萬用字元排除來達到相同結果相比,進程排除提供了一種更直接的方式來排除良性軟體活動。
- 建議儘可能將目標程式執行檔的路徑、副檔名和萬用字元排除替換為相應的進程排除。
- 避免廣泛排除
- 避免過度使用萬用字元排除
- 使用萬用字元建立排除項時要小心。儘可能使用更具體的排除項。
- 使用排除中的萬用字元的最小數量;只有真正可變的資料夾才應使用萬用字元。
- 避免排除通用程式和口譯人員
- 建議不要排除一般實用程式或口譯員。
- 如果確實需要排除排除常規實用程式或解釋程式,則提供進程使用者(僅限macOS/Linux)。
- 例如,避免寫入包括python、
java
、ruby
、bash
、sh
等在內的排除項。
- 避免重複排除
- 建立排除之前,請檢查該排除項是否已經存在於自定義排除項或思科維護的排除項中。
- 刪除重複排除可提高效能並減少排除的操作管理。
- 確保路徑/副檔名/萬用字元排除未涵蓋進程排除中指定的路徑。
- 避免排除已知常用於惡意軟體攻擊的進程
- 刪除過時排除項
- 定期審查和審計您的排除清單,並記錄新增某些排除的原因。
- 刪除危害時的排除項
- 當聯結器受到威脅時,必須刪除排除項,以便重新獲得最佳安全性和可視性。
- 自動操作可用於在感染後對聯結器應用更安全的策略。如果聯結器受損,則應將其移動到包含沒有任何排除的策略的組,以確保應用最高級別的保護。
- 有關如何主動設定「危害時移動電腦到組」自動操作的詳細資訊,請參閱識別觸發安全終端中的自動操作的條件。
- 加強對排除專案的保護
- 當排除絕對必要時,考慮可以採取什麼緩解策略,例如啟用防寫為排除的專案新增一些保護層。
- 智慧建立排除項
- 通過選擇最高級別的父進程來最佳化規則,該父進程唯一標識要排除的應用程式,並使用
Apply to Child Process
選項來最小化規則數。
- 從不排除啟動進程
- 啟動進程(在macOS上啟動
launchd
、在Linux上啟動init
或systemd
)負責啟動系統上的所有其它進程,並且位於進程層次結構的頂端。
- 排除啟動進程及其所有子進程將有效地禁用安全端點監控。
- 儘可能指定進程使用者(僅限macOS/Linux)
- 如果使用者欄位留空,則排除將應用於運行指定程式的任何進程。
- 雖然適用於任何使用者的排除方式更為靈活,但此廣泛範圍可能會無意中排除必須監控的活動。
- 指定使用者對於應用於共用程式的規則特別重要,例如運行時引擎(例如,
java
)和指令碼直譯器(例如,bash
、python
)。
- 指定使用者可限制範圍,並指示安全終結點在監視其他例項時忽略特定例項。
不推薦的排除項
雖然不可能知道攻擊者可能使用的每個可能的攻擊媒介,但有一些核心攻擊媒介應受到監控。要保持良好的安全狀態和可視性,不建議使用以下排除項:
AcroRd32.exe |
addinprocess.exe |
addinprocess32.exe |
addinutil.exe |
bash.exe |
bginfo.exe |
bitsadmin.exe |
cdb.exe |
csi.exe |
dbghost.exe |
dbgsvc.exe |
dnx.exe |
dotnet.exe |
excel.exe |
fsi.exe |
fsiAnyCpu.exe |
iexplore.exe |
java.exe |
kd.exe |
lxssmanager.dll |
msbuild.exe |
mshta.exe |
ntkd.exe |
ntsd.exe |
outlook.exe |
psexec.exe |
powerpnt.exe |
powershell.exe |
rcsi.exe |
svchost.exe |
schtasks.exe |
system.management.automation.dll |
windbg.exe |
winword.exe |
wmic.exe |
wuault.exe |
.7z |
.bat |
.bin |
.cab |
.cmd |
.com |
.cpl |
.dll |
.exe |
.fla |
.gif |
.gz |
.hta |
.inf |
.java |
.jar |
.job |
.jpeg |
.jpg |
.js |
.ko |
.ko.gz |
.msi |
.ocx |
.png |
.ps1 |
.py |
.rar |
.reg |
.scr |
.sys |
.tar |
.tmp |
.url |
.vbe |
.vbs |
.wsf |
.zip |
巴什 |
java |
python |
python3 |
sh |
zsh |
/ |
/bin |
/sbin |
/usr/lib |
思: |
C:\ |
C:\* |
|
D:\ |
D:\* |
C:\Program Files\Java |
C:\Temp\ |
C:\Temp\* |
C:\Users\ |
C:\Users\* |
C:\Windows\Prefetch |
C:\Windows\Prefetch\ |
C:\Windows\Prefetch\* |
C:\Windows\System32\Spool |
C:\Windows\System32\CatRoot2 |
C:\Windows\Temp |
C:\Windows\Temp\ |
C:\Windows\Temp\* |
C:\Program檔案\<公司名稱>\ |
C:\Program檔案(x86)\<公司名稱>\ |
C:\Users\<UserProfileName>\AppData\Local\Temp\ |
C:\Users\<UserProfileName>\AppData\LocalLow\Temp\ |
注意:這不是要避免的詳盡排除清單,但它可以深入瞭解核心攻擊媒介。保持對這些路徑、副檔名以及進程的可視性至關重要。
相關資訊