在正式作業環境中執行安全掃描的最佳實務

在正式作業環境中執行安全掃描會有風險;不過,也許是為了符合審核需求,為了偵測網站是否有駭客入侵,或為了驗證是否採用了整合安全掃描的 SDLC 程序,您可能需要掃描正式作業環境。

不論什麼原因,總是最好先掃描前置正式作業環境,再將掃描移到正式作業環境。這麼做有助於確保安全測試為伺服器帶來較少的風險。

Learn more about known security risks when scanning a production site:
  • 最嚴重:掃描可能使伺服器或應用程式當掉。
  • 次嚴重:掃描會用許多種變式,將相同要求重新傳送給伺服器 - 大約每個參數 40 個變式。伺服器會拒絕其中的某些要求,但多數都會通過,並由應用程式處理,可能會導致下列動作:
    • 在資料庫中新增或變更記錄
    • 完成交易,應用程式設計要執行的交易,例如採購。
    • 電子郵件氾濫。如果表單會將電子郵件傳給一份郵寄清單或某個人,收件者可能會收到上百封電子郵件。
    • 網站破壞途徑。如果網站有論壇頁面,掃描可能會在其中張貼許多項目,有些項目含有跨網站 Scripting 蹦現視窗。
    • 完成網站的修改。如果網站容許變更,比方說,利用建立、編輯和刪除按鈕來進行變更,便會提交一般要求及許多變式要求。
    • Initiate®對於供應商服務的要求。這些要求可能會濫發服務郵件、進行交易,可能會招致一些成本。
    • 警示您的 IDS/IPS(侵入偵測系統/侵入預防系統)團隊。測試會以數千個簽章來觸發 IDS/IPS。這些測試並不是真的攻擊,並不是設計來傷害您的應用程式。不過,IDS/IPS 團隊並不知道這一點,他們會進行適當的反應。
    • IDS 和 IPS 系統會將測試報告為攻擊。

以下是在正式作業環境中實作安全掃描的最佳實務,風險最小,價值最大。

使用測試使用者帳戶

請使用可追蹤的測試帳戶,以確保不會實際訂購服務,且可以在毀損之時重設。測試之後,測試帳戶也使「管理者」比較容易清理網站。請考量測試帳戶的下列因素:

  • 它只應有權存取資料庫中的測試記錄,因此,修改過的記錄可以還原。
  • 刪除測試帳戶所建立的新記錄。
  • 忽略來自測試帳戶的採購單或其他交易。
  • 如果網站有論壇,測試帳戶只應存取測試論壇,以免真正的客戶在測試階段中看到測試。比方說,看到跨網站 Scripting 蹦現視窗可能令人感到恐懼。
  • 如果網站會針對不同帳戶使用不同專用權,則請使用多個測試帳戶。使用多個測試帳戶可確保能夠進行更全面的應用程式測試。

進行使用者驗收和效能測試

尚未在正式作業中配置應用程式來處理一般使用者驗收和效能測試之前,請勿在正式作業中執行安全測試。如果應用程式無法處理這些測試類型,它將無法處理掃描工作所傳送已改變的要求。

取得核准

在未洽詢業務擁有者和開發團隊及取得其核准的情況下,片面掃描任何應用程式,幾乎總是一場災難。當準備執行測試時,以及測試預計要完成時,請記得事先通知相關各方。

建立適當的掃描執行時間

在不干擾網站正規運作時段的預設時間執行掃描,例如夜間。

不可忽略執行侵入性測試

依預設,不會執行侵入性測試,但它們對於完整的測試很重要;比方說,緩衝區溢位便可能帶著網際網路蠕蟲。所有測試,不論是侵入性或非侵入性,都有可能使網站當掉。

防止電子郵件泛濫

請識別使用電子郵件通知的頁面,將它們配置成排除在掃描之外。電子郵件通知會產生大量要求,可能使電子郵件伺服器超載。這些頁面可能很不容易識別,不過,仍有若干技術可用:

  • 在 QA 中測試這些頁面,在正式作業中排除它們。在 QA 中,請將電子郵件位址改成虛擬信箱。
  • 在正式作業中,只測試一部 Web 伺服器,且防止它在測試期間連接 SMTP 伺服器,或測試之前利用 Script 來取代電子郵件位址,測試之後再還原。
  • 將掃描配置成在其中一個電子郵件欄位中放入唯一值,以便收件者可以執行一項搜尋,就將它們全部清除。請利用掃描「自動表單填入」來執行這個功能。

事先開發及測試清理 Script

執行正式作業掃描之後,請利用清理 Script 或程式來移除掃描所建立的測試資料。

識別階段作業參數和記號

請識別使階段作業失效的階段作業參數和記號。您通常可以從應用程式擁有者取得這項資訊。請在內容掃描工作的「參數和 Cookie」頁面新增這些階段作業參數。

識別帳戶失效常式

識別任何帳戶失效常式。掃描應該將這些常式新增為排除項目來避開這些常式。

  • 可能的話,請將容許打錯密碼的次數所用的帳戶失效常式關閉。
  • 如果不可能將帳戶失效關閉,便利用測試帳戶和密碼來個別掃描每個登入頁面。

考慮不進行鑑別的掃描

請利用個別掃描工作來掃描無需鑑別,就可在應用程式之外存取的頁面。從外部執行掃描可以找到更多問題,它有助於瞭解誰能夠存取所發現的安全問題。

利用互動式掃描來識別機密區域

請建立個別工作來處理需要互動的區域,例如,變更密碼頁面、管理設定頁面,或使用者管理頁面。

停用 IDS/IPS 系統

由於 IDS/IPS 系統可能會封鎖測試,以及隱藏其他情況下所顯現的問題,因此,最好是停用這些系統,或環繞著這些系統來進行掃描。您至少應該警示您的 IDS/IPS 團隊。

不透過 Proxy 掃描

雖然支援透過 Proxy 來掃描,但它有可能隱藏問題。例如,HTTP Proxy 可能會竄改伺服器錯誤回應,從而隱藏了安全問題。