網(wǎng)絡攻擊及防范之欺騙攻擊之ARP欺騙
2) ARP欺騙
地址解析協(xié)議( Aclclress Resolution Protocol,ARP)的作用是將網(wǎng)絡層的地址(IPl:-電址)
解析成數(shù)據(jù)鏈路層的地址(MAC地址)。ARP協(xié)議是無狀態(tài)的協(xié)議,計算機系統(tǒng)無需收到ARP請求就可以發(fā)送ARP應答,而這個應答會被接收到的計算機系統(tǒng)進行處理。操作系統(tǒng)的TCP/IP實現(xiàn)上,系統(tǒng)會根據(jù)需要向網(wǎng)絡發(fā)送ARP應答報文,為了提高效率,降低ARP數(shù)據(jù)流量,系統(tǒng)會在緩存中維持一個IP地址與MAC地址的映射表,默認這個情況下ARP緩存是即時刷新,計算機系統(tǒng)接收到新的應答數(shù)據(jù)就會覆蓋掉之前的數(shù)據(jù)。
攻擊者通過向網(wǎng)絡或目標主機發(fā)送偽造的ARP應答報文,修改目標計算機上ARP緩存,形成一個錯誤的IP地址<->MAC地址映射,這個錯誤的映射在目標主機在需要發(fā)送數(shù)據(jù)時封裝錯誤的MAC地址。ARP欺騙攻擊過程如下圖所示:
攻擊者主機C (IP:l92.168.1.3)向主機B(IP:192.168.1.2)發(fā)送偽造的ARP應答報文,說明192.168.1.1(主機A)的MAC地址是CC:CC:CC:CC:CC(主機C),這個ARP應答中的數(shù)據(jù)會被主機B收到后,將192.168.1.1<->cc:cc:cc:cc:cc對應關系記錄添加到自己的ARP緩存中,當主機B希望與主機A進行通訊時,在數(shù)據(jù)封裝時,使用了錯誤的MAC地址,而標準的交換設備使用二層地址進行數(shù)據(jù)包分發(fā),因此這個數(shù)據(jù)包被發(fā)送給攻擊者主機C。攻擊者因此完成了一次成功的ARP欺騙。
ARP欺騙是一種非常有威脅的攻擊,攻擊者利用ARP欺騙可實現(xiàn)中間人、拒絕服務等攻擊。由于ARP緩存有時間限制,為了避免緩存更新,攻擊者需要不斷向欺騙目標發(fā)送偽造的ARP應答報文,確保錯誤的緩存記錄被保持。因此對網(wǎng)絡中的ARP報文進行分析可以有效的檢測到ARP攻擊行為。針對ARP欺騙的應對措施包括:
◇使用靜態(tài)的ARP緩存,緩存中的數(shù)據(jù)不能被ARP應答報文刷新,能有效的解決ARP欺騙攻擊。然而由于使用靜態(tài)緩存,每次硬件地址變更都需要人工更新,當網(wǎng)絡中計算機數(shù)量較多的情況下,設備地址的變更會形成較大的工作量。
◇使用三層交換,由于三層交換技術使用0SI模型第三層地址(TCP/IP協(xié)議中為IP地址)進行數(shù)據(jù)交換,不會受到錯誤封裝的MAC影響。
◇除非設置了ARP代理,默認情況下ARP協(xié)議無法跨越路由設備,因此劃分更多的子網(wǎng)能降低ARP攻擊影響的范圍;
◇在系統(tǒng)中部署ARP防火墻以阻止攻擊者修改ARP緩存