fixed discovery result save

This commit is contained in:
snoop 2018-04-06 20:11:45 +09:00
parent 0c5f529bf0
commit a8ad0f1187
5 changed files with 152 additions and 127 deletions

View File

@ -1,6 +1,7 @@
package com.loafle.overflow.module.discovery.model; package com.loafle.overflow.module.discovery.model;
import java.util.Date; import java.util.Date;
import java.util.List;
import java.util.Map; import java.util.Map;
/** /**
@ -19,6 +20,9 @@ public class Host {
private Map<String, Port> ports; private Map<String, Port> ports;
private List<Port> portList;
public Host(){} public Host(){}
public long getId() { public long getId() {
@ -84,4 +88,12 @@ public class Host {
public void setPorts(Map<String, Port> ports) { public void setPorts(Map<String, Port> ports) {
this.ports = ports; this.ports = ports;
} }
public List<Port> getPortList() {
return portList;
}
public void setPortList(List<Port> portList) {
this.portList = portList;
}
} }

View File

@ -8,6 +8,7 @@ package com.loafle.overflow.module.discovery.model;
import com.loafle.overflow.module.discovery.type.PortType; import com.loafle.overflow.module.discovery.type.PortType;
import java.util.Date; import java.util.Date;
import java.util.List;
import java.util.Map; import java.util.Map;
/** /**
@ -26,6 +27,8 @@ public class Port {
private Map<String, Service> services; private Map<String, Service> services;
private List<Service> serviceList;
public Port() {} public Port() {}
public long getId() { public long getId() {
@ -75,4 +78,12 @@ public class Port {
public void setServices(Map<String, Service> services) { public void setServices(Map<String, Service> services) {
this.services = services; this.services = services;
} }
public List<Service> getServiceList() {
return serviceList;
}
public void setServiceList(List<Service> serviceList) {
this.serviceList = serviceList;
}
} }

View File

@ -85,22 +85,23 @@ public class MetaInfraVendor {
MetaInfraVendor vendor = new MetaInfraVendor(); MetaInfraVendor vendor = new MetaInfraVendor();
if(serviceName.equals("mysql")) { if(serviceName.equals("mysql")) {
vendor.setId(39); vendor.setId(11);
} }
else if(serviceName.equals("portgresql")) { else if(serviceName.equals("portgresql")) {
vendor.setId(39); vendor.setId(15);
} }
else if(serviceName.equals("wmi")) { else if(serviceName.equals("wmi")) {
vendor.setId(39); vendor.setId(23);
} }
else if(serviceName.equals("snmpv2")) { else if(serviceName.equals("snmp")) {
vendor.setId(39); vendor.setId(20);
} }
else { else {
vendor.setId(43); // unknown vendor.setId(24); // unknown
} }
return vendor; return vendor;
} }
} }

View File

@ -59,170 +59,170 @@ public class TargetDiscoveryService {
return true; return true;
} }
private void createService(InfraHost infraHost, Port port, Probe probe) { private void createService(InfraHost infraHost, Port port, Probe probe) {
if(port.getServices() == null) { if(port.getServices() == null) {
return; return;
} }
MetaInfraType typeService = new MetaInfraType(); MetaInfraType typeService = new MetaInfraType();
typeService.setId(7); typeService.setId(7);
String portType = "UDP"; String portType = "UDP";
if(port.getPortType() == PortType.TLS || port.getPortType() == PortType.TCP) { if(port.getPortType() == PortType.TLS || port.getPortType() == PortType.TCP) {
portType = "TCP"; portType = "TCP";
} }
for(String key : port.getServices().keySet()) { // for(String key : port.getServices().keySet()) {
for(com.loafle.overflow.module.discovery.model.Service service : port.getServiceList()) {
com.loafle.overflow.module.discovery.model.Service service = port.getServices().get(key); // com.loafle.overflow.module.discovery.model.Service service = port.getServices().get(key);
InfraService dbInfraService = this.infraServiceService.readByService(infraHost.getId(), port.getPortNumber(), portType); InfraService dbInfraService = this.infraServiceService.readByService(infraHost.getId(), port.getPortNumber(), portType);
if(dbInfraService != null) { if(dbInfraService != null) {
if(service.isTarget() && dbInfraService.getTarget() == null) { if(service.isTarget() && dbInfraService.getTarget() == null) {
Target targetService = new Target(); Target targetService = new Target();
targetService.setDisplayName(service.getServiceName() + "-Service"); targetService.setDisplayName(service.getServiceName());
this.targetService.regist(targetService); this.targetService.regist(targetService);
dbInfraService.setTarget(targetService); dbInfraService.setTarget(targetService);
this.infraServiceService.regist(dbInfraService); this.infraServiceService.regist(dbInfraService);
} }
continue; continue;
} }
InfraService infraService = new InfraService(); InfraService infraService = new InfraService();
infraService.setHost(infraHost); infraService.setHost(infraHost);
infraService.setPort(port.getPortNumber()); infraService.setPort(port.getPortNumber());
infraService.setPortType(portType); infraService.setPortType(portType);
infraService.setInfraType(typeService); infraService.setInfraType(typeService);
infraService.setProbe(probe); infraService.setProbe(probe);
if (port.getPortType() == PortType.TLS) { if (port.getPortType() == PortType.TLS) {
infraService.setTlsType(true); infraService.setTlsType(true);
} }
infraService.setVendor(MetaInfraVendor.CreateInfraVendorByService(service.getServiceName())); infraService.setVendor(MetaInfraVendor.CreateInfraVendorByService(service.getServiceName()));
if(service.isTarget()) { if(service.isTarget()) {
Target targetService = new Target(); Target targetService = new Target();
targetService.setDisplayName(service.getServiceName() + "-Service"); targetService.setDisplayName(service.getServiceName());
this.targetService.regist(targetService); this.targetService.regist(targetService);
infraService.setTarget(targetService); infraService.setTarget(targetService);
} }
this.infraServiceService.regist(infraService); this.infraServiceService.regist(infraService);
} }
} }
private void createPort(InfraHost infraHost, Host host, Probe probe) { private void createPort(InfraHost infraHost, Host host, Probe probe) {
if(host.getPorts() == null) { if(host.getPorts() == null) {
return; return;
} }
String portType = "UDP"; String portType = "UDP";
MetaInfraType typePort = new MetaInfraType(); MetaInfraType typePort = new MetaInfraType();
typePort.setId(6); typePort.setId(6);
InfraOS infraOS = infraHost.getOs(); InfraOS infraOS = infraHost.getOs();
for( String key: host.getPorts().keySet()) { // for( String key: host.getPorts().keySet()) {
for( Port port: host.getPortList()) {
// Port port = host.getPorts().get(key);
Port port = host.getPorts().get(key); if(port.getPortType() == PortType.TLS || port.getPortType() == PortType.TCP) {
portType = "TCP";
}
if(port.getPortType() == PortType.TLS || port.getPortType() == PortType.TCP) { InfraOSPort dbInfraOSPort = this.infraOSPortService.readByPort(infraOS.getId(), port.getPortNumber(), portType);
portType = "TCP"; if(dbInfraOSPort == null) {
} InfraOSPort infraOSPort = new InfraOSPort();
infraOSPort.setOs(infraOS);
infraOSPort.setPort(port.getPortNumber());
infraOSPort.setPortType(portType);
infraOSPort.setProbe(probe);
infraOSPort.setInfraType(typePort);
InfraOSPort dbInfraOSPort = this.infraOSPortService.readByPort(infraOS.getId(), port.getPortNumber(), portType); if (port.getPortType() == PortType.TLS) {
if(dbInfraOSPort == null) { infraOSPort.setTlsType(true);
InfraOSPort infraOSPort = new InfraOSPort(); }
infraOSPort.setOs(infraOS); infraOSPort.setVendor(MetaInfraVendor.CreateInfraVendorByPort(port.getPortNumber()));
infraOSPort.setPort(port.getPortNumber()); this.infraOSPortService.regist(infraOSPort);
infraOSPort.setPortType(portType); }
infraOSPort.setProbe(probe);
infraOSPort.setInfraType(typePort);
if (port.getPortType() == PortType.TLS) { this.createService(infraHost, port, probe);
infraOSPort.setTlsType(true); }
} }
infraOSPort.setVendor(MetaInfraVendor.CreateInfraVendorByPort(port.getPortNumber()));
this.infraOSPortService.regist(infraOSPort);
}
this.createService(infraHost, port, probe); private InfraHost createAndReadHost(Host host, Probe probe) {
}
}
private InfraHost createAndReadHost(Host host, Probe probe) {
InfraHost infraHost = this.infraHostService.readByIp(StringConvertor.ipToLong(host.getIp())); InfraHost infraHost = this.infraHostService.readByIp(StringConvertor.ipToLong(host.getIp()));
if(infraHost != null) { if(infraHost != null) {
if(host.isTarget() && infraHost.getTarget() == null) { if(host.isTarget() && infraHost.getTarget() == null) {
Target target = new Target(); Target target = new Target();
target.setDisplayName(String.valueOf(host.getIp()) + "-Host"); target.setDisplayName(String.valueOf(host.getIp()) + "-Host");
this.targetService.regist(target); this.targetService.regist(target);
infraHost.setTarget(target); infraHost.setTarget(target);
this.infraHostService.regist(infraHost); this.infraHostService.regist(infraHost);
} }
return infraHost; return infraHost;
} else { } else {
MetaInfraType typeMachine = new MetaInfraType(); MetaInfraType typeMachine = new MetaInfraType();
typeMachine.setId(1); // 1 = Machine; typeMachine.setId(1); // 1 = Machine;
MetaInfraType typeOS = new MetaInfraType(); MetaInfraType typeOS = new MetaInfraType();
typeOS.setId(3); // 3 = Os typeOS.setId(3); // 3 = Os
MetaInfraType typeHost = new MetaInfraType(); MetaInfraType typeHost = new MetaInfraType();
typeHost.setId(2); // 2 = Host typeHost.setId(2); // 2 = Host
InfraMachine infraMachine = new InfraMachine(); InfraMachine infraMachine = new InfraMachine();
infraMachine.setProbe(probe); infraMachine.setProbe(probe);
infraMachine.setInfraType(typeMachine); infraMachine.setInfraType(typeMachine);
infraMachine.setMeta(host.getIp()+"-MACHINE"); infraMachine.setMeta(host.getIp()+"-MACHINE");
this.infraMachineService.regist(infraMachine); this.infraMachineService.regist(infraMachine);
InfraOS infraOS = new InfraOS(); InfraOS infraOS = new InfraOS();
infraOS.setMachine(infraMachine); infraOS.setMachine(infraMachine);
infraOS.setVendor(MetaInfraVendor.CreateInfraVendorByOS(host.getOs())); infraOS.setVendor(MetaInfraVendor.CreateInfraVendorByOS(host.getOs()));
infraOS.setInfraType(typeOS); infraOS.setInfraType(typeOS);
infraOS.setProbe(probe); infraOS.setProbe(probe);
infraOS.setMeta(host.getIp()+"-OS"); infraOS.setMeta(host.getIp()+"-OS");
this.infraOSService.regist(infraOS); this.infraOSService.regist(infraOS);
InfraHost newInfraHost = new InfraHost(); InfraHost newInfraHost = new InfraHost();
newInfraHost.setIp(StringConvertor.ipToLong(host.getIp())); newInfraHost.setIp(StringConvertor.ipToLong(host.getIp()));
// newInfraHost.setMac(StringConvertor.ipToLong(host.getMac())); // newInfraHost.setMac(StringConvertor.ipToLong(host.getMac()));
newInfraHost.setMac(StringConvertor.macStrToLong(host.getMac())); newInfraHost.setMac(StringConvertor.macStrToLong(host.getMac()));
newInfraHost.setOs(infraOS); newInfraHost.setOs(infraOS);
newInfraHost.setInfraType(typeHost); newInfraHost.setInfraType(typeHost);
newInfraHost.setProbe(probe); newInfraHost.setProbe(probe);
if(host.isTarget()) { if(host.isTarget()) {
Target target = new Target(); Target target = new Target();
target.setDisplayName(host.getIp() + "-Host"); target.setDisplayName(host.getIp() + "-Host");
this.targetService.regist(target); this.targetService.regist(target);
newInfraHost.setTarget(target); newInfraHost.setTarget(target);
} }
this.infraHostService.regist(newInfraHost); this.infraHostService.regist(newInfraHost);
infraHost = newInfraHost; infraHost = newInfraHost;
} }
return infraHost; return infraHost;
} }

View File

@ -0,0 +1 @@
[{"id":0,"ip":"192.168.1.254","mac":"64:e5:99:63:e7:80","os":null,"discoveredDate":-62135596800000,"target":false,"zone":null,"ports":{},"portList":[{"id":0,"portType":"UDP","portNumber":53,"discoveredDate":-62135596800000,"host":null,"services":{},"serviceList":[{"id":0,"cryptoType":null,"serviceName":"DNS","discoveredDate":-62135596800000,"port":null,"target":false}]}]},{"id":0,"ip":"192.168.1.99","mac":"00:25:b3:fa:ca:9b","os":null,"discoveredDate":-62135596800000,"target":false,"zone":null,"ports":{},"portList":[{"id":0,"portType":"UDP","portNumber":161,"discoveredDate":-62135596800000,"host":null,"services":{},"serviceList":[{"id":0,"cryptoType":null,"serviceName":"SNMP_V2","discoveredDate":-62135596800000,"port":null,"target":false}]},{"id":0,"portType":"TCP","portNumber":7,"discoveredDate":-62135596800000,"host":null,"services":null}]},{"id":0,"ip":"192.168.1.206","mac":"30:9c:23:15:a3:09","os":null,"discoveredDate":-62135596800000,"target":false,"zone":null,"ports":null},{"id":0,"ip":"192.168.1.50","mac":"6c:f0:49:7a:60:68","os":null,"discoveredDate":-62135596800000,"target":false,"zone":null,"ports":{},"portList":[{"id":0,"portType":"TCP","portNumber":22,"discoveredDate":-62135596800000,"host":null,"services":{},"serviceList":[{"id":0,"cryptoType":"TCP","serviceName":"SSH","discoveredDate":-62135596800000,"port":null,"target":false}]}]},{"id":0,"ip":"192.168.1.15","mac":"00:19:b9:35:8e:a6","os":null,"discoveredDate":-62135596800000,"target":false,"zone":null,"ports":{},"portList":[{"id":0,"portType":"TCP","portNumber":22,"discoveredDate":-62135596800000,"host":null,"services":null},{"id":0,"portType":"TCP","portNumber":25,"discoveredDate":-62135596800000,"host":null,"services":null}]},{"id":0,"ip":"192.168.1.100","mac":"00:17:08:8d:cf:f7","os":null,"discoveredDate":-62135596800000,"target":false,"zone":null,"ports":{},"portList":[{"id":0,"portType":"UDP","portNumber":161,"discoveredDate":-62135596800000,"host":null,"services":{},"serviceList":[{"id":0,"cryptoType":null,"serviceName":"SNMP_V2","discoveredDate":-62135596800000,"port":null,"target":false}]},{"id":0,"portType":"TCP","portNumber":23,"discoveredDate":-62135596800000,"host":null,"services":null},{"id":0,"portType":"TCP","portNumber":21,"discoveredDate":-62135596800000,"host":null,"services":null}]},{"id":0,"ip":"192.168.1.16","mac":"00:19:b9:19:7e:c7","os":null,"discoveredDate":-62135596800000,"target":false,"zone":null,"ports":{},"portList":[{"id":0,"portType":"TCP","portNumber":22,"discoveredDate":-62135596800000,"host":null,"services":null}]},{"id":0,"ip":"192.168.1.106","mac":"44:8a:5b:f1:3a:7d","os":null,"discoveredDate":-62135596800000,"target":false,"zone":null,"ports":{},"portList":[{"id":0,"portType":"UDP","portNumber":161,"discoveredDate":-62135596800000,"host":null,"services":{},"serviceList":[{"id":0,"cryptoType":null,"serviceName":"SNMP_V2","discoveredDate":-62135596800000,"port":null,"target":false}]},{"id":0,"portType":"TCP","portNumber":21,"discoveredDate":-62135596800000,"host":null,"services":null}]},{"id":0,"ip":"192.168.1.101","mac":"44:8a:5b:f1:f1:f3","os":null,"discoveredDate":-62135596800000,"target":false,"zone":null,"ports":null},{"id":0,"ip":"192.168.1.102","mac":"44:8a:5b:f1:f2:d3","os":null,"discoveredDate":-62135596800000,"target":false,"zone":null,"ports":null},{"id":0,"ip":"192.168.1.205","mac":"40:98:ad:7b:d0:43","os":null,"discoveredDate":-62135596800000,"target":false,"zone":null,"ports":null},{"id":0,"ip":"192.168.1.103","mac":"44:8a:5b:44:8c:e8","os":null,"discoveredDate":-62135596800000,"target":false,"zone":null,"ports":{},"portList":[{"id":0,"portType":"TCP","portNumber":21,"discoveredDate":-62135596800000,"host":null,"services":null}]},{"id":0,"ip":"192.168.1.10","mac":"d0:50:99:97:5d:99","os":null,"discoveredDate":-62135596800000,"target":false,"zone":null,"ports":{},"portList":[{"id":0,"portType":"TCP","portNumber":22,"discoveredDate":-62135596800000,"host":null,"services":null}]},{"id":0,"ip":"192.168.1.203","mac":"a8:e5:39:5b:c9:62","os":null,"discoveredDate":-62135596800000,"target":false,"zone":null,"ports":null}]