Source code for attacks.sendErrorOnError

"""
Answers with an Error message to a previous Error message.
"""


import copy
import random

from src import Msg
from src import SomeIPPacket
from src.attacks import AttackerHelper

[docs]def sendErrorOnError(a, msgOrig): """ Attack Specific Function. """ sender = msgOrig.receiver receiver = msgOrig.sender timestamp = None message = {} message['service'] = msgOrig.message['service'] message['method'] = msgOrig.message['method'] message['client'] = msgOrig.message['client'] message['session'] = msgOrig.message['session'] message['proto'] = SomeIPPacket.VERSION message['iface'] = SomeIPPacket.INTERFACE message['type'] = SomeIPPacket.messageTypes['ERROR'] errors = ['E_NOT_OK', 'E_NOT_READY', 'E_NOT_REACHABLE', 'E_TIMEOUT', 'E_MALFORMED_MESSAGE'] message['ret'] = SomeIPPacket.errorCodes[random.choice(errors)] msg = Msg.Msg(sender, receiver, message, timestamp) return msg
[docs]def doAttack(curAttack, msgOrig, a, attacksSuc): """ Generic Function called from Attacker module. """ RetVal = {} if a.verbose: print ('Send Error On Error Attack') if msgOrig.message['type'] == SomeIPPacket.messageTypes['ERROR']: msg = sendErrorOnError(a, msgOrig) if a.verbose: print ('MALICIOUS MSG: ', msg.message, ' FROM=', msg.sender, ' TO=', msg.receiver) RetVal['msg'] = msg RetVal['attackOngoing'] = False RetVal['dropMsg'] = False RetVal['counter'] = attacksSuc + 1 else: RetVal['msg'] = None RetVal['attackOngoing'] = True RetVal['dropMsg'] = False RetVal['counter'] = attacksSuc return RetVal