t oo created AIRFLOW-4180:
-----------------------------

             Summary: [security] Lack of HTTP Strict Transport Security (HSTS) 
Policy
                 Key: AIRFLOW-4180
                 URL: https://issues.apache.org/jira/browse/AIRFLOW-4180
             Project: Apache Airflow
          Issue Type: Bug
          Components: security, ui
            Reporter: t oo


The Airflow application does not have the HSTS header set. HTTP Strict 
Transport Security (HSTS) allows websites to declare themselves accessible only 
over HTTPS and was designed to prevent hackers from forcing user connections 
over HTTP or abusing mistakes in HTTPS implementations to compromise content 
integrity. When the browser connects over HTTPS to a website that supports 
HSTS, the site's strict transport security policy is saved and remembered for a 
specified amount of time. From that point forward, as long as the cached policy 
doesn't expire, the browser will refuse to initiate insecure connections with 
that website. This is the standard mechanism of HSTS: 
"Strict-Transport-Security: max-age=expiretime". The time, in seconds, that the 
browser should remember that this site is only accessed through https. 
 
The HSTS header (Strict-Transport-Security) is not set in server responses. 
 
Business Impact/Attack Scenario 
"When the browser loads the insecure resource it makes a request over plain 
HTTP and can also send the user's session cookie along with it. An attacker 
that can intercept the request using networking sniffing techniques can use the 
cookie to hijack the user's account. Man-in-the-middle attacks can be executed, 
where the attacker is in a position to intercept a user's connection with a 
website.

>From the client browser side, HTTP requests are possible until the request 
>reaches the server and instructs the browser to use HTTPS. This allows for 
>unencrypted communications in the initial request(s).

A web application may inadvertently contain HTTP links instead of HTTPS links. 
This allows an attacker to be able to inject malicious code in the HTTP 
requests and server responses.

Without the HSTS header, HTTPS click through prompts on browsers cannot be 
prevented. This will allow an attacker to see the HTTPS requests and responses 
in unencrypted form.

SSL Stripping:
The SSL stripping attack works (on TLS as well) by transparently converting a 
secure HTTPS connection into a plain HTTP connection. The user can see that the 
connection is insecure, but crucially there is no way of knowing whether the 
connection should be secure. Many websites do not use TLS/SSL, therefore there 
is no way of knowing (without prior knowledge) whether the use of plain HTTP is 
due to an attack, or simply because the website hasn't implemented TLS/SSL. 
Additionally, no warnings are presented to the user during the downgrade 
process, making the attack fairly subtle to all but the most vigilant. 
Marlinspike's sslstrip tool fully automates the attack." 
 
Recommendation 
"HSTS addresses the following threats:
- User bookmarks or manually types example.com and is subject to a 
man-in-the-middle attacker
 -> HSTS automatically redirects HTTP requests to HTTPS for the target domain.
- Web application that is intended to be purely HTTPS inadvertently contains 
HTTP links or serves content over HTTP
 -> HSTS automatically redirects HTTP requests to HTTPS for the target domain
- A man-in-the-middle attacker attempts to intercept traffic from a victim user 
using an invalid certificate and hopes the user will accept the bad certificate
 -> HSTS does not allow a user to override the invalid certificate message

If you wish to implement a fix for the web application solution below:

For websites or applications with private and confidential information, this 
security policy must be employed in its HTTP Response header for HTTPS 
connections: "Strict-Transport-Security: max-age=31536000".

Reference:
http://www.youtube.com/watch?v=zEV3HOuM_Vw&feature=youtube_gdata
https://tools.ietf.org/html/rfc6797
http://www.thoughtcrime.org/software/sslstrip/
https://en.wikipedia.org/wiki/HTTP_Strict_Transport_Security

The Internet Engineering Task Force (IETF) released the specification under 
RFC6797"



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to