趙振中 廖駿
摘? ?要:文章介紹了一種異于傳統(tǒng)DDos的攻擊方式Shrew DDos,重點(diǎn)討論了這種攻擊的特點(diǎn)、攻擊參數(shù)與效果。由于Shrew DDos的隱蔽性,傳統(tǒng)的入侵檢測系統(tǒng)很難把它和正常的數(shù)據(jù)流區(qū)分開。文章給出了一個基于數(shù)字信號處理(Digital Signal Processing, DSP)的檢測方案,并對檢測算法的復(fù)雜性和檢測的實(shí)時性進(jìn)行了討論。
關(guān)鍵詞:DSP;Shrew DDos;攻擊檢測;信息安全
中圖分類號:TP312? ? ? ? ? 文獻(xiàn)標(biāo)識碼:B
Abstract: This paper introduces a kind of DDos attack method-Shrew DDoS, which is different from the traditional DDoS attack method. The characteristics, attack parameters and effects of this attack are mainly discussed. Due to the concealment of Shrew DDos, it is difficult for traditional intrusion detection systems to distinguish it from normal data flow. This paper presents a detection scheme based on DSP, and discusses the complexity of the detection algorithm and the real-time performance of the detection.
Key words: DSP;Shrew DDos;attack detection;information security
1 引言
DoS(Denial of Service)攻擊,其含義是拒絕服務(wù)攻擊,這種攻擊行為使網(wǎng)站服務(wù)器充斥大量要求回復(fù)的信息,消耗網(wǎng)絡(luò)帶寬或系統(tǒng)資源,導(dǎo)致網(wǎng)絡(luò)或系統(tǒng)不勝負(fù)荷而停止提供正常的網(wǎng)絡(luò)服務(wù)。而DDoS分布式拒絕服務(wù),則主要利用Internet上現(xiàn)有機(jī)器及系統(tǒng)的漏洞,攻占大量聯(lián)網(wǎng)主機(jī),使其成為攻擊者的代理。當(dāng)被控制的機(jī)器達(dá)到一定數(shù)量后,攻擊者通過發(fā)送指令操縱這些攻擊機(jī)同時向目標(biāo)主機(jī)或網(wǎng)絡(luò)發(fā)起 DoS攻擊,大量消耗其網(wǎng)絡(luò)帶寬和系統(tǒng)資源,導(dǎo)致該網(wǎng)絡(luò)或系統(tǒng)癱瘓或停止提供正常的網(wǎng)絡(luò)服務(wù)。由于DDoS 的分布式特性,使它具有了比DoS更為強(qiáng)大的攻擊力和破壞性。
2 Shrew DDos攻擊檢測
2.1 TCP流量控制及重發(fā)機(jī)制
TCP提供面向連接的服務(wù),但被連接的雙方可能具有不一致的收發(fā)速率或緩沖空間,如果發(fā)送的速度過快,可能會使接收方的緩沖區(qū)溢出,從而產(chǎn)生嚴(yán)重后果,因此需要一種機(jī)制進(jìn)行流量控制。
TCP提供可靠的運(yùn)輸層。它使用的方法之一就是確認(rèn)從另一端收到的數(shù)據(jù),但數(shù)據(jù)和確認(rèn)都有可能會丟失。TCP通過在發(fā)送時設(shè)置一個定時器來解決這種問題。如果當(dāng)定時器溢出時還沒有收到確認(rèn),它就需要重傳該數(shù)據(jù)。對任何實(shí)現(xiàn)而言,關(guān)鍵之處就在于超時和重傳的策略,即怎樣決定超時間隔和如何確定重傳的頻率。
2.1.1 流量控制
由于網(wǎng)絡(luò)中存在著大量的數(shù)據(jù)流,所以需要使用TCP控制協(xié)議對這些數(shù)據(jù)流進(jìn)行控制。TCP控制網(wǎng)絡(luò)數(shù)據(jù)流量的方法主要為慢開始和擁塞控制機(jī)制,具體過程如下。
發(fā)送端的主機(jī)在確定發(fā)送報文段的速率時,既要根據(jù)接收端的接收能力,又要從全局考慮不要使網(wǎng)絡(luò)發(fā)生擁塞。于是,每個TCP連接要有2個狀態(tài)變量,接收窗口(Rwnd)以及擁塞控制窗口(Cwnd)。接收窗口根據(jù)接收機(jī)的能力而設(shè)定,是接收端的流量控制,而發(fā)送端根據(jù)網(wǎng)絡(luò)的狀態(tài)對發(fā)送流量進(jìn)行控制,是發(fā)送端的流量控制。發(fā)送窗口的上限值為Max(Rwnd、Cwnd)。
當(dāng)TCP連接初始化時,將Cwnd設(shè)為1,慢開始的門限值(Ssthresh)設(shè)為16。假設(shè)接收端的窗口足夠大,則擁塞控制主要來自于發(fā)送端。一開始為慢開始階段,當(dāng)發(fā)送端每收到一個從接收端收到的ACK確認(rèn)包后,就將Cwnd加倍,如此往復(fù)。當(dāng)Cwnd 值到達(dá)Ssthresh值時,進(jìn)入擁塞控制階段,在每收到一個ACK確認(rèn)時將Cwnd值增加1,再如此往復(fù)。一旦發(fā)現(xiàn)網(wǎng)絡(luò)中數(shù)據(jù)包丟失(連續(xù)收到3個接收端發(fā)來的對同一個數(shù)據(jù)包的接收請求或者沒有在規(guī)定的時間內(nèi)收到ACK確認(rèn)包),就將Ssthresh值設(shè)為當(dāng)前Cwnd值的一半,并將Cwnd的值設(shè)為1,并接重新開始慢開始算法。
2.1.2 重發(fā)機(jī)制
TCP傳輸控制協(xié)議通過一個超時重發(fā)機(jī)制,在沒有接收到對方對數(shù)據(jù)包正確傳送的確認(rèn)時,認(rèn)為該數(shù)據(jù)包在傳送過程中已經(jīng)丟失,因而需要重新傳送該數(shù)據(jù)包。在此過程中,需要引入一個重發(fā)定時器,用于計算超時等待時間,以便決定在等待多長的時間之后仍未收到對方確認(rèn)時,需要進(jìn)行數(shù)據(jù)包重發(fā)。
重發(fā)定時器的算法規(guī)范在RFC 2988(Computing TCP's Retransmission Timer)中定義,將該算法概括如下。
2.2 傳統(tǒng)的DDos檢測方法
傳統(tǒng)的基于網(wǎng)絡(luò)的入侵檢測系統(tǒng)(NIDS)主要是通過單位時間的鏈路流量是否超過某一預(yù)先設(shè)定的極限值,來判斷網(wǎng)絡(luò)中是否發(fā)生DDoS 攻擊。而傳統(tǒng)的基于主機(jī)的IDS(HIDS)主要是通過單位時間內(nèi)到達(dá)主機(jī)數(shù)據(jù)包的數(shù)量是否超過某個預(yù)先設(shè)定的極限值,來判斷該主機(jī)是否遭遇DDoS攻擊。
2.3 Shrew DDos攻擊
Shrew DDoS攻擊被稱為是降低質(zhì)量(Reduction of Quality,RoQ)攻擊,也被稱為LDDos(Low DDos)攻擊,即低速率的DDos攻擊,能夠隱秘地、周期性地和低頻量地進(jìn)行攻擊而不被受害者發(fā)現(xiàn)。Shrew 攻擊甚至比淹沒型DDoS攻擊對網(wǎng)絡(luò)資源的危害更大。
2.3.1 攻擊原理
Shrew DDos正是利用TCP 協(xié)議中超時重傳(Retransmission Time Out,RTO)機(jī)制的弱點(diǎn)來進(jìn)行攻擊的。Shrew DDos 攻擊目標(biāo)是到達(dá)目標(biāo)服務(wù)器路徑上的必經(jīng)或者主要路由器,路由器是負(fù)責(zé)轉(zhuǎn)發(fā)數(shù)據(jù)包的網(wǎng)絡(luò)設(shè)備,一般采用被動隊列管理機(jī)制管理其緩存。簡單地講,被動隊列管理機(jī)制就是當(dāng)緩存溢出時,將后續(xù)到達(dá)的數(shù)據(jù)包不做任何處理直接丟掉。而攻擊者恰恰抓住了這個特點(diǎn),直接利用了這種隊列管理機(jī)制的不完善性來完成Shrew DDos攻擊。
如圖1所示是一種周期方波型的Shrew攻擊流,縱軸的單位是每秒發(fā)送包的數(shù)量,橫軸表示時間。(a)(b)(c)三幅圖的攻擊效果其實(shí)是一樣的,在下文中會重點(diǎn)闡述周期方波型Shrew的攻擊參數(shù)和攻擊效果,這里先提出來是為了結(jié)合圖2說明攻擊原理。
如圖2所示是受到Shrew攻擊時路由器的簡單工作模型。
Legitimate TCP Flow是合法的TCP流;
Shrew attack是Shrew攻擊流;
Droped是由于路由器無法處理而自動丟棄的TCP包。
在網(wǎng)絡(luò)中,攻擊流與正常TCP 流共同分享瓶頸路由器鏈路資源,當(dāng)攻擊流脈沖速率R 大于路由器的處理能力時,陸續(xù)到達(dá)路由器的數(shù)據(jù)包將會送入緩存隊列中。攻擊流需要保證在脈沖長度L內(nèi),能夠逐漸地充滿隊列,最后造成緩存溢出,使路由器自動丟棄數(shù)據(jù)包。正常TCP 流一旦發(fā)現(xiàn)有數(shù)據(jù)包丟失,TCP 源端的超時重傳機(jī)制也就隨之啟動,同時TCP的流量控制機(jī)制也會起作用,發(fā)送方會誤以為網(wǎng)絡(luò)相當(dāng)擁擠,從而減緩發(fā)送包的速率。只要Shrew攻擊流的周期能與TCP的RTO相匹配(事實(shí)上RTO是一個不確定的值),就可以讓第一次被丟棄的TCP一直處于重發(fā)狀態(tài),從而達(dá)到拒絕服務(wù)攻擊的目的。
Shrew DDos與傳統(tǒng)DDoS 攻擊相比,它在單位時間內(nèi)的流量相當(dāng)?shù)牡停@是因?yàn)樗谝粋€周期里有一段時間是不發(fā)送包的,而傳統(tǒng)的檢測方式正是根據(jù)單位時間內(nèi)的流量特性進(jìn)行檢測的。因此,Shrew DDos攻擊具有相當(dāng)好的隱蔽性,在網(wǎng)絡(luò)鏈路中很難被傳統(tǒng)的DDoS 攻擊檢測方法發(fā)現(xiàn)。
2.3.2 攻擊參數(shù)與攻擊效果
如圖1所示,圖中參數(shù)解釋為三點(diǎn):
Period of Attack T為攻擊周期,取值的大小應(yīng)該與RTO匹配,否則效果不好;
Burst Rate R為最高發(fā)包速率,受攻擊方帶寬限制,理論上越大越好;
Length of Burst L為在一個周期里以最高發(fā)包速率發(fā)送包的時間,取值要適當(dāng)。過大,容易被檢測出來;過小,效果不佳。
為取得更好的攻擊效果,攻擊者需要采用最佳的攻擊參數(shù)。如圖2所示,設(shè)t=0時刻開始攻擊,將路由器看成一個先進(jìn)先出的隊列,設(shè)隊列的大小為,t=0時刻已占用的大小為,表示正常TCP數(shù)據(jù)包的到達(dá)速率,為攻擊流的最高速率,表示路由器的處理速率,則在時刻:
隊列被充滿,表示Burst of Rate,則路由器溢出持續(xù)時間為:
攻擊者期望的是在不被發(fā)現(xiàn)的情況下的值愈大愈好,這樣才會最大可能地造成TCP包丟失??紤]到在DDos攻擊中遠(yuǎn)遠(yuǎn)大于路由器的處理能力,使的值充分大是現(xiàn)實(shí)的。而在實(shí)際的網(wǎng)絡(luò)中,要想通過公式來計算,是不太現(xiàn)實(shí)的。因?yàn)閷?shí)際的網(wǎng)絡(luò)中的不定因素很多,有些參數(shù)攻擊者是無法獲取的。在文獻(xiàn)[5]中,做了不同網(wǎng)絡(luò)環(huán)境下的實(shí)驗(yàn)(主要是不同的帶寬限制),實(shí)驗(yàn)中Length of Burst 值分別為100ms、200ms,做了在同一種網(wǎng)絡(luò)環(huán)境下L值對攻擊效果的影響,結(jié)果是L越大效果越明顯,但前提是不能被發(fā)現(xiàn)。
對于攻擊周期T這個參數(shù),大致是可以確定攻擊周期T與RTO相關(guān),如果T與RTO相匹配就能達(dá)到較好的攻擊效果。在實(shí)際網(wǎng)絡(luò)中RTO是一個不定的值,但最小值被設(shè)為1s。因而攻擊周期T也大致為1s。在有些文獻(xiàn)里,R受限于帶寬,L與RTT相關(guān),T與RTO相關(guān)。在參考文獻(xiàn)中,T的取值也都為1s左右。在攻擊效果上,一個成功的Shrew攻擊能使受害主機(jī)的吞吐量降低10%左右。
2.3.3 檢測原理
通過分析可知,測時域角度檢測Shrew DDos攻擊是十分困難的,而它的頻域特性則為工作者提供了一個檢測它的方法。為了說明這一點(diǎn),工作者在局域網(wǎng)環(huán)境下進(jìn)行了實(shí)驗(yàn),采樣程序可以設(shè)置成任意的采樣周期進(jìn)行數(shù)據(jù)包的采樣,數(shù)據(jù)利用Matlab進(jìn)行處理。另外,考慮時間及實(shí)驗(yàn)條件限制,現(xiàn)僅分析單個攻擊的情況。
如圖3所示,橫軸為樣本點(diǎn),是按照1ms的采樣周期進(jìn)行采樣的;縱軸為數(shù)據(jù)包的數(shù)量。對于采樣的頻率,DFT變換時窗的大小等因素對結(jié)果的影響,將在基于DSP的方案設(shè)計中重點(diǎn)討論,這里只討論頻域檢測的可行性。
因?yàn)槭菃蝹€的攻擊,為了達(dá)到攻擊效果,不得不使用很大的發(fā)包速率(即R),使得在時域上Shrew看起來還不是太隱蔽,但如果稍微減少發(fā)包時的速率,并且采用DDos方式的話,Shrew 攻擊時的時域流量圖就會顯得正常的多。同時考慮到,傳統(tǒng)的檢測方式是以單位時間內(nèi)的流量為標(biāo)準(zhǔn)的,如果對圖(b)進(jìn)行一下平均,會發(fā)現(xiàn)這個平均值很正常,也就是說,Shrew攻擊可以躲避傳統(tǒng)的入侵檢測。
現(xiàn)在采用頻域分析的方法,設(shè),其中為采樣時間間隔,表示在時間段到達(dá)檢測路由器的數(shù)據(jù)包數(shù)量。它的DFT為:
這里,直接使用了Matlab提供的函數(shù)FFT,并以最簡潔的方式的形式進(jìn)行了變換,得到的是幅頻特性圖?,F(xiàn)對結(jié)果進(jìn)行說明,如圖4所示。首先,它們的頻譜都是關(guān)于角頻率π對稱的。(a)圖說明,正常流量的頻譜分布相對比較均勻,在整個頻段都沒有大的差別;(b)幅值較大的部分集中于低頻,而高頻部分很少。
在討論頻譜集中問題時,能量譜的分布是一個很好的參考,通過能量譜,能夠清晰地看到頻域里能量集中地位置。根據(jù)維納·辛欽定理,功率譜密度與自相關(guān)函數(shù)是一對傅里葉變換對。
事實(shí)上,信號系統(tǒng)中,自相關(guān)函數(shù)的定義為:
但考慮到樣本的數(shù)量有限個,為N,則:
也等價于:
“時域相卷,頻域相乘”,在頻域里就是幅值的平方,這正是功率的表示形式。
如圖5所示,證實(shí)了之前的說法,正常流量的能量分布相對均勻,而受Shrew攻擊流量的功率譜中,能量大多集中在低頻部分。這就提供了檢測的依據(jù),研究人員對采樣產(chǎn)生的自相關(guān)函數(shù)做DFT,當(dāng)?shù)皖l部分的能量集中程度超過某一Threshold時,則認(rèn)為該流量是Shrew攻擊流。
3 基于DSP的設(shè)計方案
根據(jù)第2.3.3節(jié)的檢測原理,設(shè)計了一種檢測方案。
如圖6所示,采樣Sampling與超時Time Out的關(guān)系是當(dāng)緩沖區(qū)里樣點(diǎn)數(shù)太少,不夠處理,則繼續(xù)采樣;一旦采樣點(diǎn)數(shù)達(dá)到要求,則立即送往DSP Processing進(jìn)行處理,并清空緩沖區(qū),重新記錄采樣值。對于DSP Processing模塊,它需要進(jìn)行兩大部分的計算,一是自相關(guān)函數(shù)的計算,另一是功率譜的計算。如圖7所示是方案中部分模塊的進(jìn)一步細(xì)化。
3.1 方案中參數(shù)的確定
如圖8所示是一種常見的連續(xù)時間信號的離散傅里葉變換分析的處理步驟,相當(dāng)于方框中所示的部分。
在方案設(shè)計中,參數(shù)的確定是最為重要的,在文獻(xiàn)[1]、[3]、[4]、[6]、[8]中都提到了使用1000Hz的采樣頻率,即采樣周期為1ms,但都沒有對采樣頻率的選取進(jìn)行解釋,本文將對比進(jìn)行討論。
通過之前對Shrew DDos攻擊的分析,該攻擊的周期為1s左右,頻率自然就是1Hz,是否能根據(jù)采樣定理確定采樣頻率大于2Hz就可以呢?顯然不是,因?yàn)楂@取到的信號時正常流量與可能的Shrew DDos流量的疊加,雖然說Shrew DDos流量是周期性的,但疊加后的流量卻不具備周期性,采樣頻率只能根據(jù)Shrew DDos攻擊時的頻譜帶寬來確定,采樣頻率應(yīng)該不小于信號帶寬的兩倍。
通過離散數(shù)字信號處理理論的學(xué)習(xí),由此得知采樣頻率決定了頻譜是否會發(fā)生混疊現(xiàn)象。在DFT變換中,窗的長度直接影響著分辨率。為了減少運(yùn)算量,提高實(shí)時處理能力,在窗函數(shù)的選擇上,直接使用了矩形窗(事實(shí)上工作者們沒有做什么,只是把達(dá)到一定數(shù)量的樣點(diǎn)送給DSP處理,這個過程沒有什么運(yùn)算量可言,但卻相當(dāng)于給采樣后得到的x[n]加了個矩形窗)。
如圖9所示,在100Hz采樣頻率下,在高頻部分仍出現(xiàn)較多幅值很大的譜線,這與前面的敘述是相矛盾的。這里的解釋是,由于采樣頻率太低,造成了混疊,使得一部分低頻部分的譜線混疊到高頻部分,這也說明100Hz的采樣頻率是遠(yuǎn)遠(yuǎn)不夠的。同時,也可以看到隨著窗長度的增加,頻率的分辨率也隨之增加,但不論窗函數(shù)的長度再怎么大,也無法改變頻譜混疊的事實(shí)。
如圖10所示是采樣頻率為1KHz下不同L的幅頻特性,在圖4已有L=1024點(diǎn)的圖形,圖10不再給出。
如圖4(b)和圖10(b)所示,可以說明在1KHz下采樣,已能夠滿足無混疊的效果,因?yàn)樵诟哳l處的能量很少。
觀察圖(a)發(fā)現(xiàn)它與其它圖形的差別相當(dāng)?shù)拇螅@是因?yàn)楫?dāng)采樣頻率為1KHz時,在一個攻擊周期內(nèi)(設(shè)為1s),需要采集1000個樣點(diǎn),當(dāng)使用L=512的窗函數(shù)時,它并不能一次處理完整的采樣序列,得出的頻譜只是全部頻譜的一部分,且得到的這一部分頻譜也不是與全譜中的一部分完全相同。這就需要采用重疊相加法或者重疊保留法進(jìn)行計算,增加了復(fù)雜性,實(shí)時性不足。
采樣率的提高會大大增加數(shù)字系統(tǒng)的處理量,而從圖10來看1KHz的采樣頻率已經(jīng)足夠了。在檢測的過程中,希望檢測系統(tǒng)的實(shí)時性很好,能夠及時地反映出當(dāng)前流量的功率譜特性。正如前面所說的那樣,這里矩形窗的長度L正好也是研究者們要處理的樣本塊總長度。文獻(xiàn)[1]指出,較長的樣本點(diǎn)數(shù)能夠提高檢測的準(zhǔn)確度。但過多的樣本點(diǎn)會使得一次FFT計算的時間變長,實(shí)時性變差。需要在準(zhǔn)確性和實(shí)時性上做一下平衡。一個好的處理方法是,在樣本緩沖區(qū)裝滿前,DFT及后續(xù)模塊就能將上一次的樣本模塊處理完,這樣系統(tǒng)就不會出現(xiàn)瓶頸。
3.2 復(fù)雜性分析
算法的復(fù)雜程度,是由自相關(guān)函數(shù)的計算和DFT的計算決定的。文獻(xiàn)[2]對這兩個算法進(jìn)行了比較深入的討論。利用自相關(guān)函數(shù)計算中需要多次重復(fù)計算中間值的特點(diǎn),給予了運(yùn)算量上的削減;利用實(shí)序列的對偶性及FFT算法,大大削減了DFT的運(yùn)算量。
3.3 芯片的選擇
綜合考慮檢測的準(zhǔn)確性、實(shí)時性和芯片的價格,在德州儀器(TI)的主頁找到如下性能的一款浮點(diǎn)處理DSP芯片,價格10.7美元,字長32位,每秒最高乘加次數(shù)(Peak MMACS)400百萬次,對于1024點(diǎn)做FFT需要次加法和次乘法,再考慮到自相關(guān)函數(shù)的運(yùn)算量和頻譜分析的運(yùn)算量均不超過FFT的運(yùn)算量,因此這款芯片在性能上符合要求。
4 結(jié)束語
隨著網(wǎng)絡(luò)技術(shù)的快速發(fā)展,Shrew DDos攻擊者可以輕易地發(fā)動大規(guī)模的攻擊行為,對網(wǎng)絡(luò)具有很大的威脅性和破壞性,同時也對攻擊檢測和過濾設(shè)備的安全性、時效性、拓展性提出了更高的要求。本文提出基于DSP的Shrew DDos攻擊檢測改進(jìn)方法,提高了檢測靈敏度、過濾準(zhǔn)確性、防御效果性和大流量處理能力,對于控制和減少大規(guī)模Shrew DDos攻擊行為具有一定的理論價值。
參考文獻(xiàn)
[1] Yu Chen, Kai Hwang, and Yu-Kwong Kwok.Filtering of Shrew DDoS Attacks in Frequency Domain [J]. University of Southern California, Los Angeles, CA 90089, USA.
[2] Hao Chen and Yu Chen.A Novel Embedded Accelerator for Online Detection of Shrew DDoS Attacks [J].? Department of Electrical and Computer Engineering, State University of New York - Binghamton, Binghamton, NY 13902, USA.
[3] Bhavana Gandhi and R. C. Joshi.An Efficient DSP-Based Technique to Detect the Signature of Shrew Attacks [J].Department of Electronics and Computer Engineering, Indian Institute of Technology, Roorkee- 247667, India.
[4] Yu Chen, Kai Hwang, and Yu-Kwong Kwok.Collaborative Defense against Periodic Shrew DDoS Attacks in Frequency Domain [J]. University of Southern California, Los Angeles, CA 90089, USA.
[5] Aleksandar Kuzmanovic and Edward W. Knightly.Low-Rate TCP-Targeted Denial of Service Attacks (The Shrew vs. the Mice and Elephants) [J]. ECE/CS Departments, Rice University Houston, TX 77005, USA.
[6] Yu Chen, Yu-Kwong Kwok, and Kai Hwang.Filtering Shrew DDoS Attacks Using A New Frequency-Domain Approach [J].University of Southern California, Los Angeles, CA 90089, USA.
[7] 何炎祥,曹強(qiáng),劉陶,韓奕,熊琦.一種基于小波特征提取的低速率DoS 檢測方法 [J].軟件學(xué)報,2009,20(4):930-941.
[8] 吳志軍,張東.頻域過濾DoS攻擊方法的研究[J].電子與信息學(xué)報,2008,30(6): 1493-1495.
[9] 陳丹妮.基于數(shù)字信號處理的一種Shrew DDoS攻擊檢測方法[J].信息技術(shù),2006,30(2): 53-56.
[10] 段濤,向軍,張宏,李千目.基于混合測試的工控系統(tǒng)攻擊測試模擬方法研究[J].網(wǎng)絡(luò)空間安全,2019,10(3): 8-22.