Dijelite VPN Compose datoteku? Redigirajte renderiranu kopiju
Privatni ključ može stajati u YAMLu, u vrijednosti env varijable ili u razriješenom izlazu koji nitko nije pogledao. Provjerite kopiju koju stvarno prilažete.
Kad god podijelite Compose datoteku, postoje dva artefakta: onaj koji ste napisali i onaj koji alat renderira nakon zamjene varijabli. Drugi je često osjetljiviji od prvog i upravo njega ljudi zalijepe u prijavu problema bez čitanja. Ako pregledavate samo izvornu datoteku, pregledavate pogrešan dokument.
Usporedite što svaka kopija može sadržavati prije nego odlučite što ukloniti.
Renderirani model je drugi dokument
Compose razrješava varijable okoline, spaja datoteke nadjačavanja i stvara djelotvornu konfiguraciju koju čitatelj više ne može razlikovati od ručno napisanih vrijednosti. Referenca poput imena varijable u izvoru postaje sam token računa u izlazu. Struktura koja datoteku čini korisnom za dijagnostiku preživljava tu transformaciju; preživljava i sve što u njoj nikad nije trebalo biti.
Renderirajte datoteku sami prije nego je priložite i tretirajte taj izlaz kao artefakt koji pregledavate. Ako je ne možete renderirati, ne možete znati što ćete objaviti.
Tajne stoje na više mjesta nego u polju ključa
Počnite s očitim: privatni ključevi, unaprijed dijeljeni ključevi, tokeni, lozinke i URL-ovi veze koji sadrže vjerodajnice. Zatim pogledajte sve na što datoteka upućuje, jer referenca nije redakcija. Env datoteka montirana u servis, konfiguracijska datoteka vezana s hosta, oznaka koja nosi token i argument naredbe koji sadrži lozinku putuju s implementacijom čak i kad YAML izgleda čisto. Ključ zalijepljen u varijablu s umirujućim imenom i dalje je ključ.
Putanje hosta i imena servisa odaju drugu vrstu informacija. Naziv kućnog direktorija, interno ime hosta ili mrežni raspon mogu identificirati osobu ili organizaciju bez ijedne vjerodajnice, a taj kontekst vrijedi ukloniti iz istog razloga.
Deklaracija tajne nije sama tajna
Compose objekti tajni odvajaju deklaraciju od materijala: servis dobiva putanju ili metu, a sadržaj živi negdje drugdje. Zadržati deklaraciju uz zamjenu materijala obično je ispravna razmjena, jer recenzent treba vidjeti da tajna postoji i kako je montirana. Ono što ne smije preživjeti jest sam sadržaj.
Oznake i komentari zaslužuju isti tretman. Komentar koji kaže koja putanja u trezoru drži produkcijski ključ govori napadaču gdje gledati iako ne sadrži nikakav ključ.
Zadržite oblik da datoteka i dalje dijagnosticira
Redakcija koja uklanja mrežni način rada, verziju slike ili postavke mogućnosti stvara datoteku s kojom nitko ne može otklanjati pogreške. Zamijenite osjetljive vrijednosti i zadržite odnose: koji servis što montira, kojoj se mreži pridružuje, koji uređaj treba. To je dio koji čitatelj koristi da objasni nedostajuću rutu ili nedostupan uređaj. To je i verzija koju kolega može usporediti sa svojom radnom implementacijom.
docker compose -f compose.yaml config > rendered.yaml
grep -nE 'PRIVATE_KEY|PASSWORD|TOKEN|PSK|PrivateKey|passphrase' rendered.yaml
wc -l rendered.yaml
Ne implementirajte redigiranu kopiju kao da je radni original. To je opis, a opis uređen da izgleda sigurno zatajit će na način koji izgleda kao konfiguracijske greške.
Ako je materijal bio izložen, zamijenite ga
Uklanjanje privitka ne uklanja kopije koje su drugi već napravili, a zrcala i predmemorije drže svoje. Upotrijebite izdavateljev postupak opoziva i zamjene za sve što je procurilo, zatim ažurirajte implementaciju. Redoslijed je važan, jer zamjena pa opoziv ostavlja prozor s dvije valjane vjerodajnice.
U nitima podrške počnite s točnom greškom, verzijom slike, mrežnim načinom rada i jednom netajnom postavkom koja je važna. Ta kombinacija objašnjava nedostajući uređaj ili slomljenu rutu mnogo češće nego ključ.