openquantumhardware / qick

QICK: Quantum Instrumentation Control Kit
MIT License
192 stars 81 forks source link

Introduce Code (BASH Script and Notebook) to fix default login #263

Closed unprovable closed 2 weeks ago

unprovable commented 4 months ago

The default login credentials for the default install are all xilinx... username, password, and notebook server password.

Whilst this is probably fine for initial setup environments, when it comes to development and later production deployment, this is a potential vulnerability in the system.

Many vulnerabilities of this type typically get a CVSS score of just above 7, which makes it of HIGH priority for production risk management and cybersecurity - see NIST's Guidance for more information. Some CVE's for Default Credentials with Admin Access have much higher scores - e.g. CVE-2020-26510 with a CVSSv3.0 of over 9. The relevant CWE's for this are CWE-1392 (Default Credential) and CWE-1188 (Initialisation of a Resource with an Insecure Default).

Whilst one of the quick start guides does mention the issue, the other one does not. And the recommendation for 'just change the password' doesn't necessarily give proper guidance. As such, we wanted to help and provide an option for helping users to generate a safe and secure environment. :)

What we provide in this PR:

This PR is part of a project we are starting at Quantum Village (the official Quantum village at the DEFCON conference) to help improve the baseline security posture for quantum technologies.

Some things to note:

We hope that this is useful, and are happy to answer any questions!

meeg commented 4 months ago

Thanks, we appreciate your attention. We agree that the default Xilinx configuration and our setup instructions do not follow best practices for production environments and that these are weaknesses that can have consequences.

Give me a few days to work out the best solution (please feel free to follow up if you haven't heard from me by the end of the week). We work with groups who have QICK installations in places with specific security requirements, and in those cases we've developed configurations that address your concerns and others. So probably we will mix-and-match between that stuff and what you've developed, to get the standard QICK setup to be secure without compromising user experience.

unprovable commented 4 months ago

Thank you for the response and great to hear that this is something that you are proactive about! We're happy to help if any is needed. 👍

meeg commented 4 months ago

Hi - we think #265 addresses this issue. We now give instructions for changing the SSH passwords and binding Jupyter to localhost, and give recommendations about why this is important. We ended up doing this in a different way from what you offered in this PR, and we don't include everything you suggested, but we think it works. Of course we're happy to continue the discussion, and will leave this PR open in the meantime.

unprovable commented 2 weeks ago

I think that we'll need to synchronize properly to explain why this isn't enough, but for now it's better than nothing :) thanks @meeg M.