Serverovny.cz/Fórum/Jak zabezpečit shellové skripty?

Jak zabezpečit shellové skripty?

Zajímalo by mě, jestli existují nějaké osvědčené metody nebo triky, které by mohly pomoci s bezpečností shellových skriptů. Občas se mi stává, že se mi do skriptu dostanou citlivé informace nebo že se někdo jiný může snažit manipulovat s mým kódem. Což samozřejmě nechci. Slyšel jsem něco o tom, že je dobré používat proměnné s citlivými daty opatrně, ale co přesně to znamená? Například, jsou nějaké konkrétní příkazy nebo techniky, které by se měly používat při psaní skriptů, aby bylo možné ochránit je před neautorizovaným přístupem? A co úložiště těchto skriptů? Měl bych je ukládat na nějakém specifickém místě na serveru, nebo je lepší mít je v repozitáři, jako je Git? Jaký má vliv oprávnění souborů na jejich zabezpečení, a co dalšího bych měl mít na paměti? Vím, že šifrování dat je důležité, ale jak to vlastně implementovat do shellového skriptu? Rád bych slyšel zkušenosti nebo tipy od těch, kteří už nějakou dobu pracují se zabezpečením skriptů. Jaké jsou podle vás nejlepší praktiky pro ochranu shellových skriptů před potenciálními hrozbami?

170 slov
1.7 minut čtení
11. 10. 2024
Jindřiška Jirásková

Takže, co se týče zabezpečení shellových skriptů, je dobrý nápad začít tím, že si dáš pozor na proměnné, kde máš citlivé údaje. Místo toho, abys je měl přímo ve skriptu, můžeš je načítat z externího souboru nebo použít environmentální proměnné. To ti aspoň trochu pomůže, protože pak nemusíš mít hesla nebo API klíče přímo v kódu.

Co se týče oprávnění souborů, tak rozhodně doporučuji nastavit správné chmod. Například, pokud máš skript, který nikdo jiný nemá vidět, tak ho nastav na 700. Tím se postaráš o to, že pouze ty ho můžeš spustit a číst.

Ukládání skriptů do verzovacího systému jako Git je fajn pro sledování změn, ale pokud tam máš citlivé informace, tak to nebude moc šťastný. Ideálně bys měl mít něco jako .gitignore pro vyloučení citlivých souborů.

Šifrování dat v shellu může být trošku drsné. Můžeš použít nástroje jako gpg na zašifrování souborů s citlivými informacemi a pak je dešifrovat podle potřeby v rámci skriptu. Tím se alespoň sníží riziko, že by nějaký útočník dostal přímo k těm údajům.

Je důležitý mít také na paměti aktualizace systému a aplikací, protože staré verze můžou mít zranitelnosti. Takže pravidelně kontroluj a aktualizuj. To by měly být takový základní tipy pro ochranu tvých skriptů.

201 slov
2 minut čtení
7. 10. 2024
Adéla Trnková

Zabezpečení shellových skriptů je fakt důležitý téma, a tady je pár tipů, co bys mohl zvážit. První věc, na kterou bych se zaměřil, je omezit přístup k souborům skriptu. Měl bys nastavit správná oprávnění pomocí chmod, aby jen ty nebo vybraná skupina měla právo skript spouštět nebo editovat. Třeba chmod 700 to dost omezí.

Další věc je, být opatrný s proměnnými obsahujícími citlivé info – nikdy je neukládat do logů nebo je nevypsat na obrazovku. Místo toho můžeš použít nástroje na šifrování, jako gpg, pro ukládání citlivých dat. Když už mluvíme o úložišti, Git je fajn pro verziování, ale dej si pozor na to, co commitneš – citlivý data do repozitáře rozhodně nepatří.

Pak tu jsou i techniky jako "set -e" na začátku skriptu, což ti pomůže zastavit skript při chybě. A nezapomeň používat "double quotes" kolem proměnných, aby ses vyhnul nečekaným překvapením s whitespace nebo speciálními znaky.

Celkově platí: čím víc se zamyslíš nad tím, kdo má k tvým skriptům přístup a jak s nimi zacházíš, tím lépe. Udržuj si přehled, pravidelně kontroluj skripty a buď v obraze ohledně potenciálních hrozeb.

182 slov
1.8 minut čtení
9. 11. 2024
Elena Krausová

K zabezpečení shellových skriptů je dobrý začátek mít na paměti pár věcí. Za prvé, citlivé informace jako hesla nebo API klíče by se měly uchovávat v externích souborech, které pak jen načítáš skriptem, místo abys je měl přímo ve skriptu. Ještě lepší je, pokud tyhle soubory šifruješ. Oprávnění souborů taky hrají velkou roli – dej skriptu jen nezbytná oprávnění, třeba 700 (jen ty máš právo číst, zapisovat a spouštět).

Pokud jde o úložiště, Git je fajn pro verziování, ale pokud tam máš citlivý obsah, tak si dej pozor na to, aby se to náhodou nedostalo na veřejný repozitář. Můžeš použít .gitignore pro vyloučení citlivých souborů.

Co se týče samotného kódu, snaž se vyhýbat přímému spouštění příkazů od uživatelského vstupu bez nějaké validace. Zvaž použití "set -e" nebo "set -u" na začátku skriptu pro zvýšení bezpečnosti a spolehlivosti. A pokud plánuješ běhat skript jako root, tak radši dvakrát zkontroluj, co děláš. No a nakonec pravidelně aktualizuj systém a skripty – staré verze můžou mít známé zranitelnosti.

165 slov
1.7 minut čtení
16. 12. 2024
Milena Havlová
Serverovny.cz/Články/Serverový scripting
Nejlepší praktiky pro zabezpečení shellových skriptůObjevte, jak efektivně zabezpečit své shellové skripty před zneužitím a chránit citlivá data během jejich provádění.
1000 slov
10 minut čtení
1. 2. 2024
Bc. Filip Novotný
Přečíst článek
Podobné otázky