Nemrégiben az Aqua Security szakértői súlyos sebezhetőséget fedeztek fel az AWS Cloud Development Kit (CDK) használatában. Ez a biztonsági rés – amely az S3 bucketek kiszámítható elnevezéséből adódik – akár egy teljes AWS-fiók átvételéhez is vezethet, ha nem kezelik megfelelően. Az AWS ugyan javította a problémát, de azoknak a felhasználóknak, akik a CDK v2.148.1 vagy korábbi verzióit használták, további lépéseket kell tenniük. Nézzük meg részletesen, miről van szó, és hogyan védhetjük meg rendszereinket!
Mi az AWS Cloud Development Kit (CDK)?
Az AWS CDK egy Infrastructure-as-Code (IaC) eszköz, amely lehetővé teszi a fejlesztők számára, hogy a felhő infrastruktúrát kód formájában, például Pythonban, TypeScriptben vagy JavaScriptben definiálják. Bár a CDK rendkívül hatékony, a nem megfelelő beállítások és eljárások komoly biztonsági problémákhoz vezethetnek.
Hogyan működik a sebezhetőség?
Az Aqua biztonsági kutatói (Ofek Itach és Yakir Kadkoda) szerint a probléma gyökere az, hogy a CDK egy kiszámítható elnevezésű S3 bucketet használ a staging adatok, például IAM-szerepek és CloudFormation sablonok tárolására. Az alapértelmezett elnevezési minta a következő:
cdk-{Qualifier}-{Description}-{Account-ID}-{Region}
A bucket nevének egyik kulcseleme a „Qualifier”,
amelynek alapértelmezett értéke: hnb659fds
.
Ha a felhasználó nem változtat ezen, a bucket neve könnyen
kiszámíthatóvá válik.
Miért veszélyes ez?
Egy támadó a következő módon használhatja ki ezt a sebezhetőséget:
Bucket előzetes létrehozása
A támadó létrehozhatja azt az S3 bucketet, amelyet a célzott fiók CDK bootstrapping folyamata használna. Ez szolgáltatásmegtagadási (DoS) hibát eredményezhet, amikor a fiók tulajdonosa megpróbálja a CDK-t használni.Fiók átvétele
Ha a támadó által létrehozott bucketet a rendszer olvasásra és írásra is használja, a támadó módosíthatja a CloudFormation sablonokat. Így rosszindulatú kódot (például backdoorokat) fecskendezhet be, amely a telepítési folyamat során kompromittálja a fiókot.„Elhagyott” bucket eltérítése
Ha egy felhasználó törli a CDK által létrehozott staging bucketet, például helymegtakarítás céljából, a támadó újra létrehozhatja ugyanazzal a névvel. Ez lehetővé teszi számára, hogy átvegye az irányítást a későbbi CDK műveletek során.
Mekkora a veszély?
Egy elemzés szerint az AWS CDK-felhasználók körülbelül 1%-a sebezhető erre a támadási vektorra. Ez jelentős szám, ha figyelembe vesszük, hogy az AWS globális infrastruktúrát szolgál ki.
Hogyan védekezz?
Az AWS a CDK 2.149.0 verziójában kijavította a hibát, szigorúbb tulajdonosi ellenőrzésekkel és dokumentációs frissítésekkel. Azonban a felhasználóknak továbbra is érdemes az alábbi lépéseket megtenni:
Frissítsd a CDK-t a legújabb verzióra.
Használj egyedi minősítőt (Qualifier).
A CDK indításakor mindig állíts be egyediQualifier
értéket.Újrafuttatás a CDK Bootstrap parancsot.
Ez biztosítja, hogy a staging bucket az új szabványok szerint jöjjön létre.IAM-házirendek alkalmazása:
Adj meg feltételeket aFilePublishingRole
CDK szerepkörhöz, például:cdk-${Qualifier}-file-publishing-role-${AWS::AccountId}-${AWS::Region}
Záró gondolatok
A biztonságos felhőhasználat megköveteli, hogy tisztában legyünk az általunk használt eszközök gyengeségeivel, és aktívan tegyünk azok kiküszöböléséért. Az AWS CDK sebezhetősége rávilágít arra, hogy még a legnagyobb szolgáltatók eszközeiben is előfordulhatnak hibák. Frissítsd rendszereidet, és kövesd a legjobb gyakorlatokat, hogy elkerüld a lehetséges támadásokat!