Skip to content

Turvanõrkuse CVE 2024 3273 analüüs: D-Link seadmete käsusüst

Notifications You must be signed in to change notification settings

OIivr/Turvan6rkus-CVE-2024-3273

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 

Repository files navigation

🛠️ D-Link Võrgumälu Seadmete Käsusüst

🌟 Taust

D-Link Network Attached Storage (NAS) ehk võrgumälu seade on arvutivõrku ühendatav kõvakettaga (või -ketastega) seade failide talletuseks ja ühiskasutuseks. Erinevalt tavalisest välisest kõvakettast, mis on liidestatud otse arvutiga, ühendub võrgumälu seade kohtvõrguga, võimaldades mitmel kasutajal või seadmel üheaegselt faile kasutada ja jagada. Võrgumälu seadmed on kasutusel nii kodu- kui ka ärilahendustes.

Turvauuringuid koostav ettevõte VulDB Coordination avastas osadel D-Link võrgumälu seadmetel kriitilise turvanõrkuse (CVE-2024-3273), mis võimaldab pahatahtlikel kasutajatel teha üle võrgu käsusüste, käivitades pahatahtlikke programmikäske ohvri seadmes.

⚙️ Turvaauk

Eeltingimused

Käesolev turvanõrkus puudutab vaid teatud D-Link seadmeid, mille eluiga on juba läbi ning tootja on nende seadmete tarkvaralise ja riistvaralise toetamise lõpetanud. Mõjutatud on järgmised mudelid:

  • DNS-320L Version 1.11, Version 1.03.0904.2013, Version 1.01.0702.2013
  • DNS-325 Version 1.01
  • DNS-327L Version 1.09, Version 1.00.0409.2013
  • DNS-340L Version 1.08

Antud turvanõrkus eeldab ka ühe teise nõrkuse samaaegset ärakasutamist. Nimelt muudab võrgumälu seadme eriti haavatavaks püsiprogrmmeeritud sisselogimissuvandite põhjustatud tagauks. Selleks tagaukseks on turvanõrkus (CVE-2024-3272), kus kasutajal on võimalik autentimisest mööda pääseda kasutades vaikimisi kõigis mõjutatud seadmetes olevat "süsteemikasutajat" messagebus.

Selle Linux süsteemides vaikimisi oleva süsteemi deemon (system daemon) kasutajaga ei saa küll otseselt süsteemi sisse logida, kuid piisab osavalt meisterdatud HTTP päringust kindlasse otspunkti, et juba kahju teha.

Vaja on teada ka rünnatava seadme ip addressi.

Turvaaugu avaldumine

Turvanõrkus peitub võrgumälu seadme /cgi-bin/nas_sharing.cgi failis HTTP GET päringu töötlemisfunktsioonis. Pahatahtlikul kasutajal on võimalik saata GET päring üle võrgu ohvri seadmesse andes parameetritena kaasa kasutajanimi "messagebus" ja parool jätta tühjaks. Käsusüst tuleb siin mängu system parameetrit kasutades, määrates parameetri väärtuseks soovitud programmikäsu.

Käsk peidetakse base64 kodeeringuga ning lisatakse system parameetri väärtuseks. Hiljem dekodeerides avaldub pahatahtlik käsujupp mis käivitub shell käsuna rünnatavas seadmes.

🗒️ CVSS Baasskoor: 7.3 Kõrge

  • AV: N - Nõrkus on ära kasutatav üle võrgu.
  • AC: L - Rünnaku keerukus on madal, kuna rünnakuks vajalikud vahendid on lihtsasti kättesaadavad.
  • PR: N - Rünnakuks ei ole vaja eraldi privileege.
  • UI: N - Kasutaja interaktsioon ei ole vajalik.
  • S: U - Puudutab vaid kindlaid mudeleid ja ei laiene üle teistele seadmetele.
  • C: L - Konfidentsiaalsuse mõju on madal, kuna rünnak ei paljasta olulist konfidentsiaalset teavet.
  • I: L - Terviklikkuse mõju on madal, kuna rünnak ei muuda oluliselt süsteemi andmeid ega konfiguratsiooni.
  • A: L - käideldavuse mõju on madal, kuna rünnak ei põhjusta teenuste katkemist.

Turvaaugu põhjused

Turvanõrkuse CVE-2024-3273 põhjuseks on CWE-77 ehk käsusüst. See tähendab, et ründaja saab sisestada pahatahtlikke käske, mida rünnatav süsteem seejärel täidab, kuna sisestatud käsku ei valideerita.

Kuna seadmete lähtekood pole avalik siis arvatavasti tuleks selle probleemi vältimiseks lisada päringutega tegelevasse meetodisse valideerimisfunktsioon. Näiteks võiks olla list lubatud süsteemi käskudest, et vältida suvalise käsu jooksutamist.

🛡️ Mõju ja turvaaugu kõrvaldamine

Mõju varadele

Turvanõrkus rikub peamiselt järgmisi turvaeesmärke:

  • Konfidentsiaalsus: Ründaja võib saada juurdepääsu konfidentsiaalsetele andmetele, nt isiklikud andmed või ärisaladused
  • Privaatsus: Saades ligipääsu konfidentsiaalsetele andmetele võib see rikkuda kasutaja privaatsust.
  • Terviklus: Ründajal on võimalik muuta andmeid ja süsteemi seadeid
  • Usaldusväärsus: Haavatavate D-Link seadmete kasutajad võivad kaotada usalduse tootja vastu.

Turvaaugu parandamine

Antud turvanõrkus puudutab vaid seadmeid, mille eluiga on juba läbi, seega soovitab tootja seadmed asendada ning haavatavaid seadmeid mitte kasutada.

Kuna neid seadmeid enam ei toetata, siis ei saa need enam ka tarkvaralisi turvauuendusi, mis tähendab et turvaauku ära ei parandata. Seega ainuke lahendus on turvaauguga toodete kasutamine lõpetada.

Turvaaaugu mõju leevendamine

Kui haavatava seadme asendamine pole võimalik, tuleks seade kindlasti eemaldada avalikust võrgust ning äärmisel juhul olla kasutuses vaid lokaalses kohtvõrgus olevatele seadmetele (tuleks paigaldada tulemüür väliste päringute blokkeerimiseks).

Turvaaugu tegelik ärakasutatavus

Esialgse raporti kohaselt oli turvaaugu avastamise hetkel võrgus üle 92 000 seadme. Hilisema uuringu kohaselt võis see number olla aga oluliselt väiksem, jäädes 5500 seadme kanti. Sellest hoolimata on täna veel tõenäoliselt paljud vanad seadmed veel endiselt võrku ühendatud ja seeläbi haavatavad.

Avaldatud on mitmeid rünnaku kontseptsiooni tõendusi (PoC) ning tõenäoliselt kasutatakse turvaauku endiselt laialdaselt ära. Praeguseks hetkeks on avastatud vähemalt 146 juhtumit, kus on proovitud ära kasutada CVE-2024-3273 turvanõrkust.

🔧 Näidiskood

Jupp näidiskoodist:

def execute_command(ip, command: str = "id", verbose: bool = True) -> str:
    command_hex = ''.join(f'\\\\x{ord(c):02x}' for c in command)
    command_final = f"echo -e {command_hex}|sh".replace(' ', '\t')
    base64_cmd: str = base64.b64encode(command_final.encode()).decode()
    url: str = f"{ip}/cgi-bin/nas_sharing.cgi"
    params: dict = {
        "user": "messagebus",
        "passwd": "",
        "cmd": "15",
        "system": base64_cmd,
    }

About

Turvanõrkuse CVE 2024 3273 analüüs: D-Link seadmete käsusüst

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published