閱讀下列說明和C語言代碼,回答問題1至問題4,將解答寫在答題紙的對應(yīng)欄內(nèi)。
【說明】
在客戶服務(wù)器通信模型中,客戶端需要每隔一定時間向服務(wù)器發(fā)送數(shù)據(jù)包,以確定服務(wù)器是否掉線,服務(wù)器也能以此判斷客戶端是否存活,這種每隔固定時間發(fā)一次的數(shù)據(jù)包也稱為心跳包。心跳包的內(nèi)容沒有什么特別的規(guī)定,一般都是很小的包。
某系統(tǒng)采用的請求和應(yīng)答兩種類型的心跳包格式如圖4-1所示。
心跳包類型占1個字節(jié),主要是請求和響應(yīng)兩種類型;
心跳包數(shù)據(jù)長度字段占2個字節(jié),表示后續(xù)數(shù)據(jù)或者負(fù)載的長度。
接收端收到該心跳包后的處理函數(shù)是process_heartbeat( ),其中參數(shù)p指向心跳包的報文數(shù)據(jù),s是對應(yīng)客戶端的socket網(wǎng)絡(luò)通信套接字。
【問題1】(4分)
(1)心跳包數(shù)據(jù)長度字段的最大取值是多少?
(2)心跳包中的數(shù)據(jù)長度字段給出的長度值是否必須和后續(xù)的數(shù)據(jù)字段的實際長度一致?
【問題2】(5分)
(1)上述接收代碼存在什么樣的安全漏洞?
(2)該漏洞的危害是什么?
【問題3】(2分)
模糊測試(Fuzzing)是一種非常重要的信息系統(tǒng)安全測評方法,它是一種基于缺陷注入的自動化測試技術(shù)。請問模糊測試屬于黑盒測試還是白盒測試?其測試結(jié)果是否存在誤報?
【問題4】(4分)
模糊測試技術(shù)能否測試出上述代碼存在的安全漏洞?為什么?