Git Product home page Git Product logo

ghosts-animator's Introduction

GHOSTS Animator

A configurable and extensible library for generating modeling, simulation and exercise data. As we say, "NPCs so real, they sell for a premium on the dark web."

At its core, Animator is a hyper-realistic user details generator. Its primary function is to create fake identities and accompanying verbose portfolios of personal information. Each generated user, or NPC (Non-Player Character) as we call them, has over 25 categories of details associated with them, and over a hundred pieces of metadata defining who they are. Each piece of information is generated using sourced datasets in an attempt to distribute characteristics realistically.

Image of NPC Profile

Quick Start

Documentation for Animator is here with easy access to the rest of the GHOSTS framework as well.

  1. git clone https://github.com/cmu-sei/GHOSTS-ANIMATOR
  2. cd ghosts-animator/src
  3. docker build . -t ghosts/animator
  4. docker compose up -d
  5. Browse to http://localhost:5000/swagger

Why Use Animator

The data generated by Animator can be leveraged in multiple areas, but is particularly applicable in four key areas:

Training Machine Learning Algorithms

Animator creates larges sets of hyper-realistic user data. It can be leveraged to generate data sets that can be used for training machine learning algorithms. This enables the rapid training of anthropology-related ML algorithms that can leverage one or more of the hundred-plus data points generated by Animator.

Honeypot Payloads

NPC details generated by Animator are designed to be as realistic as possible given the available relevant open-source information. This makes the user data convincingly real while still being completely fabricated. Therefore, the data is ideal for use in applications like honeypots, where the goal is to trick an attacker into thinking they are compromising an asset with real user data. This data is also perfect for any other application that would benefit from extremely realistic user information.

Insider Threat Modeling

Each Animator NPC is given an Insider Threat Profile. This profile determines how likely it is that the NPC is an insider threat by incorporating the CDSE's Insider Threat Potential Indicators. As we continue developing Animator, it will be possible to configure NPCs to be more or less likely to be insider threats based on factors such as their finances, criminal history, foreign contacts, and mental health.

Social Network and Relationship Modeling

Animator can establish relationships between the NPCs it generates. As we increase the fidelity of inter-NPC relationships, Animator NPCs create larger and more realistic social networks. By leveraging Animator's ability to quickly generate thousands of inter-related NPCs, Animator can easily be used to perform social networking modeling and research.

How it Works

  1. The Animator API is built on .NET Core. Once running, it stands up a server and Restful API that can be accessed to create NPCs.
  2. Once Animator receives a request to create NPCs, it starts by creating an empty NPC Profile.
  3. Animator then iterates through all 100+ data points for the NPC and generates synthetic data to be associated with that NPC.
    • Example data points are name, address, mental health, career, finances, and family members.
  4. Data points are either generated at random or are generated using weighted randomization. Weighted randomization involves leveraging verified datasets to influence the distribution of randomly generated data points to match much more closely to reality.
    • Note that our primary goal in Animator is to be as realistic with our data as possible. As we develop Animator, we aim to use weighted randomization for as many data points as we can find datasets to support.
  5. Animator will complete this process for as many users as were selected by the request. This information can be exported through the API, or stored in a local database
    • Animator currently supports storing NPC data in a local Mongo Database. This feature is still being actively improved.

Image of Animator Relationship Network

Sources

Below are the sources we've used in Animator to date:


GHOSTS Animator began as a port of Faker.Net, which is itself a C# port of faker for Ruby. Similar libraries exist for python and other programming languages.


[DISTRIBUTION STATEMENT A] This material has been approved for public release and unlimited distribution.

Copyright 2020 Carnegie Mellon University. All Rights Reserved. See LICENSE.md file for terms.

ghosts-animator's People

Contributors

dustinupdyke avatar sei-dupdyke avatar sei-tbrooks avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

ghosts-animator's Issues

pull error

Hoping this project is still active, have used it before and love it.

I am recieving this error using the .yml file

"ERROR: manifest for dustinupdyke/ghosts-animator:0.8.0 not found: manifest unknown: manifest unknown"

or when trying to pull straight from docker I get this

ERROR: manifest for dustinupdyke/ghosts-animator:latest not found: manifest unknown: manifest unknown

500 server error -- server:Kestrel

    Hi, I'll try your animator, I've done the steps of the quick start guide, I can connect to http://localhost:6001/swagger but when I try to do anything I get a 500 server error -- server:Kestrel

#docker ps
I've the mongodb container in STATUS "Restarting"... the other one is UP.

Can you help me?

Originally posted by @jaumemiralles in #2 (comment)

Pull access denied for ghosts/animator

Is this project still viable? Getting the following error when running docker-compose up -d:

Error response from daemon: pull access denied for ghosts/animator, repository does not exist or may require 'docker login': denied: requested access to the resource is denied

Thanks!

Mongodb connection error

Hello, i have a problem when i try to use the swagger api. I have an 500 internal error. It's due to connection error between ghosts-animator container and the mongod container. I try to modify the appsetting.json to resolve the error but any action on modify the api request.

docker-amimator container error:
fail: Microsoft.AspNetCore.Server.Kestrel[13]
Connection id "0HMRJNMP49BFD", Request id "0HMRJNMP49BFD:00000002": An unhandled exception was thrown by the application.
System.TimeoutException: A timeout occurred after 30000ms selecting a server using CompositeServerSelector{ Selectors = MongoDB.Driver.MongoClient+AreSessionsSupportedServerSelector, LatencyLimitingServerSelector{ AllowedLatencyRange = 00:00:00.0150000 }, OperationsCountServerSelector }. Client view of cluster state is { ClusterId : "1", Type : "Unknown", State : "Disconnected", Servers : [{ ServerId: "{ ClusterId : 1, EndPoint : "Unspecified/ghosts-mongo:32770" }", EndPoint: "Unspecified/ghosts-mongo:32770", ReasonChanged: "Heartbeat", State: "Disconnected", ServerVersion: , TopologyVersion: , Type: "Unknown", HeartbeatException: "MongoDB.Driver.MongoConnectionException: An exception occurred while opening a connection to the server.
---> System.Net.Internals.SocketExceptionFactory+ExtendedSocketException (111): Connection refused 172.18.0.3:32770
at System.Net.Sockets.Socket.DoConnect(EndPoint endPointSnapshot, SocketAddress socketAddress)
at System.Net.Sockets.Socket.Connect(EndPoint remoteEP)
at MongoDB.Driver.Core.Connections.TcpStreamFactory.Connect(Socket socket, EndPoint endPoint, CancellationToken cancellationToken)
at MongoDB.Driver.Core.Connections.TcpStreamFactory.CreateStream(EndPoint endPoint, CancellationToken cancellationToken)
at MongoDB.Driver.Core.Connections.BinaryConnection.OpenHelper(CancellationToken cancellationToken)
--- End of inner exception stack trace ---
at MongoDB.Driver.Core.Connections.BinaryConnection.OpenHelper(CancellationToken cancellationToken)
at MongoDB.Driver.Core.Connections.BinaryConnection.Open(CancellationToken cancellationToken)
at MongoDB.Driver.Core.Servers.ServerMonitor.InitializeConnection(CancellationToken cancellationToken)
at MongoDB.Driver.Core.Servers.ServerMonitor.Heartbeat(CancellationToken cancellationToken)", LastHeartbeatTimestamp: "2023-06-23T07:45:08.0405286Z", LastUpdateTimestamp: "2023-06-23T07:45:08.0405288Z" }] }.

Dispose d’un menu contextuel

I saw the old issue but i think the problem is still here.

Thank for your help

Internal Server Error 500 issue

All I have done so far is followed the quick start guide using docker, and when I try to use any of the ghosts animator pages, all result in a 500 error. I was wondering if anyone knows of any fix to this. Thank you!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.