Maschinengeflüster

Geschichten aus dem Serverraum

Wall of Shame: curl | sh

01. Juni 2022 — Felix Pankratz

What?

Many online tutorials explaining how to install software provide installation instructions similar to this:

curl -sSL https://example.com/installer.sh | sudo sh

This is bad advice. You should not run commands like this blindly!

Why?

The above command gets a script file from the internet, and executes it as root without you knowing what's going on. This also applies to installations in your user context (no sudo/su). Call me weird, but I like to take a look at what a script from the internet is doing before I run it.

Even if you trust the source, there still exists the possibility of a compromised supply chain - someone unauthorized might have added something nasty to installer.sh. Filip has a very nice blog post about the attack surface offered.

So please, for your own and your devices safety, review installation scripts.

Who?

Rust

$ curl --proto '=https' --tlsv1.2 https://sh.rustup.rs -sSf | sh

"The Rust Programming Language", also known as "the book", is the very first thing recommended to people wanting to learn Rust by the official website. The installation section provides this snippet.

oh-my-zsh

sh -c "$(curl -fsSL https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"

sh -c "$(wget https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh -O -)"

We're getting advanced - providing both curl and wget directly on the homepage!

Gitlab

curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ee/script.deb.sh | sudo bash

Now what is this, a script.deb.sh? Step 2 in the install instructions for Ubuntu and Debian.

Tags: wip, en, admin, security

Grundregeln des SysAdmins

10. Juli 2021 — Felix Pankratz
  1. User lügen.
    1. Nicht unbedingt absichtlich oder böswillig.
  2. Der User hat nichts am System geändert, bevor das Problem aufgetreten ist. Siehe Regel 1
  3. Die meisten Probleme lösen sich durch die Anwendung des "AEG" Prinzips: Aus - Ein - Geht!
  4. Sollte Regel Nummer 3 nicht zutreffen, existiert das Problem möglicherweise zwischen Tastatur und Stuhl.
  5. Solltest du tatsächlich den Schreibtisch des Users aufsuchen, hat sich das Problem selbst gelöst oder ist unfassbar trivial.
  6. Computer machen keine Fehler - nur diejenigen, die sie programmieren bzw. konfigurieren.
  7. Keiner versteht Drucker, ihre Probleme oder wie sie zu beheben sind.
  8. Jegliche angelegte Dokumentation ist in kürzester Zeit veraltet.
  9. Niemand liest Fehlermeldungen.
  10. Je länger es dauert, bis ein Problem gemeldet wird, desto dringender ist es.
  11. User fragen dich nach Unterstützung mit allen Geräten, durch die Strom fliesst.
  12. Solltest du einmal Support brauchen, hat dein Gegenüber meist keine Ahnung.
  13. Kein Backup, kein Mitleid.
  14. Es gibt immer einen passend XKCD.

Tags: de, admin