|
| 1 | +<div> |
| 2 | + |
1 | 3 | # GHOSTS NPC Framework |
2 | 4 |
|
3 | | -GHOSTS simulates user activity on a computer, like creating documents, browsing websites, and downloading files. It drives various popular applications on both Windows and Linux machines. Whether you're a friendly administrator or a cyber adversary, GHOSTS can replicate your expected behavior. |
| 5 | +**Realistic User Behavior Simulation for Cyber Training, Exercises, and Research** |
| 6 | + |
| 7 | +[](LICENSE.md) |
| 8 | +[](https://dotnet.microsoft.com/) |
| 9 | +[](https://github.com/cmu-sei/GHOSTS/releases) |
| 10 | +[](https://github.com/cmu-sei/GHOSTS/pulls) |
4 | 11 |
|
5 | | -GHOSTS has many use cases in cyber experimentation, training and exercise, most notably for bringing non-player characters (NPCs) to life. However, it can also be used for other purposes requiring realistic activity on a computer. |
| 12 | +[Quick Start](https://cmu-sei.github.io/GHOSTS/quickstart/) • [Documentation](https://cmu-sei.github.io/GHOSTS/) • [Issues](https://github.com/cmu-sei/GHOSTS/issues) • [Demo Video](https://www.youtube.com/watch?v=EkwK-cqwjjA) |
6 | 13 |
|
7 | | -There is a [short demonstration video available on YouTube](https://www.youtube.com/watch?v=EkwK-cqwjjA) (3:03). |
| 14 | +</div> |
8 | 15 |
|
9 | 16 | --- |
10 | 17 |
|
11 | | -## Key Links |
| 18 | +## Overview |
12 | 19 |
|
13 | | -- [Quick Start: Installation from distribution binaries](https://cmu-sei.github.io/GHOSTS/quickstart/) |
14 | | -- [GHOSTS Documentation](https://cmu-sei.github.io/GHOSTS/) |
15 | | -- [Submit issues and feature requests](https://github.com/cmu-sei/GHOSTS/issues) |
| 20 | +GHOSTS is an agent orchestration framework that simulates realistic users on all types of computer systems, generating human-like activity across applications, networks, and workflows. Beyond simple automation, it can dynamically reason, chat, and create content via integrated LLMs, enabling adaptive, context-aware behavior. Designed for cyber training, research, and simulation, it produces realistic network traffic, supports complex multi-agent scenarios, and leaves behind realistic artifacts. Its modular architecture allows the addition of new agents, behaviors, and lightweight clients, making it a flexible platform for high-fidelity simulations. |
16 | 21 |
|
17 | | ---- |
| 22 | +**Watch a quick demo:** [3-minute introduction on YouTube](https://www.youtube.com/watch?v=EkwK-cqwjjA) |
18 | 23 |
|
19 | | -**Version 8.2 is here!** |
| 24 | +### Key Capabilities |
20 | 25 |
|
21 | | -GHOSTS has undergone major updates, including breaking changes introduced in version 8.0. Version 8 absorbed the [ANIMATOR](https://github.com/cmu-sei/GHOSTS-ANIMATOR) and [SPECTRE](https://github.com/cmu-sei/GHOSTS-SPECTRE) modules, simplifying the installation, configuration, and administration of a GHOSTS instance, while bringing further capabilities to core agents by integrating previously segregated data. With version 8.2, more improvements and features are introduced, making it easier and more powerful to use. |
| 26 | +- 🌐 **Web browsing** with realistic navigation patterns |
| 27 | +- 📝 **Document creation and editing** (Word, Excel, PowerPoint, Notepad) |
| 28 | +- 📧 **Email communication** (Outlook, sending/receiving) |
| 29 | +- 💬 **Chat and messaging** (Pidgin, social interactions) |
| 30 | +- 🖥️ **Terminal commands** and system operations |
| 31 | +- 🔄 **File operations** (FTP, SFTP, downloads, uploads) |
| 32 | +- 🖱️ **UI interactions** (clicks, mouse movements) |
| 33 | +- 🔐 **Remote access** (RDP, SSH) |
| 34 | +- 🤖 **AI-powered content generation** (LLM integrations) |
| 35 | +- 📊 **Activity monitoring and analytics** via Grafana dashboards |
22 | 36 |
|
23 | | -### Breaking Changes in Version 8.0: |
24 | | -1. Configuration file changes. |
25 | | -2. Database changes. |
26 | | -3. API endpoint changes. |
| 37 | +## Quick Start |
27 | 38 |
|
28 | | -There is no upgrade path from previous versions — a fresh install is required for version 8 and beyond. |
| 39 | +### Installation |
29 | 40 |
|
30 | | ---- |
| 41 | +The fastest way to get started is using Docker Compose: |
| 42 | + |
| 43 | +```bash |
| 44 | +# Clone the repository |
| 45 | +git clone https://github.com/cmu-sei/GHOSTS.git |
| 46 | +cd GHOSTS |
| 47 | + |
| 48 | +# Start the GHOSTS API and supporting services |
| 49 | +docker-compose up -d |
| 50 | +``` |
31 | 51 |
|
32 | | -## What's New in GHOSTS v8.2 🆕 |
33 | | -Welcome to the latest version of GHOSTS! Here’s a look at what’s new and improved in v8.2: |
34 | | - |
35 | | -- [GHOSTS now has a UI](src/ghosts.ui) — Manage machines, machine groups, deploy new timelines, and view activities through a sleek interface. 😍 |
36 | | -- GHOSTS Shadows now integrates with large language models (LLMs) for GHOSTS agents, offering various models for activities, chat, content generation, social interactions, and more. **(Shadows is depreciated. See [RangerAI](https://github.com/cmu-sei/rangerai) for all new GHOSTS AI efforts going forward)**. |
37 | | -- [GHOSTS LITE](src/Ghosts.Client.Lite) is a lightweight version of GHOSTS that requires fewer resources, making it ideal for training, exercises, and simulations on minimal hardware. 👀 |
38 | | -- Fixes #385: Default GUID issue with Animator NPCs. |
39 | | -- Fixes #384: Client path bug. |
40 | | -- Resolved various animation cancellation token bugs in chat features. |
41 | | -- Updated documentation for Animations (with contributions from SEI's TMR team). 🤙 |
42 | | - |
43 | | -## What's New in GHOSTS v8.1: |
44 | | -- GHOSTS LITE BETA: A lighter version designed for scenarios where participants won't directly access the machine. |
45 | | -- API cleanup, particularly around machine updates and groups. |
46 | | -- Simplified sample JSON objects for better understanding and easier submission. |
47 | | -- Improved API robustness and machine group management. |
48 | | -- Enhanced timeline delivery per machine and group. |
49 | | - |
50 | | -## What's New in GHOSTS v8.0: |
51 | | -### Enhancements: |
52 | | -- Merged ANIMATOR and SPECTRE functionalities into the core GHOSTS API. Both projects are now archived. |
53 | | -- Migrated all data from MongoDB to PostgreSQL for improved performance and management. |
54 | | -- Cleaned up the Docker Compose setup to minimize installation and configuration issues. |
55 | | -- Animator job management can now be handled directly through the UI. |
56 | | -- Transitioning from HTTP requests to WebSockets: NPCs are "always connected" and no longer need to poll the server to execute activities. |
57 | | -- Added ability to configure random delays (before or after an activity) within timelines. |
58 | | -- Simplified configuration for both client and server systems (breaking change). |
59 | | -- Consolidated installation into a single `docker-compose` file, streamlining the process. |
60 | | -- Reorganized API endpoints for improved structure and accessibility. |
61 | | -- Added a favicon for UI polish. |
62 | | - |
63 | | -### Bug Fixes: |
64 | | -- Grafana Docker Compose no longer uses the root user. |
65 | | -- Ensured all Docker containers are `amd64` (not `arm`). |
66 | | -- Fixed issues with command windows staying open after execution. |
67 | | -- Improved RDP functionality, fixing connectivity bugs. |
68 | | -- Resolved issues with delay values exceeding integer limits. |
69 | | -- Added "log" level to application logs for better insight into operations. |
70 | | -- Fixed documentation bug related to machine group timelines. |
| 52 | +For detailed installation instructions, platform-specific builds, and configuration options, see the [Quick Start Guide](https://cmu-sei.github.io/GHOSTS/quickstart/). |
| 53 | + |
| 54 | +### Basic Usage |
| 55 | + |
| 56 | +1. **Deploy the API Server** - Use Docker Compose or deploy to your infrastructure |
| 57 | +2. **Install Clients** - Deploy GHOSTS clients on Windows or Linux machines |
| 58 | +3. **Configure Timelines** - Define activities through the UI or API |
| 59 | +4. **Monitor Activity** - View real-time NPC behavior through Grafana dashboards |
| 60 | + |
| 61 | +See the [full documentation](https://cmu-sei.github.io/GHOSTS/) for detailed configuration and usage examples. |
71 | 62 |
|
72 | 63 | --- |
73 | 64 |
|
74 | | -## Platform Components |
| 65 | +## Architecture |
75 | 66 |
|
76 | | -### Ghosts Clients (Windows & Linux) |
77 | | -GHOSTS clients simulate user-like behavior on a machine. Configurable tasks include: |
78 | | -- Web browsing |
79 | | -- Document creation and editing |
80 | | -- Email sending and responding |
81 | | -- Running terminal commands |
82 | | -- And more. |
| 67 | +GHOSTS consists of several integrated components that work together to create a realistic simulation environment: |
83 | 68 |
|
84 | | -### Ghosts API Server |
85 | | -The API server enables clients to interact with GHOSTS and provides the following functionality: |
86 | | -- Manage clients, add/remove groups, etc. |
87 | | -- Retrieve/manage client activity data. |
88 | | -- Orchestrate new tasks for clients to perform. |
| 69 | +### Core Components |
89 | 70 |
|
90 | | -### Ghosts UI |
91 | | -The UI offers an interface for managing machines, groups, and deploying timelines, providing an easier way to interact with the GHOSTS system. |
| 71 | +| Component | Description | Documentation | |
| 72 | +|-----------|-------------|---------------| |
| 73 | +| **GHOSTS Client** | Cross-platform agent (Windows/Linux) that executes simulated user activities | [Client Docs](https://cmu-sei.github.io/GHOSTS/core/client/) | |
| 74 | +| **GHOSTS API** | Central server managing clients, timelines, and activity orchestration via REST and WebSocket | [API Docs](https://cmu-sei.github.io/GHOSTS/core/api/) | |
| 75 | +| **GHOSTS UI** | Web-based interface for managing machines, groups, and deploying timelines | [UI Docs](https://cmu-sei.github.io/GHOSTS/core/ui/) | |
| 76 | +| **GHOSTS Lite** | Lightweight client version for resource-constrained environments | [Lite Docs](https://cmu-sei.github.io/GHOSTS/core/lite/) | |
92 | 77 |
|
93 | | -### Ghosts Lite |
94 | | -A minimalistic version of the Windows GHOSTS client, suitable for running on systems with limited resources. |
| 78 | +### Supporting Services |
95 | 79 |
|
96 | | -### Pandora Content Server |
97 | | -A server that provides requested content to GHOSTS clients, dynamically generating responses or serving static content for training, exercises, and red-teaming. |
| 80 | +| Service | Description | Documentation | |
| 81 | +|---------|-------------|---------------| |
| 82 | +| **Animator** | Generates realistic NPC personas with attributes, relationships, and social networks | [Animator Docs](https://cmu-sei.github.io/GHOSTS/animator/) | |
| 83 | +| **Pandora** | Content generation server providing dynamic web content and responses | [Pandora Docs](https://cmu-sei.github.io/GHOSTS/content/pandora/) | |
| 84 | +| **Socializer** | Simulated social media platform for realistic social interactions | [Socializer Docs](https://cmu-sei.github.io/GHOSTS/content/social/) | |
| 85 | +| **Grafana Integration** | Real-time monitoring and visualization of NPC activities | [Grafana Docs](https://cmu-sei.github.io/GHOSTS/core/grafana/) | |
98 | 86 |
|
99 | | -### Pandora Socializer Server |
100 | | -This server allows GHOSTS clients to interact with simulated social media content, enhancing the realism of cyber scenarios. |
| 87 | +## Use Cases |
101 | 88 |
|
102 | | ---- |
| 89 | +GHOSTS is designed for various cybersecurity and training scenarios: |
| 90 | + |
| 91 | +- **Cyber Training & Exercises** - Populate training environments with realistic user activity |
| 92 | +- **Red Team Operations** - Generate believable background noise during security assessments |
| 93 | +- **Blue Team Training** - Create realistic network traffic for detection and analysis practice |
| 94 | +- **Research & Development** - Test security tools and detection algorithms with realistic data |
| 95 | +- **Cyber Range Development** - Build immersive environments with autonomous NPCs |
| 96 | +- **Simulation & Modeling** - Generate realistic network behavior patterns for analysis |
| 97 | + |
| 98 | +## What's New |
| 99 | + |
| 100 | +### Version 8.2 (Current) |
| 101 | + |
| 102 | +- **New UI** - [Web-based interface](src/ghosts.ui) for managing machines, groups, and timelines |
| 103 | +- **GHOSTS Lite** - [Lightweight client](src/Ghosts.Client.Lite) for resource-constrained environments |
| 104 | +- **LLM Integration** - AI-powered content generation (migrate to [RangerAI](https://github.com/cmu-sei/rangerai) for latest AI features) |
| 105 | +- **Bug Fixes** - Resolved GUID issues (#385), client path bugs (#384), and animation cancellation issues |
| 106 | +- **Documentation Updates** - Enhanced animation documentation |
| 107 | + |
| 108 | +### Version 8.0 Major Changes |
| 109 | + |
| 110 | +> **⚠️ Breaking Changes**: Version 8.0 introduced breaking changes requiring a fresh installation. No upgrade path from previous versions. |
| 111 | +
|
| 112 | +**Key Updates:** |
| 113 | +- Merged ANIMATOR and SPECTRE into core platform (both now archived) |
| 114 | +- Migrated from MongoDB to PostgreSQL for better performance |
| 115 | +- WebSocket support for real-time NPC connectivity |
| 116 | +- Simplified Docker Compose deployment |
| 117 | +- Reorganized API endpoints |
| 118 | +- Enhanced timeline configuration with random delays |
| 119 | + |
| 120 | +<details> |
| 121 | +<summary>View Version 8.1 Changes</summary> |
| 122 | + |
| 123 | +- GHOSTS LITE beta release |
| 124 | +- API cleanup for machine updates and groups |
| 125 | +- Simplified JSON object structures |
| 126 | +- Improved machine group management |
| 127 | +- Enhanced timeline delivery system |
| 128 | + |
| 129 | +</details> |
| 130 | + |
| 131 | +For complete version history, see the [releases page](https://github.com/cmu-sei/GHOSTS/releases). |
| 132 | + |
| 133 | +## Documentation |
| 134 | + |
| 135 | +Comprehensive documentation is available at [cmu-sei.github.io/GHOSTS](https://cmu-sei.github.io/GHOSTS/) |
| 136 | + |
| 137 | +**Key Documentation Sections:** |
| 138 | +- [Installation Guide](https://cmu-sei.github.io/GHOSTS/quickstart/) |
| 139 | +- [Client Configuration](https://cmu-sei.github.io/GHOSTS/core/client/) |
| 140 | +- [Handler Reference](https://cmu-sei.github.io/GHOSTS/core/handlers/) - Available activities and configurations |
| 141 | +- [Timeline Management](https://cmu-sei.github.io/GHOSTS/core/api/timelines/) |
| 142 | +- [Animator NPCs](https://cmu-sei.github.io/GHOSTS/animator/) |
| 143 | +- [Advanced Features](https://cmu-sei.github.io/GHOSTS/advanced/) |
| 144 | + |
| 145 | +## Contributing |
| 146 | + |
| 147 | +We welcome contributions from the community! Whether it's bug reports, feature requests, documentation improvements, or code contributions, your input helps make GHOSTS better. |
| 148 | + |
| 149 | +### How to Contribute |
| 150 | + |
| 151 | +1. **Report Issues** - Use the [GitHub issue tracker](https://github.com/cmu-sei/GHOSTS/issues) for bugs and feature requests |
| 152 | +2. **Submit Pull Requests** - Fork the repository, create a feature branch, and submit a PR |
| 153 | +3. **Improve Documentation** - Help enhance guides, examples, and API documentation |
| 154 | +4. **Share Use Cases** - Tell us how you're using GHOSTS in your environment |
| 155 | + |
| 156 | +Please ensure your contributions align with our project goals and maintain code quality standards. |
| 157 | + |
| 158 | +## Support |
| 159 | + |
| 160 | +- **Documentation**: [https://cmu-sei.github.io/GHOSTS/](https://cmu-sei.github.io/GHOSTS/) |
| 161 | +- **Issues**: [GitHub Issue Tracker](https://github.com/cmu-sei/GHOSTS/issues) |
| 162 | +- **Contact **: Email [email protected] for questions and support |
| 163 | + |
| 164 | +## Related Projects |
| 165 | + |
| 166 | +- **[RangerAI](https://github.com/cmu-sei/rangerai)** - Advanced AI integration for GHOSTS (successor to Shadows) |
| 167 | +- **ANIMATOR** - Now integrated into GHOSTS core (archived) |
| 168 | +- **SPECTRE** - Now integrated into GHOSTS core (archived) |
| 169 | + |
| 170 | +## Acknowledgments |
| 171 | + |
| 172 | +GHOSTS is developed by the Software Engineering Institute (SEI) at Carnegie Mellon University and funded by the Department of Defense. |
103 | 173 |
|
104 | 174 | ## License |
105 | | -[DISTRIBUTION STATEMENT A] This material has been approved for public release and unlimited distribution. |
106 | | -Copyright 2017 Carnegie Mellon University. All Rights Reserved. See LICENSE.md file for terms. |
| 175 | + |
| 176 | +This project is licensed under the MIT License. See [LICENSE.md](LICENSE.md) for full details. |
| 177 | + |
| 178 | +**Distribution Statement**: [DISTRIBUTION STATEMENT A] This material has been approved for public release and unlimited distribution. |
| 179 | + |
| 180 | +Copyright 2017-2025 Carnegie Mellon University. All Rights Reserved. |
| 181 | + |
| 182 | +--- |
| 183 | + |
| 184 | +<div> |
| 185 | + |
| 186 | +[Website](https://cmu-sei.github.io/GHOSTS/) • [GitHub](https://github.com/cmu-sei/GHOSTS) • [Issues](https://github.com/cmu-sei/GHOSTS/issues) • [Releases](https://github.com/cmu-sei/GHOSTS/releases) |
| 187 | + |
| 188 | +</div> |
0 commit comments