Rezultātos balstīta kiberdrošība.

Tēma

Pieteikt konsultāciju

Ko jūs saņemat

Ziņojums, pēc kura var rīkoties — nevis skenera datu kaudze

Katrs projekts noslēdzas ar gala dokumentu, ko var izmantot gan jūsu inženieri, gan jūsu valde: ietekmes pierādījums, aizstāvama nopietnība un novēršanas ceļš. Zemāk ir pilns parauga ziņojums izdomātam klientam, ACME Corporation.

Ielaušanās tests ir tik labs, cik labs ir tas, kas pēc tam nonāk uz jūsu galda. Neapstrādāti rīku rezultāti un CVSS izklājlapas nenovērš ievainojamības — to dara skaidri, pierādījumos balstīti atklājumi ar atkārtojamu pierādījumu un konkrētu novēršanu.

Mūsu ziņojumi tiek ģenerēti ar mūsu pašu izstrādātu ziņošanas dzinēju, tāpēc katrs projekts ir konsekvents, versionēts un divvalodīgs (EN/LV). Tas pats dokuments kalpo divām auditorijām: vienkāršā valodā rakstītu kopsavilkumu vadībai lēmumu pieņēmējiem un pilnu tehnisko detaļu — pieprasījumus, atbildes, slodzes un ekrānuzņēmumus — inženieriem, kas problēmas novērš.

Uzbūve

Kas ir katrā OffSeq ziņojumā

Konsekventa struktūra ik reizi — pēc izvēles iekļaujamas nodaļas mērogojas no fokusēta ielaušanās testa līdz pilnam red team projektam.

  1. 01

    Vāks un projekta metadati

    Klients, projekts, dokumenta ID, versija, testa veids un TLP klasifikācija — izsekojami un audita gatavi.

  2. 02

    Kopsavilkums vadībai

    Konteksts, galvenie atklājumi, ieteikumi un go/no-go slēdziens vienkāršā valodā vadībai.

  3. 03

    Apjoms un metodoloģija

    Tieši kas bija apjomā un ārpus tā, testa logs un standarti, kurus ievērojām (OSSTMM, PTES, OWASP WSTG).

  4. 04

    Nopietnības un riska modelis

    CVSS 3.1/4.0 vērtējums, nopietnības skala un pieņemamības sliekšņi — lai skaitlis nozīmētu vienu un to pašu ik reizi.

  5. 05

    Rekognoscēšana

    Publiskā uzbrukuma virsma, ko kartējām — apakšdomēni, atklātie resursdatori un informācijas noplūde.

  6. 06

    Atklājumi ar pierādījumiem

    Katra problēma: apraksts, ietekme, tehniskā detaļa, HTTP pieprasījums/atbilde, slodzes, ekrānuzņēmumi un labojums.

  7. 07

    OWASP un atbilstības sasaiste

    Atklājumi sasaistīti ar OWASP Top 10 (2025) un, kur attiecināms, ar NIS2 / ISO 27001 kontrolēm.

  8. 08

    Uzbrukuma ceļa kopsavilkums

    Kā atsevišķi atklājumi sasaistās reālā, demonstrējamā ielaušanā — sakārtoti pēc ietekmes uz biznesu.

  9. 09

    Novēršanas plāns

    Prioritizēti, praktiski labojumi — ko darīt vispirms un kas var pagaidīt.

  10. 10

    Atkārtots tests un pārbaude

    Sekojošs caurlaidums, kas apstiprina, ka katrs atklājums patiešām ir slēgts, ar atjauninātu statusu.

Parauga projekts

ACME Corporation — klientu portāls un API

Izdomāts klients · ilustratīvi dati · atveidots, lai atbilstu reālam OffSeq ziņojumam

Parauga ziņojums OFFSEQ-2026-0042 TLP:AMBER+STRICT Konfidenciāli
Gray-box

ACME Corporation

Klientu portāla un API drošības projekts

2026. gada 17. aprīlis v1.0 OFFSEQ-2026-0042

Testa logs
23. marts – 16. aprīlis 2026
Testa veids
Gray-box tīmeklis un API
Mērķi
portal.acme.example · api.acme.example
Standarti
OWASP WSTG · PTES · OSSTMM
Speciālisti
2 (sertificēti)
Klasifikācija
TLP:AMBER+STRICT

1Kopsavilkums vadībai

Konteksts

OffSeq veica ACME klientu portāla un tā publiskā API gray-box drošības novērtējumu. Testēšana apvienoja automatizētu skenēšanu ar manuālu ievainojamību izmantošanu; autentificētā daļa tika sasniegta, izmantojot pagaidu portāla akreditācijas datus, ko nodrošināja klients.

Galvenie atklājumi

  • Kritiska, neautentificēta SQL injekcija pieteikšanās API ļauj pilnībā apiet autentifikāciju un iegūt lasīšanas piekļuvi lietotāju krātuvei.
  • Piekļuves kontroles kļūda (IDOR) ļauj jebkuram autentificētam lietotājam lejupielādēt katra klienta rēķinus — masveida datu atklāšanas ceļš.
  • Dziļumaizsardzības trūkumi: nav satura drošības politikas (CSP), HSTS zem viena gada un ražošanā joprojām lietots, ārpus dzīves cikla esošs React komplekts.

Prioritārie ieteikumi

  • Parametrizējiet visu datubāzes piekļuvi un pievienojiet vismazāko privilēģiju DB kontus; izturieties pret SQL injekciju kā pret P1 incidentu.
  • Ieviesiet objektu līmeņa autorizāciju katram API resursam un pārejiet uz neuzskaitāmiem identifikatoriem.
  • Izvietojiet CSP (report-only → enforce), paaugstiniet HSTS līdz ≥ 1 gadam ar preload un plānojiet React migrāciju.

Īsumā

Tika identificēti seši atklājumi: viens (1) Kritisks, viens (1) Augsts, viens (1) Vidējs, divi (2) Zemi un viens (1) Informatīvs. Kritiskais un Augstais atklājums tieši sasaistās ar klientu PII un finanšu ierakstu masveida atklāšanu.

Portāls nav atļauts ražošanas palaišanai, kamēr Kritiskā SQL injekcija un Augstas nopietnības IDOR nav novērsti un pārbaudīti ar atkārtotu testu. Pārējie punkti ir dziļumaizsardzības stiprināšana.

2Ievainojamību kopsavilkums

Nopietnība Atrasti Pieņemami Slēdziens
Kritisks 1 0 Nepieņemami
Augsts 1 ≤ 1 Pieļaujamās robežās
Vidējs 1 ≤ 3 Pieļaujamās robežās
Zems 2 ≤ 7 Pieļaujamās robežās
Informatīvs 1
Kopējais slēdziens Nepieciešama novēršana

Viens Kritisks atklājums pārsniedz pieņemamo slieksni, nosakot kopējo “nepieciešama novēršana” slēdzienu neatkarīgi no pārējām kategorijām.

3OWASP Top 10 (2025) pārklājums

  • A01:2025 Bojāta piekļuves kontrole IDOR uz /v1/invoices Neatbilst
  • A02:2025 Drošības konfigurācijas kļūdas Trūkst CSP, īss HSTS Neatbilst
  • A03:2025 Programmatūras piegādes ķēdes kļūmes Ārpus dzīves cikla React 16.13.1 Neatbilst
  • A04:2025 Kriptogrāfijas kļūmes Atbilst
  • A05:2025 Injekcija SQL injekcija autentifikācijas API Neatbilst
  • A06:2025 Nedrošs dizains Atbilst
  • A07:2025 Autentifikācijas kļūmes Atbilst
  • A08:2025 Programmatūras vai datu integritātes kļūmes Atbilst
  • A09:2025 Žurnalēšanas un brīdināšanas kļūmes Ārpus šī projekta apjoma N/P
  • A10:2025 Izņēmuma situāciju nepareiza apstrāde Atbilst

4Rekognoscēšana

Pasīvā rekognoscēšana kataloģizēja portāla publisko uzbrukuma virsmu. Trīs apakšdomēni atrisinās uz portāla avotu aiz CloudFlare; viens administratīvais resursdators atrisinās tieši, pilnībā apejot WAF.

Resursdators IP Piezīme
portal.acme.example 203.0.113.10 Galvenais portāls · aiz CloudFlare
api.acme.example 203.0.113.11 Publiskais API
admin.acme.example 203.0.113.12 Tiešais avots — apiet WAF
status.acme.example 203.0.113.13 Statusa lapa · detalizēti būvējuma metadati
  • Statusa lapa publicē detalizētus būvējuma metadatus (git SHA, būvējuma datums).
  • Divi staging apakšdomēni (stg-*) bija aktīvi testa loga laikā.

5Atklājumi

Seši reprezentatīvi atklājumi, sakārtoti pēc nopietnības. Katrs ir atkārtojams un sasaistīts ar labojumu.

  1. OS-01

    Neautentificēta SQL injekcija portāla autentifikācijas API

    Kritisks Atvērts A05:2025 CWE-89
    9.8 CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H CVSS 3.1

    Pieteikšanās galapunkta lauks `email` tiek tieši savienots SQL vaicājumā bez parametrizācijas. Uz laiku balstīta akla injekcija apstiprina kļūdu un ļauj gan apiet autentifikāciju, gan patvaļīgi lasīt tabulu `users` — ieskaitot e-pasta adreses, lomas un bcrypt paroļu jaucējvērtības.

    Skartie

    • POST https://api.acme.example/v1/auth/login

    Ietekme

    Neautentificēts uzbrucējs var pieteikties kā jebkurš lietotājs (ieskaitot administratorus) un izvilkt visu klientu identitātes krātuvi. Tas ir viena pieprasījuma ceļš uz pilnu konta pārņemšanu un ziņojams personas datu pārkāpums saskaņā ar GDPR.

    Tehniskā detaļa

    5 sekunžu atbildes aizture uz zemāk redzamās slodzes, salīdzinot ar tūlītēju atbildi uz kontroles vaicājumu, apstiprina uz laiku balstītu aklu injekciju:

    HTTP pieprasījums

    POST /v1/auth/login HTTP/2
    Host: api.acme.example
    Content-Type: application/json
    
    {"email":"x' OR (SELECT 1 FROM (SELECT SLEEP(5))a)-- -","password":"x"}
    

    HTTP atbilde

    HTTP/2 200
    content-type: application/json
    x-response-time: 5024ms
    
    {"token":"eyJhbG...","role":"admin"}
    

    Novēršana

    Aizstājiet visus ar virkņu savienošanu veidotos vaicājumus ar parametrizētiem priekšapstrādātiem vaicājumiem. Palaidiet aplikāciju ar vismazāko privilēģiju datubāzes kontu, pievienojiet pozitīvas validācijas ievades filtru un izvietojiet WAF noteikumu kā kompensējošu kontroli, kamēr labojums tiek piegādāts. Nomainiet visus akreditācijas datus, kas varētu būt atklāti.

    sqlmap identified the following injection point:
    Parameter: email (JSON)
        Type: time-based blind
        Title: MySQL >= 5.0.12 AND time-based blind (SLEEP)
    available databases [2]: acme_portal, information_schema
    Database: acme_portal  Table: users  [48,213 entries]
    
    sqlmap apstiprinājums (rediģēts)
  2. OS-02

    Bojāta piekļuves kontrole atklāj katra klienta rēķinus (IDOR)

    Augsts Atvērts A01:2025 CWE-639
    8.1 CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:L/A:N CVSS 3.1

    Rēķinu ieraksti tiek adresēti ar secīgu veselu skaitļu ID un pasniegti bez jebkādas īpašumtiesību pārbaudes. Jebkurš autentificēts lietotājs var palielināt identifikatoru, lai uzskaitītu un lejupielādētu citiem klientiem piederošus rēķinus, no kuriem katrs satur vārdus, adreses un maksājumu kopsavilkumus.

    Skartie

    • GET https://api.acme.example/v1/invoices/{id}

    Ietekme

    Viens zema privilēģiju konts var savākt visu klientu bāzes rēķinu vēsturi — liela mēroga personas un finanšu datu atklāšana un GDPR ziņojams pārkāpums.

    HTTP pieprasījums

    GET /v1/invoices/100245 HTTP/2
    Host: api.acme.example
    Authorization: Bearer <attacker-session>
    

    HTTP atbilde

    HTTP/2 200
    content-type: application/pdf
    content-disposition: attachment; filename="invoice-100245.pdf"
    
    %PDF-1.7  (rēķins *citam* klientam)
    

    Novēršana

    Ieviesiet objektu līmeņa autorizāciju katram pieprasījumam — pārbaudiet servera pusē, ka autentificētais subjekts ir pieprasītā resursa īpašnieks. Aizstājiet secīgos ID ar neuzskaitāmiem identifikatoriem (UUIDv4) un piemērojiet noklusēti-liegtu piekļuves kontroli.

    for id in $(seq 100240 100260); do
      curl -s -o "inv-$id.pdf" -w "%{http_code}\n" \
        -H "Authorization: Bearer $T" \
        https://api.acme.example/v1/invoices/$id
    done
    # 21/21 atgrieza HTTP 200 — neviens nepiederēja testa kontam.
    
    Uzskaites cikls (mēroga pierādījums)
  3. OS-03

    Satura drošības politika (CSP) nav ieviesta

    Vidējs Nepieciešama stiprināšana A02:2025 CWE-693
    4.0 CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:U/C:L/I:L/A:N CVSS 3.1

    Aplikācija neatgriež `Content-Security-Policy` galveni nevienā lapā, kas novērota testēšanas laikā.

    Skartie

    • https://portal.acme.example/
    • https://portal.acme.example/users/sign_in
    • https://portal.acme.example/admin/*

    Ietekme

    Bez CSP pārlūks nevar ierobežot atstaroto vai uzglabāto XSS, trešo pušu skriptu ielādi no kompromitēta CDN vai datu izvilkšanu pēc veiksmīgas injekcijas. Tas noņem būtisku dziļumaizsardzības slāni.

    HTTP atbilde

    HTTP/2 200
    content-type: text/html; charset=utf-8
    strict-transport-security: max-age=15552000
    x-frame-options: DENY
    x-content-type-options: nosniff
    (nav Content-Security-Policy galvenes)
    

    Novēršana

    Izvietojiet stingru CSP, sākot ar pieteikšanās un administratora lapām, vispirms `Content-Security-Policy-Report-Only` režīmā, tad ieviešot piespiedu kārtā. Izvairieties no `unsafe-inline` skriptiem; izvēlieties nonces vai jaucējvērtības.

  4. OS-04

    Novecojusi JavaScript bibliotēka — React 16.13.1

    Zems Ieteicams atjauninājums A03:2025 CWE-1104

    Ražošanas komplekts piegādā React 16.13.1 (2020. gada marts), krietni pēc tā atbalstītā dzīves cikla. Lai gan tam nav zināmu tiešu CVE, ārpus dzīves cikla esoši ietvari mēdz vilkt līdzi vecākas tranzitīvas atkarības ar zināmām problēmām.

    Skartie

    • https://portal.acme.example/assets/application-90283b17.js

    Ietekme

    Neatbalstīta ietvara izmantošana palielina iespējamību, ka ražošanā nonāk neielāpota ievainojamība caur tranzitīvu atkarību.

    Novēršana

    Ieviesiet nepārtrauktu atkarību pārskati (Dependabot / Renovate), pievienojiet programmatūras sastāva analīzi (SCA) CI un plānojiet migrāciju uz React 18/19.

  5. OS-05

    HSTS max-age ir zem viena gada

    Zems Nepieciešama stiprināšana A02:2025 CWE-16

    Galvene `Strict-Transport-Security` tiek sūtīta ar `max-age=15552000` (180 dienas), kas ir zem viena gada minimuma, kas ieteicams HSTS preload.

    Skartie

    • https://portal.acme.example/

    Ietekme

    Īss `max-age` saīsina logu, kurā pārlūks atsakās no vienkārša HTTP, nedaudz paplašinot iespēju SSL-stripping uzbrukumam.

    Novēršana

    Iestatiet `Strict-Transport-Security: max-age=63072000; includeSubDomains; preload` un iesniedziet domēnu HSTS preload sarakstā.

  6. OS-06

    Publiski pieejams rekursīvs DNS atrisinātājs

    Informatīvs Informatīvs

    Portāla resursdators atbild uz rekursīviem DNS vaicājumiem par svešām zonām no neautorizētām avota adresēm (iestatīti RD+RA karodziņi).

    Skartie

    • 203.0.113.10:53

    Ietekme

    Atvērtos atrisinātājus var ļaunprātīgi izmantot kā pastiprinātājus atstarotos DDoS uzbrukumos pret trešajām pusēm. Nav tieša riska ACME datiem, reģistrēts pilnīguma labad.

    Novēršana

    Ierobežojiet UDP/TCP 53 perimetrā līdz autorizētiem klientiem vai atspējojiet rekursiju publiskajai saskarnei.

Uzbrukuma ceļš

Kā atklājumi sasaistās ielaušanā

Atsevišķi atklājumi nozīmē mazāk nekā tas, ko tie kopā ļauj sasniegt. Šī ir secība, ko mēs demonstrējām — no virsmas kartēšanas līdz masveida datu atklāšanai.

Rekognoscēšana

Kartēt virsmu

Kataloģizējām portālu, publisko API un administratora resursdatoru, kas atrisinās tieši — apejot CloudFlare WAF.

admin.acme.example atklāts

Sākotnējā piekļuve

Apiet autentifikāciju

Akla SQL injekcija pieteikšanās API atgriež derīgu administratora sesiju bez akreditācijas datiem.

Autentifikācijas apiešana · CVSS 9.8

Akreditācijas datu piekļuve

Izvilkt lietotāju krātuvi

Tā pati injekcija nolasa lietotāju tabulu — e-pastus, lomas un paroļu jaucējvērtības — tieši no datubāzes.

48k ierakstu atklāti

Bojāta piekļuves kontrole

Iziet cauri rēķiniem

Secīgi rēķinu ID bez īpašumtiesību pārbaudes ļauj jebkurai sesijai uzskaitīt un lejupielādēt katra klienta rēķinu.

Masveida PII / finanšu dati

Ietekme

Izvilkt masveidā

Apvienoti, tie dod viena pieprasījuma atspēriena punktu un automatizētu ceļu, lai nopludinātu klientu bāzi.

GDPR ziņojams pārkāpums

Demonstrētā ķēde · OS-01 → OS-02 · gray-box projekts, 2026. gada aprīlis

6Sociālā inženierija (pikšķerēšanas kampaņa)

Pret visiem ACME darbiniekiem tika veikta ar pretekstu balstīta portāla pieteikšanās pikšķerēšanas kampaņa. Galalapa klonēja korporatīvo pieteikšanās plūsmu; iesniegtie akreditācijas dati tika izmesti servera pusē.

700 Mērķētie darbinieki
154 (22%) Ievadīti akreditācijas dati
38 (5%) Ziņots IT

22% akreditācijas datu iesniegšanas līmenis padara apziņas apmācību pamatotu un ieteicamu reizi ceturksnī, atkārtotos klikšķinātājus iesaistot mērķtiecīgā sekojošā darbā.

Reprezentatīvs izvilkums — pilns ziņojums aizņem 30–60+ lappuses

Vēlaties šādu ziņojumu savām sistēmām?

Nosakiet apjomu fokusētam ielaušanās testam vai pilna apjoma projektam. Jūs saņemsiet to pašu pierādījumos balstīto rezultātu — jūsu reālajai uzbrukuma virsmai.