Weblate fenyegetési modell

Hatókör: A Weblate magalkalmazás, annak kapcsolata a felhasználói böngészőkkel, háttérrendszerek (webszerver, WSGI, adatbázis, Redis, Celery), valamint külső VCS-integrációk. Feltételezések: Szokásos Weblate-telepítés, jellemző összetevőkkel (nginx/Apache, Gunicorn/uWSGI, PostgreSQL, Redis, Celery) és felhasználói szerepkörökkel (nem hitelesített, fordító, projektmenedzser, adminisztrátor).

System description and scope

A Weblate egy nyílt forráskódú, webalapú lokalizációs platform, amely a Django keretrendszerre épül. Szorosan integrálódik a Git-tárolókkal a fordítások kezelésére, és CI/CD-jellegű funkciókat kínál automatizáláshoz, hookokhoz és VCS-szinkronizációhoz.

Védendő elemek:

  • Bizalmasság: Fordítási szövegek, VCS-integrációhoz tartozó API-kulcsok/hitelesítési adatok, felhasználói hitelesítő adatok (jelszavak, 2FA-titkok), felhasználói személyes adatok (e-mail, név), munkamenet-tokenek, audit naplók, személyes projektek adatai.

  • Sértetlenség: Fordítási szövegek tartalma, VCS-tárolók sértetlensége, projekt- és összetevőbeállítások, felhasználói jogosultságok, auditnaplók.

  • Rendelkezésre állás: A Weblate webes felülete, VCS-integráció, adatbázis-elérés, háttérfeladatok feldolgozása.

  • Hitelesség / visszautasíthatatlanság: Fordítási véglegesítések előzményei, felhasználók hozzárendelése a fordításokhoz, adminisztratív műveletek auditnaplói.

Elvi adatáramlási diagram

digraph translations { graph [fontname = "sans-serif", fontsize=10]; node [fontname = "sans-serif", fontsize=10, margin=0.1, height=0, style=filled, fillcolor=white, shape=note]; edge [fontname = "sans-serif", fontsize=10, dir=both]; "External user (browser)" -> "Web server (nginx/Apache)" [label="HTTPS"]; "Web server (nginx/Apache)" -> "Weblate application (WSGI, Celery)" [label="Internal API"]; "Weblate application (WSGI, Celery)" -> "Database (PostgreSQL, Redis)" [label="Database access"]; "Weblate application (WSGI, Celery)" -> "Internal VCS repository" [label="Filesystem access"]; "Weblate application (WSGI, Celery)" -> "External VCS repository" [label="Git/API"]; "Weblate application (WSGI, Celery)" -> "Logging (SIEM)" [label="GELF"]; }

Megbízási határok

  • Internet ↔ Webkiszolgáló: A nyilvános internetes forgalom kommunikál az első védelmi vonallal.

  • Webkiszolgáló ↔ Weblate alkalmazás: A fordított proxy / webszerver és az alkalmazáslogika közötti kommunikáció.

  • Weblate alkalmazás ↔ Adatbázis: Az alkalmazáslogika hozzáfér az állandó és gyorsítótárazott adatokhoz.

  • Weblate alkalmazás ↔ Naplózás: Az alkalmazás naplóbejegyzéseket hoz létre.

  • Weblate alkalmazás ↔ Belső VCS-tároló: Az alkalmazás a saját VCS-másolatával dolgozik.

  • Weblate alkalmazás ↔ Külső VCS-tároló: A Weblate külső kódtárolókhoz kapcsolódik.

  • Hitelesített felhasználó ↔ Nem hitelesített felhasználó: Különböző jogosultsági szintek az alkalmazáson belül.

Fenyegetések azonosítása

Komponens / interakció

STRIDE fenyegetéskategória

A fenyegetés leírása

Lehetséges hatás

Webkiszolgáló (nginx/Apache)

DoS

Szolgáltatásmegtagadási támadás: A támadó lekérésekkel árasztja el a webszervert, elérhetetlenné téve a Weblate-et.

A fordítási felület elérhetetlenné válik.

Információszivárgás

Konfiguráció kiszivárgása: Hibásan beállított szerver érzékeny fájlokat (például konfigurációs fájlokat, privát kulcsokat) tesz elérhetővé.

Hitelesítő adatok, belső architektúra kiszivárgása.

Manipuláció

Káros kérés befecskendezése: A támadó manipulált adatokat juttat a HTTP-fejlécekbe vagy a kérés törzsébe.

Ha a háttérrendszer nem kezeli megfelelően, fennáll az SQL-injektálás, XSS vagy más típusú injektálás lehetősége.

Weblate alkalmazás

Megtévesztés

Felhasználó megszemélyesítése: A támadó hozzáférést szerez egy jogos felhasználó munkamenetéhez (például munkamenet-eltérítés vagy ellopott hitelesítő adatok révén).

Jogosulatlan fordítás, tárolóhozzáférés.

(WSGI/Celery)

Manipuláció

Jogosulatlan fordításmódosítás: Rosszindulatú felhasználó vagy sérülékenység kihasználása révén a támadó módosítani tudja a fordításokat, projektbeállításokat vagy a VCS-integrációs beállításokat.

Hibás fordítás, hibás build, távoli kódfuttatás VCS-hookokon keresztül.

Manipuláció

VCS-integráció manipulálása: A támadó manipulálja a Weblate és a verziókezelő rendszer (VCS) közötti kapcsolatot (például rosszindulatú parancsokat juttat célba egy speciálisan kialakított tároló URL-jén keresztül, ha ez nincs megfelelően megtisztítva, ami tetszőleges kód futtatásához vezethet).

Kód-befecskendezés célprojektekbe, adatszivárgás.

Letagadhatóság

Nem azonosítható módosítások: Rosszindulatú változtatások történnek anélkül, hogy a felhasználó vagy rendszer megfelelően lenne hozzárendelve.

Nehézkes auditálás és felelősségre vonhatóság.

Információszivárgás

Érzékeny adatok kiszivárgása: SQL-injektálás, nem biztonságos API-végpontok vagy hibák érzékeny adatokat tárhatnak fel (pl. más felhasználók fordításai, VCS-hitelesítő adatok, kiszolgáló információk).

Adatvédelmi incidens, szellemi tulajdon eltulajdonítása.

Információszivárgás

VCS-hitelesítő adatok kiszivárgása: A Weblate által tárolt VCS-hitelesítők (SSH-kulcsok, tokenek) a támadó kezébe kerülnek.

Közvetlen hozzáférés az integrált forráskód-tárolókhoz.

DoS

Erőforrás-kimerítés: Túlzott számú háttérfeladat vagy nem hatékony adatbázis-lekérdezés a rendszer lelassulásához vagy összeomlásához vezet.

A Weblate elérhetetlenné válása.

Jogosultságok kiterjesztése

Szerepkör kiterjesztése: Egy egyszerű fordító adminisztrátori jogosultságokat szerez.

A rendszer teljes kompromittálása.

Jogosultságok kiterjesztése

Parancs-befecskendezés: Tetszőleges kód futtatása a nem megfelelően ellenőrzött bemenetek (pl. tároló URL-ek vagy kiegészítők) révén.

Rendszerkompromittálás, adatszivárgás.

Adatbázis / Redis

Manipuláció

Adatkárosodás: Közvetlen hozzáférés az adatbázishoz lehetővé teszi fordítások, felhasználói adatok vagy beállítások módosítását.

Rendszerhiba, az adatok integritásának elvesztése.

Információszivárgás

Érzékeny adatokhoz való hozzáférés: Jogosulatlan hozzáférés az adatbázishoz vagy a Redishez, minden tárolt adatot feltárhat (hitelesítési adatok, fordítási memória, felhasználói profilok).

Jelentős adatszivárgás.

DoS

Adatbázis túlterhelése: A támadó lekérdezések tömegével árasztja el az adatbázist vagy felhasználja az összes Redis memóriát/kapcsolatot.

A Weblate elérhetetlenné válása.

VCS-integráció

Manipuláció

Rosszindulatú véglegesítések a Weblate-ből: A kompromittált Weblate rosszindulatú módosításokat küld fel az forrástárolóba.

Kártékony kód vagy hátsó kapuk (malware/backdoors) bejuttatása célprojektekbe.

Letagadhatóság

Hamis véglegesítési hozzárendelés: A Weblate olyan véglegesítést hajt végre, amelyet hibásan rendel hozzá egy felhasználóhoz (pl. egy adminisztrátor egy fordító nevében véglegesít a beleegyezése nélkül).

Felelősségre vonhatóság problémái.

Felhasználói interakció

Megtévesztés

Adathalászat / social engineering: A támadó megtéveszti a felhasználót, hogy adja ki a Weblate vagy a hozzákapcsolt VCS-fiók hitelesítő adatait.

Felhasználói fiók kompromittálása.

(Webes felület)

Manipuláció

Cross-site scripting (XSS): A weboldalon keresztüli szkript támadás során, rosszindulatú kódok kerülnek be a fordításokba vagy a felhasználói profilokba, és más felhasználók böngészőjében futnak le.

Munkamenet-eltérítés, hitelesítő adatok eltulajdonítása, felület rongálása.

Információszivárgás

Clickjacking / felhasználói felület manipulálása: A támadó rosszindulatú elemeket helyez el a Weblate felületén, és így felhasználókat késztet nem szándékos műveletekre.

Jogosulatlan műveletek, adatmanipuláció.

Információszivárgás

Érzékeny adatok a felületen: Az UI hibás jogosultságkezelés miatt nem szándékosan megjelenít érzékeny adatokat (pl. másik felhasználó e-mail címét).

Adatvédelmi incidens.

Enyhítési stratégiák

  • Hitelesítés és jogosultságkezelés:
    • Erős jelszavakat előíró szabályzat, lásd: Jelszóbiztonság.

    • Kétlépcsős hitelesítés kötelezővé tétele, lásd: Kétlépcsős hitelesítés.

    • Robusztus munkamenet-kezelés.

    • Szerepköralapú hozzáférés-vezérlés (RBAC) a legkisebb szükséges jogosultság elve alapján (pl. a fordítók csak a fordításokat szerkeszthetik, de nem módosíthatják a projekt beállításait), lásd: Hozzáférés-vezérlés.

    • Külső hitelesítési szolgáltatókkal való integráció (SAML, OAuth, LDAP), lásd: Hitelesítés.

  • Bemenet érvényesítése és a kimenet kódolása:
    • Az összes felhasználói bemenet (űrlapok, API-kérések, VCS URL-ek) szigorú érvényesítése a befecskendezéses támadások megelőzése érdekében (SQL injection, parancs-befecskendezés, XSS).

    • A webes felületen megjelenő felhasználói tartalmak kontextusérzékeny kódolása az XSS támadások megelőzésére.

  • VCS-integráció biztonsága:
    • A legkisebb szükséges jogosultság elve a VCS-hitelesítő adatoknál (pl. csak olvasási jogosultság, korlátozott hatókörű tokenek).

    • VCS-hitelesítő adatok biztonságos tárolása.

    • A VCS-ből érkező adatok (pl. fájlnevek, ágak nevei, véglegesítési üzenetek) szigorú tisztítása és érvényesítése, különösen ha megjelenítésre kerülnek.

    • Git/Mercurial parancsok biztonságos végrehajtása (elkerülve a felhasználói bemenettel történő shell-futtatást).

  • Adatvédelem:
    • Érzékeny adatok titkosítása nyugalmi állapotban.

    • Adatok titkosítása átvitel közben (TLS/SSL minden HTTP/S és VCS kommunikációhoz).

    • Adatbázis megerősítése (Weblate felhasználónak minimális jogosultság, erős jelszavak).

  • Rendszer megerősítése:
    • Az operációs rendszer, a Weblate és minden függőség rendszeres frissítése.

    • A legkisebb jogosultság elve a Weblate felhasználói fiók esetén az operációs rendszeren.

    • Hálózati szeparáció (pl. adatbázis/Redis elválasztása a nyilvános eléréstől).

    • Webalkalmazás-tűzfal (WAF) használata.

  • Naplózás és megfigyelés:
    • Minden biztonsági szempontból releváns esemény (bejelentkezések, sikertelen bejelentkezések, jogosultságváltozások, kritikus beállítások módosítása, VCS-műveletek) átfogó auditnaplózása.

    • Biztonsági események központosított naplózása és riasztása, például a Graylog-alapú naplókezelés használatával.

  • Biztonságos fejlesztési gyakorlatok:
    • Biztonsági szempontokra fókuszáló kódfelülvizsgálatok.

    • Statikus és dinamikus alkalmazásbiztonsági tesztelés (SAST és DAST), lásd: Weblate forráskód.

    • Függőségek sebezhetőségének vizsgálata, lásd: Függőségek.

    • Rendszeres biztonsági auditok és behatolás-tesztelések végrehajtása.

  • Hibakezelés:
    • Általános hibaüzenetek használata, amelyek nem árulnak el érzékeny belső információkat.