Giter VIP home page Giter VIP logo

copilot's People

Contributors

seamustuohy 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  avatar

Watchers

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

Forkers

gsdu8g9

copilot's Issues

Write up outputs from rightscon

After presenting Co-Pilot in the demo room at RightsCon https://www.rightscon.org/index, several more in-depth conversations with trainers occurred. Current Co-Pilot capabilities, modifications, different use-cases and the future of a training aid like Co-Pilot were also discussed.

Feature request - file sharing capabilites

The ability to share resources (such as word docs or pdf files), executable files for tool downloads, or html pages would all be very valuable so as not to use bandwidth on downloading these things during a training.

Fix Error dns creation

When creating a rule the following error occurs.

File "/home/www/copilot/copilot/models.py" line 182, in apply_it
dnsc_rule = eule.get_dns()
File ..../models.py line 218 in get_dns
reutrn _parsed
NameError: global name _parsed not defined.

Add "Tor" switch so participants' traffic is encrypted when passively using the Internet during training session

During a follow up interview, one trainer suggested making a "Tor" switch so the trainer can choose when to send all traffic through the Tor network. This is so when participants are passively connecting to the Internet during a training session - checking email, news, social media, etc - the connection is encrypted and more anonymous. Once the trainer goes to use Co-Pilot profiles to block and censor, they would be able to turn this feature off so connection speeds will be faster.

Moving control of scripts entirely to supervisord

We will be useing supervisord to run all scripts including dnschef and create_ap to make a simple system for managing service manipulation. This will leverage pythons' watchdog library monitoring config files to restart the major scripts when needed.

Trainer Interface profile to IP-tables translation must be logical for the user

In netfilter, If a chain doesn't decide the fate of the packet, then once traversal on that chain has finished, traversal resumes on the next rule in the current chain. This means that the first rule that blocks, discards, or forwards a packet on will be carried out without concern for any later rules. The Co-pilot interface must make sure that the interface provides a logical way to prevent incompatible rule sets that may cause inconsistent behavior.

Feature request - pre-populate with sample profiles

Pre populating Co-Pilot with a few sample profiles will provide trainers with a variety of examples and will also help trainers get a glimpse of some of the different ways they can use it during their trainings.

Identify Hardware

Co-Pilot Hardware Research

Review Modifying Your Access Point with a High-Gain Antenna

Review Introduction to Wi-Fi Wireless Antennas

Review Selecting the right WiFi antenna for your application - Selecting-the-Right-WiFi-Antenna-for-your-application.pdf

Review Comparison of single-board computers - Wikipedia, the free encyclopedia<

Review report.pdf

Review parco2013.pdf

COST

Boards

Name Cost Shipping Total
Bananna Pi 64.24 5.25
Beagle Bone Black 55.00
MinnowBoard $189.00
ODROID-U3 $65.00 (+ 5.00 power cord)
HummingBoard 60-120

Overestimate: 75$

Wifi

802.11AC Devices

Name Cost
ASUS 64.00
Roswell 38.00

Comparison 55-70$

Overestimate: $75

Cases

Name Cost
Beagle Bone Case 10.00
Custom Printed 15.00

Overestimate: 17.00 Per

Misc

A wifi router to test client bridged AP: 40$
Batteries: 55$

Review Very High Throughput (VHT) Wi-Fi or Gigabit Wi-Fi or Giga Wireless or 5G WiFi5. Number of devices

Cost per Piece: 157

Implement Access Point

Create profile sharing mechanism

Per the needs assessment survey Sharable Trainer Profiles are desired for creating region specific blocking simulations and updating and sharing them.

  • I'd want to be able to switch very easily between environments for two situations. 1) For people living along a border who have access to two providers from different nations, under different restrictions; 2) for countries that have one set of restrictions most of the time, and then a tougher set during, say, elections. Anyway, I should probably put the emphasis on switching easily - I just want to push a button and -- voila! -- the change happens.
  • would need the tool to create censorship environments that are as realistic as possible - preferably by offering the ability to chose among simulations of various real-world censorship regimes (ie, "corporate firewall, Great Britain's content filter, China).
  • Being customizable, and folks sharing the profiles they've created.
  • guidance on real-world scenarios where such blocking could be in place and guidance on advising which tools can overcome the blocking.
  • Accuracy to actual censoring environments
  • The ability to turn on and off specific types of censorship in a very granular way -- AND have a list of notable censorship regimes that are known to rely on any particular technique (so as to make it clear that the trainee's experiences in the training session are actually very realistic and applicable to real-word environments).

Add a solo (no trainer needed) mode for co-pilot. (Auto-Pilot)

We should work on a way for co-pilot to be able to work without needing a trainer to facilitate.

This way people in high risk, or trainer-less areas can train themselves. Trainers are spread very thin (see the needs survey) and we can't reach all the possible interested users with these types of experiences.

(edited by s2e)

Add 'explanatory bubbles' when trainer hovers over technical terms

Additional UI enhancements were suggested during follow up interviews. For example, when a trainer goes to configure a profile they wish to demonstrate or simulate during a training, several trainers suggested if you hover over DNS blocking, an explanation/definition bubble would then pop up automatically, in order to provide more information to trainer so they can select the best configuration for their specific use-case.

Trainee Interface

A user facing interface to show what the co-pilot tool is currently doing.

Sample curriculum incorporating Co-Pilot

Both through follow up interviews and the initial needs assessment it was mentioned that building out a sample curriculum incorporating Co-Pilot into training would be very valuable.

Develop wire frames for UI

Develop wire frames for User Interface

  • Simple wire frames of the user interface will be developed by @elationfoundation in order to get a sense of the flow of the design.
  • After initial review, wire frames will be sent over to @megdeb, reviewed, printed and used in UI design interviews

Technical Architecture Review

The proposed architecture should be sent out to a set of communities to get review before major technical work begins. This will help us streamline the development process and learn from problems faced by other groups.

Add ability to upload in-security demos and COGS

This feature may be a future enhancement to Co-Pilot, but having the ability to load these on the device to use during training may also be useful, as long as there is a smooth transition between the different components.

(in)security demos show participants specific vulnerabilities and risks associated with different behaviors, while then providing information to participants on how to mitigate them. These demos focus on a more hands-on learning experience, rather than a lecture style training session.
https://github.com/schloss/insecurity-demos

Another component that would be useful to incorporate into Co-Pilot are COGS (Challenges, Observations, Games and Simulations). COGS focus on actively engaging with participants through different drills and games, while allowing them to practice the new set of skills they have acquired.

Remove iptables work in favor of existing tools

Existing tools on the Kali distribution provide the same functionality that we will want to implement through the current iptables design. These tools are externally supported and provide sustainability to the tool.

Get co-pilot working on the raspberry-pi

More so than any of the other embedded platforms there has been a huge amount of interest in the raspberry-pi as a co-pilot platform.

I have serious concerns about the general lack of computing power supplied by the Raspberry-pi. We need to be able to provide a clear capabilities/limitations overview of this platform so that those who will eventually get it running on the Raspberry-pi understand its limitations.

Needs Assessment Interviews

Needs Assessment Interviews with trainers will guide the development of rough interface prototypes. The interviewees will be chosen from survey participants.

Needs assessment surveys

Needs Assessment will be conducted a survey of digital security trainers.

Includeing:

  • Circumvention tools being trained on.
  • Circumvention tools that are currently difficult to train on, or assess user understanding of.
  • Circumvention tools which might benefit from hands on practice.
  • Interest in using a tool like co-pilot.
  • Concerns about adding training technology into their existing practice.

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.