All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.threatconnect.sdk.examples.indicators.HostExample Maven / Gradle / Ivy

Go to download

The ThreatConnect Java SDK. Used to communicate with teh ThreatConnect Threat Intelligence Platform

The newest version!
package com.threatconnect.sdk.examples.indicators;

import com.threatconnect.sdk.client.fluent.*;
import com.threatconnect.sdk.client.reader.AbstractIndicatorReaderAdapter;
import com.threatconnect.sdk.client.reader.ReaderAdapterFactory;
import com.threatconnect.sdk.client.response.IterableResponse;
import com.threatconnect.sdk.client.writer.*;
import com.threatconnect.sdk.conn.Connection;
import com.threatconnect.sdk.exception.FailedResponseException;
import com.threatconnect.sdk.server.entity.*;
import com.threatconnect.sdk.server.response.entity.ApiEntitySingleResponse;

import java.io.IOException;

public class HostExample {

    public static void main(String[] args) {

        Connection conn = null;

        try {

            System.getProperties().setProperty("threatconnect.api.config", "/config.properties");
            conn = new Connection();

            doGet(conn);

            doCreate(conn);

            doUpdate(conn);

            doDelete(conn);

            doAddAttribute(conn);

            doAssociateIndicator(conn);

            doAssociateGroup(conn);

            doAssociateTag(conn);

            doAssociateVictim(conn);

            doDissociateTag(conn);

        } catch (IOException ex ) {
            System.err.println("Error: " + ex);
        } finally {
            if (conn != null) {
                conn.disconnect();
            }
        }
    }

    private static void doGet(Connection conn) throws IOException {

        AbstractIndicatorReaderAdapter reader = ReaderAdapterFactory.createHostIndicatorReader(conn);
        IterableResponse data = null;
        try {
            // -----------------------------------------------------------------------------------------------------------
            // Get Host
            // -----------------------------------------------------------------------------------------------------------
            data = reader.getAll();
            for(Host h : data)
            {
                System.out.println("Host: " + h);
            }
        } catch (FailedResponseException ex) {
            System.err.println("Error: " + ex);
        }
    }

    private static void doCreate(Connection conn) {
        AbstractIndicatorWriterAdapter writer = WriterAdapterFactory.createHostIndicatorWriter(conn);

        Host host = createTestHost();

        try {
            // -----------------------------------------------------------------------------------------------------------
            // Create Host
            // -----------------------------------------------------------------------------------------------------------
            System.out.println("Before: " + host.toString());
            ApiEntitySingleResponse response = writer.create(host);

            if (response.isSuccess()) {
                Host savedHost = response.getItem();
                System.out.println("Saved: " + savedHost.toString());

            } else {
                System.err.println("Error: " + response.getMessage());

            }

        } catch (IOException | FailedResponseException ex) {
            System.err.println("Error: " + ex.toString());
        }

    }

    private static void doDelete(Connection conn) {
        AbstractIndicatorWriterAdapter writer = WriterAdapterFactory.createHostIndicatorWriter(conn);

        Host host = createTestHost();

        try {
            // -----------------------------------------------------------------------------------------------------------
            // Update Host
            // -----------------------------------------------------------------------------------------------------------
            ApiEntitySingleResponse createResponse = writer.create(host);
            if (createResponse.isSuccess()) {
                System.out.println("Saved: " + createResponse.getItem());

                // -----------------------------------------------------------------------------------------------------------
                // Delete Host
                // -----------------------------------------------------------------------------------------------------------
                ApiEntitySingleResponse deleteResponse = writer.delete(createResponse.getItem().getHostName());
                if (deleteResponse.isSuccess()) {
                    System.out.println("Deleted: " + createResponse.getItem());
                } else {
                    System.err.println("Delete Failed. Cause: " + deleteResponse.getMessage());
                }
            } else {
                System.err.println("Create Failed. Cause: " + createResponse.getMessage());
            }

        } catch (IOException | FailedResponseException ex) {
            System.err.println("Error: " + ex.toString());
        }

    }

    private static void doUpdate(Connection conn) {
        AbstractIndicatorWriterAdapter writer = WriterAdapterFactory.createHostIndicatorWriter(conn);

        Host host = createTestHost();

        try {
            // -----------------------------------------------------------------------------------------------------------
            // Create Host
            // -----------------------------------------------------------------------------------------------------------
            ApiEntitySingleResponse createResponse = writer.create(host);
            if (createResponse.isSuccess()) {
                System.out.println("Created Host: " + createResponse.getItem());

                // -----------------------------------------------------------------------------------------------------------
                // Update Host
                // -----------------------------------------------------------------------------------------------------------
                Host updatedHost = createResponse.getItem();
                updatedHost.setDescription("UPDATED: " + createResponse.getItem().getDescription());
                System.out.println("Saving Updated Host: " + updatedHost);

                ApiEntitySingleResponse updateResponse = writer.update(updatedHost);
                if (updateResponse.isSuccess()) {
                    System.out.println("Updated Host: " + updateResponse.getItem());
                } else {
                    System.err.println("Failed to Update Host: " + updateResponse.getMessage());
                }
            } else {
                System.err.println("Failed to Create Host: " + createResponse.getMessage());
            }

        } catch (IOException | FailedResponseException ex) {
            System.err.println("Error: " + ex.toString());
        }

    }

    private static Attribute createTestAttribute() {
        Attribute attribute = new AttributeBuilder().createAttribute();
        attribute.setSource("Test Source");
        attribute.setDisplayed(true);
        attribute.setType("Description");
        attribute.setValue("Test Attribute Description");

        return attribute;
    }

    private static Host createTestHost() {
        Host host = new HostBuilder().createHost();
        host.setOwnerName("System");
        host.setDescription("Test Host");
        host.setHostName("www.bad-hostname.com");
        host.setRating( 5.0 );
        host.setConfidence(98.0);

        return host;
    }

    private static Threat createTestThreat() {
        Threat threat = new ThreatBuilder().createThreat();
        threat.setOwnerName("System");
        threat.setName("Test Threat");

        return threat;
    }

    private static Tag createTestTag() {
        Tag tag = new TagBuilder().createTag();
        tag.setName("Test-Tag");
        tag.setDescription("Test Tag Description");

        return tag;
    }

    private static SecurityLabel createTestSecurityLabel() {
        SecurityLabel securityLabel = new SecurityLabelBuilder().createSecurityLabel();
        securityLabel.setName("Test-SecurityLabel");
        securityLabel.setDescription("Test SecurityLabel Description");

        return securityLabel;
    }

    private static Victim createTestVictim() {
        Victim victim = new VictimBuilder().createVictim();
        victim.setOrg("System");
        victim.setName("Test API Victim");
        victim.setDescription("Test API Victim Description");

        return victim;
    }
 
    private static void doAddAttribute(Connection conn) {
        AbstractIndicatorWriterAdapter writer = WriterAdapterFactory.createHostIndicatorWriter(conn);

        Host host = createTestHost();
        Attribute attribute = createTestAttribute();

        try {
            // -----------------------------------------------------------------------------------------------------------
            // Create Host
            // -----------------------------------------------------------------------------------------------------------
            ApiEntitySingleResponse createResponse = writer.create(host);
            if (createResponse.isSuccess()) {
                System.out.println("Created Host: " + createResponse.getItem());

                // -----------------------------------------------------------------------------------------------------------
                // Add Attribute
                // -----------------------------------------------------------------------------------------------------------
                ApiEntitySingleResponse attribResponse
                    = writer.addAttribute( createResponse.getItem().getHostName(), attribute );

                if ( attribResponse.isSuccess() ) {
                    System.out.println("\tAdded Attribute: " + attribResponse.getItem() );
                } else {
                    System.err.println("Failed to Add Attribute: " + attribResponse.getMessage());
                }

            } else {
                System.err.println("Failed to Create Host: " + createResponse.getMessage());
            }

        } catch (IOException | FailedResponseException ex) {
            System.err.println("Error: " + ex.toString());
        }

    }

    private static Address createTestAddress() {
        Address address = new AddressBuilder().createAddress();
        address.setIp("127.0.0.1");
        address.setDescription("Test Address");
        address.setOwnerName("System");

        return address;
    }


    private static void doAssociateIndicator(Connection conn) {
        AbstractIndicatorWriterAdapter gWriter= WriterAdapterFactory.createHostIndicatorWriter(conn);
        AbstractIndicatorWriterAdapter
hWriter = WriterAdapterFactory.createAddressIndicatorWriter(conn); Host host = createTestHost(); Address address = createTestAddress(); try { // ----------------------------------------------------------------------------------------------------------- // Create Host and Host // ----------------------------------------------------------------------------------------------------------- ApiEntitySingleResponse createResponseHost = gWriter.create(host); ApiEntitySingleResponse createResponseAddress = hWriter.create(address); if (createResponseHost.isSuccess() && createResponseHost.isSuccess() ) { System.out.println("Created Host: " + createResponseHost.getItem()); System.out.println("Created Address: " + createResponseAddress.getItem()); // ----------------------------------------------------------------------------------------------------------- // Associate Host // ----------------------------------------------------------------------------------------------------------- ApiEntitySingleResponse assocResponse = gWriter.associateIndicatorHost(createResponseHost.getItem().getHostName(), createResponseAddress.getItem().getIp() ); if ( assocResponse.isSuccess() ) { System.out.println("\tAssociated Address: " + createResponseAddress.getItem().getIp() ); } else { System.err.println("Failed to Add Attribute: " + assocResponse.getMessage()); } } else { if ( !createResponseHost.isSuccess() ) System.err.println("Failed to Create Host: " + createResponseHost.getMessage()); if ( !createResponseAddress.isSuccess() ) System.err.println("Failed to Create Address: " + createResponseAddress.getMessage()); } } catch (IOException | FailedResponseException ex) { System.err.println("Error: " + ex.toString()); } } private static void doAssociateGroup(Connection conn) { AbstractIndicatorWriterAdapter gWriter= WriterAdapterFactory.createHostIndicatorWriter(conn); AbstractGroupWriterAdapter tWriter = WriterAdapterFactory.createThreatGroupWriter(conn); Host host = createTestHost(); Threat threat = createTestThreat(); try { // ----------------------------------------------------------------------------------------------------------- // Create Host and Threat // ----------------------------------------------------------------------------------------------------------- ApiEntitySingleResponse createResponseHost = gWriter.create(host); ApiEntitySingleResponse createResponseThreat = tWriter.create(threat); if (createResponseHost.isSuccess() && createResponseThreat.isSuccess() ) { System.out.println("Created Host: " + createResponseHost.getItem()); System.out.println("Created Threat: " + createResponseThreat.getItem()); // ----------------------------------------------------------------------------------------------------------- // Associate Threat // ----------------------------------------------------------------------------------------------------------- ApiEntitySingleResponse assocResponse = gWriter.associateGroupThreat(createResponseHost.getItem().getHostName(), createResponseThreat.getItem().getId()); if ( assocResponse.isSuccess() ) { System.out.println("\tAssociated Threat: " + createResponseThreat.getItem().getId() ); } else { System.err.println("Failed to Associate Threat: " + assocResponse.getMessage()); } } else { if ( !createResponseHost.isSuccess() ) System.err.println("Failed to Create Host: " + createResponseHost.getMessage()); if ( !createResponseThreat.isSuccess() ) System.err.println("Failed to Create Threat: " + createResponseThreat.getMessage()); } } catch (IOException | FailedResponseException ex) { System.err.println("Error: " + ex.toString()); } } private static void doAssociateTag(Connection conn) { AbstractIndicatorWriterAdapter gWriter= WriterAdapterFactory.createHostIndicatorWriter(conn); TagWriterAdapter tWriter = WriterAdapterFactory.createTagWriter(conn); Host host = createTestHost(); Tag tag = createTestTag(); try { // ----------------------------------------------------------------------------------------------------------- // Create Host and Tag // ----------------------------------------------------------------------------------------------------------- ApiEntitySingleResponse createResponseHost = gWriter.create(host); tWriter.delete(tag.getName()); // delete if it exists ApiEntitySingleResponse createResponseTag = tWriter.create(tag); if (createResponseHost.isSuccess() && createResponseTag.isSuccess() ) { System.out.println("Created Host: " + createResponseHost.getItem()); System.out.println("Created Tag: " + createResponseTag.getItem()); // ----------------------------------------------------------------------------------------------------------- // Associate Tag // ----------------------------------------------------------------------------------------------------------- ApiEntitySingleResponse assocResponse = gWriter.associateTag(createResponseHost.getItem().getHostName() , createResponseTag.getItem().getName() ); if ( assocResponse.isSuccess() ) { System.out.println("\tAssociated Tag: " + createResponseTag.getItem().getName() ); } else { System.err.println("Failed to Associate Tag: " + assocResponse.getMessage()); } } else { if ( !createResponseHost.isSuccess() ) System.err.println("Failed to Create Host: " + createResponseHost.getMessage()); if ( !createResponseTag.isSuccess() ) System.err.println("Failed to Create Tag: " + createResponseTag.getMessage()); } } catch (IOException | FailedResponseException ex) { System.err.println("Error: " + ex.toString()); } } private static void doDissociateTag(Connection conn) { AbstractIndicatorWriterAdapter gWriter= WriterAdapterFactory.createHostIndicatorWriter(conn); TagWriterAdapter tWriter = WriterAdapterFactory.createTagWriter(conn); Host host = createTestHost(); Tag tag = createTestTag(); try { // ----------------------------------------------------------------------------------------------------------- // Create Host and Tag // ----------------------------------------------------------------------------------------------------------- ApiEntitySingleResponse createResponseHost = gWriter.create(host); tWriter.delete(tag.getName()); // delete if it exists ApiEntitySingleResponse createResponseTag = tWriter.create(tag); if (createResponseHost.isSuccess() && createResponseTag.isSuccess() ) { System.out.println("Created Host: " + createResponseHost.getItem()); System.out.println("Created Tag: " + createResponseTag.getItem()); // ----------------------------------------------------------------------------------------------------------- // Associate Tag // ----------------------------------------------------------------------------------------------------------- ApiEntitySingleResponse assocResponse = gWriter.associateTag(createResponseHost.getItem().getHostName() , createResponseTag.getItem().getName() ); if ( assocResponse.isSuccess() ) { System.out.println("\tAssociated Tag: " + createResponseTag.getItem().getName() ); // ----------------------------------------------------------------------------------------------------------- // Delete Association // ----------------------------------------------------------------------------------------------------------- ApiEntitySingleResponse deleteAssocResponse = gWriter.dissociateTag(createResponseHost.getItem().getHostName(), createResponseTag.getItem().getName() ); if ( deleteAssocResponse.isSuccess() ) { System.out.println("\tDeleted Associated Tag: " + createResponseTag.getItem().getName() ); } else { System.err.println("Failed to delete Associated Tag: " + deleteAssocResponse.getMessage()); } } else { System.err.println("Failed to Associate Tag: " + assocResponse.getMessage()); } } else { if ( !createResponseHost.isSuccess() ) System.err.println("Failed to Create Host: " + createResponseHost.getMessage()); if ( !createResponseTag.isSuccess() ) System.err.println("Failed to Create Tag: " + createResponseTag.getMessage()); } } catch (IOException | FailedResponseException ex) { System.err.println("Error: " + ex.toString()); } } private static void doAssociateVictim(Connection conn) { AbstractIndicatorWriterAdapter gWriter= WriterAdapterFactory.createHostIndicatorWriter(conn); VictimWriterAdapter vWriter = WriterAdapterFactory.createVictimWriter(conn); Host host = createTestHost(); Victim victim = createTestVictim(); try { // ----------------------------------------------------------------------------------------------------------- // Create Host and Victim // ----------------------------------------------------------------------------------------------------------- ApiEntitySingleResponse createResponseHost = gWriter.create(host); ApiEntitySingleResponse createResponseVictim = vWriter.create(victim); if (createResponseHost.isSuccess() && createResponseVictim.isSuccess() ) { System.out.println("Created Host: " + createResponseHost.getItem()); System.out.println("Created Victim: " + createResponseVictim.getItem()); // ----------------------------------------------------------------------------------------------------------- // Associate Victim // ----------------------------------------------------------------------------------------------------------- ApiEntitySingleResponse assocResponse = gWriter.associateVictim(createResponseHost.getItem().getHostName(), createResponseVictim.getItem().getId()); if ( assocResponse.isSuccess() ) { System.out.println("\tAssociated Victim: " + createResponseVictim.getItem().getId() ); } else { System.err.println("Failed to Associate Victim: " + assocResponse.getMessage()); } } else { if ( !createResponseHost.isSuccess() ) System.err.println("Failed to Create Host: " + createResponseHost.getMessage()); if ( !createResponseVictim.isSuccess() ) System.err.println("Failed to Create Victim: " + createResponseVictim.getMessage()); } } catch (IOException | FailedResponseException ex) { System.err.println("Error: " + ex.toString()); } } }




© 2015 - 2025 Weber Informatics LLC | Privacy Policy