Kill-Chain 1.0.0
Package for Software Kill Chain Analysis across your code
License: MIT

# Software Kill Chain
[![Test Coverage](https://img.shields.io/badge/Test%20Coverage-100%25-success)](https://github.com/jacob-h-barrow/Penguin-Services)
[![Security](https://img.shields.io/badge/Secure-True-informational)](https://github.com/jacob-h-barrow/Penguin-Services)
[![Platform](https://img.shields.io/badge/Platform-Ubuntu%2020%2B-critical)](https://github.com/jacob-h-barrow/Penguin-Services)
[![Python Version](https://img.shields.io/badge/Python-3.8%2B-critical)](https://github.com/jacob-h-barrow/Penguin-Services)
[![MIT License](https://img.shields.io/badge/License-MIT-lightgrey)](https://github.com/jacob-h-barrow/Penguin-Services/blob/main/Penguin-Services.png)

![KillChain_Banner_Sharp](https://user-images.githubusercontent.com/112576275/190289746-3f1cdcd0-56b4-46ba-837f-8dc93258ebf4.png)

- Created By Jacob H Barrow

## Overview
- Cross examined with Lockheed's Cyber Kill Chain
- Loads more to follow, this was the first day investing some time
- Right now, the package focuses on project engagement and management overhead.
- Later, it will get more technical as the package explores each stage below! 

## Code Analysis
- Reconnaisance stage
- Refers to both static and dynamic analysis
- Static and dynamic type exploitation
- etc

## Modification
- Weaponization stage
- Identify the location, functionality, systems of system(s) effect(s), then modify
- Based on the analysis, where can it be weaponized?
- What location(s) provide the state of interest?
- How many location(s) need to be involved to change each functionality?
- What functionalities are necessary to weaponize the entire system, or systems of systems?
- etc.

## Access
- Delivery stage
- How will this be delivered to all customers, new and existing?
- What will be needed to get this update or modification in place?
  - For example, do we need to compromise the PKI server or modify the signature on the signed code,in order to upload as the original author.
- etc.

## Execute
- Exploit stage
- When will the code be run?
- What NTP server is being used to track the time of execution?
- What conditions/systems are required for the code to be triggered?
- etc.

## State Analysis
- Installation stage
- How is our software going to beat attestation algorithms in-place?
- What index profile will our system be given after being modified?
  - For example, will the protection profile change? Will the heuristic profile change?
- etc.

## Networking
- Command and control stage
- Is the current REST API going to be leveraged?
- Does the modification allow the software to communicate/interact with other cover channels?
- etc.

## Your Move
- Actions or objections stage
- Is this to collect information, weaken the protection profile for subsequent attack, or are we trying to damge the system/network?
- Is this automated? Do we need to supervise further compromise? Is it a zero click that gives us a singular piece of information?
- Are we planning to lay low with the modification? Ex. NSA's ECC PRNG 2011
- Do we use this modification to attack as many as possible, or do we focus on non-attribution/a single demographic? 

## Usage
- ``` from KillChain import sprint_gantt, project_gantt, map_job_ids, Date_Range_Generator ```
### Sprint Gantt Example
- ``` tasks_mins = {"john": {"jobs": [(40, 50), (0,0), (0,0), (0,0), (0,0), (0,0), (175,250)]}, "natilie": {"jobs": [(110, 10), (150, 10)]}, "sammy": {"jobs": [(10, 50), (100, 20), (130, 10)]}, "max": {"jobs": [(0,0), (0, 0), (0, 0), (160, 180), (205, 225)]}, "Trix": {"jobs": [(0,0), (0,0), (0,0), (0,0), (175, 200), (240, 250)]}}```
- ``` sprint_gantt(tasks_mins, project_length = 270, project_name = "Soaring Eagle")```
### Project Gantt Example
- ``` people = {'John': {0: Date_Range_Generator(6,9,2022, count = 3), 1: Date_Range_Generator(12, 9, 2022, count = 4), 2: Date_Range_Generator(16, 9, 2022)}, 'Trix': {3: Date_Range_Generator(26, 9, 2022, count = 6)}, 'Roxy': {0: Date_Range_Generator(6,9,2022, count = 4), 2: Date_Range_Generator(16,9,2022, count = 11), 3: Date_Range_Generator(29,9,2022, count = 3)}} ```
- ``` tasks = {'people': {}, 'jobIds': {0: ["Engagement", 'tab:orange'], 1: ["Contract", "tab:red"], 2: ["Work", "tab:blue"], 3: ["Reporting", "tab:green"]}}```
- ``` project_gantt(map_job_ids(tasks, people), project_name = "Strike Eagle", filename = "Project Resource Allocation Gantt_Strike Eagle.png") ```
### Join Dumbledore's Army!!!