Szoftverellátási lánc stratégiák a Parry-függőségi zavaros támadásokhoz

Szoftverellátási lánc stratégiák a Parry-függőségi zavaros támadásokhoz

Software Supply Chain Strategies to Parry Dependency Confusion Attacks PlatoBlockchain Data Intelligence. Vertical Search. Ai.

“What’s in a name? That which we call a rose By any other name would smell as sweet.” When Shakespeare wrote these words (Romeo and Juliet, Act 2, Scene 2) in 1596, he was saying that a name is just a convention. It has no intrinsic meaning. Juliet loves Romeo for who he is, not for his name.

But without knowing it, Shakespeare was also describing dependency confusion attacks.

A függőségi zavar az, ha a kódban használt csomagok nem a tiéd. Ugyanaz a nevük, de nem az Ön kódja fut élesben. Ugyanaz a név, de az egyik csomag rózsaillatú, a másik pedig… bűzlik.

Recent research reports estimate that 41% to 49% of organizations are at risk for dependency confusion attacks. New research from OX Security shows that when an organization is at risk for a dependency confusion attack, 73% of its assets are vulnerable. The research focused on midsize and large organizations (1K+, 8K+, 80K+ employees) across a wide range of sectors — finance, gaming, technology, and media — and found the risk in every sector across organizations of all sizes. The research also found that almost all applications with more than 1 billion users are using dependencies that are vulnerable to dependency confusion.

Ennek a cikknek az a célja, hogy segítsen megérteni a függőségi zavart, és hogyan lehet megelőzni.

Dupla, Dupla

Dependencies (also called packages) are the building blocks of your software. Typically these pieces of software, whether developed by entire communities or within a company, perform a common and necessary task.

Package managers are frequently used to install dependencies and keep them updated. They scan public and private registries for the name of the package and, all other things being equal, select the highest version number. Attackers take advantage of this by placing a “dummy” package on the public registry with the same name but higher version.

When a package manager comes across two identical packages, one in a public registry and one in a private registry, it causes confusion — hence the name “dependency confusion.” Since the two packages are identical, the manager will automatically choose to install the one with a higher version - in this case, the attacker’s malicious package.

Ez a gépeltérítőknek egy hátsó ajtót biztosít a szoftverbe. Ettől a ponttól kezdve végrehajthatják az adatszivárgást, végrehajthatják a szellemi tulajdon ellopását, és más módon veszélyeztethetik a bizalmi szoftver-ellátási láncot. Ezenkívül bevezethetik a megfelelőség megsértését, amely súlyos szabályozási szankciókat von maga után.

Fáradozás és baj

Különféle megközelítések léteznek a függőségi zavaros támadásra.

  • Névtávolság. Rosszindulatú szoftverek könyvtárának nyilvános nyilvántartásba való feltöltésével – például a Python Package Index-be (PyPI) vagy a JavaScriptbe npm rendszerleíró adatbázis — vagyis hasonlóan nevezték el egy megbízható, belsőleg használt könyvtárba, azok a rendszerek, amelyek kihagyják a névteret/URL ellenőrzést, vagy nem kényszerítik a lekérést a privát nyilvántartásból, tévedésből behúzhatják a rosszindulatú kódot. A legutóbbi PyTorch-függőségi zavaros incidens az egyik ilyen példa.
  • DNS-hamisítás. A DNS-hamisításhoz hasonló technikák használatával a rendszerek ráirányíthatók arra, hogy függőségeket vonjanak ki a rosszindulatú adattárakból, miközben legitim belső URL-eket/útvonalakat jelenítenek meg.
  • Szkriptelés. By modifying build/install scripts or continuous integration/continuous delivery (CI/CD) pipeline configurations, systems can be tricked into downloading software dependencies from a malicious source rather than a local repository.

Things Done Well and With a Care

A függőségi zavarok elkerülése érdekében alkalmazza ezeket a gyakorlatokat.

  • Állítsa be a házirendeket a csomagkezelőben. Nem engedheti meg a csomagkezelőknek, hogy egy nyilvános csomagot előnyben részesítsenek egy privát csomaggal szemben.
  • Mindig tartalmazzon egy .npmrc fájlt. Ha a népszerű NPM-et használja csomagkezelőként, mindig mellékeljen egy .npmrc fájlt, amely meghatározza, hogy honnan kell lekérni a csomagokat egy adott szervezeti hatókörön belül.
  • Csomagnév lefoglalása nyilvános nyilvántartásban. A függőségi zavaros támadások elleni védekezés másik módja a csomagnév lefoglalása egy nyilvános nyilvántartásban, hogy a gépeltérítők ne használhassák azt, és így a csomagkezelőt ne tudják „becsapni” egy rosszindulatú csomag telepítésére.

A függőségi zavaros támadások elleni teljes védelem érdekében a szervezeteknek mindig használniuk kell szervezeti hatóköröket minden belső csomaghoz, még akkor is, ha közzéteszi a belső nyilvántartásában. A szervezeti hatóköröket az NPM nyilvános nyilvántartásában is be kell jegyezni, így elkerülhető, hogy bárki eltérítse a hatókört és kihasználja a zavart.

A csomagneveket nyilvánosan is regisztrálni kell. Ha egy szervezet például a népszerű PIP-t használja Python-függőségek csomagkezelőjeként, belső csomagokat kell létrehoznia szigorú utótaggal, amely felismerhető és minden projektben működik. Helyőrzőként töltsön fel egy azonos nevű üres csomagot a PyPI nyilvános nyilvántartásába.

Egy másik ok a csomagnév nyilvános nyilvántartásban való lefoglalására az, hogy ha valaki más lefoglalja azt (rosszindulatból vagy sem), a fejlesztőknek a magánnyilvántartásban lévő összes csomagnevet módosítaniuk kell egy olyanra, amelyet még nem foglaltak le a nyilvános nyilvántartásban. Ez hosszú és fárasztó folyamat lehet.

Fontos megjegyezni, hogy nem minden csomag-nyilvántartás teszi lehetővé a felhasználók számára csomagnevek lefoglalását, ezért győződjön meg arról, hogy talál egyet, amelyik igen.

Kilépés, Medve üldözve

A függőségi zavaros támadások komoly és közvetlen kiberbiztonsági fenyegetést jelentenek a szervezetek számára világszerte. Az összes szervezet körülbelül fele veszélyben van, és e szervezetek vagyonának 73%-a ki van téve. A növekvő fenyegetés leküzdése érdekében a szervezeteknek erőteljes megelőző intézkedéseket kell végrehajtaniuk, és bevált kiberbiztonsági gyakorlatokat kell alkalmazniuk.

Shakespeare’s roses may have presaged the risk of dependency confusion attacks by hundreds of years, but another quote from the Bard may hold some wisdom for protecting against them: “Let every eye negotiate for itself and trust no agent.” (Much Ado About Nothing, Act 2, Scene 1)

Időbélyeg:

Még több Sötét olvasmány