首頁>Security>source

我支援许多應用程式,其中一些有sql資料庫.有许多指令碼(主要是powershell / bash)来檢查應用程式的狀態,看它是否被认為是健康的.其中一些指令碼呼叫sql資料庫.

我非常肯定我可以改變指令碼以執行恶意操作並自行執行或等待团队中的其他人執行它

有没有办法防止或至少减轻PU對掛钩到sql db的指令碼可能造成的一些潜在损害?

最新回復
  • 2019-12-5
    1 #

    實際上,甚至不需要調整指令碼.据推測,指令碼中的SQL凭据允许其訪問,您可以获取這些凭据,直接連線到服務器,並執行任何操作。

    值得強調的是,這是一个非常有效的問题.所有資料洩露事件中約有一半是"內部人員",其中大約一半是故意的,另一半是偶然的.因此,限製和监控對包含任何敏感內容的生产資料庫的所有訪問權限實際上非常重要.您有两个主要選擇:

    最小特權原則(維基)

    最小特權原則是資訊安全的一个關键方面.這个想法是人们/事物應该只能訪問他们完成"工作"所需要的东西 - 仅此而已.在您的情况下,這意味着指令碼使用的資料庫訪問凭證不應具有對資料庫的完全和不受限製的訪問權限.它们應该只具有获取所需資料所需的表/列的只讀權限。

    這意味着您必须在SQL Server中建立一个新使用者帐戶,该帐戶對資料庫的訪問權限非常有限.大多數人都不打扰這樣的步骤,因為它可能需要更多的努力来管理.例如,如果您的需求發生變化並且您的指令碼需要檢查更多表,則必须更新SQL使用者以增加其權限.但是,基於许多公司的實際经驗,由於很多原因,让大量開發人員不受限製地訪問生产資料庫通常是一个壞主意。

    因此,如果使用指令碼进行当前設置很方便,那麼請更新SQL訪問凭据,以便為關聯使用者提供尽可能少的訪問權限。

    一起删除SQL訪問

    就个人而言,我可能会走另一條路(尽管這仍然只是"最小特權原則"的變體).作為一般经驗法則,除了减轻总線因素之外,我根本不類似發出SQL訪問權限.最有可能你可以提出另一个解決方案,不需要任何人直接訪問SQL。

    這可以归結為生成一些API呼叫或web門戶来完成相同的任務.您可以让某人訪問API /門戶而不是您的服務器和指令碼(這實際上只是為他们提供了直接的資料庫訪問).您仍然可以限製API登錄的使用者的資料庫訪問,以防万一web系統最终有自己的漏洞供人们利用。

    API /門戶網站的優势在於您有更多選項可用於跟蹤使用者活動,审核和訪問控製.缺點是它是你必须構建的另一个系統,它有自己潜在的安全問题.但是,基於您已经拥有大量應用程式,指令碼和使用者這一事實,我认為這對您来說只是一个時間問题,直到這是最佳解決方案。

    摘要

    您的第一步是限製指令碼執行的使用者的資料庫訪問權限.但是,在這種情况下,每次需要一些新的管理任務時,很容易陷入編寫新指令碼的习惯中.這很快就会匯致各種混亂,易於訪問和丟擲編碼,从而匯致資料洩露.設計和構建管理工具意味着實施訪問控製,审計和最小特權原則,使您處於可以預設安全性的地方。

    当然,這个建議現在對你来說可能有點過頭了.但是,如果您繼續增长,那麼您的当前解決方案將会出現彻底疏忽。

  • 2019-12-5
    2 #

    根据指令碼的不同,您可以限製讀取資料庫內部狀態的權限 只。結果 在Microsoft SQL Server中,這是通過按照此處的文件中所述授予VIEw DATABASE STATE来完成的。

    這听起来像一个监控帐戶,如果它只是讀取資料庫狀態,則上面的SQL服務器權限將完成這項工作.如果它正在讀取可用磁盤空間之類的东西,那麼windows權限也会受到限製。

  • ransomware:如何阻止cryptolocker攻击?
  • vulnerability:為什麼MITER不会更改明顯不正確的CVE條目?