Fəsil 04 · 59 dəq oxu

CyberSecurity terminləri

CyberSecurity terminləri

, identity və access, application security, detection və response ilə bağlı terminlər.

Bu fəsildə: Allowlist · API key · Assume breach · Attack surface · Attack tree · Audit log · Authentication · Authorization · Availability · Blast radius · Broken function level authorization · Broken object property level authorization · Broken object-level authorization · CIA triad · Confidentiality · CORS · Credential · CSPM · Data flow diagram · Data minimisation · Data poisoning · Defence in depth · Encryption · Envelope encryption · Excessive agency · Hardening · Hash · Improper output handling · Incident response · Integrity · JWT · Key rotation · Lateral movement · Least privilege · MAC · Mass assignment · MFA · mTLS · OAuth 2.0 · OpenID Connect · Phishing · Policy-as-code · Ransomware · RBAC · Sandbox · Secret · Security misconfiguration · Shadow API · Shared responsibility model · SQL injection · SSRF · STRIDE · Supply chain · System prompt leakage · Threat actor · Threat model · Timing attack · TLS · Trust boundary · XSS · Zero trust


Allowlist

İcazə verilən dəyərlərin, ünvanların və ya əməliyyatların açıq siyahısı; siyahıda olmayan hər şey default olaraq rədd edilir.

Allowlist "nəyə icazə var?" sualına açıq cavab verən siyahıdır: icazə verilən IP range-ləri, domain-lər, input format-ları, alqoritmlər və ya tool-lar. Siyahıda olmayan hər şey rədd edilir. Onun əksi olan denylist isə yalnız məlum pis şeyləri bloklayır və qalan hər şeyi buraxır.

Fərq kiçik görünür, amma nəticəsi böyükdür. Denylist attacker-in ağlına gələ biləcək hər variantı əvvəlcədən təxmin etməyinizi tələb edir; bu, demək olar ki, həmişə nəyisə qaçırır. Allowlist isə düzgün input-un necə göründüyünü bir dəfə müəyyən edir və bilinməyəni avtomatik olaraq kənarda saxlayır. Bu, default deny prinsipinin konkret tətbiqidir.

Praktikada nümunələr:

  • qarşı application yalnız konkret xarici host-lara request göndərə bilir.
  • signature-i yalnız icazə verilən alqoritmlərlə validate olunur.
  • Input validation tip, uzunluq və format üçün dəqiq qaydalarla aparılır.
  • tapşırığa uyğun tool allowlist-i verilir: customer support shell lazım deyil.

: allowlist-i maintain etmək lazımdır. Yeni qanuni istifadə halı yarananda siyahı yenilənməlidir, əks halda istifadəçilər bloklanır və komanda "müvəqqəti" olaraq hər şeyi açır. Ən çox rast gəlinən səhv də budur: wildcard-larla genişləndirilmiş, faktiki olaraq heç nəyi məhdudlaşdırmayan allowlist.

Əlaqəli terminlər: , , ,

API key

API-ni çağıran application-ı identify edən uzunömürlü ; istifadəçini identify etmir və tək başına üçün kifayət deyil.

API key adətən header-də göndərilən random string-dir. O, "hansı client çağırır?" sualına cavab verir və quota, billing və usage tracking üçün faydalıdır.

Onun zəif tərəfləri strukturdan gəlir:

  • Uzunömürlüdür və nadir hallarda rotate olunur.
  • Çox vaxt scope-suzdur: key-in sahibi hər şeyi edə bilir.
  • Mobil app-lərdə, frontend kodunda və public repository-lərdə asanlıqla leak olur. Client-ə göndərilən key deyil.
  • İstifadəçinin kim olduğunu bildirmir, ona görə istifadəçi data-sına access qərarını onun əsasında vermək olmaz.

İstifadəçinin adından hərəkət edən API-lər üçün qısaömürlü, scope-lu və revoke edilə bilən access düzgün seçimdir. API key-ləri istifadə edirsinizsə, onları kimi saxlayın, hər key-ə minimal scope verin, server-də constant-time müqayisə edin, avtomatik rotation qurun və leak olunmuş key-ləri scanning ilə axtarın.

Əlaqəli terminlər: , , ,

Assume breach

Sistemi attacker-in artıq içəridə olduğunu fərz edərək layihələndirmək prinsipi: segment-lərə bölmək, monitor etmək və bahalı etmək.

Assume breach perimeter-in nə vaxtsa keçiləcəyini qəbul edən düşüncə tərzidir. Sual "attacker içəri girə bilərmi?" deyil, "içəri girəndə nəyə çata bilər və biz bunu nə qədər tez görəcəyik?" olur.

Bu prinsip vacibdir, çünki compromise-dan detection-a qədər keçən vaxt sənaye hesabatlarında həftələr, bəzən aylarla ölçülür. Bu müddətdə attacker edir, privilege toplayır və data-nı exfiltrate edir. Əgər sistem yalnız xarici divara etibar edirsə, içəridə heç nə onu dayandırmır.

Praktikada assume breach bunları tələb edir:

  • Şəbəkəni və service-ləri segment-lərə bölmək, bir compromise olunmuş host-un hər şeyə çatmaması üçün.
  • Daxili trafikə də və tətbiq etmək, yəni istiqamətində hərəkət.
  • qısaömürlü etmək və scope-unu məhdudlaşdırmaq.
  • Attacker-in dəyişdirə bilmədiyi yerdə saxlamaq.
  • Backup-ları offline və ya immutable saxlamaq.

Konkret məşq: "attacker-in əlində developer-in laptop-u var" ssenarisini götürün və o laptop-dan hansı , repository-lərə və production sistemlərinə çatmaq mümkün olduğunu sadalayın. Siyahı adətən gözləniləndən uzun çıxır.

Ümumi səhv bu prinsipi paranoya kimi başa düşməkdir. Məqsəd hər şeyi bağlamaq deyil, məhdudlaşdırmaq və detection üçün siqnal yaratmaqdır.

Əlaqəli terminlər: , , , ,

Attack surface

Attacker-in sistemə təzyiq göstərə biləcəyi bütün nöqtələrin cəmi: açıq port-lar, endpoint-lər, dependency-lər, , input yolları.

Attack surface sistemin xaricdən toxunula bilən bütün hissələridir: hər açıq port, hər API endpoint-i, hər file upload forması, hər dependency, hər admin panel, hər , hətta hər əməkdaşın e-poçt qutusu. Bunların hər biri attacker üçün potensial giriş nöqtəsidir.

Attack surface böyüdükcə qorunmalı olan yerlərin sayı artır, amma defender-in büdcəsi və diqqəti artmır. Buna görə də ən effektiv control-lardan biri sadəcə lazım olmayanı silməkdir. İstifadə olunmayan endpoint-in vulnerability-si heç vaxt problem yaratmayacaq, çünki o mövcud deyil.

Praktikada attack surface-i azaltmaq bu cür görünür:

  • Debug endpoint-lərini və köhnə API versiyalarını production-dan çıxarmaq.
  • Daxili service-ləri public şəbəkədən gizlətmək.
  • Az transitive dependency-si olan library-lərə üstünlük vermək.
  • default olaraq söndürülmüş ship etmək.

Nümunə: köhnə mobil app versiyası üçün saxlanan, artıq heç kimin test etmədiyi v1 API-si. Onun check-ləri v2-dən geri qalır və attacker məhz ona hücum edir.

AI sistemləri yeni attack surface əlavə edir: modelin oxuduğu hər mətn üçün kanal ola bilər. Ümumi səhv attack surface-i yalnız şəbəkə səviyyəsində düşünməkdir; insanlar, CI pipeline-ları və də onun hissəsidir.

Əlaqəli terminlər: , , ,

Attack tree

Root-u attacker-in məqsədi olan və aşağıya doğru ona çatmağın yollarını budaqlandıran texnikası; leaf-lər konkret attack-lərdir.

Attack tree attacker-in məqsədindən geriyə doğru işləyən diaqramdır. Root düyün məqsəddir, məsələn, "başqa müştərinin invoice-larını oxumaq". Uşaq düyünlər bu məqsədə çatmağın alternativ yollarıdır, nəvə düyünlər həmin yolların hər birinə necə çatmağı göstərir, leaf-lər isə konkret, icra oluna bilən attack-lərdir.

Nümunə ağac:

  • Başqa müştərinin invoice-larını oxumaq
    • API-də boşluğundan istifadə etmək
    • Support əməkdaşının account-unu ilə ələ keçirmək
    • Backup-ları saxlayan cloud storage-ə çatmaq
      • Leak olmuş access key tapmaq
      • Səhv konfiqurasiya olunmuş public bucket

Hər leaf ehtimal və xərclə qeyd olunur. Bu, hansı budaqların ucuz və real olduğunu göstərir və control-ları prioritetləşdirməyə kömək edir.

Attack tree-nin dəyəri tamamlamasındadır. elementləri bir-bir gəzir və hər biri üçün threat kateqoriyalarını yoxlayır. Attack tree isə bir neçə kiçik zəifliyi zəncirləyən yolları üzə çıxarır, məsələn, məlumat sızdıran error mesajı plus zəif plus təxmin edilə bilən ID.

: attack tree qurmaq vaxt aparır və hər şey üçün lazım deyil. Onu yüksək dəyərli hədəflər üçün saxlayın. Ümumi səhv ağacı yalnız texniki attack-lərlə doldurmaq və social engineering budaqlarını unutmaqdır.

Əlaqəli terminlər: , , ,

Audit log

Kimin nə vaxt, haradan, nə etdiyini və nəticəsini qeydə alan, actor-un özünün dəyişdirə bilmədiyi yerdə saxlanan hadisələr jurnalı.

Audit log , və accounting üçlüyünün sonuncu hissəsidir: hərəkətlərin sonradan konkret actor-a qədər izlənilə bilməsi. Adi application log-larından fərqli olaraq, onun məqsədi debugging deyil, sübut və araşdırmadır.

Hər qeyd ən azı bunları daşımalıdır: kim (istifadəçi və ya service identity-si), nə (hərəkət və target), nə vaxt (sinxronlaşdırılmış saatla timestamp), haradan (IP, device, session) və nəticə (uğurlu, rədd edildi, error).

Nəyi log etmək lazımdır:

  • Bütün hadisələri, o cümlədən uğursuzluqlar və .
  • Hər rədd edilmiş qərarı.
  • Privileged hərəkətlər: role dəyişiklikləri, permission grant-ları, data export-ları.
  • AI sistemlərində hər , arqumentləri və nəticəsi ilə birlikdə.

Ən vacib tələb budur ki, log-lar actor-un çata və ya dəyişə bilmədiyi mərkəzi store-a getsin. Admin hüquqları olan attacker öz izlərini silə bilirsə, audit log faydasızdır. Separation of duties prinsipi də burada tətbiq olunur: edən şəxs audit log-larını dəyişə bilməməlidir.

Retention yavaş intrusion-u araşdırmağa kifayət edəcək qədər uzun olmalıdır, adətən bir il. Ümumi səhvlər: log-lara və ya password yazmaq, saatları sinxronlaşdırmamaq və heç kimin oxumadığı log-ları toplamaq.

Əlaqəli terminlər: , , ,

Authentication

"Sən kimsən?" sualına cavab: istifadəçinin, device-ın və ya service-in iddia etdiyi identity-yə həqiqətən sahib olduğunun yoxlanması.

Authentication identity-nin sübutudur. İstifadəçi və ya service "mən filankəsəm" deyir və sistem bunu bir və ya bir neçə factor ilə yoxlayır: bildiyiniz bir şey (password), sahib olduğunuz bir şey (telefon, hardware key) və ya olduğunuz bir şey (biometric).

Authentication ilə qarışdırılmamalıdır. Birincisi kim olduğunuzu, ikincisi nə etməyə icazəniz olduğunu müəyyən edir. "Login olub" check-ini "icazəsi var" kimi qəbul edən sistemlər elevation-of-privilege bug-larının əsas mənbəyidir.

Praktikada güclü authentication bunları əhatə edir:

  • Password-ləri Argon2id və ya bcrypt kimi yavaş ilə, hər biri üçün ayrıca salt ilə saxlamaq.
  • Breach siyahılarında görünən password-ləri rədd etmək.
  • tətbiq etmək, mümkün olduqda passkey kimi phishing-resistant factor-larla.
  • Cəhdləri etmək.
  • Uğurlu login-dən sonra session password kimi qorumaq: random, qısaömürlü, yalnız üzərindən.

Service-lər üçün authentication workload identity ilə edilir: platform workload-a zəmanət verir və qısaömürlü credential-lar avtomatik verilir.

Ən çox rast gəlinən səhvlər: dövri password rotation-u məcbur etmək (proqnozlaşdırıla bilən variasiyalar yaradır), daxili service-lər arasında authentication-u "onsuz da içəridədir" deyərək atlamaq, və password reset axınını əsas login-dən zəif qoymaq.

Əlaqəli terminlər: , , , ,

Authorization

"Sənə nə etməyə icazə var?" sualına cavab: authenticate olmuş actor-un konkret resource üzərində konkret hərəkəti edə bilib-bilməməsinin yoxlanması.

Authorization sonra gəlir. Sistem artıq kiminlə danışdığını bilir; indi isə bu actor-un məhz bu resource üzərində məhz bu hərəkəti etməyə hüququ olub-olmadığına qərar verir.

Bunun üçün bir neçə model var: (role-lar və onlara bağlı permission-lar), ABAC (istifadəçinin, resource-un və kontekstin attribute-ları) və ReBAC (graph-dakı əlaqələr, məsələn, "sənədin owner-i"). Sistemlərin əksəriyyəti ilə başlamalıdır.

Əsas prinsiplər:

  • Default deny. Heç bir qayda uyğun gəlmirsə, access yoxdur.
  • Hər layer-də yoxlamaq. UI düyməni gizlədir, amma API yenə yoxlayır, database isə mümkün olan yerdə row-level policy tətbiq edir.
  • Mərkəzləşdirmək. Authorization məntiqi bir funksiyada və ya policy engine-də yaşayır, codebase-ə səpələnmiş if-lərdə yox.
  • Fail securely. Check exception atanda access rədd edilir.

Konkret nümunə: GET /invoices/123 request-i. istifadəçinin kim olduğunu təsdiqləyir. Authorization isə 123 nömrəli invoice-un bu istifadəçinin tenant-ına aid olub-olmadığını yoxlamalıdır. Bu ikinci addım unudulanda yaranır, real assessment-lərdə ən çox rast gəlinən kritik tapıntı.

: incə dənəli authorization daha dəqiqdir, amma mühakimə etmək və audit etmək çətinləşir. Ümumi səhv də yalnız UI səviyyəsində yoxlamaqdır.

Əlaqəli terminlər: , , ,

Availability

üçüncü xassəsi: sistemlərin və data-nın lazım olan anda qanuni istifadəçilər üçün istifadəyə yararlı olması.

Availability sistemin lazım olanda işləməsi deməkdir. Architecture kontekstində o, uptime faizi ilə ölçülən ; security kontekstində isə attacker-in qəsdən pozmağa çalışdığı xassədir.

Availability-yə attack-lərin əsas formaları:

  • Denial of service. Sistemi request-lərlə və ya bahalı əməliyyatlarla tükəndirmək. D hərfi məhz budur.
  • . Data-nı encrypt edərək əlçatmaz etmək. Klassik birbaşa availability-yə vurur.
  • Resource tükənməsi. Böyük upload-lar, dərin recursion, məhdudiyyətsiz query-lər, zərərli parser input-ları.

Müdafiə həm security, həm də resilience mühəndisliyidir: , request və upload size limit-ləri, timeout-lar, kifayət qədər capacity, kritik service-lər üçün və ən əsası test edilmiş, offline və ya immutable backup-lar. recovery vaxtı demək olar ki, tamamilə backup-ların salamat və restore edilə bilən olmasından asılıdır.

Maraqlı gərginlik: bəzi security control-ları availability-ni azalda bilər. Login cəhdlərini lock out etmək brute force-u dayandırır, amma attacker qəsdən səhv password-lər göndərərək qanuni istifadəçini kilidləyə bilər. Buna görə lockout həm account, həm də mənbə üzrə düşünülməlidir.

Ümumi səhv availability-ni yalnız ops komandasının məsələsi saymaq və degraded mode-ları, yəni sistemlər dayananda biznesin necə işləyəcəyini planlaşdırmamaqdır.

Əlaqəli terminlər: , , , ,

Blast radius

Bir komponent, account və ya compromise olunanda zərərin yayıla biləcəyi sahənin ölçüsü: attacker-in oradan nələrə çata biləcəyi.

Blast radius "bu şey compromise olunsa, nə itirərik?" sualının cavabıdır. Bir service account-un bütün database-lərə write access-i varsa, onun blast radius-u bütün data-dır. Yalnız bir cədvəli oxuya bilirsə, zərər həmin cədvəllə məhdudlaşır.

Bu anlayış security-ni ehtimaldan təsirə yönəldir. Hər compromise-ın qarşısını almaq mümkün deyil, amma hər compromise-ın nəticəsini kiçik saxlamaq mümkündür. Buna görə də , segmentation və prinsiplərinin hamısı əslində blast radius-u azaltmaq haqqındadır.

Blast radius-u kiçiltməyin praktik yolları:

  • Hər service-ə ayrıca, scope-u məhdud vermək; shared admin key-lərdən qaçmaq.
  • Şəbəkəni və cloud account-larını mühitlərə və tenant-lara görə ayırmaq.
  • Uzunömürlü əvəzinə qısaömürlü credential-lar istifadə etmək.
  • CI runner-lərinin çata bildiklərini məhdudlaşdırmaq.
  • yalnız tapşırığa lazım olan tool-ları vermək.

Nümunə: reporting job-u üçün yaradılmış leak olur. Əgər o yalnız read-only çıxış verirsə, incident ciddi, amma idarə ediləndir. Əgər production-un admin role-u idisə, şirkət üçün böhrandır.

Ümumi səhv rahatlıq üçün bir bir neçə sistemdə paylaşmaq və ya "müvəqqəti" verilmiş geniş icazələri heç vaxt geri almamaqdır.

Əlaqəli terminlər: , , ,

Broken function level authorization

Adi istifadəçinin admin və ya başqa privileged endpoint-ləri çağıra bildiyi vulnerability; server əməliyyata icazəni yoxlamır.

Broken function level authorization OWASP API Security Top 10 2023-də API5-dir. "bu obyektə çata bilərsənmi?" sualını unudur, bu bug isə "bu əməliyyatı edə bilərsənmi?" sualını.

Tipik ssenarilər:

  • Admin endpoint-ləri /api/admin/... prefix-indədir və developer-lər onları "heç kim bilmir" deyə check-siz buraxıb.
  • GET /api/users/42 hər kəs üçün işləyir, amma eyni path-ə DELETE və ya PUT göndərəndə də check olmur.
  • UI-da düymə yalnız admin-ə göstərilir və bu, yeganə qoruma sayılır.

Attacker API sənədlərindən, mobil app-in kodundan və ya sadəcə URL pattern-lərini təxmin etməklə bu endpoint-ləri tapır.

Həll default deny-dir: hər route üçün tələb olunan role və ya permission açıq şəkildə elan olunur, elan olunmayan route olunmur, və matrisi (hər endpoint × hər role) avtomatik test kimi CI-də işləyir.

Əlaqəli terminlər: , , ,

Broken object property level authorization

İstifadəçinin obyektə access-i olsa da, onun görməməli olduğu field-ləri oxuya və ya dəyişməməli olduğu field-ləri yaza bildiyi API vulnerability-si.

Bu risk OWASP API Security Top 10 2023-də API3-dür və əvvəlki siyahıdakı iki ayrı problemi birləşdirir: excessive data exposure və . Hər ikisində sual eynidir: "bu istifadəçi bu obyektin bu field-inə çata bilərmi?"

Excessive data exposure oxuma tərəfidir. Endpoint database obyektini olduğu kimi serialize edir və cavabda email, telefon, password , daxili flag-lar qaytarır. Frontend onları göstərmir, ona görə developer problemi görmür, amma attacker response-u birbaşa oxuyur. Filtering-i client-ə həvalə etmək deyil.

yazma tərəfidir: istifadəçi request body-yə gözlənilməyən field əlavə edir və server onu obyektə yazır.

Müdafiə hər iki istiqamətdə eynidir: hər endpoint üçün oxuna bilən və yazıla bilən field-lərin açıq , response schema-sına qarşı test-lər və role-dan asılı olaraq fərqli field dəstləri qaytaran ayrıca serializer-lər.

Əlaqəli terminlər: , , ,

Broken object-level authorization

API-nin istifadəçinin login olduğunu yoxlayıb, amma məhz bu obyektə access hüququnu yoxlamadığı vulnerability; ID-ni dəyişməklə başqasının data-sı görünür.

Broken object-level authorization, qısaca BOLA, illərdir OWASP API Security siyahısının başında olan bug sinfidir. Ssenari sadədir: GET /api/orders/1001 request-i login olmuş istifadəçinin öz sifarişini qaytarır. İstifadəçi URL-də 1001-i 1002-yə dəyişir və başqa müştərinin sifarişini görür. Server yalnız "bu istifadəçi authenticate olubmu?" sualını verib, "bu sifariş bu istifadəçiyə aiddirmi?" sualını yox.

Bu bug çox yayılıb, çünki hər endpoint-də, hər yeni check-i əl ilə əlavə etmək lazım gəlir və bir dəfə unutmaq kifayətdir. Ardıcıl ID-lər onu daha da asanlaşdırır, amma UUID istifadə etmək həll deyil, yalnız gizlətmədir.

Həll strukturdadır:

  • Hər data access-i hərəkət edən istifadəçini və target obyekti qəbul edən mərkəzi funksiyadan keçir.
  • Bu funksiyanı atlayan kod yolu yoxdur, ona görə check-i unutmaq mümkün olmur.
  • Mümkün olan yerdə database row-level security tətbiq edir.
  • Hər endpoint üçün "başqa istifadəçinin ID-si ilə request 403 və ya 404 qaytarır" test-i yazılır.

Oxşar bug : adi istifadəçi admin endpoint-ini birbaşa çağıra bilir, çünki yalnız UI düyməni gizlədib.

Ümumi səhv controller-lərə səpələnmiş if user.is_admin ifadələri ilə həll etməyə çalışmaqdır.

Əlaqəli terminlər: , ,

CIA triad

Security-nin qoruduğu üç klassik xassə: , və . Hansı xassənin attack altında olduğunu bilmək uyğun control-u göstərir.

CIA triad security-nin nəyi qoruduğunu təsvir edən klassik çərçivədir:

  • : data-nı yalnız icazəsi olanlar görür.
  • : data və sistemlər yalnız icazəsi olanlar tərəfindən, icazə verilən üsullarla dəyişdirilir.
  • : sistemlər lazım olanda istifadəyə yararlıdır.

Praktikada iki əlavə onu daha faydalı edir: authenticity (kimin nə etdiyini və mesajın haradan gəldiyini yoxlaya bilmək) və non-repudiation, yəni accountability (hərəkətlərin sonradan konkret actor-a qədər izlənilə bilməsi).

Triad-ın əsas dəyəri diaqnostikdir. Hər threat bu xassələrdən birini pozur, və hansını pozduğunu bilmək müdafiəni istiqamətləndirir:

  • , data leak hədəsi ilə isə vurur.
  • Fraud vurur.
  • oğurluğu authenticity-yə vurur.

də bu xassələrə map olunur: information disclosure , tampering , denial of service pozur.

Trade-off-lar burada da var. Maksimum üçün hər şeyi bağlamaq azaldır; maksimum üçün hər yerdə və saxlamaq data-nın daha çox yerdə görünməsi deməkdir. Ümumi səhv triad-ı checklist kimi bir dəfə doldurub kənara qoymaqdır; o, hər yeni və hər threat üçün təkrar verilməli sualdır.

Əlaqəli terminlər: , , , ,

Confidentiality

birinci xassəsi: data-nı yalnız onu görməyə icazəsi olan insanların və service-lərin görə bilməsi.

Confidentiality məlumatın icazəsiz şəxslərə açılmamasıdır. onu pozan threat information disclosure adlanır: kimsə görməməli olduğu data-nı görür.

Confidentiality yalnız məsələsi deyil. O, bir neçə control-un birlikdə işləməsindən yaranır:

  • Access control. və kimin nəyi görə biləcəyini müəyyən edir.
  • . Şəbəkədə , diskdə və backup-larda at-rest .
  • . Saxlamadığınız data leak ola bilməz.
  • Output nəzarəti. API response-larında lazım olandan artıq field qaytarmamaq, error mesajlarında daxili təfərrüatları göstərməmək.

Real həyatda confidentiality pozuntuları çox vaxt hiyləgər kriptoqrafik attack-lərdən yox, sadə səhvlərdən yaranır: public qalmış cloud storage bucket, over-fetching edən API, log-lara yazılmış , həddindən artıq ətraflı stack trace, və ya .

Nümunə: mobil app üçün istifadəçi profili endpoint-i bütün user obyektini qaytarır, o cümlədən password və daxili qeydləri. UI onları göstərmir, amma network tab-da hamısı görünür.

Müasir qrupları confidentiality-yə də vurur: data-nı encrypt etməzdən əvvəl kopyalayır və ödəniş olmasa leak etməklə hədələyir. Buna görə də yalnız backup-lar artıq kifayət etmir.

Əlaqəli terminlər: , , ,

CORS

Server-in brauzerə hansı başqa origin-lərdən gələn JavaScript-in onun cavablarını oxuya biləcəyini bildirdiyi mexanizm; və ya deyil.

Brauzerin same-origin policy-si bir saytdakı script-in başqa origin-ə request göndərib cavabı oxumasına icazə vermir. CORS bu qaydanı kontrollu şəkildə yumşaldır: server Access-Control-Allow-Origin və əlaqəli header-lərlə "bu origin-ə etibar edirəm" deyir.

Ən çox rast gəlinən yanlış anlama CORS-u qoruma mexanizmi saymaqdır. curl, server-side script və mobil app CORS-a məhəl qoymur. CORS yalnız brauzerdəki digər saytların istifadəçinin adından nə edə biləcəyini məhdudlaşdırır.

Təhlükəli konfiqurasiyalar:

  • Request-in Origin header-ini olduğu kimi geri qaytarmaq və eyni zamanda Access-Control-Allow-Credentials: true göndərmək. Bu halda istənilən sayt istifadəçinin cookie-ləri ilə API-ni çağırıb cavabı oxuyur.
  • null origin-ə icazə vermək.
  • Origin-i zəif regex və ya "ilə bitir" check-i ilə yoxlamaq: evil-example.com da example.com ilə bitir.

Düzgün yanaşma dəqiq origin və request-lərə yalnız həqiqətən lazım olan origin-lər üçün icazədir.

Əlaqəli terminlər: , ,

Credential

Identity-ni sübut etmək üçün istifadə olunan sirr: password, , , private key, sertifikat və ya session cookie.

Credential sistemə "mən bu identity-yəm" demək üçün təqdim olunan hər şeydir: istifadəçi password-ü, , , SSH private key, cloud access key, session cookie. Kimin əlindədirsə, sistem üçün o, həmin identity-dir.

Breach-lərin əksəriyyəti hiyləgər exploit-lə yox, credential ilə başlayır: ələ keçirilmiş, başqa saytda leak olub təkrar istifadə edilmiş, təxmin edilmiş və ya config faylında, repository-də qalmış. Attacker etibarlı credential əldə etdikdən sonra heç nəyi sındırmağa ehtiyac duymur, sadəcə login edir, və onun trafiki qanuni istifadəçininkindən fərqlənmir.

Credential-ları idarə etməyin əsas qaydaları:

  • İnsanlar üçün , xüsusilə phishing-resistant factor-lar.
  • Machine credential-ları üçün və runtime-da inject etmək; kodda və config-də heç nə.
  • Qısaömürlü credential-lara üstünlük vermək, ideal halda workload identity ilə avtomatik verilənlərə.
  • Scope-u minimuma endirmək: reporting job-unun write access-ə ehtiyacı yoxdur.
  • Avtomatik rotation; heç vaxt rotate edilməmiş credential rotate edilə bilməyən credential-dır.

Incident zamanı eradication mərhələsi hər oğurlanmış credential-ın rotate olunmasını tələb edir. Bir dənəsini qaçırmaq attacker-in geri qayıtmasının ən tipik yoludur.

Ümumi səhv machine credential-larının inventarını aparmamaqdır: çox vaxt onlar insanlardan sayca çoxdur və heç kim ən köhnəsinin nə vaxt yaradıldığını bilmir.

Əlaqəli terminlər: , , , ,

CSPM

Cloud account-ları davamlı scan edərək misconfiguration-ları tapan tool kateqoriyası: public resource-lar, açıq port-lar, storage, geniş IAM policy-lər.

Cloud security posture management cloud mühitinin faktiki vəziyyətini təhlükəsizlik qaydalarına qarşı davamlı yoxlayır. Provider API-ləri vasitəsilə bütün account-ları və region-ları oxuyur və tapıntıları risk-ə görə sıralayır.

Tipik tapıntılar:

  • Public storage bucket-lər və snapshot-lar.
  • İnternet-ə açıq management port-ları.
  • Audit logging-in söndürüldüyü region-lar.
  • Wildcard permission-lı və ya istifadə olunmayan role-lar.
  • Uzun müddət rotate olunmamış access key-lər.

CSPM tamamlayır: pis dəyişikliyin qarşısını alır, CSPM isə artıq mövcud olan, console-dan edilmiş və ya köhnə resource-ları tapır.

Ümumi səhv tool-u quraşdırıb tapıntılara baxmamaqdır. Minlərlə tapıntılı dashboard heç kimə kömək etmir. Hər tapıntı kateqoriyası üçün owner təyin edin, kritikləri alert kimi route edin və sayın zamanla azaldığını ölçün.

Əlaqəli terminlər: , , ,

Data flow diagram

başlanğıc nöqtəsi: external entity-ləri, process-ləri, data store-ları, data flow-ları və göstərən diaqram.

Data flow diagram "nə qururuq?" sualına cavab verir. O, adi architecture diaqramından fərqlidir: komponentlərin necə olunduğunu yox, data-nın haradan haraya hərəkət etdiyini və trust səviyyəsinin harada dəyişdiyini göstərir.

Diaqramın beş elementi var:

  • External entity-lər: istifadəçilər, third-party service-lər, nəzarət etmədiyiniz digər sistemlər.
  • Process-lər: sizin service-ləriniz və komponentləriniz.
  • Data store-lar: database-lər, , queue-lar, file storage.
  • Data flow-lar: nəyin hara getdiyini göstərən oxlar.
  • : trust səviyyəsinin dəyişdiyi yerlərdə nöqtəli xətlər.

Ən vacib hissə keçən oxlardır. Hər belə ox ilə yoxlanılmalı yerdir.

Nümunə: sadə SaaS üçün diaqramda browser (external entity), , application service, PostgreSQL, S3 bucket və ödəniş provider-i olur. İnternet ilə gateway arasında, service ilə database arasında və service ilə ödəniş provider-i arasında boundary-lər çəkilir. sistemdə tenant-lar arasında da görünməz boundary var.

Diaqramı bir səhifəyə sığacaq qədər kiçik saxlayın; sığmırsa, subsystem-i ayrıca model edin. Ümumi səhvlər: diaqramı bir dəfə çəkib yeniləməmək, async flow-ları (queue-lar, webhook-lar) unutmaq və admin tool-ları kimi daxili yolları göstərməmək.

Əlaqəli terminlər: , , ,

Data minimisation

Yalnız konkret məqsəd üçün lazım olan data-nı toplamaq, lazım olan müddət saxlamaq və lazım olan yerə ötürmək prinsipi.

Data minimisation ən ucuz və ən effektiv data protection control-udur: sizdə olmayan data breach-də sızmır, log-a düşmür, backup-da qalmır və subpoena ilə tələb olunmur.

Prinsip üç ölçüdə tətbiq olunur:

  • Toplama. Yalnız həqiqətən istifadə etdiyi field-lər toplanır. Doğum tarixi əvəzinə "18 yaşdan yuxarı" flag-i, kart nömrəsi əvəzinə payment provider-in .
  • Saxlama. Hər data növünün retention müddəti olur və müddəti bitəndə avtomatik silinir, backup-lar da daxil olmaqla.
  • Ötürmə. API cavabları, log-lar, analitika export-ları və üçüncü tərəf integration-ları yalnız lazım olan field-ləri daşıyır.

Minimisation həm də hüquqi tələbdir: GDPR kimi data protection qanunları onu açıq şəkildə prinsip kimi müəyyən edir.

Ümumi səhv "nə vaxtsa lazım ola bilər" düşüncəsi ilə hər şeyi saxlamaqdır. Data-nın dəyəri gələcəkdə şübhəlidir, riski isə bu gündən realdır. Digər səhv bütün obyekti serialize edən API endpoint-ləridir: database-də saxlamaq lazım olan field cavabda olmamalıdır.

Əlaqəli terminlər: , , ,

Data poisoning

Model-in öyrəndiyi və ya istifadə etdiyi data-nın (training, , korpusu, memory-si) qəsdən korlanaraq onun davranışının dəyişdirilməsi.

Data poisoning OWASP Top 10 for Applications siyahısında LLM04-dür. Attacker model-ə birbaşa toxunmur; onun öyrəndiyi və ya oxuduğu mənbəni dəyişir.

Hücumun bir neçə nöqtəsi var:

  • Training və data-sı. Zəhərlənmiş nümunələr backdoor yaradır: model adi input-larda normal davranır, yalnız müəyyən trigger ifadədə dəyişir. Bunu evaluation ilə tutmaq çətindir.
  • korpusu. Index-ə daxil olan wiki səhifəsinə, ticket-ə və ya public veb səhifəyə yaza bilən hər kəs model-in cavablarına təsir edə bilər, həm yanlış məlumatla, həm də ilə.
  • memory-si. Bir session-da injection ilə memory-yə yazılmış qeyd gələcək session-larda təlimat kimi işləyir və orijinal hücum çoxdan bitəndən sonra da təsir edir.

Müdafiə tədbirləri: model və dataset provenance-ını qeyd etmək (mənbə, versiya, checksum), nəyin daxil olduğunu və kimin onu dəyişə biləcəyini bilmək, memory yazılarını məhdudlaşdırmaq və mənbəyini qeyd etmək, memory-ni istifadəçiyə görünən və silinə bilən etmək.

Ümumi səhv: poisoning-i yalnız böyük model-ləri öyrədən komandaların problemi saymaq. və memory istifadə edən hər application-ın yazıla bilən data mənbəyi var.

Əlaqəli terminlər: , , , ,

Defence in depth

Heç bir control-un tək başına dayanacağına etibar etməyən prinsip: bir neçə müstəqil müdafiə layer-i, hər biri əvvəlkinin artıq keçildiyini fərz edir.

Defence in depth security-ni bir divar kimi deyil, ardıcıl layer-lər kimi qurmaqdır. Firewall, sonra , sonra , sonra input validation, sonra monitoring. Hər layer özündən əvvəlkinin artıq sıradan çıxdığını fərz edir.

Bu prinsip vacibdir, çünki hər control nə vaxtsa uğursuz olur: konfiqurasiya səhvi, yeni zero-day, ilə ələ keçirilmiş password. Tək bir control-a güvənən sistemdə bu uğursuzluq birbaşa breach deməkdir. Layer-li sistemdə isə attacker növbəti maneə ilə qarşılaşır və hər maneə detection üçün yeni şans yaradır.

Konkret nümunə, qarşı:

  • Kod parameterised query-lərdən istifadə edir (əsas müdafiə).
  • Input boundary-də ilə validate olunur.
  • Application-ın database user-i yalnız lazım olan cədvəllərə access-ə malikdir.
  • Qeyri-adi query pattern-ləri üçün monitoring var.

Birinci layer bir yerdə unudulsa belə, qalanları zərəri məhdudlaşdırır.

Vacib nüans: layer-lər həqiqətən müstəqil olmalıdır. Eyni ilə açılan üç layer əslində bir layer-dir. Eyni vendor-un eyni bug-ı olan iki məhsul da elə.

: hər layer mürəkkəblik və xərc əlavə edir, mürəkkəblik isə vulnerability-lərin gizləndiyi yerdir. Ümumi səhv layer-lərin sayını təhlükəsizliklə eyniləşdirmək və ya "WAF var, kodda validation lazım deyil" deyə düşünməkdir.

Əlaqəli terminlər: , , ,

Encryption

Data-nı yalnız düzgün key-ə sahib olanın geri oxuya biləcəyi formaya çevirən geri çevrilə bilən kriptoqrafik əməliyyat; əsas aləti.

Encryption plaintext-i key vasitəsilə ciphertext-ə çevirir; key olmadan ciphertext-dən məna çıxarmaq praktiki olaraq mümkün deyil. fərqli olaraq encryption geri çevrilə biləndir: düzgün key ilə data əvvəlki halına qaytarılır.

Praktikada iki əsas kontekst var:

  • In transit. Şəbəkədə hərəkət edən data, adətən ilə. Session və cookie-lər yalnız üzərindən ötürülməlidir.
  • At rest. Disklərdə, database-lərdə, backup-larda və laptop-larda saxlanan data.

Encryption-un gücü tamamilə key management-dən asılıdır. Ən güclü alqoritm belə key public repository-dədirsə, heç nə ifadə etmir. Key-lər və ya saxlanılmalı, rotate edilməli, access-i log-lanmalıdır.

Əsas qaydalar:

  • Öz kriptoqrafiyanızı yazmayın. Safe default-ları olan high-level library-lərdən (libsodium, dilin standart vetted library-si) istifadə edin.
  • Hansı alqoritmlərin və mode-ların deprecated olduğunu bilin.
  • Password-ləri encrypt etməyin, onları yavaş ilə saxlayın.

Encryption əvəz etmir. Disk encrypt olunub, amma application hər istifadəçiyə istənilən sətri decrypt edib qaytarırsa, data qorunmur.

Ümumi səhvlər: key-i encrypt olunmuş data-nın yanında saxlamaq, sərt kodlanmış IV və ya nonce istifadə etmək, və sertifikat yoxlamasını "müvəqqəti" söndürüb unutmaq.

Əlaqəli terminlər: , , ,

Envelope encryption

Data-nın öz data key-i ilə encrypt olunduğu, data key-in isə KMS-dəki master key ilə encrypt olunub data-nın yanında saxlandığı pattern.

Envelope encryption iki səviyyəli key strukturudur. Data key (data encryption key) faktiki data-nı lokal olaraq, sürətli symmetric authenticated ilə encrypt edir. Master key (key key) isə yalnız data key-i encrypt edir və KMS və ya HSM-i heç vaxt tərk etmir. Encrypt olunmuş data key ciphertext-in yanında saxlanılır.

Bu pattern bir neçə problemi birdən həll edir:

  • Böyük data KMS-ə göndərilmir; KMS-ə yalnız kiçik data key-lər gedir.
  • Database və ya backup oğurlansa da, master key olmadan data key-lər açılmır.
  • Master key-ə access identity ilə idarə olunur və hər istifadəsi düşür.
  • Master key rotate olunanda bütün data-nı yenidən encrypt etmək lazım deyil; yalnız data key-lər yenidən wrap olunur.

Bonus olaraq, data key-i məhv etmək onunla encrypt olunmuş data-nı, backup-lardakı nüsxələr də daxil olmaqla, oxunmaz edir. Bu, silinməsi çətin olan data üçün praktik deletion üsuludur.

Ümumi səhvlər: plaintext data key-i yaddaşda lazım olandan uzun saxlamaq, ciphertext-in yanında key versiyasını saxlamamaq və application-a master key üzərində həddindən artıq geniş permission vermək.

Əlaqəli terminlər: , , , ,

Excessive agency

və ya tapşırıq üçün lazım olandan çox tool, permission və ya avtonomiya verilməsi; injection və ya model səhvi bu imkanlar qədər zərər yaradır.

Excessive agency OWASP Top 10 for Applications siyahısında LLM06-dır. Risk model-in nə dediyindən yox, nə edə bildiyindən gəlir. əlindəki hər tool və hər permission uğurlu olanda attacker-in əlinə keçən imkandır.

Üç forması var:

  • Çox tool. tapşırığa aid olmayan tool-lar verilib, məsələn customer support shell və ya ümumi http_request.
  • Çox geniş permission. bütün istifadəçilər üçün bir güclü service account ilə işləyir, ona görə də hər istifadəçi faktiki olaraq onun permission-larını alır.
  • Çox avtonomiya. Pul köçürmək, məlumat silmək, xaricə mesaj göndərmək kimi geri qaytarılmaz hərəkətlər insan təsdiqi olmadan icra olunur.

Konkret ssenari: e-məktubları xülasə edən assistant-ın e-məktub göndərmə tool-u da var. Gələn məktubda gizlədilmiş təlimat onu daxili sənədləri xaricə göndərməyə yönəldir. Injection tətik idi, amma zərərin ölçüsünü göndərmə tool-unun mövcudluğu müəyyən etdi.

Müdafiə tətbiqidir: tapşırığa görə tool , istifadəçinin adından qısaömürlü və scope-u məhdud credential-lar, geri qaytarılmaz hərəkətlər üçün insan təsdiqi və iterasiya, xərc, sayı üçün sərt limitlər.

Ümumi səhv: problemi "yalnız icazə verilən hərəkətləri et" yazaraq həll etməyə çalışmaq. Bu, control deyil; sərhəd model-dən kənarda, kodda və permission-larda olmalıdır.

Əlaqəli terminlər: , , , , ,

Hardening

Sistemi default vəziyyətdən minimum lazımi vəziyyətə gətirmək: lazımsız service-ləri, port-ları, package-ləri və account-ları silmək, təhlükəsiz default-lar təyin etmək.

Hardening azaltmağın sistematik prosesidir. Default quraşdırma rahatlıq üçün optimallaşdırılıb: çox service aktivdir, nümunə account-lar mövcuddur, permission-lar genişdir. Hardening bunların hamısını tapşırığa lazım olan minimuma endirir.

Praktikada:

  • Minimal base image-lər, shell və package manager-siz.
  • İstifadə olunmayan service-ləri söndürmək və port-ları bağlamaq.
  • Default və nümunə konfiqurasiyaları silmək.
  • Container-ləri non-root və read-only filesystem ilə işlətmək.
  • Yazılı patching cadence.

Sıfırdan başlamaq əvəzinə CIS-style benchmark-lardan istifadə edin: onlar OS, container runtime və cloud account-lar üçün hazır checklist-lərdir. Hardening-i image build-ə və infrastructure koduna daxil edin ki, hər yeni instance artıq hardened başlasın.

Ümumi səhv hardening-i bir dəfəlik iş kimi görməkdir. Əl ilə edilən dəyişikliklər, yeni package-lər və "müvəqqəti" açılan port-lar zamanla sistemi geri qaytarır. Immutable infrastructure və detection bunun qarşısını alır.

Əlaqəli terminlər: , , ,

Hash

İstənilən ölçülü input-dan sabit uzunluqlu "barmaq izi" çıxaran birtərəfli funksiya; geri çevrilmir, yoxlaması və password saxlanması üçün istifadə olunur.

Hash funksiyası istənilən ölçülü data-dan sabit uzunluqlu nəticə çıxarır. Eyni input həmişə eyni hash-i verir, input-da bir bit dəyişsə, hash tamamilə fərqli olur, və hash-dən input-u geri bərpa etmək praktiki olaraq mümkün deyil. fərqli olaraq burada key yoxdur və əməliyyat geri çevrilmir.

İstifadə halları fərqli tələblər qoyur:

  • yoxlaması. Yüklənmiş package-in checksum-u gözlənilən dəyərlə üst-üstə düşürmü? Burada SHA-256 kimi sürətli kriptoqrafik hash-lər uyğundur.
  • Data versioning. hash-ini saxlamaq onun dəqiq hansı versiyası ilə işlədiyinizi sübut edir.
  • Password saxlanması. Burada sürət düşməndir. Argon2id və ya bcrypt kimi qəsdən yavaş hash-lər istifadə olunur, hər password üçün ayrıca random salt ilə. Salt eyni password-lərin eyni hash verməsinin və əvvəlcədən hesablanmış cədvəllərlə sındırılmasının qarşısını alır.
  • Detection. Threat intelligence-də zərərli faylların hash-ləri indicator kimi paylaşılır.

Nümunə: database leak olur. Password-lər SHA-256 ilə, salt-sız saxlanıbsa, attacker GPU ilə saniyədə milyardlarla təxmin yoxlayır. Argon2id ilə isə hər təxmin bahalıdır və zəif olmayan password-lər praktiki olaraq qorunur.

Ümumi səhvlər: password üçün sürətli hash, MD5 və ya SHA-1 kimi köhnəlmiş alqoritmlər, və hash-i ilə qarışdırmaq.

Əlaqəli terminlər: , , ,

Improper output handling

output-unun downstream sistemdə yoxlanmadan render edilməsi, icra olunması və ya query-yə qoyulması; nəticədə , və ya command injection yaranır.

Improper output handling OWASP Top 10 for Applications siyahısında LLM05-dir. Səbəb sadədir: attacker model-in output-unu vasitəsilə formalaşdıra bilir, deməli model output-u downstream sistem üçün istifadəçi input-u ilə eyni statusdadır. Onu trusted kimi qəbul etmək klassik injection vulnerability-lərini geri qaytarır.

Tipik hallar:

  • Model cavabı HTML kimi render olunur və içindəki script istifadəçinin browser-ində icra olunur ().
  • Model-in yaratdığı SQL birbaşa database-də işlədilir.
  • Model-in yaratdığı shell əmri və ya kod server-də olmadan icra olunur.
  • Markdown şəklinin URL-i render olunur və query string-də data xarici server-ə sızır.

Müdafiə tədbirləri application security-nin adi qaydalarıdır, sadəcə yeni mənbəyə tətbiq olunur: kontekstə uyğun output encoding, və schema validation, model-ə query yazdırmaq əvəzinə yalnız parametr seçdirmək, kodu icra etmək, render olunan link və şəkillər üçün domain .

Ümumi səhv: output-u "bizim model-imiz yaradıb" deyə trusted saymaq. Model-in context-inə untrusted məzmun düşürsə, onun output-u da untrusted-dir.

Əlaqəli terminlər: , , , , ,

Incident response

Security incident-ini aşkarlamaqdan bağlamağa qədər idarə etmə prosesi: preparation, identification, containment, eradication, recovery və lessons learned.

Incident response alert həqiqi çıxanda nə edəcəyinizi müəyyən edən planlı prosesdir. Onun dəyəri improvizə etməməkdədir: plan incident-dən əvvəl yazılır, test edilir və hamı öz role-unu bilir.

Standart mərhələlər:

  • Preparation. Role-ları olan yazılı plan (incident commander, investigator-lar, communications, hüquqi əlaqə), korporativ e-poçt compromise olunanda da işləyən əlaqə siyahıları, log-lara və forensic tooling-ə əvvəlcədən test edilmiş access, tabletop məşqlər.
  • Identification. Incident-in həqiqi olduğunu təsdiqləmək, severity təyin etmək və dərhal timeline başlatmaq.
  • Containment. Evidence-i məhv etmədən qanaxmanı dayandırmaq: host-ları isolate etmək, account-ları deaktiv etmək.
  • Eradication. Hər backdoor-u, persistence mexanizmini silmək və hər oğurlanmış rotate etmək.
  • Recovery. Sistemləri known-good mənbələrdən restore etmək və monitoring-i gücləndirmək.
  • Lessons learned. İki həftə ərzində blameless review və owner-i olan action-lar siyahısı.

Çətin qərarlardan biri containment-in vaxtıdır: tez contain etmək, yoxsa attacker-in tam əhatəsini öyrənmək üçün müşahidə etmək. üçün demək olar ki, həmişə sürət düzgündür.

Ümumi səhvlər: scope-u bilmədən password reset edib attacker-i xəbərdar etmək, sistemləri rebuild etmək əvəzinə "təmizləmək", natamam eradication və breach notification deadline-larını (çox vaxt 72 saat) incident zamanı öyrənmək.

Əlaqəli terminlər: , , ,

Integrity

ikinci xassəsi: data-nın və sistemlərin yalnız icazəsi olanlar tərəfindən, icazə verilən üsullarla dəyişdirilməsi və dəyişikliyin aşkarlana bilməsi.

Integrity data-nın və sistemlərin etibarlı qalmasıdır: heç kim icazəsiz və aşkarlanmadan onları dəyişdirə bilməz. onu pozan threat tampering adlanır.

Integrity pozuntusu çox vaxt pozuntusundan təhlükəlidir, çünki görünmür. Oğurlanmış data ən azı sizdə də qalır; səssizcə dəyişdirilmiş data isə səhv qərarlara, səhv ödənişlərə və etibarın itirilməsinə gətirib çıxarır. Fraud tipik integrity attack-idir.

Integrity-ni qoruyan control-lar:

  • və yazma əməliyyatlarında. Yalnız lazım olan actor-lar yaza bilir.
  • Kriptoqrafik yoxlama. , checksum, digital signature, . Signed və verify olunmuş dependency-lər integrity-sini təmin edir.
  • Server-side validation. Client-dən gələn qiymətə, endirimə və ya user ID-yə etibar edilmir.
  • . Kim nəyi nə vaxt dəyişdi.
  • Immutable backup-lar. Attacker onları da dəyişdirə bilməsin.

Nümunə: online mağazada səbətdəki məhsulun qiyməti request body-də göndərilir və server onu yoxlamadan qəbul edir. Attacker qiyməti 0.01-ə dəyişir. Bu, klassik integrity pozuntusudur.

Incident-dən sonra recovery zamanı sistemləri yenidən qoşmazdan əvvəl integrity-ni verify etmək lazımdır. Ümumi səhv integrity-ni yalnız database ilə eyniləşdirmək və client-ə etibar etməkdir.

Əlaqəli terminlər: , , ,

JWT

İmzalanmış JSON payload daşıyan, server-də session saxlamadan identity ötürmək üçün istifadə olunan formatı; rahatdır, amma tez-tez yanlış istifadə olunur.

JWT üç hissədən ibarətdir: header (alqoritm), payload (claim-lər, məsələn, user ID, role, expiry) və signature. Server signature-ini yoxlayaraq onun dəyişdirilmədiyinə əmin olur və database-ə müraciət etmədən istifadəçinin kim olduğunu bilir. Bu stateless təbiət onu arasında populyar edir.

Vacib nüans: JWT default olaraq encrypt olunmur, yalnız imzalanır. Payload base64 ilə kodlanıb və hər kəs onu oxuya bilər.

Təhlükəsiz istifadə qaydaları:

  • Signature-i icazə verilən alqoritmlərin ilə validate edin. öz header-indəki alqoritmə etibar etməyin; "alg: none" attack-i məhz bundan istifadə edir.
  • Expiry-ni həmişə yoxlayın və access qısaömürlü edin.
  • Payload-a heç vaxt və ya həssas data yerləşdirməyin.
  • yalnız üzərindən ötürün.

Əsas revocation-dur. JWT expiry-dən əvvəl ləğv edilə bilməz, yalnız denylist saxlasanız mümkündür, bu da stateless cazibənin böyük hissəsini aradan qaldırır. Buna görə praktikada qısaömürlü access revoke edilə bilən refresh birləşdirilir.

Ümumi səhvlər: 24 saatlıq və ya daha uzun access , logout-dan sonra da işləyən , və bütün user obyektini payload-a qoymaq.

Əlaqəli terminlər: , , ,

Key rotation

Kriptoqrafik key-in planlı və ya incident-dən sonra yenisi ilə əvəz edilməsi, köhnə data-nın oxuna bilməsini qoruyaraq.

Key rotation yeni key-in istifadəyə verilməsi və köhnəsinin mərhələli şəkildə çıxarılmasıdır. Məqsəd hər key ilə qorunan data həcmini və hər key leak-inin təsir müddətini məhdudlaşdırmaqdır.

Rotation dizayn tələb edir, sonradan əlavə olunmur. Ciphertext hansı key versiyası ilə encrypt olunduğunu daşımalıdır; əks halda yeni key-ə keçəndə köhnə data-nı oxumaq mümkün olmur və komanda köhnə key-i əbədi saxlayır. Tipik ardıcıllıq: yeni key yaradılır, yeni yazılar onunla encrypt olunur, köhnə data fon prosesi ilə yenidən encrypt olunur, sonra köhnə key deaktiv edilir və nəhayət məhv edilir.

Signing key-lər üçün də eyni məntiq keçərlidir: verify edən tərəflər keçid dövründə həm köhnə, həm də yeni public key-i qəbul etməlidir. Buna görə də public key-lər adətən key ID ilə dərc olunur.

Ən vacib test rotation-u incident-dən əvvəl ən azı bir dəfə real olaraq etməkdir. Heç vaxt rotate edilməmiş key rotate edilə bilməyən key-dir, və bunu adətən key leak olanda kəşf edirsiniz.

Əlaqəli terminlər: , , ,

Lateral movement

Attacker-in ilk foothold-dan şəbəkə daxilində başqa host-lara, account-lara və service-lərə keçərək dəyərli hədəfə doğru irəliləməsi.

Lateral movement attack-in ilk girişdən sonrakı mərhələsidir. Attacker nadir hallarda birbaşa istədiyi yerə düşür; adətən ilə bir əməkdaşın laptop-unu və ya zəif bir server-i ələ keçirir. Sonra oradan tapdığı credential-larla, açıq şəbəkə yolları ilə və daxili sistemlərdəki zəifliklərlə domain controller-ə, database-lərə və backup-lara doğru hərəkət edir.

Bu mərhələ vacibdir, çünki detection pəncərəsinin böyük hissəsi burada keçir. qrupları adətən nəyisə encrypt etməzdən əvvəl şəbəkənin içində günlərlə gəzir, privilege-i escalate edir və data-nı exfiltrate edir. Saatlar içində tapılan attacker-in yalnız foothold-u var; aylar sonra tapılanın hər şeyi.

Lateral movement-i bahalı etməyin yolları:

  • Segmentation və micro-segmentation: compromise olunmuş service hər şeyə çata bilməsin.
  • : daxili request-lər də authenticate və authorize olunur.
  • Shared local admin password-lərindən və uzunömürlü service qaçmaq.
  • Privileged access-i vaxtla məhdudlaşdırmaq.

Detection üçün tipik behavioural siqnallar: service account-un interaktiv login etməsi, workstation-dan server-lərə qeyri-adi connection-lar, yeni scheduled task-lar.

Ümumi səhv flat şəbəkədir: VPN-ə qoşulan hər kəsin hər şeyə çata bildiyi mühit. Belə şəbəkədə ilk foothold faktiki olaraq tam access deməkdir.

Əlaqəli terminlər: , , ,

Least privilege

Hər istifadəçi, proses və service-in yalnız öz işi üçün lazım olan minimum access-ə malik olması prinsipi; compromise zamanı zərəri məhdudlaşdırır.

Least privilege sadə səslənir: hər komponent yalnız ona lazım olanı edə bilməlidir, artığını yox. Amma ən çox pozulan prinsiplərdən biridir, çünki geniş icazə vermək həmişə daha tez və daha rahatdır.

Onun dəyəri compromise anında görünür. Hər şey nə vaxtsa ələ keçirilə bilər; bu baş verəndə attacker məhz həmin komponentin edə bildiklərini edə bilir. Least privilege birbaşa kiçildir.

Praktikada:

  • Reporting job-u orders cədvəlinə yalnız read access alır, write yox.
  • Application-ın database user-i schema-nı dəyişə bilmir.
  • Admin hüquqları daimi deyil, konkret tapşırıq üçün, saatlarla və approval ilə verilir.
  • CI runner-ləri yalnız etdikləri mühitə çata bilir.
  • yalnız tapşırığa lazım olan tool-lara və scope-u məhdud credential-lara malikdir.
  • Cloud IAM policy-lərində wildcard (*) əvəzinə konkret action və resource-lar.

Nümunə: marketing üçün qurulmuş e-poçt göndərmə service-inin bütün müştəri database-inə access-i var, çünki "sadəcə bir neçə field lazımdır". Service-dəki bütün müştəri data-sının leak olmasına çevrilir.

: dəqiq icazələr idarə etmək üçün səy tələb edir və çox sərt olanda komandalar işləyə bilmir, nəticədə yenidən hər şeyi açırlar. Ümumi səhv icazələri yalnız əlavə etmək və heç vaxt istifadə olunmayanları geri almamaqdır.

Əlaqəli terminlər: , , , ,

MAC

Shared key ilə hesablanan qısa dəyər; mesajın dəyişdirilmədiyini və key-i bilən tərəfdən gəldiyini sübut edir.

MAC mesaj və key-dən hesablanan tag-dır. Qəbul edən tərəf eyni key ilə tag-ı yenidən hesablayır və müqayisə edir; uyğun gəlirsə, mesaj yolda dəyişdirilməyib və key-ə sahib olan tərəfdən gəlib. Ən geniş yayılmış forması HMAC-SHA256-dır.

Adi ilə fərq key-dədir. Mesajın yanında yalnız SHA-256 göndərilirsə, attacker mesajı dəyişib yenidən hesablaya bilər. MAC-ı isə key olmadan düzgün hesablamaq mümkün deyil.

Digital signature ilə fərq key-in növündədir. MAC-da hər iki tərəf eyni bilir, buna görə də üçüncü tərəfə mesajı kimin yaratdığını sübut etmək olmur. Signature-da private key yalnız bir tərəfdədir və hər kəs public key ilə verify edə bilir.

Tipik istifadə halları: verify olunması, daxili service mesajları, signed cookie-lər, URL-lərin müddətli imzalanması.

Ümumi səhvlər: tag-ı adi string müqayisəsi ilə yoxlamaq ( imkan verir; constant-time müqayisə lazımdır), timestamp daxil etməyib replay-ə yol açmaq və eyni key-i və MAC üçün təkrar istifadə etmək.

Əlaqəli terminlər: , , ,

Mass assignment

API-nin request body-ni birbaşa obyektə bind etməsi nəticəsində istifadəçinin dəyişməməli olduğu field-ləri, məsələn role və ya balance-ı dəyişə bilməsi.

Mass assignment endpoint-in gələn JSON-u yoxlamadan database modelinə köçürdüyü halda yaranır. Profil yeniləyən PATCH /api/users/me request-inə istifadəçi "display_name" ilə yanaşı "role": "admin" və ya "credit_balance": 99999 əlavə edir. Server bu field-ləri gözləmirdi, amma framework onları obyektə yazır və yadda saxlayır.

Bu, OWASP API Security Top 10 2023-də API3, yəni riskinin "yazma" tərəfidir. İstifadəçinin obyektə access-i var, amma onun hər field-inə yox.

Həll açıq :

  • Hər endpoint üçün yazıla bilən field-lərin ayrıca schema-sı və ya DTO-su.
  • Gözlənilməyən field-ləri sükutla atmaq əvəzinə rədd etmək və log etmək.
  • Database modelini birbaşa API contract-ına çevirməmək.

Denylist yanaşması ("role field-ini qəbul etmə") işləmir, çünki modelə gələcəkdə əlavə olunan hər yeni həssas field avtomatik olaraq açıq qalır.

Əlaqəli terminlər: , ,

MFA

İki və ya daha çox müstəqil factor tələb edən : bildiyiniz, sahib olduğunuz və ya olduğunuz şey. oğurluğuna qarşı ən effektiv control-dur.

MFA password-ün tək başına kifayət etmədiyi . Factor-lar üç növdür: bildiyiniz (password), sahib olduğunuz (telefon, hardware key) və olduğunuz (biometric). Attacker password-ü ələ keçirsə belə, ikinci factor olmadan login edə bilmir.

Amma ikinci factor-ların hamısı eyni dərəcədə güclü deyil:

  • SMS kodları. Heç nədən yaxşıdır, amma SIM swapping və interception-a həssasdır.
  • Authenticator app-lər (TOTP). Yaxşıdır, amma real-time proxy-si kodu istifadəçidən alıb dərhal istifadə edə bilər.
  • Push notification-lar. Rahatdır, amma "MFA fatigue"-ə həssasdır: attacker istifadəçi bezib "approve" basana qədər göndərir. Number matching bunu azaldır.
  • Hardware key-lər və passkey-lər (FIDO2/WebAuthn). Phishing-resistant-dır, çünki saytın origin-inə bağlıdır və saxta domain-də işləmir.

Tövsiyə: MFA-nı bütün əməkdaşlar və bütün admin access-i üçün məcburi edin, bütün istifadəçilərə təklif edin, elevated access-i olanlar üçün isə phishing-resistant factor-lar tələb edin.

Ümumi səhvlər: MFA-nı əsas login-də tətbiq edib password reset, API və ya köhnə protokollar kimi yan yolları açıq qoymaq; recovery axınını SMS-ə bağlamaq; və MFA log edib monitor etməmək. Qeyri-adi sayda push təsdiqi özü bir detection siqnalıdır.

Əlaqəli terminlər: , , ,

mTLS

Hər iki tərəfin certificate təqdim etdiyi : server client-i, client də server-i authenticate edir. Service-lərarası trafik üçün geniş istifadə olunur.

Adi yalnız server certificate təqdim edir; client isə adətən password, və ya ilə application səviyyəsində authenticate olunur. mTLS-də client də öz certificate-ini təqdim edir və server onu verify edir. Nəticədə bağlantı qurulmamışdan əvvəl hər iki tərəfin identity-si məlum olur.

mTLS əsasən machine-to-machine trafikdə istifadə olunur: service-lər, job-lar, daxili API-lər. yanaşmasında "daxili şəbəkədəndir" etibar səbəbi deyil; mTLS hər service-ə kriptoqrafik identity verir və qərarları IP ünvanına deyil, bu identity-yə əsaslanır.

Praktikada əsas çətinlik certificate-lərin idarə olunmasıdır. Hər workload üçün certificate issue etmək, onları qısaömürlü saxlamaq və avtomatik rotate etmək lazımdır. Bunu adətən service mesh və ya platformanın workload identity mexanizmi edir; əl ilə idarə olunan, illərlə etibarlı certificate-lər isə sadəcə başqa formada uzunömürlü .

Ümumi səhv mTLS-i ilə qarışdırmaqdır. mTLS "kim danışır?" sualına cavab verir; "bu service bu əməliyyatı edə bilərmi?" sualı hələ də ayrıca yoxlanmalıdır.

Əlaqəli terminlər: , , , ,

OAuth 2.0

Application-a istifadəçinin password-unu vermədən, scope-la məhdud və qısaömürlü access vasitəsilə onun adından resource-lara access verən protokolu.

OAuth 2.0 "delegated access" problemini həll edir. İstifadəçi third-party application-a öz təqvimini və ya fayllarını oxumaq icazəsi vermək istəyir, amma ona password-unu vermək istəmir. OAuth-da istifadəçi server-də authenticate olur, hansı scope-lara razılıq verdiyini görür, application isə yalnız həmin scope-larla işləyən access alır.

Əsas rollar dörddür: resource owner (istifadəçi), client (application), server ( verən) və resource server ( qəbul edən API).

Vacib nüans: OAuth protokoludur, deyil. Access "bu client-ə nə etməyə icazə var" sualına cavab verir, "istifadəçi kimdir" sualına yox. İstifadəçinin identity-si üçün onun üzərində qurulan istifadə olunur.

Bu gün tövsiyə olunan flow-lar:

  • code + PKCE: browser, mobile və server application-ları üçün.
  • Client : istifadəçi olmayan service-to-service çağırışlar üçün.
  • Device flow: klaviaturası olmayan cihazlar üçün.

Implicit və resource owner password flow-ları deprecated sayılır.

Ən çox rast gəlinən səhvlər: redirect URI-nin wildcard və ya prefix ilə yoxlanması, state parametrinin yoxlanmaması, lazım olandan geniş scope-lar və resource server-in aud claim-ini yoxlamaması.

Əlaqəli terminlər: , , , ,

OpenID Connect

üzərində qurulan identity qatı: ID vasitəsilə istifadəçinin kim olduğunu təsdiqləyir və SSO-nun əsasını təşkil edir.

OpenID Connect çatışmayan hissəni, yəni əlavə edir. Login-dən sonra client access yanaşı ID da alır. ID istifadəçi haqqında claim-lər daşıyan imzalanmış : kim olduğu (sub), kim tərəfindən təsdiqləndiyi (iss), kim üçün verildiyi (aud) və nə vaxt authenticate olduğu.

İki rolları fərqlidir və onları qarışdırmaq ən çox rast gəlinən səhvdir:

  • ID client üçündür: "istifadəçi kimdir?" Onu API-yə göndərmək olmaz.
  • Access API üçündür: "bu çağırışa icazə varmı?" Onu istifadəçinin identity sübutu kimi qəbul etmək olmaz.

ID qəbul etməzdən əvvəl signature, iss, aud, exp və login request-də göndərilmiş nonce yoxlanmalıdır. nonce köhnə ID replay edilməsinin qarşısını alır.

OIDC bir identity provider-in bir çox application üçün login etməsinə, yəni SSO-ya imkan verir. Bu, və account deaktivasiyasını bir yerdə idarə etməyə imkan verir, amma identity provider-i ən dəyərli hədəfə çevirir.

Əlaqəli terminlər: , , ,

Phishing

İstifadəçini saxta mesaj və ya sayt vasitəsilə , kodu və ya başqa həssas məlumat verməyə, ya da zərərli faylı açmağa aldatmaq.

Phishing texniki sistemlərə yox, insanlara hücumdur. Attacker bank, IT departamenti, rəhbər və ya tanınmış SaaS adından mesaj göndərir; istifadəçi linkə keçir, saxta login səhifəsində password-ü daxil edir və ya əlavəni açır. Breach-lərin əksəriyyəti məhz belə başlayır.

Phishing inkişaf edib. Kütləvi, səhvlərlə dolu e-poçtlarla yanaşı, konkret şəxsə hazırlanmış spear phishing və real-time phishing proxy-ləri var: istifadəçi saxta saytda password və TOTP kodu daxil edir, proxy isə onları dərhal real sayta ötürür və session cookie-ni oğurlayır. Bu halda adi belə kömək etmir.

Müdafiə əsasən texniki olmalıdır, çünki insanlar nə vaxtsa səhv edəcək:

  • Phishing-resistant : passkey-lər və FIDO2 hardware key-ləri origin-ə bağlıdır və saxta domain-də işləmir.
  • E-poçt (SPF, DKIM, DMARC) və link filtering.
  • : bir account ələ keçiriləndə zərər məhdud qalır.
  • Yeni device-dan və ya qeyri-adi yerdən login-lər üçün detection.

Təlim faydalıdır, amma məqsəd insanları "heç vaxt klikləməyən" etmək deyil, şübhəli şeyi tez bildirməyə öyrətməkdir. Məlumat verən əməkdaşı günahlandırmaq gələcək hesabatları susdurur.

Ümumi səhv phishing-i istifadəçi problemi saymaqdır. Bir klik bütün şirkəti compromise edə bilirsə, bu, system design problemidir.

Əlaqəli terminlər: , , ,

Policy-as-code

Security və compliance qaydalarını kod kimi yazmaq və CI-də və ya zamanı avtomatik yoxlamaq; qaydaya uyğun gəlməyən dəyişiklik bloklanır.

Policy-as-code "public bucket yoxdur", "storage encrypt olunmalıdır", "container root kimi işləməməlidir" kimi qaydaları wiki səhifəsindən icra olunan koda çevirir. Qaydalar version control-da saxlanır, review olunur və test edilir.

Yoxlama bir neçə nöqtədə aparıla bilər:

  • CI-də: infrastructure as code dəyişikliyi merge olunmazdan əvvəl.
  • Admission zamanı: orchestrator signed olmayan və ya privileged image-i qəbul etmir.
  • Runtime-da: mövcud resource-lar davamlı olaraq qaydalara qarşı scan olunur.

Üstünlüyü ardıcıllıqdır: insan review-u yorulur və qaçırır, qayda isə hər dəyişikliyə eyni tətbiq olunur. Review-çu konkret qaydanı yoxlamaq əvəzinə design-a fokuslana bilir.

Ümumi səhv qaydaları çox sərt başlatmaqdır: hər şeyi bloklayan policy-lər tez bir zamanda "disable" edilir. Əvvəl warning rejimində başlayın, noise-u azaldın, sonra enforce edin. İstisnalar da kodda, səbəbi və bitmə tarixi ilə yazılsın.

Əlaqəli terminlər: , , ,

Ransomware

Sistemləri və data-nı encrypt edən, çox vaxt əvvəlcə data-nı kopyalayıb leak etməklə də hədələyən və geri qaytarmaq üçün fidyə tələb edən zərərli proqram.

Ransomware mütəşəkkil cinayətkarlığın ən gəlirli biznes modelidir. Klassik forması sadədir: zərərli proqram faylları və serverləri encrypt edir və decryption key üçün pul tələb edir. Bu, birbaşa attack-dir.

Müasir ransomware əməliyyatları daha mürəkkəbdir:

  • İlkin giriş çox vaxt , oğurlanmış və ya patch olunmamış edge device vasitəsilə olur, bəzən initial-access broker-lərdən satın alınır.
  • Attacker günlərlə şəbəkədə qalır, edir, admin hüquqları toplayır.
  • Backup-ları tapıb silir və ya encrypt edir.
  • Data-nı exfiltrate edir, sonra encrypt edir. Beləliklə ikiqat təzyiq yaranır: həm , həm də .

Ən vacib müdafiə backup-lardır: offline və ya immutable, attacker-in admin ilə də silinə bilməyən, və ən əsası, həqiqətən restore edərək test edilmiş. Recovery vaxtı demək olar ki, tamamilə buna bağlıdır, və bu tək control əksər detection investisiyalarından dəyərlidir.

Digər control-lar: , segmentation, privileged access-in məhdudlaşdırılması, ilkin mərhələlərdə detection.

Incident zamanı ransomware üçün demək olar ki, həmişə sürətli containment düzgündür. Ümumi səhvlər: backup-ları production ilə eyni domain və credential-larla saxlamaq, restore-u heç vaxt sınamamaq və təmizlənmiş sistemləri rebuild etmədən geri qaytarmaq.

Əlaqəli terminlər: , , ,

RBAC

Role-based access control: istifadəçilərə role-lar, role-lara isə permission-lar verilən modeli. Sadə, audit edilə bilən, amma kobud.

RBAC-də istifadəçi birbaşa permission almır; ona role verilir (viewer, editor, billing-admin), role isə permission-lar toplusudur. Kimin nə edə biləcəyini anlamaq üçün istifadəçinin role-larına baxmaq kifayətdir, bu da audit-i asanlaşdırır. Sistemlərin əksəriyyəti buradan başlamalıdır.

Onun məhdudiyyəti dənəvərlikdir. RBAC "editor sənədləri redaktə edə bilər" deyir, amma "yalnız öz komandasının sənədlərini, iş saatlarında" demək çətindir. Bunun üçün iki alternativ model var:

  • ABAC (attribute-based): qərarlar istifadəçinin, resource-un və kontekstin attribute-larına əsaslanır, məsələn, department, data , vaxt, device. Çox çevikdir, amma qaydaları mühakimə etmək və test etmək çətinləşir.
  • ReBAC (relationship-based): permission-lar graph-dakı əlaqələri izləyir: "sənədin owner-i", "qovluğa sahib olan komandanın üzvü". Google Zanzibar-ın və müasir sənəd paylaşma sistemlərinin arxasındakı model.

Praktikada çox vaxt hibrid yaranır: RBAC əsas çərçivəni verir, object-level check-lər isə ownership əlaqəsini yoxlayır.

Nümunə: SaaS-da "admin" role-u var. Sonra "yalnız faktura görən admin", "yalnız istifadəçi əlavə edən admin" lazım olur, və bir ildən sonra 40 role yaranır. Bu, role explosion adlanır və ABAC və ya ReBAC-a keçid siqnalıdır.

Ümumi səhv role-u tamamı saymaq və obyekt səviyyəsində ownership-i yoxlamamaqdır.

Əlaqəli terminlər: , , ,

Sandbox

Kodun və ya prosesin host sistemdən təcrid olunmuş, fayl, şəbəkə və resource access-i məhdudlaşdırılmış mühitdə icra edilməsi.

Sandbox etibar etmədiyiniz və ya tam nəzarət edə bilmədiyiniz kodu icra etmək üçün qurulmuş təcrid olunmuş mühitdir. İçəridəki proses yalnız açıq şəkildə icazə verilən fayllara, şəbəkə ünvanlarına və system call-lara çata bilir. Nəsə səhv getsə, zərər sandbox-un divarları daxilində qalır.

Sandbox-lar müxtəlif səviyyələrdə qurulur:

  • Browser-lər hər tab-ı ayrıca, imkanları məhdud prosesdə işlədir.
  • Container-lər və onların seccomp profilləri, daha güclü təcrid üçün gVisor və ya Firecracker kimi microVM-lər.
  • WebAssembly runtime-ları.
  • Ayrıca, qısaömürlü virtual maşınlar.

Bu anlayış ilə xüsusilə aktuallaşıb. kod yazıb icra edirsə, fayl sistemində əməliyyat aparırsa və ya ilə aldadıla bilirsə, onu sandbox-da işlətmək kiçiltməyin əsas yoludur. Sandbox-un şəbəkə egress-i də məhdudlaşdırılmalıdır, əks halda zərərli təlimat data-nı xaricə göndərə bilər.

Nümunə: istifadəçilərin yüklədiyi faylları emal edən image converter. Parser-də vulnerability olsa belə, sandbox daxilində attacker-in nə , nə daxili şəbəkəsi, nə də davamlı fayl sistemi olur.

Ümumi səhvlər: container-i tam sandbox saymaq, sandbox-a production mount etmək və geniş şəbəkə access-i vermək. Sandbox yalnız onun içinə qoyduğunuz qədər güclüdür.

Əlaqəli terminlər: , , ,

Secret

Sistemin access verdiyi və gizli qalmalı olan dəyər: , database password-ü, private key, signing key, . Kodda deyil, secrets manager-də saxlanılır.

Secret machine-lərin istifadə etdiyi : database password-ü, cloud access key, third-party , private key, signing key. Onları bilən hər kəs həmin sistemə access əldə edir.

Source repository-lərdə ən çox rast gəlinən kritik tapıntı commit edilmiş secret-dir. Repository klonlanır, fork olunur, CI log-larına düşür, və bir dəfə commit edilmiş secret git history-də qalır.

Əsas qaydalar:

  • Secret-lər heç vaxt source koda, repository-dəki config fayllarına, container image-lərinə və ya log-lara yazılmır.
  • Secrets manager istifadə olunur (Vault, cloud provider-in secret service-i) və secret-lər runtime-da inject edilir.
  • Hər commit pre-commit hook və CI-də secret pattern-ləri üçün scan olunur, push bloklanır.
  • Secret-lər avtomatik rotate olunur. Heç vaxt rotate edilməmiş secret rotate edilə bilməyən secret-dir, və bunu incident zamanı kəşf edəcəksiniz.
  • Scope minimaldır: hər service öz secret-ini alır, shared key-lər yoxdur.

Leak olanda ona dərhal compromise olunmuş kimi yanaşın: əvvəl rotate edin, sonra araşdırın. Secret-i git history-dən silmək leak-i geri qaytarmır; onu artıq kimsə klonlamış ola bilər.

Ən yaxşı secret heç olmayan secret-dir: workload identity ilə platform qısaömürlü avtomatik verir və uzunömürlü key saxlamağa ehtiyac qalmır.

Əlaqəli terminlər: , , ,

Security misconfiguration

Kod bug-ı deyil, səhv və ya default konfiqurasiya nəticəsində yaranan vulnerability: public storage, açıq port-lar, default credential-lar, production-da debug mode.

Security misconfiguration sistemin düzgün yazıldığı, amma səhv qurulduğu haldır. Kod təhlükəsiz ola bilər, lakin onu işlədən mühit qapını açıq qoyur.

Tipik nümunələr:

  • Public edilmiş storage bucket-də müştəri export-ları.
  • İnternet-ə açıq SSH, RDP və ya database port-u.
  • orchestrator API-si və ya admin dashboard.
  • Dəyişdirilməmiş default credential-lar.
  • Production-da debug mode və stack trace-li error səhifələri.
  • Həddindən artıq icazəli və ya IAM policy.

Cloud-da bu, breach-lərin ən çox rast gəlinən səbəbidir, çünki bir config sətri bütün data-nı internet-ə aça bilər, və scanner-lər bütün address space-i saatlar içində gəzir.

Müdafiə konfiqurasiyanı kod kimi idarə etməkdir: infrastructure as code, review, ilə avtomatik yoxlama, detection və davamlı posture scanning. Default-ları təhlükəsiz edin, istisnaları açıq qərar kimi sənədləşdirin.

Əlaqəli terminlər: , , , ,

Shadow API

Təşkilatın API inventarında və sənədlərində olmayan, buna görə də security control-larından kənarda qalan endpoint; köhnə, amma hələ işləyən versiyalar isə zombie API adlanır.

Shadow API-lər müxtəlif yollarla yaranır: debug üçün açılıb unudulmuş route, gateway-dən yan keçib birbaşa expose olunmuş service, komandanın sənədləşdirməyə ehtiyac duymadığı "daxili" endpoint. Onlar OWASP API Security Top 10 2023-də API9, yəni improper inventory management riskinin əsas hissəsidir.

Zombie API-lər onların qohumudur: rəsmi olaraq deprecate olunmuş, amma hələ də cavab verən köhnə versiyalar. /v2/users düzgün malikdir, /v1/users isə iki il əvvəlki kodla işləyir və attacker məhz onu çağırır.

Hər iki halda problem eynidir: bilmədiyiniz endpoint-i patch etmir, monitor etmir və test etmirsiniz.

Müdafiə:

  • İnventarı sənədlərdən yox, real trafikdən qurun: gateway log-larındakı route-ları OpenAPI spec-ləri ilə müqayisə edin.
  • Hər işləyən versiya eyni , və monitoring control-larına malik olsun, və ya söndürülsün.
  • Deprecation-un sonunda versiyanı həqiqətən söndürün və ona gələn trafiki alert kimi izləyin.

Əlaqəli terminlər: , ,

Shared responsibility model

Cloud provider ilə müştəri arasında security məsuliyyətinin bölgüsü: provider platform-u qoruyur, müştəri isə öz konfiqurasiyasını, identity-lərini və data-sını.

Shared responsibility model cloud-da "bunu kim qoruyur?" sualına cavab verir. Provider fiziki data center-lərə, hypervisor-a və idarə etdiyi service-lərin daxili hissəsinə cavabdehdir. Müştəri isə onların üzərində qurduğu hər şeyə cavabdehdir.

Sərhəd service modelinə görə dəyişir. IaaS-da OS patching, network konfiqurasiyası və runtime müştərinindir. PaaS və bu layer-lərin çoxu provider-ə keçir. SaaS-da müştəriyə ən az iş qalır. Amma iki şey heç vaxt provider-ə keçmir:

  • Kimin nəyə access-i olduğu: account-lar, role-lar, , permission-lar.
  • Data-nın özü: , kimlə paylaşıldığı, nə vaxt silindiyi.

Cloud breach-lərinin əksəriyyəti provider-in səhvi deyil, məhz müştəri tərəfindəki boşluqlardır: public bucket, wildcard policy, leak olmuş access key. Ümumi səhv "biz cloud-dayıq, security provider-in işidir" düşüncəsidir. Provider platform-un təhlükəsiz olmasını təmin edir; sizin onu təhlükəsiz istifadə etməyinizi yox.

Əlaqəli terminlər: , , ,

SQL injection

Untrusted input-un SQL query-yə concatenate edilərək data kimi yox, kod kimi icra olunduğu klassik injection vulnerability-si.

SQL injection injection sinfinin kanonik nümunəsidir: untrusted input downstream sistem tərəfindən kod kimi şərh edilir. Developer istifadəçi input-unu birbaşa query string-ə birləşdirəndə input-un özü query-nin strukturunu dəyişə bilir.

Məsələn, "SELECT * FROM users WHERE name = '" + name + "'" sətrində name dəyəri ' OR '1'='1 olarsa, şərt həmişə doğru olur və bütün istifadəçilər qaytarılır. Daha pis variantlarda attacker başqa cədvəlləri oxuyur, data-nı dəyişir və ya bəzi database-lərdə əmr icra edir.

Həll həmişə eynidir: data-nı və kodu bunun üçün nəzərdə tutulmuş interface vasitəsilə ayrı saxlamaq. Parameterised query-də query strukturu ayrıca, dəyərlər isə ayrıca göndərilir, və input heç vaxt kod kimi şərh olunmur. ORM-lər də default olaraq bunu edir, amma raw query yazan anda qoruma itir.

Eyni pattern başqa yerlərdə də təkrarlanır:

  • Shell əmrləri: string əvəzinə argument array-ləri.
  • LDAP və query-ləri.
  • Template-lər: auto-escaping.
  • Dil modellərinə göndərilən prompt-lar, yəni .

Validation və sanitisation ikinci dərəcəli müdafiədir. Escape funksiyaları ilə "təmizləmək" kontekstləri qaçırır.

Ümumi səhvlər: sütun adı və ORDER BY kimi parameterise oluna bilməyən hissələri birləşdirmək, və application-ın database user-inə lazımından çox icazə vermək.

Əlaqəli terminlər: , , ,

SSRF

Server-side request forgery: application-ın istifadəçinin verdiyi URL-i fetch etməsindən istifadə edib server-i daxili service-lərə və ya cloud metadata endpoint-lərinə yönəltmək.

SSRF application-ın xaricdən URL qəbul edib onu server tərəfdən fetch etdiyi hər yerdə yaranır: webhook-lar, link preview-lar, "URL-dən şəkil yüklə" , PDF generator-ları, import funksiyaları. Attacker xarici URL əvəzinə daxili ünvan verir və server onun adından request göndərir.

Bu təhlükəlidir, çünki server-in şəbəkə mövqeyi attacker-inkindən daha privileged-dir. Server daxili admin panel-lərə, firewall arxasındakı database-lərə və ən əsası cloud metadata endpoint-inə (169.254.169.254) çata bilir. Cloud mühitlərində metadata endpoint-i instance-ın IAM qaytara bilər, və SSRF birbaşa cloud account-unun ələ keçirilməsinə çevrilir.

Müdafiə layer-ləri:

  • Destination-lar üçün : yalnız gözlənilən host-lar.
  • Private və link-local address range-lərini bloklamaq, DNS resolve-dan sonra yoxlamaqla, çünki attacker daxili IP-yə resolve olan domain istifadə edə bilər.
  • Redirect-ləri izləməmək və ya hər redirect-i yenidən yoxlamaq.
  • Fetch əməliyyatını privileged şəbəkə mövqeyi olmayan, təcrid olunmuş service-də icra etmək.
  • Cloud-da metadata service-in session tələb edən versiyasını (məsələn, IMDSv2) istifadə etmək.

Ümumi səhvlər: yalnız URL string-ini regex ilə yoxlamaq, IPv6 və onluq IP formatlarını unutmaq, və fetch edən service-ə geniş IAM role-u vermək.

Əlaqəli terminlər: , , ,

STRIDE

Altı threat kateqoriyasının qısaltması: Spoofing, Tampering, Repudiation, Information disclosure, Denial of service, Elevation of privilege. sistemli yoxlama üçün istifadə olunur.

STRIDE zamanı "nə səhv gedə bilər?" sualını sistemli etmək üçün mnemonik qısaltmadır. Hər hərf bir threat kateqoriyasıdır və hər biri bir security xassəsini pozur:

  • Spoofing: başqası kimi özünü göstərmək. Authenticity-ni pozur; ilə mitigate olunur.
  • Tampering: data-nı aşkarlanmadan dəyişdirmək. pozur; check-ləri və yazmada ilə.
  • Repudiation: etdiyini inkar etmək. Accountability-ni pozur; ilə.
  • Information disclosure: görməməli olduğu data-nı görmək. pozur; və access control ilə.
  • Denial of service: sistemi əlçatmaz etmək. pozur; və capacity ilə.
  • Elevation of privilege: icazəsi olmayan şeyi etmək. pozur; hər boundary-də check-ləri ilə.

İstifadə qaydası: götürün və hər elementi, xüsusilə keçən hər oxu altı sualla gəzin. "Browser → API" üçün: request başqa istifadəçi adından saxtalaşdırıla bilərmi (CSRF)? Parametrlər dəyişdirilə bilərmi? Response artıq data qaytarırmı? Bir client API-ni tükəndirə bilərmi? ID dəyişmək admin davranışı verirmi?

Nəticə konkret elementlərə bağlanmış threat siyahısıdır; orta ölçülü sistem üçün onlarla.

STRIDE-ın zəif tərəfi zəncirlənmiş attack-ləri qaçırmasıdır, buna görə onu ilə tamamlamaq faydalıdır. Ümumi səhv onu bir dəfəlik workshop kimi keçirməkdir.

Əlaqəli terminlər: , , , ,

Supply chain

Sizin qurmadığınız, amma asılı olduğunuz hər şey: dependency-lər, build tool-ları, CI action-ları, container image-ləri, modellər və dataset-lər. Attacker onları hədəf ala bilər.

Supply chain attack-də attacker sizin kodunuza deyil, sizin istifadə etdiyiniz koda hücum edir. Application-lar əsasən başqalarının kodundan ibarətdir və hər dependency, hər build plugin-i, hər CI action-ı öz kodunu sizin pipeline-ınızda, sizin icra edir.

Tipik ssenarilər:

  • Populyar package-in maintainer account-u ələ keçirilir və zərərli versiya publish olunur.
  • Typosquatting: məşhur library adına bənzər adla zərərli package.
  • Zəhərlənmiş CI action-ı və ya build plugin-i oğurlayır.
  • Third-party model, dataset və ya backdoor daşıyır.
  • Köhnəlmiş, məlum vulnerability-si olan library birbaşa giriş yolu olur.

Müdafiə tədbirləri:

  • Dependency versiyalarını pin etmək və checksum-ları verify etmək.
  • Lockfile-lardan istifadə etmək və onlardakı dəyişiklikləri review etmək.
  • Az transitive dependency-si olan, aktiv maintain olunan library-lərə üstünlük vermək.
  • Dependency scanning və software bill of materials.
  • CI runner-lərinin çata bildiklərini məhdudlaşdırmaq; onlar privileged mövqedir.
  • sign etmək və zamanı verify etmək; reproducible build-lər.

Nümunə: CI-da istifadə olunan action-ın tag-i attacker tərəfindən yeni commit-ə yönəldilir və o, environment-dəki bütün log-a çıxarır. Action commit SHA ilə pin edilsəydi, bu baş verməzdi.

Ümumi səhv lockfile dəyişikliklərini "avtomatik yenilənmə" deyə review etmədən merge etməkdir.

Əlaqəli terminlər: , , , ,

System prompt leakage

məzmununun istifadəçiyə və ya attacker-ə üzə çıxması; əsl risk orada saxlanmamalı olan və security məntiqidir.

System prompt leakage OWASP Top 10 for Applications siyahısında LLM07-dir. Model-dən təkrarlamasını, tərcümə etməsini və ya "debug üçün" göstərməsini istəmək çox vaxt işləyir, və bunun qarşısını etibarlı şəkildə almaq mümkün deyil.

Buna görə də düzgün yanaşma qarşısını almaq yox, onun zərərsiz olmasını təmin etməkdir. public sənəd kimi qəbul edin.

Orada olmamalı olanlar:

  • , password, connection string və digər .
  • Daxili URL-lər və infrastructure detalları.
  • məntiqi: "istifadəçi admin-dirsə, bu məlumatı göstər" kimi qaydalar.
  • Filter və qaydalarının tam siyahısı, əgər onların bilinməsi bypass-ı asanlaşdırırsa və başqa control yoxdursa.

Əgər üzə çıxması təhlükəlidirsə, problem deyil, dizayndadır. , isə model-dən kənarda, kodda olmalıdır. Model istifadəçinin permission-larından artıq heç nəyə çata bilməməlidir; o zaman oxuyan attacker heç nə qazanmır.

Əlaqəli terminlər: , , , ,

Threat actor

Sistemə hücum edə biləcək şəxs və ya qrup; imkanları və motivi ilə xarakterizə olunur və nəyə qarşı müdafiə olunmalı olduğunuzu müəyyən edir.

Threat actor "kimdən qorunuruq?" sualının cavabıdır. Actor-lar imkan və motiv baxımından kəskin fərqlənir, və bu fərq müdafiə büdcəsinin hara getməli olduğunu göstərir.

Əsas kateqoriyalar:

  • Fürsətçi cinayətkarlar. Tez pul üçün avtomatlaşdırılmış scanning, məlum exploit-lər, kit-ləri.
  • Mütəşəkkil cinayətkarlıq. əməliyyatları, initial-access broker-lər, səbirli social engineering.
  • Insider-lər. Narazılıq, pul və ya sadəcə səhv; qanuni və daxili bilikləri var.
  • Hacktivist-lər. Diqqət və ideologiya; defacement, leak-lər, denial of service.
  • Dövlət dəstəkli qruplar. Casusluq və pozuntu; zero-day-lər, compromise-i, illərlə səbir.

Praktik nəticə: təşkilatların əksəriyyəti heç vaxt dövlət actor-u ilə üzləşməyəcək və sanki üzləşəcəkmiş kimi xərcləməməlidir. Amma demək olar ki, hər təşkilat fürsətçi cinayətkarlıqla fasiləsiz üzləşir və elə indi scan edildiyini fərz etməlidir. Bu o deməkdir ki, əsas gigiyena (patch-lər, , kodda olmaması) ekzotik müdafiələrdən daha vacibdir.

zamanı actor-u adlandırmaq threat-ləri realist edir: "kənar attacker" yerinə "oğurlanmış support olan cinayətkar" daha konkret sual yaradır.

Ümumi səhvlər: insider-ləri, xüsusilə səhvən zərər verən əməkdaşları nəzərə almamaq, və ya əksinə, yalnız ən güclü actor-a qarşı plan qurub əsasları unutmaq.

Əlaqəli terminlər: , , ,

Threat model

Sistem üçün dörd suala cavab verən praktika: nə qururuq, nə səhv gedə bilər, bununla bağlı nə edəcəyik və işi yaxşı gördükmü.

Threat modelling ən yüksək təsir gücünə malik security fəaliyyətidir, çünki kod yazılmazdan əvvəl, design qüsurunu düzəltməyin migration yox, lövhə silgisi qədər ucuz olduğu vaxtda baş verir. Onun nəticəsi, yəni threat model, sistemə qarşı real threat-lərin və onlara verilən cavabların canlı sənədidir.

Proses dörd suala ardıcıl cavab verir:

  • Nə qururuq? olan .
  • Nə səhv gedə bilər? Hər boundary keçidinə tətbiq etmək; yüksək dəyərli hədəflər üçün .
  • Nə edəcəyik? Hər threat üçün dörd cavabdan biri: mitigate, eliminate, transfer və ya accept. Prioritet sadə balla: ehtimal × impact.
  • İşi yaxşı gördükmü? Mitigation-ları test etmək; " ilə mitigate olunub" deyilirsə, işlədiyini sübut edən test olmalıdır.

Qəbul edilmiş risk-lər yazılı olmalıdır: səbəb, qəbul edən şəxs və yenidən baxılma tarixi.

Threat model sistem dəyişən anda köhnəlir. Ona yeni əlavə olunanda, yeni data kateqoriyası yarananda, incident-dən sonra və ən azı ildə bir dəfə qayıdın.

Uğurlu komandalarda bu, vərdişdir: hər design sənədinin qısa "threat-lər" bölməsi var, developer-lər otuz dəqiqəlik keçidini özləri edir. Ümumi səhv onu konsultantla birdəfəlik workshop-a çevirmək və ya mükəmməl model axtarışında heç başlamamaqdır.

Əlaqəli terminlər: , , , ,

Timing attack

Əməliyyatın nə qədər vaxt apardığını ölçərək haqqında məlumat çıxaran side-channel attack.

Timing attack kodun cavab vermə vaxtının input-dan asılı olmasından istifadə edir. Klassik nümunə və ya adi string müqayisəsi ilə yoxlanmasıdır: müqayisə ilk fərqli simvolda dayanır, ona görə də düzgün başlayan təxmin bir az daha uzun çəkir. Kifayət qədər çox ölçmə ilə attacker dəyəri simvol-simvol bərpa edə bilər.

Daha geniş yayılmış forma isə account enumeration-dur. Login endpoint-i mövcud olmayan istifadəçi üçün dərhal cavab verir, mövcud olan üçün isə yavaş password hesablayır. Error mesajı eyni olsa belə, vaxt fərqi hansı email-lərin qeydiyyatda olduğunu göstərir.

Müdafiə:

  • , və crypto library-nin constant-time müqayisə funksiyası ilə yoxlayın.
  • Login və password reset-də hər iki yolda eyni işi görün: istifadəçi tapılmasa da hesablayın və eyni cavabı qaytarın.
  • attacker-in ehtiyac duyduğu ölçmələrin sayını məhdudlaşdırır.

Əlaqəli terminlər: , ,

TLS

Şəbəkə bağlantısını encrypt edən və server-in identity-sini certificate ilə sübut edən protokol; HTTPS-in əsası.

TLS iki tərəf arasındakı bağlantıya üç xassə verir: (trafiki kənar şəxs oxuya bilmir), (trafik yolda dəyişdirilə bilmir) və server (client həqiqətən gözlədiyi server ilə danışır). Handshake zamanı asymmetric kriptoqrafiya ilə session key razılaşdırılır, sonrakı trafik isə symmetric authenticated ilə ötürülür.

Server-in identity-si certificate ilə sübut olunur: etibarlı certificate authority server-in public key-ini domain adına bağlayır. Client certificate zəncirini, domain adını və müddətini yoxlamalıdır. Bu yoxlama söndürüləndə TLS hələ də encrypt edir, amma kiminlə danışdığınızı bilmirsiniz; man-in-the-middle attacker-i öz certificate-ini təqdim edib bütün trafiki oxuya bilir.

Praktik baseline:

  • TLS 1.2 minimum, TLS 1.3 üstünlük; SSL və TLS 1.0/1.1 söndürülür.
  • HTTPS hər yerdə, HSTS ilə.
  • Certificate-lər avtomatik yenilənir, expire olmuş certificate səbəbindən validation söndürülmür.
  • Daxili service-lərarası trafik də TLS ilə gedir.

Ümumi səhv "test üçün" söndürülmüş certificate validation-un production-a çatmasıdır. Bu kod code review-da və scanning-ə bənzər avtomatik check-lərlə axtarılmalıdır.

Əlaqəli terminlər: , , , ,

Trust boundary

Sistemdə trust səviyyəsinin dəyişdiyi xətt, məsələn, internet ilə API, service ilə database, tenant ilə tenant arasında. Threat-lər məhz bu keçidlərdə yaşayır.

Trust boundary iki tərəfin bir-birinə eyni dərəcədə etibar etmədiyi sərhəddir. İnternet ilə DMZ arasında, browser ilə API arasında, application ilə database arasında, A tenant-ı ilə B tenant-ı arasında, hətta AI modeli ilə onun oxuduğu xarici sənəd arasında belə bir xətt var.

məğzi bu xətlərdir. Boundary-ni keçən hər data flow az etibar edilən tərəfdəki attacker-in daha çox etibar edilən tərəfə təzyiq göstərə biləcəyi yerdir. onlar nöqtəli xətlərlə çəkilir və ilk növbədə bu keçidlərə tətbiq olunur.

Praktik qaydalar:

  • Boundary-ni keçən hər şey, istər şəbəkədən, istər istifadəçidən, istər fayldan, istərsə də başqa service-dən gəlsin, validate olunana qədər düşməndir.
  • Validation, və boundary-nin etibarlı tərəfində olur, client-də yox.
  • Boundary-dən çıxan data üçün output encoding və minimal məlumat.

Nümunə: frontend yalnız istifadəçinin öz ID-sini göndərir deyə backend onu yoxlamır. Amma browser boundary-nin etibarsız tərəfindədir və istifadəçi request-i istədiyi kimi dəyişə bilər.

Yeni boundary yarananda (yeni integration, yeni tenant tipi, yeni target-i, model-ə verilən yeni tool) yenidən baxmaq lazımdır. Ümumi səhv daxili service-lər arasındakı boundary-ləri görməməkdir: "daxili şəbəkədir" fərziyyəsi rədd etdiyi köhnə perimeter modelidir.

Əlaqəli terminlər: , , , ,

XSS

Cross-site scripting: untrusted input-un veb səhifəyə HTML və ya script kimi render olunub digər istifadəçilərin browser-lərində icra olunduğu vulnerability.

XSS veb üçün injection-dur. Attacker istifadəçi məzmununa (şərh, profil adı, URL parametri) script yerləşdirir, application isə onu escape etmədən səhifəyə render edir. Nəticədə attacker-in kodu qurbanın browser-ində, qurbanın session-u ilə, saytın origin-i adından işləyir: session oğurlaya, istifadəçi adından hərəkətlər edə, səhifəni saxta login formasına çevirə bilər.

React, Vue, Angular kimi müasir framework-lər default olaraq output-u escape edir, buna görə XSS əsasən bu qoruma qəsdən söndürüləndə yenidən ortaya çıxır:

  • dangerouslySetInnerHTML, v-html və ya birbaşa innerHTML istifadəsi.
  • HTML-i string-lərdən əl ilə qurmaq.
  • İstifadəçi məzmununu framework-ün əhatə etmədiyi kontekstlərdə render etmək: href attribute-u (javascript: URL-ləri), inline style, script daxilində JSON.

Müdafiə:

  • Kontekstə uyğun output encoding: HTML, attribute, URL və JavaScript kontekstləri fərqli encoding tələb edir.
  • Raw HTML lazımdırsa, sübut olunmuş sanitizer library-si ilə əsaslı təmizləmək.
  • Sərt Content Security Policy, inline script-ləri qadağan edən.
  • Session cookie-lərini HttpOnly etmək ki, script onları oxuya bilməsin.
  • Hər raw-HTML render-ini security review üçün səbəb saymaq.

Ümumi səhv input-u saxlama zamanı encode etməyə çalışmaqdır: bu, data-nı pozur və yenə də render kontekstlərini qaçırır.

Əlaqəli terminlər: , , ,

Zero trust

Şəbəkə mövqeyinə etibarı fasiləsiz verification ilə əvəz edən yanaşma: hər request identity, device health və kontekst əsasında authenticate və authorize olunur.

Köhnə model şəbəkə perimeter-i daxilindəki hər şeyə etibar edirdi: VPN-ə qoşulmusansa, "içəridəsən". Remote iş, cloud service-lər və attacker-lərin bu modeli mənasız etdi. Zero trust bunun əvəzinə hər request-i, haradan gəlməsindən asılı olmayaraq, eyni şübhə ilə qarşılayır.

Praktikada zero trust bu elementlərdən ibarətdir:

  • İstifadəçilər və workload-lar üçün güclü identity: , workload identity, qısaömürlü credential-lar.
  • Access-dən əvvəl device posture check-ləri: device patch olunub, disk encrypt olunub, şirkət tərəfindən idarə olunur.
  • Flat şəbəkəyə VPN əvəzinə per-application access.
  • Micro-segmentation: compromise olunmuş service hər şeyə çata bilmir.
  • Hər access qərarının log-lanması.

Nümunə: əməkdaş internal wiki-yə açır. Köhnə modeldə VPN kifayət idi. Zero trust modelində identity provider istifadəçini ilə yoxlayır, device-ın managed olduğunu təsdiqləyir, və yalnız wiki-yə access verir, bütün şəbəkəyə yox. Laptop oğurlansa və ya malware yoluxsa, attacker başqa sistemlərə avtomatik çatmır.

Zero trust product deyil, istiqamətdir. Heç bir vendor onu qutuda satmır. Ən yüksək dəyərli application-lardan və ən privileged istifadəçilərdən başlayın.

Ümumi səhvlər: onu yalnız şəbəkə layihəsi saymaq, service-to-service trafikini unutmaq və hər addımda tələb edərək istifadəçiləri bezdirmək; yaxşı zero trust çox vaxt görünməzdir.

Əlaqəli terminlər: , , , ,