Vault7: CIA Hacking Tools Revealed
Navigation: » Latest version
Owner: User #20251227
Project Overview
Current Status
Current Activities:
- Discussion of System Expectations
- Backlog Population
- "Pilot" Sprint
- Initial Infrastructure
- Initial System Architecture
- Shepherding through requirements process
- Event-based schedule
Useful Pointers
Stash: https://stash.devlan.net/projects/KRAK
Jira: https://jira.ioc.local/projects/KRAK/summary
Components/Architecture
Client - The component that resides on a target and does things. Communicates with a (paired) Listener.
Listener - The component that communicates with multiple (paired) Clients and the Manager. The Listener functions mainly as a "translator" for messages/commands between the Manager and a given client.
Manager - The component that communicates with the Listener, User Interface (UIUser Interface), and data store(s) (e.g., database). The Manager is responsible for noting the commands of a user and tasking/managing collections of clients via associated Listeners so that a user can achieve desired goals.
User Interface (UIUser Interface) - A Command Line Interface (CLICommand-Line Interface) via which a user describes the actions that clients should take and, additionally, what data (historical & current) should be displayed.
Conventions
a) All code comments, etc are Doxygen style, and Doxygen will be used to generate developer docs. This is for both the Python & native components.
b) Ideally, there should be dev/build VMVirtual Machine image(s) under config management of some sort and the details on how they were built/modified so that they can be reproduced.
c) Git & Stash for version control
d) Ideally, given proper utilization & organization of this wiki space, some of the wiki pages in this space will end up as product (user) documentation.
e) Python 3 w/ spaces, no tabs.
f) Story points are based on binary escalation... 1, 2, 4, 8, 16, 32
Event-Based Project Timeline
- Get & clarify expectations. Primarily:
- UI/UX
- Workflow
- Client Functionality
- Create Mock-Up of UI/UX and get in User's hands in order to generate feedback. The UIUser Interface / UXHP Unix development will be done in an iterative manner and go through at least two cycles.
- What information to display & when
- Workflow: display info about what activities, when, in what order, and with what syntax
- Define/Document UI/UX <-> Manager interface
- Design/Implement the manager
- database
- filesystem
- integration with UI/UX
- Define and Document Interfaces:
- Manager <-> Listener
- Listener <-> Client
- Design/Implement the Listener
- Implement a functioning Mock Client
- Implements full binary command protocol between Listener & Client
- may implement crypto layers
- must function in such a way as to communicate & generate messages as a native client would.
- Implement Native Client
- Utilize some kind of unit testing framework to make regression testing simple as features are added
- small, modularized functionality in separate, standalone components to test against PSPs.
- Implement installer(s) for backend components
- Documentation
- Quick Start
- Caveats/warnings
- Full user guide
- Developer-based testing & characterization
- IV&V