Прочитајте свој VPN дневник пре слања: поље по поље
Дневници подршке садрже корисничка имена, називе сертификата, интерне адресе и понекад кључ. Прегледајте поља, потражите тајне, а затим пошаљите редиговани извод.
Отварате тикет подршке, прилажете дијагностички извоз који је клијент направио и чекате. Датотека вероватно не садржи никакву историју прегледања, и управо то је чини безбедном. Ипак садржи ко сте, коју машину сте користили, које сте интерне адресе и када достигли, а понекад и приватни кључ који је копирао клијент који бележи своју конфигурацију. Преглед датотеке пре слања траје око пет минута и спречава трајно откривање.
Отворите га и прочитајте првих четрдесет редова
Почните одозго, где клијенти обично исипају верзију, платформу и конфигурацију. Први редови говоре колико је датотека опширна, што одређује колико остатка морате да узмете у обзир. Подразумевани дневник и дневник за отклањање грешака различити су артефакти с различитом изложеношћу.
head -n 40 vpn-support.log
sed -n '1,40p' vpn-support.log | grep -nE 'version|platform|config|option'
Проверите и величину и облик датотеке пре него што било шта из ње прочитате. Текстуална датотека од два мегабајта с једним догађајем који се понавља лако се скраћује. Бинарни запис у истој фасцикли је сасвим други проблем и захтева други разговор са оним ко је затражио извоз.
На Windows-у еквиваленти су по један cmdlet, а први вреди покренути на свакој датотеци коју нисте сами направили:
Get-Content .\vpn-support.txt -TotalCount 40
Get-Item .\vpn-support.txt | Select-Object Length,LastWriteTime
Поља која идентификују особу
Корисничка имена се појављују на местима која људи не очекују: налог који се користи за аутентификацију, субјекат сертификата, путања профила испод кућног директоријума и име машине које често кодира право име. Дневник који редигује поље налога, а путању до кућног директоријума оставља нетакнутом, није редиговао ништа.
| 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 |
Доследност је важнија од потпуности када инжењер подршке мора да прати једну сесију кроз датотеку. Замените вредности стабилним ознакама уместо да их бришете, тако да се свако појављивање истог корисника и даље чита као исти корисник. Потпуно брисање поља кида нит која инжењеру треба и не чини датотеку безбеднијом.
Временска ознака је такође лични податак у збиру. Времена када се налог повезивао, узета кроз месец дана, описују радно време и путовања. Ако питању није потребан цео распон, скратите датотеку на прозор око догађаја.
Поља која идентификују мрежу
Адресе крајњих тачака, интерне руте и гурнуте опције описују облик приватне мреже. То је управо информација коју би нападач желео да има, и обично је присутна много детаљније него што тикету треба.
Тражите фамилију адреса која се користи, не само ону коју сте очекивали. Клијент с двоструким стеком може да забележи крајњу тачку IPv6 и скуп IPv6 рута за које нико није помислио да их редигује, јер је преглед тражио само тачкасте четворке.
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
Јединствена листа је поента. Говори колико различитих адреса датотека помиње, а то је обично много мање него што се чини приликом листања. Такође вам даје контролну листу за редиговање и начин да докажете да сте их све обухватили. Десет адреса је посао од пет минута, а сто говори да је извоз шири од питања.
Задржите топологију ако је инжењеру потребна. Замена другог и трећег октета уз очување односа подмреже одговара на питање без објављивања опсега. Исти трик ради за IPv6 префиксе. Инжењеру је потребан облик квара, а облик преживљава доследну замену.
Тајне се крију у облицима, не у ознакама
Приватном кључу не треба реч “password” у близини. Појављује се као блок између маркерних редова, као дугачак base64 низ или као уграђени испис конфигурације. Токени се појављују као параметри упита, а акредитиви унутар URL-ова које је клијент забележио дословно.
grep -nE 'BEGIN [A-Z ]*PRIVATE KEY|password|passwd|token|secret|psk|auth-user-pass' vpn-support.log
grep -nE 'https?://[^ ]*:[^ ]*@' vpn-support.log
Други образац је онај који људи забораве. URL облика шема, корисник, лозинка, домаћин је потпун акредитив, а клијенти бележе такве URL-ове сваки пут када је прокси или канал конфигурисан са уграђеном аутентификацијом.
Никада не шаљите оригиналну датотеку као доказ да је нисте уређивали. Ако оператер инсистира на неизмењеном извозу, питајте за шта му је потребан, пошаљите га преко њиховог провереног канала подршке и затим избришите своју локалну копију. Тај захтев је легитиман; јавно лепљење није.
Направите редиговану копију и пошаљите извод
Радите на копији, чувајте оригинал на заштићеном месту и редигујте командом која се може поновити, а не ручно. Један пролаз кроз обрасце адреса хвата већину:
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
Коначни број треба да буде нула. Ако није, пролаз редиговања је пропустио облик и треба да погледате те редове пре него што било шта пошаљете. Прочитајте редиговану датотеку још једном својим очима; скрипта хвата обрасце, не контекст.
Пошаљите најмањи извод који још показује квар. Десет редова око грешке обично је довољно и много их је лакше прегледати од датотеке од два мегабајта. Затим чувајте поклапање између својих ознака и стварних вредности на месту које контролишете, јер ће следеће питање то затражити.
Документација OpenVPN-а о евидентирању описује како нивои детаљности мењају оно што се бележи, што је користан контекст за одлуку колико датотеке проблем заиста захтева.