Reģ. Nr. 40203410806 PVN LV40203410806

Tēma

Pieteikt konsultāciju Pieteikt

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

Katrs projekts noslēdzas ar ziņojumu, ko var izmantot gan inženieri, gan lēmumu pieņēmēji: ietekmes pierādījumus, pamatotus riska vērtējumus un skaidru novēršanas plānu. Zemāk ir pilns izdomāta klienta Aurenta Group parauga ziņojums.

Ielaušanās testa vērtību nosaka tā gala ziņojuma kvalitāte. Neapstrādāti rīku rezultāti un CVSS izklājlapas reti noved pie efektīvas novēršanas; to panāk skaidri konstatējumi, atkārtojami pierādījumi un konkrēti ieteikumi.

Mūsu ziņojumi tiek sagatavoti pašu izstrādātā ziņošanas sistēmā, nodrošinot katram projektam vienotu, versiju kontrolētu un divvalodīgu (EN/LV) struktūru. Viens dokuments kalpo divām auditorijām: lēmumu pieņēmējiem paredzēts kopsavilkums saprotamā valodā un pilna tehniskā informācija – pieprasījumi, atbildes, testa ievaddati un ekrānuzņēmumi – inženieriem, kas veic novēršanu.

01

Kas ir katrā OffSeq ziņojumā

Konsekventa struktūra katram projektam ar izvēles nodaļām, ko pielāgo no mērķēta ielaušanās testa līdz pilna tvēruma red team operācijai.

  1. 01

    Vāks un projekta metadati

    Klients, projekts, dokumenta ID, versija, testa veids un TLP klasifikācija – izsekojama informācija, ko var izmantot auditā.

  2. 02

    Kopsavilkums vadībai

    Konteksts, galvenie konstatējumi, ieteikumi un skaidrs gatavības slēdziens vadībai saprotamā valodā.

  3. 03

    Tvērums un metodoloģija

    Precīzs testā iekļautais un neiekļautais tvērums, testēšanas periods un izmantotie standarti (OSSTMM, PTES un OWASP WSTG).

  4. 04

    Kritiskuma un riska modelis

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

  5. 05

    Izpēte

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

  6. 06

    Konstatējumi ar pierādījumiem

    Katrai problēmai: apraksts, ietekme, tehniskā informācija, HTTP pieprasījumi un atbildes, testa ievaddati, ekrānuzņēmumi un novēršanas ieteikumi.

  7. 07

    OWASP un atbilstības sasaiste

    Konstatē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 konstatējumi apvienojas demonstrējamā kompromitēšanas scenārijā, sakārtoti pēc ietekmes uz organizāciju.

  9. 09

    Novēršanas plāns

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

  10. 10

    Atkārtota testēšana un pārbaude

    Atkārtots novērtējums, kas pārbauda, vai katrs konstatējums ir novērsts, un fiksē tā atjaunināto statusu.

02

Aurenta Group – 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

Aurenta Group

Klientu portāla un API drošības projekts

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

Testēšanas periods
23. marts – 16. aprīlis 2026
Testa veids
Pelēkās kastes tīmekļa lietotnes un API tests
Mērķi
portal.aurenta.example · api.aurenta.example
Standarti
OWASP WSTG · PTES · OSSTMM
Speciālisti
2 (sertificēti)
Klasifikācija
TLP:AMBER+STRICT

01

Kopsavilkums vadībai

Konteksts

OffSeq veica Aurenta klientu portāla un tā publiskās API pelēkās kastes drošības novērtējumu. Testēšanā tika apvienota automatizēta analīze, manuāla pārbaude un kontrolēta ievainojamību izmantošana. Autentificētajai daļai piekļuva ar klienta nodrošinātiem pagaidu portāla piekļuves datiem.

Galvenie konstatē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 citu klientu rēķinus, radot plašas datu atklāšanas risku.
  • Padziļinātās aizsardzības trūkumi: nav satura drošības politikas (CSP), HSTS darbības laiks ir īsāks par vienu gadu un produkcijas vidē tiek izmantota neatbalstīta React versija.

Prioritārie ieteikumi

  • Parametrizējiet visus datubāzes vaicājumus un izmantojiet datubāzes kontus ar minimālajām nepieciešamajām tiesībām. SQL injekcijas novēršanai piešķiriet augstāko prioritāti.
  • Ieviesiet objektu līmeņa autorizāciju katram API resursam un izmantojiet identifikatorus, kurus nevar vienkārši secīgi uzskaitīt.
  • Ieviesiet CSP, sākot ar tikai ziņošanas režīmu un pēc tam pārejot uz piespiedu piemērošanu; pagariniet HSTS vismaz līdz vienam gadam un izvērtējiet gatavību preload sarakstam; plānojiet React atjaunināšanu.
Konstatējumi pēc kritiskuma
6 Konstatējumi
  • Kritisks 1
  • Augsts 1
  • Vidējs 1
  • Zems 2
  • Informatīvs 1

Īsumā

Tika identificēti seši konstatējumi: viens kritisks, viens augsts, viens vidējs, divi zemi un viens informatīvs. Kritisko un augsto konstatējumu var sasaistīt uzbrukuma ķēdē, kas ļauj plašā apjomā atklāt klientu personas un finanšu datus.

Slēdziens

Portālu nevajadzētu apstiprināt palaišanai produkcijas vidē, kamēr kritiskā SQL injekcija un augsta kritiskuma IDOR nav novērsti un pārbaudīti atkārtotā testā. Pārējie konstatējumi attiecas uz padziļinātās aizsardzības stiprināšanu.

02

Ievainojamību kopsavilkums

Kritiskums 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 konstatējums pārsniedz pieņemamības slieksni, tādēļ kopējais slēdziens ir „nepieciešama novēršana“ neatkarīgi no pārējām kategorijām.

03

OWASP Top 10 (2025) pārklājums

  • A01:2025 Nepilnīga 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 tvēruma N/P
  • A10:2025 Izņēmuma situāciju nepareiza apstrāde Atbilst

04

Izpēte

Pasīvā izpēte apzināja portāla publisko uzbrukuma virsmu. Trīs apakšdomēni norāda uz portāla izcelsmes serveri aiz Cloudflare, savukārt viens administrācijas resursdators DNS sistēmā norāda tieši uz serveri un apiet WAF.

Apakšdomēnu inventārs
Resursdators IP Piezīme
portal.aurenta.example 203.0.113.10 Galvenais portāls · aiz Cloudflare
api.aurenta.example 203.0.113.11 Publiskais API
admin.aurenta.example 203.0.113.12 Tieša piekļuve izcelsmes serverim – apiet WAF
status.aurenta.example 203.0.113.13 Statusa lapa · pārmērīgi detalizēti būvējuma metadati
  • Statusa lapa publicē detalizētus būvējuma metadatus (git SHA, būvējuma datums).
  • Testēšanas periodā bija pieejami divi pirmsprodukcijas apakšdomēni (stg-*).

05

Konstatējumi

Seši reprezentatīvi konstatējumi, sakārtoti pēc kritiskuma. 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

    CVSS 3.1 9.8 CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H

    Pieteikšanās galapunkta lauks `email` tiek tieši iekļauts SQL vaicājumā bez parametrizācijas. Uz laiku balstīta aklā injekcija apstiprina ievainojamību un ļauj apiet autentifikāciju un patvaļīgi nolasīt tabulu `users`, tostarp e-pasta adreses, lomas un bcrypt paroļu jaucējvērtības.

    Skartie

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

    Ietekme

    Neautentificēts uzbrucējs varētu pieteikties kā jebkurš lietotājs, tostarp administrators, un iegūt klientu identitātes datus. Tas varētu izraisīt kontu pārņemšanu un personas datu aizsardzības pārkāpumu, kas jāizvērtē atbilstoši GDPR paziņošanas prasībām.

    Tehniskā informācija

    Piecu sekunžu aizture zemāk norādītajam testa ievaddatu piemēram salīdzinājumā ar tūlītēju atbildi uz kontroles pieprasījumu apstiprina uz laiku balstītu aklo SQL injekciju:

    HTTP pieprasījums

    POST /v1/auth/login HTTP/2
    Host: api.aurenta.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"}
    

    Pierādījumi

    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]: aurenta_portal, information_schema
    Database: aurenta_portal  Table: users  [48,213 entries]
    
    sqlmap apstiprinājums (rediģēts)

    Novēršana

    Aizstājiet ar virkņu savienošanu veidotus SQL vaicājumus ar parametrizētiem vaicājumiem. Darbiniet lietotni ar datubāzes kontu, kam ir tikai nepieciešamās tiesības, validējiet ievadi pēc atļauto vērtību principa un līdz koda labojuma ieviešanai izmantojiet pagaidu WAF noteikumu. Nomainiet piekļuves datus, kas varētu būt atklāti.

  2. OS-02

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

    Augsts Atvērts A01:2025 CWE-639

    CVSS 3.1 8.1 CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:L/A:N

    Rēķinu ierakstiem tiek izmantoti secīgi skaitliski ID, un tie tiek atgriezti bez īpašumtiesību pārbaudes. Jebkurš autentificēts lietotājs var mainīt identifikatoru, secīgi uzskaitīt un lejupielādēt citu klientu rēķinus, kuros ir vārdi, adreses un maksājumu kopsavilkumi.

    Skartie

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

    Ietekme

    Ar vienu zemu privilēģiju kontu varētu iegūt visas klientu bāzes rēķinu vēsturi, plašā apjomā atklājot personas un finanšu datus un potenciāli radot GDPR paziņošanas pienākumu.

    HTTP pieprasījums

    GET /v1/invoices/100245 HTTP/2
    Host: api.aurenta.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)
    

    Pierādījumi

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

    Novēršana

    Ieviesiet objektu līmeņa autorizāciju katram pieprasījumam, servera pusē pārbaudot, vai autentificētajam subjektam ir tiesības piekļūt pieprasītajam resursam. Aizstājiet secīgos ID ar grūti uzskaitāmiem identifikatoriem, piemēram, UUIDv4, un pēc noklusējuma liedziet piekļuvi.

  3. OS-03

    Satura drošības politika (CSP) nav ieviesta

    Vidējs Nepieciešama stiprināšana A02:2025 CWE-693

    CVSS 3.1 4.0 CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:U/C:L/I:L/A:N

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

    Skartie

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

    Ietekme

    Bez CSP pārlūks nevar ierobežot atstarota vai saglabāta XSS, neatļautas trešo pušu skriptu ielādes vai datu izguves sekas pēc veiksmīgas injekcijas. Tādējādi trūkst būtiskas padziļinātās aizsardzības kontroles.

    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

    Ieviesiet stingru CSP, sākot ar pieteikšanās un administrēšanas lapām. Vispirms izmantojiet `Content-Security-Policy-Report-Only` režīmu, izvērtējiet pārkāpumus un pēc tam piemērojiet politiku piespiedu kārtā. Skriptiem neizmantojiet `unsafe-inline`; lietojiet nonce vērtības vai jaucējvērtības.

  4. OS-04

    Novecojusi JavaScript bibliotēka – React 16.13.1

    Zems Ieteicams atjauninājums A03:2025 CWE-1104

    Produkcijas komplektā ir React 16.13.1 (2020. gada marts), kas vairs netiek atbalstīts. Pat ja nav zināma tieši piemērojama CVE, neatbalstīts ietvars un tā tranzitīvās atkarības palielina uzturēšanas un drošības risku.

    Skartie

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

    Ietekme

    Neatbalstīta ietvara izmantošana palielina iespējamību, ka produkcijas vidē 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

    Galvenē `Strict-Transport-Security` ir norādīts `max-age=15552000` (180 dienas), kas ir mazāk par viena gada periodu, ko parasti prasa pirms domēna iekļaušanas HSTS preload sarakstā.

    Skartie

    • https://portal.aurenta.example/

    Ietekme

    Īsāks `max-age` samazina periodu, kurā pārlūks pēc pēdējā drošā apmeklējuma atsakās izmantot nešifrētu HTTP, un nedaudz palielina SSL stripping uzbrukuma risku.

    Novēršana

    Pēc pārliecināšanās, ka visi apakšdomēni atbalsta HTTPS, iestatiet `Strict-Transport-Security: max-age=63072000; includeSubDomains; preload` un pēc tam izvērtējiet domēna iesniegšanu 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ērtu rekursīvo DNS serveri var ļaunprātīgi izmantot datplūsmas pastiprināšanai atstarotos DDoS uzbrukumos pret trešajām pusēm. Tieša ietekme uz Aurenta datiem netika demonstrēta; konstatējums iekļauts pilnīgam pārskatam.

    Novēršana

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

06

Kā konstatējumi sasaistās ielaušanā

Atsevišķi konstatē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.

01 Izpēte

Apzināt uzbrukuma virsmu

Apzinājām portālu, publisko API un administrācijas resursdatoru, kas DNS sistēmā norāda tieši uz serveri un apiet Cloudflare WAF.

admin.aurenta.example atklāts

02 Sākotnējā piekļuve

Apiet autentifikāciju

Aklā SQL injekcija pieteikšanās API ļauj iegūt derīgu administratora sesiju bez derīgiem piekļuves datiem.

Autentifikācijas apiešana · CVSS 9.8

03 Piekļuves datu iegūšana

Iegūt lietotāju datus

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

Atklāti 48 000 ierakstu

04 Nepilnīga piekļuves kontrole

Secīgi iegūt rēķinus

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

05 Ietekme

Plašā apjomā izgūt datus

Kopā šie konstatējumi nodrošina sākotnējo piekļuvi un automatizējamu ceļu klientu datu plaša apjoma izgūšanai.

Potenciāli ziņojams GDPR pārkāpums

Demonstrētā ķēde · OS-01 → OS-02 · pelēkās kastes projekts, 2026. gada aprīlis

07

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

Aurenta darbiniekiem tika nosūtīta uz iepriekš izstrādātu leģendu balstīta pikšķerēšanas kampaņa ar klonētu portāla pieteikšanās lapu. Ievadītie piekļuves dati serverī tika nekavējoties dzēsti un netika saglabāti.

Mērķētie darbinieki
700
Ievadīti piekļuves dati
154 (22%)
Ziņots IT
38 (5%)

22% piekļuves datu iesniegšanas rādītājs liecina par būtisku izpratnes trūkumu. Iesakām ceturkšņa zināšanu nostiprināšanu un mērķētu papildu apmācību darbiniekiem, kuri atkārtoti reaģē uz simulācijām.

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

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

Nosakiet mērķēta ielaušanās testa vai plašāka projekta tvērumu. Saņemsiet tādu pašu, ar pierādījumiem pamatotu ziņojumu par savas organizācijas uzbrukuma virsmu.