Linux
迭代添加更多 AppArmor 規則是否不好?
據我所知,AppArmor 不能授予沒有權限的程序(即只能進一步限制)。鑑於此,是否可以一開始對所有程序“全部允許”,然後迭代地添加更多規則並微調現有規則?
人們似乎不同意網路上的說法,好像規則集從一開始就必須是正確的,但我不明白為什麼會這樣?某種程度的保護不是比沒有更好嗎?
澄清:
- 是AppArmor在技術上支持的一種迭代方法。(也許沒有“全部允許”或預設列入白名單和專門列入黑名單之類的東西?)
- 這種方法是否存在任何安全風險?
當然這在技術上是可行的……但這不是最有效的工作方式。
如果您首先允許一切,您將需要不斷猜測哪些事情會被禁止。你將有效地盲目工作。
如果您首先禁止一切,您將收到程序錯誤消息,為您提供有關程序嘗試執行和失敗的操作的資訊(可能是因為過於嚴格的 AppArmor 規則)。您還將在系統審核日誌中收到消息,告訴您 AppArmor 阻止程序執行的確切操作,這將有助於準確地允許程序需要的事情,而不是更多。
請注意,AppArmor 配置文件也可以設置為抱怨模式:在該模式下,AppArmor 實際上不會阻止程序執行任何操作,但會生成審核日誌消息*,就好像它會那樣。*因此,如果您需要最大程度地減少您正在為其開發 AppArmor 配置文件的特定應用程序的中斷,您可以從抱怨模式下的“allow-nothing”配置文件開始,查看生成的審核日誌,添加規則以允許執行以下操作看起來合法並且目前正在生成審計消息,並繼續以這種方式迭代,直到有關該應用程序的任何審計消息都是關於您不希望應用程序首先執行的操作。
此時,您可以有理由確信 AppArmor 配置文件完全正確或非常接近它,並且可以將其切換到實際應用 AppArmor 限制的強制模式。在這一點上,做一些測試是明智的,以防萬一你錯過了什麼……但是在這個過程之後,你可以確信生成的配置文件不會意外地允許你沒有想到的危險.