Giter Club home page Giter Club logo

cyber-instancer's People

Contributors

aplet123 avatar avdestroyer avatar bkrl avatar bliutech avatar burturt avatar roryhemmings avatar zhamic7 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

cyber-instancer's Issues

captcha

add some sort of captcha to prevent users from spamming starting challenges. If interested, ping me or jason and we can get you added to the lactf recaptcha account

Fix homepage

Homepage right now is just an svg - need to update to be more responsive and not have a scrollbar. Does not need to be anything fancy, just maybe update page to have no scrolling or something.

Proper Logging

Right now, almost everything is ephemeral, and as such, if something happens, we won't know what happened. As such, we need proper logging for:

  • All login events: failed login, successful login with details
  • Challenge status updates: challenge deployed, extended, cancelled, and for per-team challenges, include the exact challenge details

Add per-instance randomization

This will allow for challenges to have randomized passwords, paths, etc. Have a config file define env variables to place a random value for each challenge different per instance, and also pass this value to the frontend for displaying to the user as e.g. ssh password.

Add timer before displaying chall details

If a challenge takes more than like a second to boot up, the user is given the connection details before it is fully booted up. Instead, this should wait to give the connection details for a duration specified per-challenge to give some time for it to boot up (similarly to tryhackme)

Also, add API data for the timestamp that the challenge can display its connection data.

Ratelimiting

Ratelimit:

  • logins per IP address per unit time
  • registrations per IP address per unit time
  • deployments per account per unit time
  • deployments per IP address per unit time

Ratelimiting should have an option to use cloudflare's appropriate headers, and must take into account both IPv4 and IPv6 addresses (note that IPv6 ratelimiting should be done at the /64 block level, NOT individual IPv6 address level).

Custom traefik error pages

setup custom error pages for traefik so users aren't confronted with a super generic no-format "404 not found" text or similar

Admin API - User Management

Admin API should have for user management:

  • List active users
  • View a user's actively deployed challenge
  • Revoke a team's login session
  • Invalidate a team's login token
  • Ban a user from logging in

rctf mode

Add config toggle for "rctf mode":

  • disable and hide register page
  • Hide username/email capabilities on profile
  • Hide/do not generate login urls inside of the instancer

oauth support

support logging in via google for ucla students to remove account signup friction and also add protection on signing up for accounts

Proper Error handling

API error handling is not very good right now - for example, there is no difference between "unable to create challenge right now because it is shutting down" and "unable to create challenge because cache got corrupted" or something actually serious

Challenge setup + creation docs

We need some sort of docs to make onboarding for both devs and challenge writers easier and more streamlined beyond the 50 page readme.md that's there right now. Some docs are available at ACM Drive > 2022-23 > Cyber > Reference Docs > Cyber Instancer

Admin API - Challenge Management

Admin API for challenge management should implement:

  • List all challenges
  • Get challenge original json config
  • Edit challenge json config - note that extra care may be needed to ensure this does not break already deployed challenges
  • Add new/delete challenges (already implemented)

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.