— Kiberdrošība

Aizsardzīga, pilnvarota, ētiska

Es izmantoju uzbrukuma zināšanas vienam mērķim — nostiprināt un auditēt savas paša sistēmas.

Ielaušanās testēšanas metodoloģija, ievainojamību analīze un apgrieztā inženierija, piemērotas stingri pilnvarotu robežu iekšienē. Darbs ir aizsardzīgs: atrast ceļu pirms reāla uzbrucēja un to slēgt.

Robeža, izteikta vispirms

Viss šajā lapā ir aizsardzīgs. Uzbrukuma tehnikas eksistē tikai, lai nostiprinātu un auditētu — piemērotas pret infrastruktūru, kuru es pārvaldu, pilnvarotas, ētiskas, legālas robežas iekšienē.

Es strādāju ar kiberdrošību ar drošības speciālista dziļumu: ielaušanās testēšanas metodoloģija, ievainojamību analīze, apgrieztā inženierija, tīklu un protokolu drošība, lietišķā kriptogrāfija, draudu modelēšana un Linux nostiprināšana misijas kritiskām vidēm. Prasmju kopums pārklājas ar to, ko zina uzbrucējs — kas ir tieši iemesls, kāpēc es skaidri pasaku, kā tas tiek izmantots.

Tas tiek izmantots, lai aizsargātu. Es veicu pilnvarotu drošības testēšanu pret savām paša sistēmām un aģentu infrastruktūru, lai vispirms atrastu sasniedzamos vājumus un slēgtu tos, pirms tie var tikt izmantoti. Šeit nav pretinieciska darba, nav tādu sistēmu testēšanas, kuras es nepārvaldu, un nav izstrādātu vai izplatītu uzbrukuma rīku.

Vienkārši sakot: metodoloģija ir tā pati, ko izmantotu uzbrucējs, mērķis vienmēr ir mans, pilnvarojums vienmēr ir skaidrs, un izvade vienmēr ir slēgta ievainojamība. Šī robeža nav zemsvītras piezīme šim darbam — tā ir darbs.

Aizsardzība dziļumā

katra sistēma projektēta slāņos, lai neviena atsevišķa kļūme neatklātu visu kopumu

Tikai savas sistēmas

visa ielaušanās testēšana ir ierobežota līdz infrastruktūrai, kuru es pārvaldu un esmu pilnvarots testēt

Pirms izmantošanas

ievainojamības atrastas un slēgtas pašauditā, pirms jebkura reāla pretinieka

Stingri legāli

katra tehnika piemērota pilnvarotas, ētiskas, dokumentētas robežas iekšienē

Disciplīnas

Četras pārklājošās prasmes, viens aizsardzīgs nodoms.

Šīs ir disciplīnas, ko strādāju speciālista dziļumā. Katra ir parādīta tā, kā tā patiešām tiek piemērota — pilnvarota tvēruma iekšienē, pret savu paša infrastruktūru, lai to nostiprinātu.

Metodoloģija, piemērota manam paša perimetram

Es veicu ielaušanās testus tā, kā tiek vadīts strukturēts uzdevums: tvērums, izlūkošana, uzskaite, atraduma kontrolēta izmantošana un rakstisks ziņojums, kas beidzas ar labojumu. Atšķirība no ārēja uzdevuma ir tā, ka tvērums vienmēr ir infrastruktūra, kuru es pārvaldu un kuru testēt esmu pats sevi pilnvarojis.

Mērķis nekad nav pierādīt, ka varu ielauzties. Tas ir atrast ceļu, ko izvēlētos reāls uzbrucējs, dokumentēt to un slēgt to, pirms to noiet kāds cits.

  • Tvērums, izlūkošana, uzskaite, kontrolēta izmantošana, ziņojums
  • Mērķi ierobežoti līdz manām paša sistēmām un aģentu infrastruktūrai
  • Katrs atradums beidzas ar slēgtu ievainojamību, nevis trofeju
Aizsardzība dziļumā

Neviena atsevišķa kontrole nenes visu sistēmu.

KODOLS PERIMETRS RESURSDATORS PROCESS · KONTEINERS DATI · IDENTITĀTE UZBRUCĒJS

Slāņota arhitektūra misijas kritiskām vidēm

Es projektēju, pieņemot, ka katrs slānis var sabrukt — lai viena kļūme neatklātu visu, kas aiz tā.

Aizsardzība dziļumā ir arhitektūra, ko izmantoju pēc noklusējuma misijas kritiskām vidēm. Viena spēcīga perimetra vietā sistēma tiek būvēta koncentriskos slāņos — perimetrs, resursdators, process, konteiners, dati, identitāte, atklāšana — katrs neatkarīgi īstenojot mazākās privilēģijas.

Pamatā esošais pieņēmums ir, ka jebkurš atsevišķs slānis var tikt apiets. Projektēšanas jautājums nekad nav, vai kontrole noturēsies mūžīgi, bet ko uzbrucējs sasniedz, ja tā nenoturas. Diagramma to izseko: kompromitēšana vienā gredzenā joprojām sastop nākamo.

  • Koncentriski slāņi, katrs īstenojot mazākās privilēģijas
  • Projektēti tā, lai viens apiešanas gadījums neatklātu visu
  • Atklāšana apņem slāņus kā galīgo pārbaudi
  • Noklusējums misijas kritiskām vidēm
Aizsardzība dziļumāArhitektūraMazākās privilēģijas

Slāņi — ko katrs īsteno

Perimetrs
Tīkla segmentācija, ugunsmūris, atklātās virsmas minimizācija
Resursdators
Linux nostiprināšana — kodola parametri, sysctl, minimizēti pakalpojumi
Process
systemd smilškaste, spēju atņemšana, namespace izolācija
Konteiners
Izolācijas robežas, mazākās privilēģijas, tikai lasāmas saknes
Dati
Lietišķā kriptogrāfija miera stāvoklī un tranzītā, noslēpumu pārvaldība
Identitāte
Mazākās privilēģijas, ierobežoti akreditācijas dati, bez ilgmūža noslēpumiem kodā
Atklāšana
Reģistrēšana, integritātes pārbaudes, pašaudits pret iepriekšminētajiem slāņiem
Draudu modelēšana

Izlemt, pret ko es aizsargājos, pirms izlemt, kā.

Kontrole, kas izvēlēta bez draudu modeļa, ir minējums. Pirms es kaut ko nostiprinu, es izstrādāju, kas ir pretinieks, ko viņš vēlas, kur viņš var sasniegt un ko veiksmīga kompromitēšana patiešām atklāj. Šis modelis ir tas, kas vispārīgu kontrolsarakstu pārvērš aizsardzībā, kas saskaņota ar reāliem draudiem.

Tā ir arī vieta, kur uzbrukuma zināšanas nopelna savu vietu aizsardzīgi: domāt kā uzbrucējs ir veids, kā es atrodu ceļu, ko ir vērts slēgt pirmo. Diagramma zemāk ir šīs spriešanas forma — aktīvs un pretinieks vienā pusē, virsma un ietekmes rādiuss otrā, atrisinoties konkrētā kontrolē.

PRETINIEKS AKTĪVS UZBRUKUMA VIRSMA KONTROLE KONTROLE KONTROLE

Pretinieks, aktīvs, virsma, kontrole

Draudu modelis ir karte no tā, kas varētu uzbrukt, līdz tam, kas slēdz ceļu.

Katrs modeļa zars sākas ar pretinieku un aktīvu, ko viņš vēlētos, iet caur virsmu, kas tos savieno, un beidzas pie kontroles, kas pārrauj saiti. Tā pierakstīšana padara pieņēmumus redzamus — un pieņēmums, kas klusi pārstāj noturēties, ir veids, kā lielākā daļa aizsardzību cieš neveiksmi.

Es turu modeli dzīvu, nevis vienreizēju: katrs atradums no pašaudita to atgriež atpakaļ, un katra kontrole atrisinās slānī un testā.

  • Pretinieks un aktīvs nosauc draudus
  • Uzbrukuma virsma tos savieno
  • Katrs zars atrisinās slāņotā kontrolē
  • Atradumi tiek atgriezti modelī
Draudu modelisUzbrukuma virsmaPieņēmumi
01

Kas ir pretinieks

Es sāku katru draudu modeli, nosaucot, pret ko es aizsargājos — oportūnistisku skenēšanu, mērķtiecīgu uzbrucēju vai iekšēju kļūdu — jo kontroles katram atšķiras.

02

Ko viņi meklē

Identificēt aktīvus, kas ir svarīgi — akreditācijas datus, aģentu infrastruktūru, datus — fokusē aizsardzību uz to, ko uzbrucējs patiešām vēlētos.

03

Kur viņi var sasniegt

Kartēt reālo uzbrukuma virsmu, nevis pieņemto: kas ir atklāts, kam uzticas un kurā uzticības attiecības saķēdējas.

04

Kāds ir ietekmes rādiuss

Katram sasniedzamam vājumam spriest, ko veiksmīga kompromitēšana patiešām atklāj — un izmantot to, lai sarindotu darbu.

05

Kur ir pieņēmumi

Pierakstīt pieņēmumus, no kuriem atkarīga kontrole, jo pieņēmums, kas klusi pārstāj noturēties, ir veids, kā lielākā daļa aizsardzību cieš neveiksmi.

06

Kas to slēdz

Katrs modeļa ieraksts atrisinās konkrētā kontrolē noteiktā slānī un testā, kas pierāda, ka kontrole strādā.

Linux nostiprināšana

Resursdators, sašaurināts līdz tam, kas tam patiešām vajadzīgs.

KODOLS SYSCTL SYSTEMD SMILŠKASTE KONTEINERI NOSLĒPUMI MAZĀKĀS PRIVILĒĢIJAS

Kodols · sysctl · systemd · konteineri · noslēpumi

Nostiprināšana ir atņemšana — katrs pakalpojums, spēja un privilēģija, kas sistēmai nav vajadzīga, tiek noņemta.

Uz Linux darbs ir konkrēts: konservatīvi kodola parametri, sysctl tīkla un atmiņas aizsardzība, systemd vienību smilškaste, konteineru izolācija un disciplinēta noslēpumu pārvaldība. Katrs slānis noņem kaut ko, ko uzbrucējs citādi varētu izmantot.

systemd jo īpaši veic daudz klusa darba — NoNewPrivileges, ProtectSystem, atmestas spējas un ar namespace aprīkotas failu sistēmas pārvērš parastu pakalpojumu par ierobežotu. Konteineri pievieno otru izolācijas robežu ar mazākajām privilēģijām, minimāliem attēliem. Steks zemāk lasāms no apakšas uz augšu, no kodola līdz noslēpumiem.

  • Kodola parametri un sysctl aizsardzība, dokumentēti
  • systemd smilškaste — atmestas spējas, ierobežota failu sistēma
  • Konteineru izolācija ar mazākajām privilēģijām, minimāliem attēliem
  • Noslēpumi turēti ārpus koda un žurnāliem, ierobežoti un rotēti
Linux nostiprināšanasystemdKonteineriNoslēpumi

Nostiprināšanas steks — kontrole pa slāņiem

Kodols
Konservatīvi parametri, uzbrukuma virsmas samazināšana
sysctl
Tīkla un atmiņas aizsardzība noregulēta un dokumentēta
systemd vienības
Smilškastes direktīvas — NoNewPrivileges, ProtectSystem, spēju kopas
Konteineru izolācija
Namespaces, mazākās privilēģijas, minimāli attēli
Noslēpumu pārvaldība
Noslēpumi ārpus koda un žurnāliem, ierobežoti un rotēti
Dublējumi
Atgriezeniskas izmaiņas, ar laika zīmogu dublējumi pirms jebkuras modifikācijas
Validācija
Katra kontrole pārbaudīta ar reālu testu, nevis pieņemta

Nostiprināšana galvenokārt ir atņemšana. Visuzticamākais veids, kā aizsargāt pakalpojumu, ir noņemt visu, kas tam nav vajadzīgs, pirms uzbrucējs tam atrod pielietojumu.

Pilnvarota ielaušanās testēšana

Metodoloģija, palaista no sākuma līdz beigām manā paša perimetrā.

Es veicu pilnvarotu drošības testēšanu pret savu paša infrastruktūru regulārā ritmā — to pašu metodoloģiju, ko izmanto ārējs uzdevums, ierobežotu līdz sistēmām, kuras es pārvaldu.

BlackArch Linux ir platforma, ko šim nolūkam darbinu plūstošā līmenī. Tā ir distribūcija, kas būvēta drošības testēšanai, un es to izmantoju pilnvarotam pašauditam un kontrolētai savu paša sistēmu un aģentu infrastruktūras ielaušanās testēšanai — nekad pret kaut ko, ko es nepārvaldu vai neesmu pilnvarots testēt.

Secība ir apzināta un ierobežota: rakstiski pilnvarot un noteikt tvērumu, tad izlūkošana, uzskaite, kontrolēta izmantošana, kas iet tieši pietiekami tālu, lai pierādītu, ka atradums ir sasniedzams, rakstisks ziņojums un novēršana, kas tiek pārtestēta, līdz ceļš ir pazudis. Izmantošanas solis ir tas, kas prasa disciplīnu — pietiekami tālu, lai pierādītu risku, nekad tālāk.

Pilnvarots ielaušanās tests — no tvēruma līdz pārtestēšanai

  1. 01 Pilnvarot un noteikt tvērumu Rakstiski definēt tieši, kuras no manām sistēmām ir tvērumā, un testa noteikumus.
  2. 02 Izlūkošana Kartēt reālo atklāto virsmu — pakalpojumus, versijas, uzticības attiecības.
  3. 03 Uzskaite Katalogizēt konfigurācijas un sasniedzamus vājumus pret šo virsmu.
  4. 04 Kontrolēta izmantošana Validēt atradumu izolācijā, pietiekami tālu, lai pierādītu sasniedzamību, ne tālāk.
  5. 05 Ziņojums Dokumentēt ceļu, ietekmi un precīzo novēršanu.
  6. 06 Novērst un pārtestēt Slēgt ievainojamību, tad atkārtoti palaist, lai apstiprinātu, ka ceļš ir pazudis.

BlackArch Linux · pilnvarots tvērums

Rīku komplekts, būvēts uzbrukumam, vērsts tikai uz manām paša sistēmām.

Plūstamība ar drošības testēšanas distribūciju kā BlackArch ir svarīga, jo rīki ir asi; atbildība ir tajā, uz kurieni tie vērsti. Man tā ir fiksēta atbilde — mana paša infrastruktūra, ar pilnvarojumu, kas noteikts, pirms kaut kas tiek palaists.

Šī darbināšana ritmā nozīmē, ka vājumi parādās manā paša ziņojumā, pirms tie parādās kāda cita ziņojumā. Tā ir visa vērtība to darīt: es labāk atrodu ceļu pats, pēc sava grafika, nekā lai to atrod manā vietā.

  • BlackArch darbināts plūstošā līmenī pilnvarotai testēšanai
  • Tvērums fiksēts uz manām paša sistēmām un aģentu infrastruktūru
  • Darbināts regulārā ritmā, ne vienreiz
  • Atradumi slēgti, pirms tie var tikt izmantoti
BlackArchPilnvarotsPašaudits
Pašaudita cilpa

Atrast ceļu pirms reāla pretinieka.

Iemesls, kāpēc visas šīs uzbrukuma zināšanas eksistē manā darbā, ir cilpa, ko tās baro: modelēt draudus, testēt savas paša sistēmas ar šo metodoloģiju, atrast sasniedzamos vājumus, nostiprināt pareizo slāni un pārbaudīt labojumu, pirms tas slēdz. Tad rezultāts atgriežas modelī un cilpa skrien no jauna.

Tas ir nepārtraukts cikls, nevis projekts ar beigām. Sistēmas mainās, atkarības mainās, un kontrole, kas noturējās pagājušajā ceturksnī, šodien var nenoturēties — tāpēc audits ir atkārtots pēc dizaina. Diagramma ir šī cilpa, zīmēta kā cikls, kas tā ir.

MODELIS TESTS ATRAST NOSTIPRINĀT PĀRBAUDE

Modelēt → testēt → atrast → nostiprināt → pārbaudīt

Slēgta cilpa, darbināta ritmā, lai aizsardzība nekad nekļūtu novecojusi.

Katrs cilpas pārejas posms ir mazs un specifisks: viens drauds pārdomāts, viens pilnvarots tests, viens vājums atrasts, viens slānis nostiprināts, viens labojums pārbaudīts. Disciplīna ir tajā, lai to darbinātu regulāri, nevis gaidītu, kad incidents to piespiedīs.

Tā kā cilpa slēdzas — pārbaude atgriežas modelī — nekas nepaliek apgalvots. Kontrole tiek uzskatīta par pabeigtu tikai tad, kad pārtests pierāda, ka ceļš, ko tai bija jāslēdz, patiešām ir pazudis.

  • Nepārtraukts, ne vienreizējs
  • Katrs posms slēdz vienu pārbaudītu vājumu
  • Pārbaude atgriežas draudu modelī
  • Atkārtots pēc dizaina, sistēmām mainoties
PašauditsNepārtrauktsPārbaude

Pašaudita cikls

  1. 01 Modelēt draudus Izlemt, pret ko es aizsargājos un ko viņi vēlētos no šīs sistēmas.
  2. 02 Testēt savas sistēmas Veikt pilnvarotu testēšanu pret savu paša infrastruktūru ar uzbrukuma metodoloģiju.
  3. 03 Atrast pirms viņiem Izcelt sasniedzamos vājumus pirms jebkura reāla pretinieka.
  4. 04 Nostiprināt slāni Pielietot labojumu pareizajā aizsardzības dziļumā steka slānī.
  5. 05 Pārbaudīt labojumu Pārtestēt, lai pierādītu, ka vājums ir slēgts, tad atgriezt to modelī.
Tīkls un kriptogrāfija

Nodrošināt to, kas pārvietojas starp sistēmām.

Tīklu un protokolu drošība un lietišķā kriptogrāfija ir aizsardzības daļas, kas ceļo — aizsargājot datus un uzticību, kad tie šķērso starp sistēmām, nevis vienas iekšienē.

Tīkla pusē darbs ir segmentācija, atklātās virsmas minimizēšana un spriešana par protokola līmeņa vājumiem — ko novērotājs ceļā var redzēt, atkārtot vai ievadīt. Protokols ir tikai tik uzticams, cik pieņēmumi, ko tas izdara par tīklu zem tā, tāpēc es modelēju šo tīklu kā naidīgu pēc noklusējuma.

Kriptogrāfijas pusē disciplīna ir pareizi izmantot pārbaudītus primitīvus: autentificēta šifrēšana, rūpīga atslēgu un nonču apstrāde un noslēpumi, turēti ārpus koda un žurnāliem. Es neizgudroju shēmas; neveiksmes lietišķajā kriptogrāfijā gandrīz vienmēr nāk no integrācijas un atslēgu pārvaldības, nevis no algoritma. Abas jomas atrisinās tajā pašā draudu modeļa jautājumā — ko uzbrucējs patiešām redz un ko atklāj viena kompromitēšana.

Naidīgs tīkls pēc noklusējuma

Neticēt nekam par ceļu; aizsargāt lietderīgo slodzi un atslēgas.

Es uzskatu tīklu starp sistēmām par naidīgu — novērojamu, atkārtojamu, modificējamu — un projektēju tā, lai šis pieņēmums neko nesabojātu. Segmentācija ierobežo to, ko sasniedz balsta punkts; autentificēta šifrēšana aizsargā lietderīgo slodzi; disciplinēta atslēgu pārvaldība ierobežo to, ko atklāj viena kompromitēšana.

Protokolu drošība ir vieta, kur tie satiekas: kriptogrāfija piegādā savas garantijas tikai tad, ja protokols ap to tās neatceļ. Tas ir tikpat liels draudu modelēšanas vingrinājums, cik kriptogrāfisks.

  • Tīkla segmentācija un minimizēta atklātā virsma
  • Protokola līmeņa spriešana par novērot, atkārtot, ievadīt
  • Autentificēta šifrēšana ar pārbaudītiem primitīviem
  • Atslēgu, nonču un noslēpumu pārvaldība kā pirmšķiras darbs
Tīkla drošībaProtokoliKriptogrāfija
Ritms

Aizsardzība kā atkārtota prakse, nevis vienreizēja uzstādīšana.

Modelēt, testēt, atrast, nostiprināt, pārbaudīt — tas pats cikls, darbināts regulāri pret manu paša infrastruktūru, lai aizsardzība turētu soli ar sistēmām, ko tā aizsargā.

Lasīts secībā, darbs ir viena atkārtota prakse, nevis pabeigts stāvoklis. Tas sākas ar draudu modeli, palaiž pilnvarotu pašauditu pret manām paša sistēmām, izceļ sasniedzamos vājumus, slēdz katru pareizajā aizsardzības dziļumā steka slānī un pārtestē, pirms kaut kas tiek nosaukts par pabeigtu.

Tas, kas caurvij visu, ir robeža, ar kuru es sāku: uzbrukuma metodoloģija, pilnvarota un ētiska, vērsta tikai uz infrastruktūru, kuru es pārvaldu, izmantota vienam mērķim — to nostiprināt, pirms reāls pretinieks saņem iespēju.

  1. Modelēt Vispirms draudu modelēšana Pirms kontrole tiek izvēlēta, es izlemju, kas ir pretinieks, ko viņš vēlas un kur viņš var sasniegt — lai aizsardzība atbilstu reāliem draudiem, nevis vispārīgam kontrolsarakstam.
  2. Testēt Pilnvarots pašaudits Izmantojot ielaušanās testēšanas metodoloģiju un BlackArch Linux, es veicu pilnvarotu drošības testēšanu pret savu paša infrastruktūru un aģentu sistēmām regulārā ritmā.
  3. Atrast Atklātas ievainojamības Sasniedzamie vājumi tiek atrasti un dokumentēti tādā pašā veidā, kā ārējs uzdevums tos dokumentētu — ceļš, ietekme, novēršana.
  4. Nostiprināt Slēgti pareizajā slānī Katrs atradums tiek labots pareizajā aizsardzības dziļumā steka slānī: kodols, sysctl, systemd, konteiners, dati vai identitāte.
  5. Pārbaudīt Pārtestēts, tad atgriezts Labojums tiek pārtestēts, lai pierādītu, ka ceļš ir pazudis, un rezultāts tiek atgriezts draudu modelī nākamajam ciklam.
Kā es strādāju

Principi zem aizsardzības.

Sistēmas mainās un konkrētās kontroles mainās līdz ar tām; principi ne. Šie ir noteikumi, ko piemēroju neatkarīgi no tā, vai darbs ir nostiprināšanas piegājiens, pilnvarots ielaušanās tests, draudu modelis vai kriptogrāfiska integrācija — daļa, kas patur praksi aizsardzīgu, pilnvarotu un atkārtojamu.

01

Pilnvarots, vai tas nenotiek

Uzbrukuma tehnika tiek piemērota tikai pilnvarotas robežas iekšienē, pret sistēmām, kuras es pārvaldu. Šeit nav pretinieciska darba — metodoloģija eksistē, lai nostiprinātu un auditētu.

02

Aizsardzība ir mērķis

Ielaušanās testēšana, ievainojamību analīze un apgrieztā inženierija ir līdzekļi vienam mērķim: slēgt ceļu, pirms to atrod reāls uzbrucējs.

03

Slāņi, nevis siena

Es pieņemu, ka jebkura atsevišķa kontrole var sabrukt, tāpēc sistēmas tiek būvētas tā, lai viena kļūme neatklātu visu. Aizsardzība dziļumā ir noklusējums, nevis uzlabojums.

04

Atgriezenisks un dokumentēts

Katra izmaiņa tiek dublēta pirms veikšanas un dokumentēta pēc, lai nostiprināšanas solis tiktu auditēts un atgriezts tikpat tīri, cik tas tika pielietots.

05

Pārbaudīt, nekad nepieņemt

Kontrole nav pabeigta, kamēr reāls tests nepierāda, ka tā noturas. Skenera rezultāts, konfigurācijas karogs un strādājoša aizsardzība ir trīs dažādas lietas.

06

Mazākās privilēģijas, visur

Procesi, konteineri un akreditācijas dati saņem minimumu, kas tiem vajadzīgs. Ierobežots, īsmūža un atsaucams ikreiz pārspēj ērto.

Metodoloģija ir uzbrucēja. Mērķis vienmēr ir mans, pilnvarojums vienmēr skaidrs, un izvade vienmēr slēgta ievainojamība. Šī robeža ir darbs.

Open to the right work

Ja jums vajadzīga sistēma, kas pieņem, ka tā tiks uzbrukta, un ir būvēta noturēties tik un tā, tas ir darbs, ko es daru.

If you are holding a problem that doesn't fit inside one field, that is the conversation I want.

NextChemistry & Pharma