Giter VIP home page Giter VIP logo

python-apps's Introduction

Shuffle Logo

Shuffle Automation

CodeQL Autobuild

Shuffle is an automation platform for and by the community, focusing on accessibility for anyone to automate. Security operations is complex, but it doesn't have to be.

Key FeaturesCommunity & SupportDocumentationGetting StartedDevelopment

Follow us on Twitter at @shuffleio.

Example Shuffle webhook integration

Try it

Please consider sponsoring the project if you want to see more rapid development.

Support

Blogposts

Documentation

Documentation can be found on https://shuffler.io/docs and is written here: https://github.com/shuffle/shuffle-docs.

Setting up a local development environment

Please follow the steps mentioned here!

Related repositories

Features

  • Simple, feature rich workflow editor
  • App creator using OpenAPI
  • Premade apps for your security tools
  • Organization and sub-organization control
  • Hybrid resource sharing with shuffler.io (optional)

Website

https://shuffler.io

Contributing

We want to make the world of cybersecurity more accessible and need all the help we can get. Send an email to support@shuffler and we'll make sure to give you any training you may need.

These are the main areas to contribute in:

  • Frontend (ReactJS)
  • Backend (Golang)
  • App Creation (Python & GUI w/OpenAPI)
  • Documentation (Markdown)
  • Workflow creation (GUI & Conceptualizing)
  • Content Creation (Blogs, videos etc)

Contributing guidelines are outlined here.

Contributors

ICPL logo

Shuffle

App magicians

License

All modular information related to Shuffle will be under MIT (anyone can use it for whatever purpose), with Shuffle itself using AGPLv3.

Workflows: MIT Documentation: MIT Shuffle backend: AGPLv3 Apps, specification and App SDK: MIT

Architecture

Shuffle Architecture

Repository overview

Below is the folder structure with a short explanation

├── README.md				# What you're reading right now
├── backend					# Contains backend related code.
│   ├── go-app 			# The backend golang webserver
│   └── app_sdk			# The SDK used for apps
├── frontend				# Contains frontend code. ReactJS, Material UI and cytoscape
├── functions				# Has execution and extension resources, such as the Wazuh integration
│   ├── onprem				# Code for onprem solutions
│   │   ├── Orborus 	# Distributes execution locations
│   │   ├── Worker		# Runs a workflow
└ docker-compose.yml 	# Used for deployments

Get in touch, send a mail to [email protected] or poke me on twitter @frikkylikeme

python-apps's People

Contributors

00willo avatar 0x0elliot avatar 0xvalthir avatar arnydo avatar ausef avatar ch0wm3in avatar d4rkw0lv3s avatar dadokkio avatar deb-alex avatar dhaval-dave avatar dhaval055 avatar entwicklungsleiter avatar felipee07 avatar frikky avatar gaurav-m92 avatar glennhd avatar harduino avatar jaydeepkotak avatar mastertos avatar nusantara-self avatar p4kch01 avatar pandvan avatar pemontto avatar pierre-harfanglab avatar pooki3bear avatar shalin24999 avatar synack3 avatar tristandostaler avatar wbnod avatar weslambert 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  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  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  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

python-apps's Issues

Create communication-related apps

Using the App creator, OpenAPI or Python, create these apps:

Minimal use-cases:

  • Write text to someone
  • Read chats
  • List chats
  • Send actionable buttons
  • Send a file

Extra:

  • Search through chat

Workflow example to add:

  • Send a chat (comms) for every new email found (comms) every 5 minutes. Look for any IoC in it (shuffle-tools) and analyze it with Threat Intel.

Chat:

  • Discord
  • Slack
  • MS Teams
  • Skype
  • Messenger
  • SMS
  • Whatsapp
  • Line
  • Signal
  • Telegram
  • Crypho

Phone:

  • Send SMS
  • Call

Email:

  • Gmail
  • Outlook
  • IMAP
  • AWS SES

Assistants (lol):

  • Alexa
  • Google Home

Scanners:

  • Mailscanner
  • Seceon
  • Sublime
  • Agari

App SDK issue: for loops without JSON variables not looping

Hello,

First of all great work frikky :)

Im trying this tools for integraton with theHive, at this moment I created worflows with these nodes:

https://pasteboard.co/JrFvpTLe.png

  • getObservables: getting observables from case
  • getIpAnalyzers: getting avaible analyzers for IP
  • getDomainAnalyzers: getting avaible analyzers for domain
  • runAnalyzers: run analyzers for $getObervables.#.id

"run analyzers" function of TheHive app works with single artifact_id but it dosen't work with multiple artifacts like array of artifact_id ( $getObservables.#.id)

Best regards
A.A.

Fix search for TheHive

search_alerts
search_cases

These should be tested properly and have more capabilities than just searching the title.

RE: Chat with @lusynda on Discord.

Create ticketing system apps (CASES)

Using the App creator, OpenAPI or Python directly, create integrations with the ticketing platforms below.

Minimal use-cases:

  • Open ticket
  • Update ticket
  • Comment ticket (if not an update)
  • List Tickets
  • Merge ticket
  • Search for ticket(s)
  • Upload file(s)
  • Download file(s)

Optional if applicable:

  • Add artifact / Indicator like IP and domain (security specific)

Workflow example to add:

  • Syncronize tickets with another ticketing system (cases) every 5 minutes. When a new ticket comes, send a message to messaging app (communication)

Ticketing systems:

  • Github Notifications
  • MSSP (any you use / your own)
  • TheHive
  • ServiceNow
  • Jira
  • OTRS
  • AlientVault USM
  • Sumo Logic
  • IBM resilient
  • D3 Security
  • Swimlane
  • #265
  • Secureworks
  • HappyFox
  • RTIR
  • PagerDuty
  • Zoho
  • ConnectWise
  • Computer Associates Service Desk
  • #263
  • CoDesk
  • #264
  • NinjaOne ticketing
  • Jamf
  • FreshService
  • TOPDesk
  • Pulseway
  • N-central
  • VIZOR
  • Caspio
  • OpsGenie
  • AssetSonar

CI/CD:

  • Gitlab
  • Sonarqube
  • Github actions
  • GCP
  • AWS

Create EDR & AV apps

Apps in this category will typically be related to Endpoint Protection or Antivirus. This means they in most cases have an agent on each server, which reaches out to some endpoint where the alerts are stored. They may also just run locally (AV).

Antivirus: It's in the name. The point is to stop malicious software of any kind from running on your computer. This was typically based on banning of Hashes and very specific rules, but the ones we use today are further extended by AI, meaning we don't always know why exactly something happened. These generically create alerts somewhere that we can pick up.

Most used: Windows Defender. This can send alerts to SCCM or https://protection.office.com

Endpoint Protection (EDR/XDR):
It's kind of in the name. "Endpoint" means any kind of machine you have, whether it's a linux server, windows 10 laptop or a phone. These systems are typically built to handle millions of events by having the machines transfer a lot of the information to some cloud provider, which then processes the data, and performs some action. The data sent can be of network connections, processes, changed files, registry updates, and literally everything else that changes on a machine (what's sent differs by provider). This data in turn means you have a list of hostnames, an alert/ticketing system, a search mechanism, a way to interact with the host in realtime and much more. The hard thing about EDR is that you can do almost anything.

Common features:

  • Ticketing system (list/create/edit alert)
  • Search
  • Find hostname
  • Ban hash/ip/url/domain
  • Isolate host
  • Execute script on host
  • Create rule
  • VMware Carbon Black
  • GoSecure
  • Cylance
  • InfoCyte
  • Wazuh
  • Windows Defender
  • FSecure
  • SCCM (can we connect?)
  • Windows Defender ATP
  • Kaspersky
  • McAfee Endpoint Security
  • Apex One
  • CrowdStrike Falcon
  • Malwarebytes
  • FortiClient
  • Fireeye HX
  • Symantec Endpoint Protection
  • Proofpoint TAP
  • Carbon Black protection
  • Carbon Black Defense
  • Velociraptor
  • Qualys EDR
  • SentinelOne
  • Harmony Endpoint
  • Sophos Intercept
  • Cybereason
  • Cynet Breach Protection
  • Cytomic Platform
  • Trend Micro XDR
  • Hybrid Analysis
  • Palo Alto Networks

improve/fix filter_list action in shuffle-tools

I'm doing some test with some nested list that requires some filtering and I'm having some issue.

The first issue is that json.loads fails to parse valid json (eg. one returned from extracted_archive results). I've added an eval() as workaround as done in other action and this behavior is somehow fixed.

Then I put 2 filter_list block and the second one was like this [notice the #]
image

This caused an error because - I think - shuffle considered that as a loop and wrapped the list in [].
So, I moved this block to a new subflow.

Now the block in the subflow is receiving directly a simple list of uid.
But the block requires a field as required parameter so it seems that works only for list of dict 😞

Should I change if to accept also blank field to operate on simple list?
Meanwhile I've seen that an opposite parameter has been added, should we remove duplicated possibilities? [eg, equal opposite - not equal]

Create SIEM apps

Using the App creator, OpenAPI or Python directly:

Minimal use-cases (if possible):

  • Search
  • Send event TO SIEM
  • Get Search results
  • Create Saved Search
  • Create Alert from Search (sends webhook / something else)

If applicable (same as case management):

  • List Incidents
  • Get Incident
  • Update incident
  • Add comment

Workflow example to add:

  • Search for some data, then filter the data, before creating A ticket (cases) and sending messages (comms) for each result.

For each item in the list below, we want the following:

  • A name with a link to the app on https://shuffler.io
  • Whether it's been built at all (checkmark)
  • A link to an input workflow (sending from SIEM to Shuffle)
  • A search workflow for how to search in the SIEM

Items

  • Splunk - Input Workflow - Search Workflow - Documentation - Public app
  • QRadar
  • ArcSight
  • Elasticsearch (ELK)
  • Logpoint
  • MDATP
  • Azure Sentinel
  • Sumologic
  • Logz.io
  • RSA NetWitness
  • #301
  • Logarithm
  • Security onion
  • Rapid7 IDR
  • FortiSIEM
  • Securonix
  • #298
  • Seceon
  • Microsoft Sentinel
  • Fluency
  • CyberShark
  • ExaBeam
  • AlertLogic
  • ManageEngine EventLog Analyzer
  • New Relic
  • Logit.io
  • Solarwinds Security Event Manager
  • Sematext
  • Servicepilot

Creation of a PatrtOwl app

Hello,

It could be great to have a PatrOwl in the available apps! API definitions are available here. I would be pleased to help in integration.

Thanks!

Cheers,
Nicolas

Create Threat Intelligence apps

Threat Intel gives us an important insight into how the world outside our organization works - what incidents occurred etc.

Basic use-cases:

  • Search for IP
  • Search for Domain
  • Search for URL
  • Search for hash (md5, sha256...)
  • Add IP / domain / url / hash to have been seen (sighted MISP)
  • Search for CVE
  • Search for Threat actor
  • Get incidents

TI systems:

  • MISP
  • Passivetotal
  • Recorded Future
  • Secureworks
  • Shodan
  • Virustotal
  • IBM xforce
  • OpenCTI
  • ATP
  • Fireeye
  • Have I been pwned
  • IPVoid
  • IPInfo
  • IPstack
  • Malshare
  • Metadefender
  • MxToolbox
  • Pipl
  • Phishing Initiative
  • ThreatConnect
  • ThreatMiner
  • URLVoid
  • Urlscan

Add timestamp comparison action

Add a way of comparing strings as timestamps.

Fields:

  • Value 1
  • Comparison (larger than / equal / less than..)
  • Number (1,2,3,4)
  • Specification (seconds/minutes/hours/days etc)
  • Value 2

This wouldn't necessarily feel super good right now, but does the job for now. Should make a better "custom" GUI for it for later.

Alternative: make this possible with conditions.

Create Wazuh App

Should have capabilities of both EDR and SIEM in one. Current usage requires a HTTP node to log in and get the bearer token, which is then passed to the app itself.

Should probably rebuild "Bearer auth" for Shuffle to be able to handle this with custom URL's and such.

curl -u user:user https://localhost:55000/security/user/authenticate?raw=true -k

image

Create a translator part for Shuffle tools

Say you have the datatype "md5", but need to use "hash". How can you know that it's md5? Use a translator of sorts!

Hash translator can take e.g. "md5,sha256,sha1" and translate them to "hash".
Needs three fields:

  • Translate Data - e.g. "hello this is an md5"
  • Translate From - e.g. "md5,sha256,sha1"
  • Translate To - e.g. "hash"

Result for "hello this is an md5" should be "hello this is an hash"

Yara app

A yara app with a set of rules from somewhere that takes an item and reports back the findings

Create Asset Management apps

Asset management is anything that has to do with assets in general. This can also be endpoint detection platforms, but these are outlined under "Eradication" instead.

Basic use-cases:

  • Find hostname
  • Find Software by name
  • Find IP
  • Find hostname's owner

Vulnerability Management (VMS) use-cases (kind of like ticketing):

  • Search for CVE
  • List vulnerabilities by severity
  • List vulnerabilities by host
  • Get vulnerability
  • Edit vulnerability
  • Generate report (does this work?)

VMS systems:

  • Nessus
  • Tenable VMS
  • Tenable Container security
  • Rapid7 Nexpose
  • Qualys
  • Tripwire
  • F-Secure Radar
  • BreachLock
  • Snyk
  • Gitguardian
  • VulnDB #158
  • Intruder.io

Asset Mgmt:

  • Snipe-it
  • Sevco
  • McAfee CHS

CMDB:

  • Service Now

Document process or add GUI element to modify App visibility/permissions

Currently, when adding an App, as an admin, I was unable to find a reference on how to enable other users or admins to access this new app.

I can see the app listed as private, but it is not visible to other users or admins.

One consideration would be to enable visibility to all apps for admins, or enable an element to otherwise manage permissions and visibility as part of the "Edit" app UI.

Create Network apps

In general, network devices are used to block or allow traffic in some way shape or form. There are some basic behaviors we want, while still keeping the apps SUPER easy to use.

Basic use-cases:

  • Block IP
  • Block domain
  • Block URL
  • Sinkhole IP
  • Sinkhole domain
  • Unblock (all of the above)
  • Search for status with IP / domain..

Apps (not in order):

  • Cloudflare
  • Akamai
  • Datadome
  • AWS WAF
  • Azure WAF
  • Google Cloud Armor

Firewalls:

  • Cisco
  • Checkpoint
  • Watchguard
  • Palo Alto
  • Fortinet
  • SonicWall
  • ForcePoint
  • Barracuda
  • Sophos
  • Juniper
  • Huawei USG
  • AWS VPC FW
  • Netscaler ADC
  • ClearPass Aruba
  • [ ]

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.