Coder Social home page Coder Social logo

mixeway / mixewaybackend Goto Github PK

View Code? Open in Web Editor NEW
14.0 4.0 8.0 3.52 MB

Mixeway is security orchestrator for vulnerability scanners which enable easy plug in integration with CICD pipelines. MixewayBackend project contains source code of backend with all plugin integrations writer in Spring Boot.

Home Page: https://mixeway.io

License: GNU General Public License v3.0

Dockerfile 0.04% Java 99.96%
vulnerability-management devsecops devsecops-pipeline vulnerability-scanning spring-boot backend rest-api

mixewaybackend's People

Stargazers

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

Watchers

 avatar  avatar  avatar  avatar

mixewaybackend's Issues

SAST Status bug

It is possible to put in queue multiple application of same type with scan type of SAST

Desired bahaviour:

  • once code project is put to queue (status inquueue or running =true) it is impossible to add it back to queue

Project Asset creation problem

While trying to add multiple assets in project->configuration->add asset
using: "1.1.1.1,2.2.2.2" -> works
adding with space: "1.1.1.1, 2.2.2.2" -> add only first asset

Expected behavior: add all assets even when between them there are spaces

Some Bugs in Network scan manager module

  • Requesting for scan the same asset in same project with different routing domain is not affected. While I request a new scan for the asset already in database with different routing domain, I expect it to change the RD and run scan. If scan on old routing domain is already started omit action- when trying to change RD on running interface return error
  • Vuln Management flag and project name are not being updated when trying to update them using request new scan
  • Requesting a scan for asset already in database I should be able to change hostname of it
  • When I start scan with 1 IP, and then I send new request with 2 IP (including previously set) I expect to start the scan so there will be 2 running for both IPs
  • Improper resolution of some routing domains e.g. BRAMKARZ INTERNET - BE TK
  • Requesting a scan of 4 IPs in 2 different routing domains results in running only 1 scan in single routing domain I expect it to run all domains on all 4 IPs
  • Proper error handling
  • Response on create scan request should contain scan scope

WebAppScheduler

org.springframework.transaction.UnexpectedRollbackException: Transaction silently rolled back because it has been marked as rollback-only
at org.springframework.transaction.support.AbstractPlatformTransactionManager.processCommit(AbstractPlatformTransactionManager.java:753) ~[spring-tx-5.2.1.RELEASE.jar!/:5.2.1.RELEASE]
at org.springframework.transaction.support.AbstractPlatformTransactionManager.commit(AbstractPlatformTransactionManager.java:712) ~[spring-tx-5.2.1.RELEASE.jar!/:5.2.1.RELEASE]
at org.springframework.transaction.interceptor.TransactionAspectSupport.commitTransactionAfterReturning(TransactionAspectSupport.java:631) ~[spring-tx-5.2.1.RELEASE.jar!/:5.2.1.RELEASE]
at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:385) ~[spring-tx-5.2.1.RELEASE.jar!/:5.2.1.RELEASE]
at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:99) ~[spring-tx-5.2.1.RELEASE.jar!/:5.2.1.RELEASE]
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) ~[spring-aop-5.2.1.RELEASE.jar!/:5.2.1.RELEASE]
at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:747) ~[spring-aop-5.2.1.RELEASE.jar!/:5.2.1.RELEASE]
at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:689) ~[spring-aop-5.2.1.RELEASE.jar!/:5.2.1.RELEASE]
at io.mixeway.plugins.webappscan.scheduler.WebAppScheduler$$EnhancerBySpringCGLIB$$40c92e38.runScanFromQueue() ~[classes!/:0.9]
at sun.reflect.GeneratedMethodAccessor990.invoke(Unknown Source) ~[na:na]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_232]
at java.lang.reflect.Method.invoke(Method.java:498) ~[na:1.8.0_232]
at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84) ~[spring-context-5.2.1.RELEASE.jar!/:5.2.1.RELEASE]
at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54) ~[spring-context-5.2.1.RELEASE.jar!/:5.2.1.RELEASE]
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [na:1.8.0_232]
at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308) [na:1.8.0_232]
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180) [na:1.8.0_232]
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294) [na:1.8.0_232]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [na:1.8.0_232]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [na:1.8.0_232]
at java.lang.Thread.run(Thread.java:748) [na:1.8.0_232]
^C

Endpoint to find vulnerabilities in particular CodeProject

Need new endpoint in CodeController

accessing:

POST /v2/api/show/project/code/details
{
  "repourl":"https://github.com/examplerepo"
}

should result in searching the CodeProjectRepository for CodeProject entity by repourl.

HTTP response should contain CodeProject entity if everything is ok, 403 code if caller has no permissions for finding particular CodeProject and 404 if there is no CodeProject with given repourl found in database

Vulnerability History - extend to history of severities

As is

Currently vulnerability trend chart is generated based on records in VulnHistory table.

This table is generated based on scheduler in GlobalScheduler.createHistoryForVulns()

to be

VulnHistory table to be extended -> to contain information about severities
e.g.: codeVulnHistory to -> codeVulnHistory, codeVulnCriticalHistory, codeVulnHighHistory, codeVulnMediumHistory, codeVulnLowHistory (where codeVulnHistory = codeVulnCriticalHistory+codeVulnHighHistory+codeVulnMediumHistory+codeVulnLowHistory)

note: it is important that the overall (e.g. codeVulnHistory) still exists as it is used in many places by the frontend.

Additional: new API Endpoint that will print history for project with severities has to be created

To do

  • Create new columns in VulnHistory table (via changelog)
  • Modify createVulnHistoryService.createScheduled(project) to populate new columns
  • Create API endpoint in ProjectRestController that show history for project including information about severities
  • Create tests for newly created methods

Integration with OWASP Dependency Track

Integration with OWASP Dependency Track will cover area of OpenSource vulnerability scanning. There should be API Client created which will gather through Dtrack REST API vulnerabilities found by UUID.

There should be possibility on Mixeway to store UUID on Dependency track in order to create link between.

OIDC integration

Another way to authenticate to Mixeway using OIDC connect (eg keycloak)

Integration with Checkmarx

Integration with Checkmarx would extend possibility to create SAST scannings.

There should be API Client created which implements method:

  • Create and configure target
  • start scan
  • check scan status
  • load vulnerabilities

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.