Coder Social home page Coder Social logo

suecodelabs / cnfuzz Goto Github PK

View Code? Open in Web Editor NEW
36.0 6.0 2.0 1.88 MB

Breaking Cloud Native Web APIs in their natural habitat.

License: Apache License 2.0

Dockerfile 0.64% Makefile 3.02% Smarty 1.27% Go 93.73% Shell 1.27% Python 0.05%
cicd cloud-native data-lake fuzzing golang kubernetes restler security-tools microsoft openapi

cnfuzz's People

Contributors

dependabot[bot] avatar lcmwesterink avatar luukvdm avatar oddly avatar oferchen avatar pcktdmp avatar pimmerks avatar robertscholts 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

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

cnfuzz's Issues

Monitor target web API during fuzzing

While RESTler is fuzzing a web API, cnfuzz could monitor the service.
There is a lot of potential here. We could for example check on the health of the pod and collect its logs.

Support resourceLimits for cnfuzz

Currently cnfuzz schedules fuzzing jobs without the resourceLimits parameters.
Supporting resourceLimits gives the administrator control over what amount of compute capacity cnfuzz may claim.

Implement Initial Health and Liveness check for cnfuzz

Currently cnfuzz announces itself as healthy and ready as soon as the (simple) webserver has started and keeps being responsive.
This can be extended towards calling backend APIs which cnfuzz is using, like redis.

install question

helm install cnfuzz cnfuzz/cnfuzz

return an error :Error: INSTALLATION FAILED: failed post-install: timed out waiting for the condition

iwant to know :need whose condition

To use cnfuzzy, I only need to prepare the following 3 points.?

My project is the spring boot project

1、cnfuzz/enable: "true" Set to use cnfuzzy identification
2、cnfuzz/open-api-doc: "/swagger/swagger.json" I need to prepare the swagger document under the target project container directory
3、cnfuzz/secret: "0d5989ed-d60c-470e-b1b5-576fcf0f5d8c" I don't understand the meaning of this secret. Whether the key of cnfuzzy service or the key of target project

Persistent cache for fuzzed images hashes

Currently cnfuzz does not support persistent caching of container images it already has fuzzed.
Implement a cache which introduces this feature, preferably via redis.

Fuzzing job management

After RESTler has finished fuzzing the controller should be made aware of failure, succes and the location of the stored results.

Remove cmdline flags and use ConfigMaps

Currently cnfuzz heavily relies on its configuration being passed as command line arguments.

Since cnfuzz is specifically meant for being deployed in Kubernetes switching to Kubernetes ConfigMaps will reduce Helm Chart complexity or any other Kubernetes deployment management tooling.

Create fallback for failing authentication mechanisms

Currently cnfuzz only support trying one authentication mechanism and then fails.
To be more forgiving and also be in line with fuzzing behaviour do retries and fallback to other (available) authentication mechanisms.

Controller tries to launch fuzzing job multiple times

{"level":"info","ts":1647336674.4652436,"caller":"kubernetes/event_handler.go:106","msg":"start fuzzing of todo-api-64c68bdf9b-ph5ff"}
{"level":"error","ts":1647336674.6302495,"caller":"kubernetes/event_handler.go:112","msg":"error while starting new fuzzing job: jobs.batch \"cnfuzz-todo-api-64c68bdf9b-ph5ff\" already exists","stacktrace":"github.com/suecodelabs/cnfuzz/src/kubernetes.HandlePodEvent\n\t/fuzzer/src/kubernetes/event_handler.go:112\ngithub.com/suecodelabs/cnfuzz/src/kubernetes.EventHandler.OnAdd\n\t/fuzzer/src/kubernetes/event_handler.go:37\nk8s.io/client-go/tools/cache.(*processorListener).run.func1\n\t/go/pkg/mod/k8s.io/[email protected]/tools/cache/shared_informer.go:787\nk8s.io/apimachinery/pkg/util/wait.BackoffUntil.func1\n\t/go/pkg/mod/k8s.io/[email protected]/pkg/util/wait/wait.go:155\nk8s.io/apimachinery/pkg/util/wait.BackoffUntil\n\t/go/pkg/mod/k8s.io/[email protected]/pkg/util/wait/wait.go:156\nk8s.io/apimachinery/pkg/util/wait.JitterUntil\n\t/go/pkg/mod/k8s.io/[email protected]/pkg/util/wait/wait.go:133\nk8s.io/apimachinery/pkg/util/wait.Until\n\t/go/pkg/mod/k8s.io/[email protected]/pkg/util/wait/wait.go:90\nk8s.io/client-go/tools/cache.(*processorListener).run\n\t/go/pkg/mod/k8s.io/[email protected]/tools/cache/shared_informer.go:781\nk8s.io/apimachinery/pkg/util/wait.(*Group).Start.func1\n\t/go/pkg/mod/k8s.io/[email protected]/pkg/util/wait/wait.go:73"}

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.