The security concept is separated into two parts: the vulnerabilities of the Flarecast infrastructure and the protection of confidential resources.

Infrastructure valnerabilities

The first part concerns attacks against the infrastructure from external or internal sources. This includes any kind of vectors including data manipulation as well as service disruption.

Security vulnerabilities affects two aspects of the infrastructure:

An attack on the internal infrastructure is very unlikely due the secure connection and the insensitive nature of space weather data. To reduce the vulnerability on the public interfaces we only provide a seperate database with read-only access which is periodically synchronized with the internal Flarecast database. Hereby, only attacks involving a service disruption are possible.

The following table gives a summary of possible attack vectors, there risk and impact level as well as possible countermeasures.

Attack VectorDescription

Risk Level

(1 - 5)

Impact Level

(1 - 5)

Countermeasure
Attacks concerning general web applications   
Session hijackingAttacker uses a man-in-the-middle attack while victim has an open connection to the internal infrastructure. Requires the attacker to break the given encryption of the SSH connection which is very unlikely.15Keep informed about issues concerning secure connections (e.g. OpenSSL vulnerability CVE-2016-6304).
Cross-site request forgery (XSRF, CSRF)Victim has an open VPN session and runs a malicious script downloaded from an attacker's server.14Use Nonce tokens.
Session fixation

Attacker provides a URL with a pre-defined session ID to the Victim. As soon as the Victim logs into the system the attacker can use the same session ID for his own requests. Very unlikely as the internal infrastructure is only accessible by a secure connection.

13Inform end-users about the risk. Verify provided URLs wherever they are manipulated.
Cross-site scripting (XSS)

Victim/Docker container uploads malicious script which is executed while visualizing data by a web service.

14Use character escaping.
Open redirectionVictim/Attacker sends a request with a manipulated URL provided as query parameter, e.g. forcing a redirection. This may be a problem with oAuth2 and the 'Token' response type. Not trivial as oAuth2 validates the redirection URL.12Use character escaping.
Cross-site script inclusion (XSSI)

Victim has an open VPN session and forwards JSON responses due a malicious script downloaded from an attacker's server. Possible but harmless, as all available resources are non-confidential.

00-
Header injection (response splitting)

Victim/Attacker sends a request with a manipulated header field provided as query parameter which is then used within the response header. There is no route which allows to set the sesponse's header information

00-
Mixed content

Due the mix of resources partly available by HTTP and partly by HTTPS e.g. a man-in-the-middle attack is possible. Harmless, due the secured connection to the internal infrastructure.

00 -
Referer leakage

Victim calls an external link from a sensitive URL which is then published within the 'referer' header field of the request to the external site. There is no link to an external site. (anyway harmless)

 00 -
Specific to the design of web applications   
Cache poisoningVictim's browser cache or proxy gets poisoned with a malicious version of the targed web application, e.g. due 'header injection' or a DDoS attack. This may results in a XSS where the script's origin is equal to the targed's web application.24Keep informed about proxy/caching issues. However, cache poisoning is very hard to detect!
Clickjacking

The targed web application is overlayed with a transparent site provided by the attacker. Victim's interaction are undesirably send to the attackers site.

11Use "frame-breaker" script.
Content and character set sniffing

The victims browser tries to 'correctly interpret' inconsistent content or character sets. E.g., an UTF-7 coded script may be interpreted as valid code also the website's charset is UTF-8. This may bypass the (UTF-8) character escaping on the server-side and allows XSS.

14Check encoding of uploaded data.
Cookie forcing (cookie injection)Attacker injects a cookie into the context of a web application, e.g. using a man-in-the-midle attack, which could be used with session fixation. Requires the attacker to break the given encryption of the SSH connection which is very unlikely.11None!
Denial-of-service (DoS) attacksAttacker disrupt service by flooding it with requests.44Use dedicated DDoS mitigation appliance.
Framebusting

Attacker encloses the victims framed web applcation inside his own frame. Hereby, if the web application e.g. uses the javascript object parent.location it access the attackers frame instead of it's own the top-level document.
This is not an issue as Flarecast do not use frames.

00-
HTTP downgradeAttacker forces victim, e.g. by DDoS, to use HTTP instead of HTTPS for connecting to a web application.
Harmless, due the secured connection to the internal infrastructure.
00-
Network fencepostsAttacker uses e.g. an XSS attack to access internal resources which are not accessible from the internet.1 

 

Specific to the server-side code   
Command injection (SQL, shell, PHP, …)Given URL parameters are unintentially processed as statements due insufficient input filtering. E.g. a malicious script from XSS could produce a HTTP request for a recource which ID filter parameter is a masked SQL statements.24Use character escaping.
Directory traversalAn attacker or script travers systematically a web application's paths searching for files at arbitrary locations.
Harmless, as the flarecast infrastructure do not provide sensitive files.
00-
Parameter TamperingAn attacker or script manipulates systematically an URL's parameter to access arbitrary resources. E.g. incrementing the URL's filter ID on a page to view a specific resource. Harmless, as the flarecast infrastructure do not provide sensitive resources.00-
File inclusion

An attacker or script specifies a remote file to read from within a HTML request. E.g. a web application expects a language, e.g. 'en', as parameter which is used to load a local translation file but gets a URL.
Harmless, as the flarecast infrastructure do not provide file related parameters.

00-
Format-string vulnerabilityAttacked sends malicious requests using search fields.    
Buffer overflowAttacker or script provoke a buffer overflow on client-side, e.g. to crash the web application. This could be done by HTTP request using a   
     
     

To cover

The above attack vectors are barely addressed at the moment due the following reasons:

Authentification mechanisms