生產伺服器安裝 make 是否安全?

生產伺服器安裝 make 是否安全?

在設定虛擬伺服器實例期間,我需要使用make.安裝是否有任何安全風險make?或者我應該在部署實例之前清理它?

gcc我的伺服器上還有編譯器,我用它在部署之前建立應用程式。

答案1

有些人會認為,生產機器上存在開發工具將使攻擊者的日子變得更輕鬆。然而,對於攻擊者來說,這只是一個很小的障礙,因此您可以找到的任何其他支持或反對安裝開發工具的論點都會更重要。

如果攻擊者到目前為止能夠滲透系統,他們可以呼叫伺服器上存在的任何工具,那麼您已經遇到了嚴重的安全漏洞。如果沒有開發工具,還有許多其他方法可以將二進位資料寫入文件,然後對該文件執行 chmod。此時,想要在系統上使用自訂建置可執行檔的攻擊者也可以在自己的電腦上建置該可執行檔並將其傳輸到伺服器。

還有其他更相關的事情要注意。如果已安裝的軟體包含安全錯誤,則可以透過以下幾種方式將其暴露給攻擊者:

  • 該軟體包可能包含 suid 或 sgid 可執行檔。
  • 該包可能正在啟動系統上的服務。
  • 該套件可以安裝在某些情況下自動調用的腳本(這包括 cron 作業,但腳本可以由其他事件調用,例如當網路介面狀態變更或使用者登入時)。
  • 該軟體包可以安裝設備索引節點。

我不希望開發工具與上述之一相匹配,因此不是一個高風險的包。

如果您有需要使用開發工具的工作流程,那麼您必須先確定這些工作流程是否合理,如果是,則應該安裝開發工具。

如果您發現伺服器上實際上不需要這些工具,則應避免安裝它們,原因有多種:

  • 節省伺服器和備份上的磁碟空間。
  • 安裝的軟體較少,可以更輕鬆地追蹤您的依賴項。
  • 如果您不需要該軟體包,那麼安裝它就沒有必要承擔額外的安全風險,即使該安全風險很小。

如果您出於安全原因決定不允許非特權使用者將自己的可執行檔案放在伺服器上,那麼您應該避免的不是開發工具,而是那些使用者在以執行權限掛載的檔案系統上可寫入的目錄。即使在這種情況下,開發工具仍然可能有用,但可能性不大。

答案2

make是一個與 具有不同語法的 shell bash

像這樣的編譯器gcc是一個功能強大的awk編譯器,配置了一組標準awk不支援的替換。它不符合 POSIX 標準,sortcat在輸出中註入垃圾。它是一個互動式文字編輯器(想想vi),配置為在啟動時進行一些編輯,然後在顯示使用者介面之前退出。

它們本身並沒有什麼不安全的地方,它們不會讓你的機器比使用 bash + cat+ shell 重定向的機器更不安全。

答案3

make本身就很好。make只是一個依賴追蹤和自動化框架。不過,它通常與編譯器結合使用,並且最好不要在生產系統上使用它們,因為它們完全沒有必要。這同樣適用於所有不需要的包,無論是共享庫、解釋器等。

您應該在建置伺服器上建置應用程序,將其打包,然後將二進位套件部署到生產系統。

註:原生打包工具。甚至不用費心去摸索它們。相反,看看喬丹·西塞爾的fpm。它使包裝成為絕對的樂趣。

答案4

您問是否make應該安裝在生產伺服器上,但我真正的問題是:誰有權訪問該生產伺服器以及您有哪些保護措施來應對入侵?如果make未安裝但有人獲得root存取權限,你猜怎麼著?他們可以手動安裝make任何他們想要的東西。

關於電腦安全的殘酷現實是,儘管您想阻止不必要的訪問,但痴迷於阻止訪問並不重要:

  1. 誰有權存取伺服器?
  2. 您可以採取什麼措施來從闖入後回滾?

這完全取決於你從事什麼樣的工作。我主要在網頁伺服器領域工作,我的態度基本上是,任何從我這裡獲得生產伺服器存取權限的人都需要證明技能、知識和成熟度。就是這樣。有時需要幾天時間。有時需要幾個月的時間。但基本上,生產伺服器上的最佳安全線是在我們為強化伺服器所做的各種其他事情之上控制存取。

相關內容