我同意@Heinzi - 你應該努力弄清楚攻擊矢量(baddie如何進入你的應用程序)。你已經在你的數據庫中找到了文本,但它是如何到達那裏的?直接通過Sql Server或通過Web服務器或通過Kentico?當你經歷這個調查過程時,記下你的安全性弱點,並且在你去時確定它 - 你基本上正在做一個安全審計!執行這些步驟將導致您抵禦多數攻擊,希望能夠防止這種事情再次發生。
我對你的拓撲結構一無所知(你的服務器是如何建立並連接到對方和網絡的),但是我們可以通過查看機器的Windows日誌來開始調查你的sql服務器安裝在 - 查找在有問題的時候發生的登錄,尋找奇怪的用戶帳戶,並檢查您的密碼和用戶名安全。獲取更多的細節在這裏看看的東西:Windows Intruder Detection Checklist
如果這沒有什麼東西,look at the Sql server logs,並檢查您的用戶名/密碼的安全性和對sql服務器實例的訪問;例如:只能從具有明確原因的計算機訪問sql服務器 - 您的Web服務器,可能是網絡管理員等 - 使用Windows防火牆使訪問「緊」,以便sql服務器實例不只是迴應任何電腦詢問。 - Here's more details about how to secure sql server.
檢查web服務器上的web.config - 是否有sql服務器的用戶名和密碼?檢查你的ftp日誌,看看有沒有人試圖最近讀它。
Kentico版本5+(也許更早)帶有記錄「事件」的功能。如果您打開了事件日誌記錄,則應該可以看到您的模板正在被修改;請轉至Site Manager > Administration > Event Log
並返回到您第一次注意到的日期,然後檢查用戶帳戶進行修改的條目。
甚至更好:如果您有權訪問數據庫服務器,則可以執行直接表查詢來獲取此數據: SELECT TOP 1000 * FROM [CMS_EventLog]
再次查看奇怪的IP地址或用戶名在奇數時間發生的條目。
同樣,最好限制對所有'敏感'資源(數據庫,Kentico cmsdesk和siteadmin)的訪問。 Windows防火牆在執行此操作時非常出色 - 可以減少遠程桌面訪問,並關閉儘可能多的端口,從而減少服務器暴露的表面面積。使用簡單的Shields Up! from Gibson Research或Awesome Nmap security scanner tool來測試您的曝光。
作爲一個例子,我的Web服務器只公開暴露端口80和443(http和https),並且如果需要的話,也許是一個隨機的高端口像4456的Ftp。我使用Windows防火牆將對遠程桌面的訪問限制爲少數IP地址。 Sql服務器沒有公共端口,它們被調整爲「隱身」,並且不回覆來自非授權IP的任何請求。
作爲一個軼事的例子 - 當我將服務器置於運行狀態時,它在機器人開始嘗試通過遠程桌面登錄之前需要8小時才能登錄(您可以在Windows事件日誌>安全性中看到成千上萬的失敗嘗試) - 只要您使用Windows防火牆忽略未經批准的IP地址,日誌就會保持清晰。
作爲一個有用的注意事項:如果您沒有經歷過這類事情,您可能需要採購經驗豐富的Windows系統管理員的服務來幫助您。並且請注意,可能會有更多的系統受損 - 您可能剛剛發現了「冰山一角」,可能有Trojans以及Rootkit和其他惡意等待,因此您還需要全面的安全掃描。
+1。通常,「保護」sql server是沒有意義的,因爲它不應該從互聯網上啓動。這可能是來自弱CMS的SQL注入。 Kontact Kentiko,amaybe你忘了解決一個已知的問題,他們發佈了一年前的修復? – TomTom
@Heinzi:我不知道黑客如何破解我的網站。請讓我知道如何檢查這個? –
@GauravAgrawal你不需要知道(也永遠不會知道)小偷是如何挑選你的鎖,你只需要更好地鎖定。 –