Giter Site home page Giter Site logo

melicertes / csp Goto Github PK

View Code? Open in Web Editor NEW
30.0 30.0 7.0 296.73 MB

The Cyber Security Platform MeliCERTes is part of the European Strategy for Cyber Security. MeliCERTes is a network for establishing confidence and trust among the national Computer Security Incident Response Teams (CSIRTs) of the Member States and for promoting swift and effective operational cooperation.

License: Other

D 0.01% Java 11.03% CSS 3.01% HTML 2.81% Shell 2.44% JavaScript 4.28% Dockerfile 0.23% Python 53.96% Lua 0.03% Perl 0.11% Jolie 0.03% PHP 20.20% Makefile 0.14% Batchfile 0.09% DIGITAL Command Language 0.01% Less 0.50% SCSS 0.93% Jinja 0.24%
containers cybersecurity docker eu opensource platform security-tools servicestack

csp's People

Contributors

adulau avatar akribopo avatar brindfn avatar chpanag avatar datacron avatar dimitrianos avatar iglocska avatar iskitsas avatar karadimas avatar kyr-stefanidis avatar lagoudiana avatar majidsalehighamsari avatar milankowww avatar pp- avatar rezamalik avatar stefankelm avatar thanosa75 avatar tomas321 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

Watchers

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

csp's Issues

MISP external sync

Thanks a lot for looking into making the MELiCERTES MISP installation usable via MISP-to-MISP synchronisation setups. However, I have some questions:

fs.readFile("/run/secrets/authkey", function(err, data) {

What is that secret key? Is this a built in backdoor or some funky way of authenticating all sync requests with a built in user as opposed to the normal paradigm?

Could you also point us to the various issues we've raised during the training that don't have to do with having actual connectivity but rather potential information leakage when missing MISP sharing groups and MELiCERTES trust circles?

Thank you in advance.

Installation issue: csp-java8 missing

As indicated in github issue #8, I downloaded the yml file from https://github.com/melicertes/csp/blob/develop/deployment/docker/central/docker-compose.yml and did the necessary steps to the best of my knowledge:

$ docker-compose up
ERROR: Network installer_net declared as external, but could not be found. Please create the network manually using `docker network create installer_net` and try again.
$ docker network create installer_net
1b2ca72243e887b484cc55c6151637c45996cc2fae91621095a899eb26075d81
$ docker-compose up
Pulling sa-cfg (csp-java8:1.0)...
ERROR: The image for the service you're trying to recreate has been removed. If you continue, volume data could be lost. Consider backing up your data before continuing.

Continue with the new image? [yN]y
Pulling sa-cfg (csp-java8:1.0)...
ERROR: pull access denied for csp-java8, repository does not exist or may require 'docker login'

SMTP settings are mandatory but not marked as such

In contrast to page 23 of the installation manual, the SMTP settings are not required/mandatory, but should be.
"""
This form is protected against incomplete submission. A warning will be displayed if the Save button is clicked without completing all the required fields.
"""

The SMTP settings are mandatory for successful installation/startup of the services.

This should be made mandatory in the config wizard.

CSP (openam) Users assignment options

CSP users - can they be assigned different roles through the single sign on system to assign different MISP user roles to the various different users?

Connection testing

Hi,

Could you please not try to connect to google.com:443 for "internet connectivity" testing ?
That seems to be pretty absurd for a controlled production environment, even more as the node already requires connectivity to the central.
Checking for connectivity to the central should be enough.

MISP connector potential issues

https://github.com/melicertes/csp/blob/master/csp-apps/misp/misp-adapter-emitter/src/main/java/com/intrasoft/csp/misp/service/impl/MispTcSyncServiceImpl.java#L164

This is extremely worrying. Organisations that are not in the list of melicertes teams are absolutely normal and should not be flagged in any way. The comment that deletion is not an option for now is concerning - it shows a misunderstanding of what an organisation is in MISP and the purpose of having them.

  1. You cannot have sharing groups without having the organisation objects on your instance for anyone you want to share with. Meaning if orgx is not in the melicertes team list, I need to have it known for my instance to include them in any sharing.
  2. Organisation objects are shared automatically. Unless we want to restrict the pulling of any feeds in MISP format, fetching from any other non melicertes MISP instances, pushing any non melicertes team created data to MISP, we will get those organisation objects on our instance.
  3. Many CERTs operate MISP instances that are interconnected with other organisations. Sharing Groups handle the distribution of data that is not meant for all participants of an instance, but without giving access to other organisations, synchronisation is not feasible. This means that any interconnections with other organisations would be flagged as orphaned organisations.

After installation: apache is not serving :443

Status after successful install with successful startup of all services.

cspvm [/etc]# docker stats --all --format "table {{.Name}}\t{{.CPUPerc}}\t{{.MemUsage}}" --no-stream | sort
NAME CPU % MEM USAGE / LIMIT
csp-activemq 0.10% 96.46MiB / 11.63GiB
csp-anon 0.15% 175.2MiB / 11.63GiB
csp-apache 0.00% 0B / 0B
csp-apache-crl 0.00% 3.5MiB / 11.63GiB
csp-es 1.42% 4.661GiB / 11.63GiB
csp-filebeat 0.03% 5.969MiB / 11.63GiB
csp-il 0.24% 159.1MiB / 11.63GiB
csp-imq 0.00% 0B / 0B
csp-intelmq_adapter 0.09% 305.6MiB / 11.63GiB
csp-jitsi 0.36% 343.7MiB / 11.63GiB
csp-kibana 0.56% 76.54MiB / 11.63GiB
csp-kibana_logs 0.59% 72.45MiB / 11.63GiB
csp-logstash 7.41% 551.8MiB / 11.63GiB
csp-misp 0.20% 21.3MiB / 11.63GiB
csp-misp-filebeat 0.04% 2.969MiB / 11.63GiB
csp-misp-logstash 7.13% 489.1MiB / 11.63GiB
csp-misp_adapter 0.11% 3.121MiB / 11.63GiB
csp-mock 0.00% 6.703MiB / 11.63GiB
csp-mysql 0.07% 36.43MiB / 11.63GiB
csp-oam 0.38% 702.3MiB / 11.63GiB
csp-oam-filebeat 0.08% 4.727MiB / 11.63GiB
csp-oam-logstash 7.13% 548.5MiB / 11.63GiB
csp-oc 0.00% 40.29MiB / 11.63GiB
csp-ocdb 0.07% 39.64MiB / 11.63GiB
csp-ocredis 0.08% 5.023MiB / 11.63GiB
csp-postgres 0.74% 7.508MiB / 11.63GiB
csp-redis 0.08% 2.461MiB / 11.63GiB
csp-regrep 0.07% 378MiB / 11.63GiB
csp-rt 0.01% 156.7MiB / 11.63GiB
csp-rt_adapter 0.21% 123.4MiB / 11.63GiB
csp-tc 0.03% 15.14MiB / 11.63GiB
csp-tc-dsl 0.02% 3.32MiB / 11.63GiB
csp-vcb_admin 0.14% 459MiB / 11.63GiB
csp-vcb_teleconf 0.19% 447.4MiB / 11.63GiB
csp-viper 0.33% 4.082MiB / 11.63GiB

netstat -napt
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 2533/sshd
tcp 0 0 127.0.0.1:5432 0.0.0.0:* LISTEN 3180/docker-proxy
tcp 0 0 127.0.0.1:18080 0.0.0.0:* LISTEN 2852/java
tcp 0 0 :::8083 :::* LISTEN 17902/docker-proxy
tcp 0 0 :::4243 :::* LISTEN 2209/dockerd
tcp 0 0 :::22 :::* LISTEN 2533/sshd
tcp 0 0 :::4443 :::* LISTEN 16536/docker-proxy
tcp 0 0 :::32768 :::* LISTEN 3327/docker-proxy
tcp 0 0 :::32770 :::* LISTEN 15301/docker-proxy

MISP distribution policy violation

// - The attribute having a wider distribution policy than the event must not be deleted (attrib with id 10)

This is a violation of MISP's distribution model. MISP will always choose the most restrictive option in the inherited distributions. For example:

Event [distribution: your organisation only]
Attribute [distribution:all communities]

The attribute above is NOT cleared for synchronisation, the container's distribution level overrides that of the contents.

RT/RTIR: Modifying private tickets via UUID spoofing

In a sharing environment where org A and org B are present.
org B has a ticket with UUID X, which is private (not shared)
org A has a ticket and sets it to UUID X.
The non-shared org B ticket is being modified.

CSP - MISP exchange issues

Noticed several issues with the exchange via CSP to MISP:

  • Events arrive unpublished, meaning that my partners are not protected using my shared data. This also encourages tampering with shared data to get them published
  • Occasionally data doesn't get synchronised / updated. We could not figure out what triggers the behaviour during the training.
  • Revocations are not synchronised
  • Sharing groups get partially synchronised
  • We had cases where sharing groups were synchronised to instances that were not eligible for the contents via CSP

ContactDB module and associated code

While looking at the overview diagram, I see there is a ContactDB module.

Can you point me in the repository where the code for ContactDB is? In the documentation, I see some references to contact management but I'm sure if this is the same application/module in MeliCERTes.

Thank you very much

[improvement] MISP vulnerability object

There is a new csp-vulnerability MISP object:

https://github.com/melicertes/csp/blob/ca16e155ba2b0172e5a5e3e5afb6e4f681641df3/deployment/docker/base-images/misp-image/csp-misp-objects/csp-vulnerability/definition.json

The definition seems very close to the default MISP vulnerability object:

https://github.com/MISP/misp-objects/blob/master/objects/vulnerability/definition.json

A simple improvement would be to use the default one. Maybe there is a specific reason to not use the default? if yes, we could incorporate the changes in the default vulnerability object template.

standalone version installation?

For testing and standalone installation reasons, where can one download the ova for Melicertes?
Or the installation instructions?

Trust circle questions

Can I include organisations that do not have CSP? The trust circles get propagated to MISP, if we have an incident involving non CSP organisations, how can we facilitate the exchange with them?

Passphrase dialogue missing for private key for apache startup

[Fri Jul 19 08:18:01.780631 2019] [ssl:error] [pid 8:tid 139924841396096] AH02578: Init: Unable to read pass phrase [Hint: key introduced or changed before restart?]

Passphrase is not requested and stored during install (good).
It is not mentioned not to use a passphrase afaik (good).

Proposal: Since the startup of the services is a manual action, also the passphrase could be requested without issue.

Private X.509 key has only 2048 bits

As per the installation manual (v4.0.6 according to the file, v4.0.5 according to the archive name) the generated X.509 private key will have 2048 bits.
4096 bits is not only recommended, but also industry standard since years.

csp-apache: first-time script refers to missing docker image

c.i.c.c.c.s.ExternalProcessService : Unable to find image 'frolvlad/alpine-oraclejdk8:slim' locally
c.i.c.c.c.s.ExternalProcessService : docker: Error response from daemon: pull access denied for frolvlad/alpine-oraclejdk8, repository does not exist or may require 'docker login'.
c.i.c.c.c.s.ExternalProcessService : See 'docker run --help'.

in file: first-time.sh
line: docker run -d --rm -v SSLDatavolume:/ssl_data frolvlad/alpine-oraclejdk8:slim sh -c "mkdir -p /ssl_data/crl"

Spoofing of organisations possible through any CSP node

Steps to reproduce:

(- Get any sharing group via the issue described in the previous MISP sync issue) => possibly not needed

  • replace your organisation's UUID with that of the organisation you wish to spoof
  • MISP's protection against this sort of spoofing is circumvented by CSP
  • CSP will check the current state of the organisations to decide whether data can be propagated to the node

Status page does not reflect actual status of modules

The status page of the management interface on port 18080 does not show the actual status of the modules (running/stopped), but rather the last action.

So it is not a status page, but a list of modules with their last action performed on them

Module versioning

Show the actual versions of the modules instead of the melicertes rebranded version.

We'd like to be able to ensure that we don't end up installing outdated / vulnerable versions before the fact.

Vulnerability report: SMTP credentials in cleartext in log file

from /tmp/console.log:

2019-07-16 23:44:31.904  INFO 3082 --- [ool-20-thread-7] c.i.c.c.c.s.ExternalProcessService       :   "mail": {
2019-07-16 23:44:31.904  INFO 3082 --- [ool-20-thread-7] c.i.c.c.c.s.ExternalProcessService       :     "host": "localhost",
2019-07-16 23:44:31.905  INFO 3082 --- [ool-20-thread-7] c.i.c.c.c.s.ExternalProcessService       :     "port": "25",
2019-07-16 23:44:31.905  INFO 3082 --- [ool-20-thread-7] c.i.c.c.c.s.ExternalProcessService       :     "username": "username",
2019-07-16 23:44:31.906  INFO 3082 --- [ool-20-thread-7] c.i.c.c.c.s.ExternalProcessService       :     "password": "password",
[...]

Module installation order

The module installation screen gives you the wrong impression that you can pick and choose the modules you would like to install. In reality some modules depend on the installation of other modules.

There is no guidance on which module depends on which other module and the current installation procedure is highly reminiscent of the famous "Dinky Island Woods" in Monkey Island 2.

MISP - Default user

User is named [email protected] and needs to be configured to a hard coded integration user. Why does the user have to do this manually instead of having this pre-configured?

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.