Lees jou VPN-log voor jy dit stuur: veld vir veld
Ondersteuningslogboeke bevat gebruikersname, sertifikaatname, interne adresse en soms ’n sleutel. Gaan die velde na, soek na geheime, en stuur dan ’n geredigeerde uittreksel.
Jy open ’n ondersteuningskaartjie, heg die diagnostiese uitvoer wat die kliënt geskep het aan, en wag. Die lêer bevat waarskynlik glad geen blaai-geskiedenis nie, en dit is juis wat dit veilig laat voel. Dit bevat steeds wie jy is, watter masjien jy gebruik het, watter interne adresse jy bereik het en wanneer, en soms ’n privaat sleutel wat deur ’n kliënt ingekopieer is wat sy konfigurasie log. Om die lêer deur te loop voordat jy dit stuur neem ongeveer vyf minute en voorkom ’n permanente openbaarmaking.
Maak dit oop en lees die eerste veertig reëls
Begin bo, waar kliënte gewoonlik weergawe, platform en konfigurasie uitstort. Die eerste reëls vertel jou hoe breedsprakig die lêer is, wat bepaal hoeveel van die res jy moet sorg. ’n Standaardlog en ’n ontfoutingslog is verskillende artefakte met verskillende blootstelling.
head -n 40 vpn-support.log
sed -n '1,40p' vpn-support.log | grep -nE 'version|platform|config|option'
Kyk ook na die lêer se grootte en vorm voordat jy enigiets daarvan lees. ’n Twee megabyte-tekslêer met een gebeurtenis wat herhaal word, is maklik om af te sny. ’n Binêre opname in dieselfde vouer is heeltemal ’n ander probleem, en dit vereis ’n ander gesprek met wie ook al die uitvoer aangevra het.
Op Windows is die ekwivalente een cmdlet elk, en die eerste een is die moeite werd om op enige lêer te laat loop wat jy nie self geskep het nie:
Get-Content .\vpn-support.txt -TotalCount 40
Get-Item .\vpn-support.txt | Select-Object Length,LastWriteTime
Die velde wat ’n persoon identifiseer
Gebruikersname verskyn op plekke wat mense nie verwag nie: die rekening wat vir verifikasie gebruik word, die sertifikaatonderwerp, die profielpad onder ’n tuisgids, en die masjiennaam wat dikwels ’n regte naam insluit. ’n Log wat die rekeningveld redigeer en die tuispad ongeskonde laat, het niks geredigeer nie.
| Field | What it identifies | Practical treatment |
|---|---|---|
| Account or username | A person, and often an employer | Replace consistently, keep the mapping |
| Certificate subject and CN | Device or user identity | Keep the structure, replace the value |
| Home directory path | A login name, sometimes a full name | Replace the segment, not the whole path |
| Machine or hostname | A person or a physical location | Replace with a stable pseudonym |
Konsekwentheid is belangriker as volledigheid wanneer ’n ondersteuningsingenieur een sessie deur die lêer moet volg. Vervang waardes met stabiele etikette eerder as om hulle te verwyder, sodat elke voorkoms van dieselfde gebruiker steeds as dieselfde gebruiker lees. Om die veld heeltemal te verwyder breek die draad wat die ingenieur nodig het en maak nie die lêer veiliger nie.
Tydstempels is ook persoonlike data in die geheel. Die tye waarop ’n rekening gekonnekteer het, oor ’n maand geneem, beskryf werksure en reis. As die vraag nie die volle reeks nodig het nie, sny die lêer tot die venster rondom die gebeurtenis.
Die velde wat ’n netwerk identifiseer
Eindpuntadresse, interne roetes en gestuurde opsies beskryf die vorm van ’n private netwerk. Dit is presies die inligting wat ’n aanvaller graag sou wou hê, en dit is gewoonlik in veel meer besonderhede teenwoordig as wat die kaartjie nodig het.
Soek na die adresfamilie wat in gebruik is, nie net die een wat jy verwag het nie. ’n Dubbelstapelkliënt kan ’n IPv6-eindpunt en ’n stel IPv6-roetes log wat niemand gedink het om te redigeer nie, omdat die hersiening net na gestippelde vierlinge gekyk het.
grep -nEo '([0-9]{1,3}\.){3}[0-9]{1,3}' vpn-support.log | sort -u | head -n 40
grep -nEo '([0-9a-fA-F]{0,4}:){2,7}[0-9a-fA-F]{0,4}' vpn-support.log | sort -u | head -n 20
Die unieke lys is die punt. Dit vertel jou hoeveel verskillende adresse die lêer noem, wat gewoonlik baie minder is as wat dit voel terwyl jy rol. Dit gee jou ook ’n kontrolelys om teen te redigeer en ’n manier om te bewys dat jy almal gedek het. Tien adresse is ’n werk van vyf minute, en ’n honderd sê vir jou die uitvoer is wyer as die vraag.
Hou die topologie as die ingenieur dit nodig het. Om die tweede en derde oktette te vervang terwyl die subnetverhoudinge behoue bly, beantwoord die vraag sonder om die reeks te publiseer. Dieselfde truuk werk vir IPv6-voorvoegsels. Wat die ingenieur nodig het, is die vorm van die fout, en die vorm oorleef ’n konsekwente vervanging.
Geheime skuil in vorms, nie in etikette nie
’n Privaat sleutel het nie die woord “password” naby hom nodig nie. Dit verskyn as ’n blok tussen merkerlyne, as ’n lang base64-string, of as ’n ingebedde konfigurasie-uitstorting. Tekens verskyn as navraagparameters, en geloofsbriewe verskyn binne URL’s wat ’n kliënt woordeliks gelog het.
grep -nE 'BEGIN [A-Z ]*PRIVATE KEY|password|passwd|token|secret|psk|auth-user-pass' vpn-support.log
grep -nE 'https?://[^ ]*:[^ ]*@' vpn-support.log
Die tweede patroon is die een wat mense vergeet. ’n URL met die vorm skema, gebruiker, wagwoord, gasheer is ’n volledige geloofsbrief, en kliënte log sulke URL’s wanneer ’n volmag of ’n voer met ingebedde verifikasie opgestel is.
Stuur nooit die oorspronklike lêer as ’n bewys dat jy dit nie verander het nie. As ’n operateur daarop aandring om ’n onveranderde uitvoer te kry, vra waarvoor hulle dit nodig het, stuur dit deur hulle geverifieerde ondersteuningskanaal, en verwyder daarna jou plaaslike kopie. Daardie versoek is wettig; ’n openbare plak is nie.
Bou die geredigeerde kopie en stuur die uittreksel
Werk op ’n kopie, hou die oorspronklike op ’n beskermde plek, en redigeer met ’n herhaalbare opdrag eerder as met die hand. ’n Enkele pass oor die adrespatrone vang die grootste deel daarvan:
cp vpn-support.log vpn-support.original.log
sed -E 's/([0-9]{1,3}\.){3}[0-9]{1,3}/ADDR/g; s/[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+/USER@DOMAIN/g' \
vpn-support.original.log > vpn-support.redacted.log
grep -cE 'PRIVATE KEY|password|token' vpn-support.redacted.log
Die finale telling moet nul wees. As dit nie is nie, het die redigeringspass ’n vorm gemis en jy moet na daardie reëls kyk voordat jy enigiets stuur. Lees die geredigeerde lêer ook een keer met jou eie oë; ’n script vang patrone, nie konteks nie.
Stuur die kleinste uittreksel wat steeds die fout wys. Tien reëls rondom die fout is gewoonlik genoeg, en hulle is baie makliker om na te gaan as ’n lêer van twee megabyte. Hou dan die kartering tussen jou etikette en die werklike waardes op ’n plek wat jy beheer, want die opvolgvraag sal dit nodig hê.
Die OpenVPN-dokumentasie oor logboeke beskryf hoe breedsprakigheidsvlakke verander wat aangeteken word, wat nuttige konteks is om te besluit hoeveel van die lêer die probleem werklik vereis.