package de.tudarmstadt.informatik.hostage.logging; import java.io.Serializable; import java.net.InetAddress; /** * This class defines the attributes of a record.
* A Record is a single message exchanged between the application and an attacker.
* The class has no own functionality except for getter and setter methods. * To change the logging mechanism you have to to change the logger in {@link de.tudarmstadt.informatik.hostage.HoneyService} and * {@link de.tudarmstadt.informatik.hostage.ui.ViewLog} * @author Mihai Plasoianu * @author Lars Pandikow */ public class Record implements Serializable { private static final long serialVersionUID = 1L; public static enum TYPE { SEND, RECEIVE }; private int id; private long attack_id; private String protocol; private TYPE type; private long timestamp; private InetAddress localIP; private int localPort; private InetAddress remoteIP; private int remotePort; private String BSSID; private String SSID; private String packet; /** * @return the id */ public int getId() { return id; } /** * @param id the id to set */ public void setId(int id) { this.id = id; } /** * @return the attack_id */ public long getAttack_id() { return attack_id; } /** * @param attack_id the attack_id to set */ public void setAttack_id(long attack_id) { this.attack_id = attack_id; } /** * @return the protocol */ public String getProtocol() { return protocol; } /** * @param protocol the protocol to set */ public void setProtocol(String protocol) { this.protocol = protocol; } /** * @return the type */ public TYPE getType() { return type; } /** * @param type the type to set */ public void setType(TYPE type) { this.type = type; } /** * @return the timestamp */ public long getTimestamp() { return timestamp; } /** * @param timestamp the timestamp to set */ public void setTimestamp(long timestamp) { this.timestamp = timestamp; } /** * @return the localIP */ public InetAddress getLocalIP() { return localIP; } /** * @param localIP the localIP to set */ public void setLocalIP(InetAddress localIP) { this.localIP = localIP; } /** * @return the localPort */ public int getLocalPort() { return localPort; } /** * @param localPort the localPort to set */ public void setLocalPort(int localPort) { this.localPort = localPort; } /** * @return the remoteIP */ public InetAddress getRemoteIP() { return remoteIP; } /** * @param remoteIP the remoteIP to set */ public void setRemoteIP(InetAddress remoteIP) { this.remoteIP = remoteIP; } /** * @return the remotePort */ public int getRemotePort() { return remotePort; } /** * @param remotePort the remotePort to set */ public void setRemotePort(int remotePort) { this.remotePort = remotePort; } /** * @return the bSSID */ public String getBSSID() { return BSSID; } /** * @param bSSID the bSSID to set */ public void setBSSID(String bSSID) { BSSID = bSSID; } /** * @return the sSID */ public String getSSID() { return SSID; } /** * @param sSID the sSID to set */ public void setSSID(String sSID) { SSID = sSID; } /** * @return the packet */ public String getPacket() { return packet; } /** * @param packet the packet to set */ public void setPacket(String packet) { this.packet = packet; } @Override public String toString() { return String.format("%d %s [%d,%s:%d,%s:%d,%s]", attack_id, ((type == TYPE.SEND) ? "SEND" : "RECEIVE"), timestamp, localIP.getHostAddress(), localPort, remoteIP.getHostAddress(), remotePort, packet); } /** * Returns a string representation after a chosen format. Formats should be defined in /res/values/export_formats.xml to use with {@link de.tudarmstadt.informatik.hostage.ui.ViewLog#exportDatabase(android.view.View)} * The Intger representation of the format is equal to its position in the format array. * @param format Integer representation of the format. * @return A string representation after chosen format. */ public String toString(int format){ // Choose String Format switch (format){ case 1: return String.format("{ \"sensor\":{\"type\": \"Honeypot\", \"name\": \"HOsTaGe\"}, \"type\": 0, \"src\":{\"ip\": \"%s\", \"port\": %d}, \"dst\":{\"ip\": \"%s\", \"port\": %d} }", localIP.getHostAddress(), localPort, remoteIP.getHostAddress(), remotePort); case 2: return String.format("%d: %s in %s(%s) from [%s:%d] to [%s:%d]", attack_id, protocol, SSID, BSSID, remoteIP.getHostAddress(), remotePort, localIP.getHostAddress(), localPort); default: return toString(); } } }