-
Notifications
You must be signed in to change notification settings - Fork 6
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
23 changed files
with
657 additions
and
445 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,47 @@ | ||
Forensic Backups | ||
================ | ||
|
||
In response to | ||
`CVE-2025-24889 <https://github.com/freedomofpress/securedrop-client/security/advisories/GHSA-933q-fx9h-5g46>`_, | ||
SecureDrop Workstation 1.0.2 rebuilds the ``sd-log`` VM and preserves a backup of the | ||
original VM on affected systems. The backup is created using the | ||
`Qubes Backup tool <https://www.qubes-os.org/doc/backup-restore/>`_ and stored | ||
in a dedicated, non-networked VM called ``sd-retain-logvm``. | ||
|
||
Access the sd-log system image | ||
------------------------------ | ||
|
||
To recover the backup for inspection or forensic analysis, use the | ||
`Qubes Backup Restore tool <https://www.qubes-os.org/doc/backup-restore/>`_ | ||
to transfer the backup to external storage media, then transfer it to another machine. | ||
|
||
The backup is stored in ``/home/user/SDLog_Backups`` in the ``sd-retain-logvm`` VM and is a | ||
compressed archive with filename ``qubes-backup-YYYY-MM-DDTHHMMSS``. | ||
|
||
It has a hard-coded passphrase of ``SDW_SDLOG`` (This is not a security measure, but was | ||
set in order to automate the backup process). | ||
|
||
.. warning:: | ||
Do not restore the backup on your SecureDrop Workstation machine. | ||
|
||
Qubes OS provides documentation for recovering backups both on Qubes OS and on other | ||
operating systems. | ||
|
||
* `On other operating systems <https://www.qubes-os.org/doc/backup-emergency-restore-v4/>`_ | ||
* `On Qubes <https://www.qubes-os.org/doc/how-to-back-up-restore-and-migrate/#restoring-from-a-backup>`_ | ||
|
||
The target volume (relevant for non-Qubes recovery instructions) is ``sd-log/private.img``. | ||
|
||
Use caution if restoring on a Qubes OS machine, since the entire VM will be restored. | ||
We are not aware of anyone exploiting CVE-2025-24889, but in theory, the VM could contain | ||
malicious code, which is why it was rebuilt. | ||
|
||
Artifact Retention | ||
------------------ | ||
|
||
The archive VM ``sd-retain-logvm`` and its contents will be deleted in a subsequent SecureDrop | ||
Workstation update, planned for two months from the release of this announcement | ||
(planned removal early April 2025). To retain the archive for a longer period, follow the | ||
steps above to transfer it off SecureDrop Workstation. | ||
|
||
If you have any questions, please `contact Support <https://support.freedom.press>`_. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -119,37 +119,143 @@ above, and the terminal console displays the following message: | |
Error: GPG check FAILED | ||
your system is trying to use an old copy of the SecureDrop Release | ||
Signing Key. The new, valid key will already be locally available on your | ||
system, so you can perform the following steps to remove the expired key | ||
and enable this updated key: | ||
Signing Key. You can perform the following steps to fetch the updated | ||
key and remove the expired one: | ||
|
||
1. Open a terminal in ``dom0`` via **Q > Gear Icon (left-hand side) > Other Tools > Xfce Terminal**. | ||
1. **Start a terminal** in the "work" VM via the menu: **Q > Apps > work > Xfce Terminal** | ||
|
||
2. **Download the key:** | ||
|
||
*Run command:* | ||
|
||
.. code-block:: | ||
gpg --keyserver hkps://keys.openpgp.org --recv-key "2359 E653 8C06 13E6 5295 5E6C 188E DD3B 7B22 E6A3" | ||
*Expected output:* | ||
|
||
.. code-block:: | ||
gpg: key 188EDD3B7B22E6A3: public key "SecureDrop Release Signing Key <[email protected]>" imported | ||
gpg: Total number processed: 1 | ||
gpg: imported: 1 | ||
3. **Verify the expiry is 2027-05-24:** | ||
|
||
*Run command:* | ||
|
||
.. code-block:: | ||
gpg -k securedrop | ||
*Expected output:* | ||
|
||
.. code-block:: | ||
pub rsa4096 2021-05-10 [SC] [expires: 2027-05-24] | ||
2359E6538C0613E652955E6C188EDD3B7B22E6A3 | ||
uid [ unknown] SecureDrop Release Signing Key <[email protected]> | ||
sub rsa4096 2021-05-10 [E] [expires: 2027-05-24] | ||
4. **Export the downloaded key:** | ||
|
||
*Run command:* | ||
|
||
.. code-block:: | ||
gpg --armor --export "2359 E653 8C06 13E6 5295 5E6C 188E DD3B 7B22 E6A3" > securedrop-release-key.pub | ||
*No output expected.* | ||
|
||
5. **Print the exported key's checksum:** | ||
|
||
*Run command:* | ||
|
||
.. code-block:: | ||
sha256sum securedrop-release-key.pub | ||
*Expected output:* | ||
|
||
.. code-block:: | ||
fedef93de425668541545373952b5f92bac4ac1f1253fe5b64c2be2fc941073b securedrop-release-key.pub | ||
6. **Start a dom0 terminal** by opening the **Q Menu**, selecting the gear icon on the left-hand side, then selecting **Other > Xfce Terminal**. | ||
The remaining commands will all be executed in this dom0 terminal. | ||
|
||
7. **Copy the key into dom0:** | ||
|
||
*Run command:* | ||
|
||
.. code-block:: | ||
qvm-run --pass-io work cat securedrop-release-key.pub > /tmp/securedrop-release-key.pub | ||
*No output expected.* | ||
|
||
8. **Verify the key checksum matches:** | ||
|
||
*Run command:* | ||
|
||
.. code-block:: | ||
sha256sum /tmp/securedrop-release-key.pub | ||
*Expected output:* | ||
|
||
.. code-block:: | ||
fedef93de425668541545373952b5f92bac4ac1f1253fe5b64c2be2fc941073b /tmp/securedrop-release-key.pub | ||
9. **Copy the key into place:** | ||
|
||
*Run command:* | ||
|
||
.. code-block:: | ||
sudo cp /tmp/securedrop-release-key.pub /etc/pki/rpm-gpg/RPM-GPG-KEY-securedrop-workstation | ||
*No output expected.* | ||
|
||
10. **Delete the old key from RPM:** | ||
|
||
*Run command:* | ||
|
||
.. code-block:: | ||
sudo rpm -e gpg-pubkey-7b22e6a3-609966ad | ||
*No output expected.* | ||
|
||
2. Run the following command: | ||
11. **Import the new key into RPM:** | ||
|
||
.. code-block:: sh | ||
*Run command:* | ||
|
||
sudo rpm -q gpg-pubkey --qf '%{NAME}-%{VERSION}-%{RELEASE}\t%{SUMMARY}\n' | grep SecureDrop | ||
.. code-block:: | ||
The output should look similar to: | ||
sudo rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-securedrop-workstation | ||
.. code-block:: sh | ||
*No output expected.* | ||
|
||
gpg-pubkey-xxxxx-xxxxx SecureDrop Release Signing Key <[email protected] public key | ||
|
||
3. Make note of the KEY ID (in the format ``gpg-pubkey-xxxxx-xxxxx``). | ||
12. **Verify the expiry is 2027-05-24:** | ||
|
||
4. Run the following commands: | ||
*Run command:* | ||
|
||
.. code-block:: sh | ||
.. code-block:: | ||
sudo rpm -e gpg-pubkey-xxxxxx-xxxxxx # use KEY ID from step 3 | ||
gpg --show-keys /etc/pki/rpm-gpg/RPM-GPG-KEY-securedrop-workstation | ||
sudo rpm --import /etc/pki/rpm-GPG/RPM-GPG-KEY-securedrop-workstation | ||
*Expected output:* | ||
|
||
.. code-block:: | ||
5. Reboot, then run updates again. If there are new errors, repeat | ||
the full troubleshooting process. | ||
pub rsa4096 2021-05-10 [SC] [expires: 2027-05-24] | ||
2359E6538C0613E652955E6C188EDD3B7B22E6A3 | ||
uid [ unknown] SecureDrop Release Signing Key <[email protected]> | ||
sub rsa4096 2021-05-10 [E] [expires: 2027-05-24] | ||
``sd-*-template`` or ``whonix-gateway-17`` update failures | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.