天天看點

軟體測試的基本理論-安全測試-4一.安全測試

軟體測試的基本理論-安全測試-4

  • 一.安全測試
    • 1.安全測試概述
      • 什麼是安全測試
      • 安全測試基本原則
    • 2.常見測安全漏洞
      • 1.SQL注入
      • 2.XSS跨站腳本攻擊
      • 3.CSRF 攻擊
    • 3.滲透測試
      • 什麼是滲透測試
      • 滲透測試流程
    • 4.常見安全測試工具
    • 5.安全測試demo

一.安全測試

1.安全測試概述

什麼是安全測試

安全測試貫穿整個軟體生命周期:

軟體測試的基本理論-安全測試-4一.安全測試

風險分析、靜态分析、滲透測試屬于安全測試範疇;

安全測試需要轉換視角,改變測試中的模拟對象;

1) 測試目标不同

普通測試:以發現bug為目的

安全測試:以發現安全隐患為目的

2)假設條件不同

普通測試:假設導緻問題資料是使用者不小心造成;接口一般隻考慮使用者界面,

安全測試:假設導緻問題的資料是攻擊者處心積慮構造的,需要考慮所有可能的攻擊途徑;

3)思考域不同

普通測試:系統的功能作為思考域

安全測試:不但包括系統功能,還有系統機制,外部環境,應用和資料自身安全風險和安全屬性等

4)問題發現模式不同

普通測試:違反功能定義為判斷依據

安全測試:違反權限與能力的限制為判斷依據

安全測試基本原則

遵守一些安全基本原則能避免一些常見的問題出現;

1) 培養正确的思維方式

跳出正常的思維定式才能成功執行安全測試;正常測試隻需要軟體正常運作,而安全測試測試人員需要有創造性思維、逆向思維;

2)盡早測試和正常測試

安全缺陷與正常bug沒什麼差別,也遵循盡早測試原則;

3)選擇正确的測試工具

很多情況下需要模拟黑客對軟體進行攻擊,以確定軟體具有穩固的防禦能力;模拟黑客就需要測試人員需要了解一些安全工具,如漏洞掃描工具,模拟資料流行為的前背景相關工具,資料抓包工具等,但這隻是一個安全漏洞方式,不能作為測試工具使用;

4)可能情況下使用源代碼

測試分為黑盒與白盒;黑盒測試一般使用滲透測試,本身不足是需要大量的測試用例支撐,測試完後仍無法确定軟體是否存在風險;白盒源代碼掃描成為流行的技術,可以找出潛在風險,提高代碼安全性;

5)測試結果文檔化

測試總結-測試行動與測試結果、測試記錄清晰記錄在文檔中;産生測試報告最好包括測試漏洞類型、問題引起安全威脅、嚴重程度、用于發現缺陷測試技術、漏洞修複、風險等;能夠有效幫助開發進行問題定位;

2.常見測安全漏洞

SQL注入、XSS跨站腳本攻擊、CSRF 攻擊

1.SQL注入

a:什麼是SQL注入

SQL注入:把SQL指令人為的輸入URL、表格或者其他動态生成SQL查詢的語句的輸入參數中,最終達到欺騙伺服器執行惡意的SQL指令;

例如:

網站通過網頁輸入使用者的資料

https://blog.csdn.net/xuaner8786/article/details/id=2323

此時,使用者的id 2323被插入資料庫執行下列操作;

select*from users where id =2323

但如果不對輸入資訊進行過濾,會出現如下情況:

https://blog.csdn.net/xuaner8786/article/details/id=’ ’ or 1=1

select*from users where id = ’ ’ or 1=1

此時查到的是所有的使用者資訊;

b:安全性注意總結:

對使用者輸入的内容要時刻保持警惕。

隻有用戶端的驗證等于沒有驗證。

永遠不要把伺服器錯誤資訊暴露給使用者

c:SQL類别

SQL注入不僅能通過輸入框,還能通過Url達到目的。

除了伺服器錯誤頁面,還有其他辦法擷取到資料庫資訊。

可通過軟體模拟注入行為,這種方式盜取資訊的速度要比你想象中快的多。

漏洞跟語言平台無關,并非asp才有注入漏洞而asp.net就沒有注入漏洞,一切要看設計者是否用心。

2.XSS跨站腳本攻擊

a:什麼是跨站腳本攻擊(也稱為XSS)

指利用網站漏洞從使用者那裡惡意盜取資訊;人們經常将跨站腳本攻擊(Cross Site Scripting)縮寫為CSS,但這會與層疊樣式表(Cascading Style Sheets, CSS)的縮寫混淆。是以有人将跨站腳本攻擊縮寫為XSS

b:XSS跨站腳本攻擊影響

為了搜集使用者資訊,攻擊者通常會在有漏洞的程式中插入 JavaScript、VBScript、 ActiveX或Flash以欺騙使用者(詳見下文)。一旦得手,他們可以盜取使用者帳戶,修改使用者設定,盜取/污染cookie,做虛假廣告等

c:XSS跨站腳本攻擊過程

軟體測試的基本理論-安全測試-4一.安全測試

d:XSS防禦規則

不要在允許位置插入不可信資料

在向HTML元素内容插入不可信資料前對HTML解碼

在向HTML常見屬性插入不可信資料前進行屬性解碼

在向HTML JavaScript Data Values插入不可信資料前,進行JavaScript解碼

在向HTML 樣式屬性值插入不可信資料前,進行CSS解碼

在向HTML URL屬性插入不可信資料前,進行URL解碼

3.CSRF 攻擊

a:什麼是CSRF 攻擊

CSRF(Cross-site request forgery)也被稱為 one-click attack或者 session riding,中文全稱是叫跨站請求僞造

攻擊者通過僞造使用者的浏覽器的請求,向通路一個使用者自己曾經認證通路過的網站發送出去,使目标網站接收并誤以為是使用者的真實操作而去執行指令

b:CSRF 攻擊影響

用于盜取賬号、轉賬、發送虛假消息等;攻擊者利用網站對請求的驗證漏洞而實作這樣的攻擊行為,網站能夠确認請求來源于使用者的浏覽器,卻不能驗證請求是否源于使用者的真實意願下的操作行為。

c:CSRF 攻擊防禦規則

驗證 HTTP Referer 字段

使用驗證碼,關鍵操作頁面加上驗證碼

在請求位址中添加token并驗證

在HTTP 頭中自定義屬性并驗證

d:CSRF 攻擊過程

軟體測試的基本理論-安全測試-4一.安全測試

3.滲透測試

什麼是滲透測試

a:滲透測試

滲透測試:利用模拟黑客攻擊的方式,評估計算機系統安全性能的一種方式;這個過程是站在攻擊者的角度對系統的任何弱點、技術缺陷或漏洞進行主動分析,并且有條件的主動利用安全漏洞;

b:滲透測試特點

漸進并且逐漸深入的過程;

不影響業務系統的正常運作的攻擊方式進行

滲透測試流程

軟體測試的基本理論-安全測試-4一.安全測試

a:明确目标

滲透測試-确定測試需求,如針對業務邏輯還是管理權限漏洞;然後确定滲透測試測測試範圍,進而确定測試規則,測試程度,

b:收集資訊

盡可能收集軟體資訊,隻有掌握足夠多的資訊,才能進行更好的漏洞檢查;

c:掃描漏洞

綜合分析收集到的資訊,借助掃描工具對目标程式進行掃描,查找存在的安全漏洞;

d:驗證漏洞

掃描漏洞階段,測試人員會得到很多關于測試目标的安全漏洞,但漏洞有遺漏,需要測試人員結合實際情況,搭模組化拟測試環境對這些安全漏洞進行掃描,被确認的安全漏洞才能被執行利用;

e:分析資訊

不同安全漏洞攻擊機制不一樣,針對各種安全漏洞進一步分析,

f:滲透攻擊

滲透攻擊就是對目标程式進行攻擊,達到測試目的,如擷取賬戶資訊,權限等,一般滲透攻擊為一次性測試,測試完成測試環境要恢複;

g:整理資訊

滲透攻擊完成後,整理攻擊所獲得資訊,為後面編寫測試報告提供資料支援;

h:編寫測試報告

闡述項目安全測試目标、資訊采集方式、漏洞掃描工具以及漏洞情況、攻擊計劃、實際攻擊結果、遇到問題。還要對存在漏洞進行分析,提供安全有效的解決辦法;

4.常見安全測試工具

1,web漏洞掃i奧工具–AppScan

IBM AppScan該産品是一個領先的 Web 應用安全測試工具,曾以 Watchfire AppScan 的名稱享譽業界。Rational AppScan 可自動化 Web 應用的安全漏洞評估工作,能掃描和檢測所有常見的 Web 應用安全漏洞,例如 SQL 注入(SQL-injection)、跨站點腳本攻擊(cross-site scripting)、緩沖區溢出(buffer overflow)及最新的 Flash/Flex 應用及 Web 2.0 應用曝露等方面安全漏洞的掃描

2,端口掃描工具-nmap

NMAP(Network Mapper)是一款開放源代碼的網絡探測和安全稽核的工具。它的設計目标是快速地掃描大型網絡,當然用它掃描單個主機也沒有問題.Nmap以新穎的方式使用原始IP封包來發現網絡上有一些主機,那些主機提供什麼服務(應用程式名和版本),那些服務運作在什麼作業系統(包括版本資訊),它們使用什麼類型的封包過濾器/防火牆,以及一堆其他功能。雖然Nmap通常用于安全稽核,許多系統管理者和網絡管理者也用它來做一些日常的工作,選擇檢視整個網絡的資訊,管理服務更新計劃,以及監視主機和服務的運作。

3,抓包工具-Fiddler

Fiddler是一個http協定調試代理工具,它能夠記錄并檢查所有你的電腦和網際網路之間的http通訊,設定斷點,檢視所有的“進出”Fiddler的資料(指cookie,html,js,css等檔案)。 Fiddler 要比其他的網絡調試器要更加簡單,因為它不僅僅暴露http通訊還提供了一個使用者友好的格式

4,Web滲透測試工具-metasloit

Metasploit是一個免費的、可下載下傳的架構,通過它可以很容易地擷取、開發并對計算機軟體漏洞實施攻擊。它本身附帶數百個已知軟體漏洞的專業級漏洞攻擊工具。

5.安全測試demo

補充:理論知識

自動化測試