23. Jan 2024Backend & DevOps

Bezpečnosť 101 - zdieľanie informácií bez vytvárania zraniteľností

Dôverné informácie predstavujú nezanedbateľnú súčasť komunikácie v každej softvérovej spoločnosti na planéte. Ich zdieľanie je často riešené nesprávne a ešte častejšie má formu len jednoduchej chatovej správy alebo e-mailu. Údaje sa odosielajú v sadách, často so zbytočne pridanými poznámkami a nápovedami o ich použití alebo zdroji. Je čas to napraviť. So Safe.

Andrej OnufrákDevOps Engineer

Čo je Safe?

Safe je riešenie pre dočasné uchovávanie a zdieľanie dát, ktoré začalo svoju cestu ako pomerne priamočiary nástroj interne pomenovaný "DevOps Secret Share". Pozliepaný bol za jednu noc po workshope, na ktorom sa zdieľanie informácií objavilo ako téma záujmu. Neustála výzva bezpečnej distribúcie dát medzi zamestnancami, počnúc prihlasovacími údajmi až po kľúče a certifikáty, nie je skromnou úlohou. S prihliadnutím na všetky aspekty tejto komunikačnej cesty sme určili, že najčastejšie ide len o potrebu mať k dispozícii možnosť zdieľať niečo rýchlo a zabudnúť na to ešte rýchlejšie.

DevOps Secret Share, ktorý sa s trochou lásky stal Safe, poskytuje prostriedok presne pre to. A ešte niečo extra.

Ako Safe funguje?

Safe má vlastne len dve časti. Vstupný a výstupný koniec.

Používatelia doň schovajú dôverné informácie, definujú koľkokrát môžu byť zobrazené a ako dlho majú byť k dispozícii. Safe následne tieto dáta skonzumuje a vygeneruje link s Universal Unique Identifier (UUID), ktorý reprezentuje kľúč k ich dátam.

Tento link je neskôr distribuovaný za pomoci zabezpečeného komunikačného kanálu podľa potreby. Otváranie linku spotrebúva jeho počet zobrazení a v prípade, že počet klesne na nulu, Safe predčasne ukončí jeho životnosť.

S trochou UI mágie (dropdowny, so cool!) dokážeme zľahka vynútiť nízky počet dovolených zobrazení spolu s pomerne limitovanými možnosťami pre životnosť, čím ďalej zlepšujeme celkové zabezpečenie dát.

Tak teda, na čom je Safe postavený?

Safe je skutočne malá a ľahká aplikácia, ktorá je založená hlavne na úžasne rýchlom backende, ktorý kombinuje Bun.js a Redis. To umožňuje aplikácii nielen super rýchle spustenie, ale aj efektívne používanie.

Celý frontend pozostáva len z troch HTML súborov, ktoré sú natívne distribuované pomocou Bun. Jeden pre vstupnú stránku, jeden na prezeranie uložených údajov a ďalší na informovanie používateľa, že to, čo hľadá, je preč – už navždy.

Keďže informácie v Redis úložisku sú ukladané ako neperzistentné, údaje zostanú uchovávané, no mimo disku.

Čo mám s týmto všetkým teraz robiť?

No, máš šťastie. Safe sa pred chvíľkou stal Open Source Software projektom a s trochou času sa môže stať aj tvojim.

Safe je v čase uverejnenia tohto príspevku k dispozícii na GoodRequest DockerHub účte.

Ak sa cítiš extra dobrodružne, prejdi na náš GitHub účet, forkni si Safe, pridaj, nahraď alebo odstráň všetko, čo považuješ za potrebné a začni ho používať podľa svojich predstáv!

Vo svojej najjednoduchšej forme vyžaduje spustenie Safe len miesto na hostovanie, doménu a starý dobrý Docker Compose stack. Tu je jeden, ktorý by mal stačiť:

version: '3'

services:
  redis:
    image: redis

  safe:
    image: goodrequestcom/safe:v1.0.0
    depends_on:
      - redis

  nginx:
    image: nginx
    ...
    depends_on:
      - safe

Nezabudni ponechať úložisko Redis neperzistentné – to je koniec koncov polovica úspechu. NGINX je možné nakonfigurovať ako jednoduchú reverznú proxy pomocou súboru nginx.conf a sady SSL certifikátov. Namapuj doménu na svoje hostingové riešenie a voila, funguješ bezpečnejšie so Safe!

Takže, to bol Safe. Náš prvý skromný prírastok do nekonečného sveta nástrojov na vývoj softvéru dostupného online. Neváhaj sa obrátiť na ktorýkoľvek dostupný kanál a zanechaj nám spätnú väzbu, aby sme mohli zlepšiť všetko, čo robíme a ďalej to zdieľali so svetom. Ďakujeme!

 

Andrej OnufrákDevOps Engineer