Megosztás a következőn keresztül:


Biztonsági szabályok

A biztonsági szabályok támogatják a biztonságosabb kódtárakat és alkalmazásokat. Ezek a szabályok segítenek megelőzni a program biztonsági hibáit. Ha letiltja bármelyik szabályt, egyértelműen meg kell jelölnie az okot a kódban, és tájékoztatnia kell a fejlesztési projekthez kijelölt biztonsági tisztviselőt is.

Ebben a szakaszban

Szabály Leírás
CA2100: Sql-lekérdezések áttekintése biztonsági rések esetén Egy metódus a System.Data.IDbCommand.CommandText tulajdonságot egy sztringargumentumból a metódusba épített sztring használatával állítja be. Ez a szabály feltételezi, hogy a sztring argumentum felhasználói bemenetet tartalmaz. A felhasználói bemenetből létrehozott SQL-parancssztring sebezhető az SQL-injektálási támadásokkal szemben.
CA2109: Látható eseménykezelők áttekintése A rendszer nyilvános vagy védett eseménykezelési módszert észlelt. Az eseménykezelési módszereket csak akkor szabad felfedni, ha feltétlenül szükséges.
CA2119: Privát felületeknek megfelelő tömítési módszerek Az örökölhető nyilvános típus egy belső (Barát a Visual Basicben) felület felülírható metódusát biztosítja. A szabály megsértésének kijavításához megakadályozza, hogy a metódus felül legyen bírálva a szerelvényen kívül.
CA2153: Sérült állapotú kivételek kezelésének elkerülése A sérült állapotkivételek (CSE) azt jelzik, hogy a folyamatban memóriasérülés van jelen. Ha ezeket észleli ahelyett, hogy lehetővé tenné a folyamat összeomlását, biztonsági résekhez vezethet, ha a támadó biztonsági réseket helyezhet el a sérült memóriaterületen.
CA2300: Ne használjon nem biztonságos deszerializáló binárisformattert A nem biztonságos deszerializálók sebezhetők a nem megbízható adatok deszerializálásakor. A támadó úgy módosíthatja a szerializált adatokat, hogy váratlan típusokat is tartalmazzon, hogy kártékony mellékhatásokkal rendelkező objektumokat injektáljon.
CA2301: Ne hívja meg a BinaryFormatter.Deserialize parancsot a BinaryFormatter.Binder első beállítása nélkül A nem biztonságos deszerializálók sebezhetők a nem megbízható adatok deszerializálásakor. A támadó úgy módosíthatja a szerializált adatokat, hogy váratlan típusokat is tartalmazzon, hogy kártékony mellékhatásokkal rendelkező objektumokat injektáljon.
CA2302: Győződjön meg arról, hogy a BinaryFormatter.Binder be van állítva a BinaryFormatter.Deserialize hívása előtt A nem biztonságos deszerializálók sebezhetők a nem megbízható adatok deszerializálásakor. A támadó úgy módosíthatja a szerializált adatokat, hogy váratlan típusokat is tartalmazzon, hogy kártékony mellékhatásokkal rendelkező objektumokat injektáljon.
CA2305: Ne használjon nem biztonságos deszerializáló LosFormatter A nem biztonságos deszerializálók sebezhetők a nem megbízható adatok deszerializálásakor. A támadó úgy módosíthatja a szerializált adatokat, hogy váratlan típusokat is tartalmazzon, hogy kártékony mellékhatásokkal rendelkező objektumokat injektáljon.
CA2310: Ne használjon nem biztonságos deszerializáló NetDataContractSerializert A nem biztonságos deszerializálók sebezhetők a nem megbízható adatok deszerializálásakor. A támadó úgy módosíthatja a szerializált adatokat, hogy váratlan típusokat is tartalmazzon, hogy kártékony mellékhatásokkal rendelkező objektumokat injektáljon.
CA2311: Ne deszerializáljon a NetDataContractSerializer.Binder első beállítása nélkül A nem biztonságos deszerializálók sebezhetők a nem megbízható adatok deszerializálásakor. A támadó úgy módosíthatja a szerializált adatokat, hogy váratlan típusokat is tartalmazzon, hogy kártékony mellékhatásokkal rendelkező objektumokat injektáljon.
CA2312: Győződjön meg arról, hogy a NetDataContractSerializer.Binder be van állítva a deszerializálás előtt A nem biztonságos deszerializálók sebezhetők a nem megbízható adatok deszerializálásakor. A támadó úgy módosíthatja a szerializált adatokat, hogy váratlan típusokat is tartalmazzon, hogy kártékony mellékhatásokkal rendelkező objektumokat injektáljon.
CA2315: Ne használjon nem biztonságos deszerializáló ObjectStateFormattert A nem biztonságos deszerializálók sebezhetők a nem megbízható adatok deszerializálásakor. A támadó úgy módosíthatja a szerializált adatokat, hogy váratlan típusokat is tartalmazzon, hogy kártékony mellékhatásokkal rendelkező objektumokat injektáljon.
CA2321: Ne deszerializáljon JavaScriptSerializer használatával SimpleTypeResolver használatával A nem biztonságos deszerializálók sebezhetők a nem megbízható adatok deszerializálásakor. A támadó úgy módosíthatja a szerializált adatokat, hogy váratlan típusokat is tartalmazzon, hogy kártékony mellékhatásokkal rendelkező objektumokat injektáljon.
CA2322: Győződjön meg arról, hogy a JavaScriptSerializer nincs inicializálva a SimpleTypeResolverrel a deszerializálás előtt A nem biztonságos deszerializálók sebezhetők a nem megbízható adatok deszerializálásakor. A támadó úgy módosíthatja a szerializált adatokat, hogy váratlan típusokat is tartalmazzon, hogy kártékony mellékhatásokkal rendelkező objektumokat injektáljon.
CA2326: Ne használjon TypeNameHandling értékeket a None értéken kívül A nem biztonságos deszerializálók sebezhetők a nem megbízható adatok deszerializálásakor. A támadó úgy módosíthatja a szerializált adatokat, hogy váratlan típusokat is tartalmazzon, hogy kártékony mellékhatásokkal rendelkező objektumokat injektáljon.
CA2327: Ne használjon nem biztonságos JsonSerializerSettings-t A nem biztonságos deszerializálók sebezhetők a nem megbízható adatok deszerializálásakor. A támadó úgy módosíthatja a szerializált adatokat, hogy váratlan típusokat is tartalmazzon, hogy kártékony mellékhatásokkal rendelkező objektumokat injektáljon.
CA2328: Győződjön meg arról, hogy a JsonSerializerSettings biztonságos A nem biztonságos deszerializálók sebezhetők a nem megbízható adatok deszerializálásakor. A támadó úgy módosíthatja a szerializált adatokat, hogy váratlan típusokat is tartalmazzon, hogy kártékony mellékhatásokkal rendelkező objektumokat injektáljon.
CA2329: Ne deszerializálja a JsonSerializert nem biztonságos konfiguráció használatával A nem biztonságos deszerializálók sebezhetők a nem megbízható adatok deszerializálásakor. A támadó úgy módosíthatja a szerializált adatokat, hogy váratlan típusokat is tartalmazzon, hogy kártékony mellékhatásokkal rendelkező objektumokat injektáljon.
CA2330: Győződjön meg arról, hogy a JsonSerializer biztonságos konfigurációval rendelkezik a deszerializáláskor A nem biztonságos deszerializálók sebezhetők a nem megbízható adatok deszerializálásakor. A támadó úgy módosíthatja a szerializált adatokat, hogy váratlan típusokat is tartalmazzon, hogy kártékony mellékhatásokkal rendelkező objektumokat injektáljon.
CA2350: Győződjön meg arról, hogy a DataTable.ReadXml() bemenete megbízható A nem megbízható bemenettel rendelkező adatok deszerializálásakor DataTable a támadó rosszindulatú bemeneteket hozhat létre a szolgáltatásmegtagadásos támadás végrehajtásához. Előfordulhat, hogy ismeretlen távoli kódvégrehajtási biztonsági rések vannak.
CA2351: Győződjön meg arról, hogy a DataSet.ReadXml() bemenete megbízható A nem megbízható bemenettel rendelkező adatok deszerializálásakor DataSet a támadó rosszindulatú bemeneteket hozhat létre a szolgáltatásmegtagadásos támadás végrehajtásához. Előfordulhat, hogy ismeretlen távoli kódvégrehajtási biztonsági rések vannak.
CA2352: A nem biztonságos adathalmaz vagy a szerializálható típusú DataTable sebezhető lehet a távoli kódvégrehajtási támadásokkal szemben A megjelölt SerializableAttribute osztály vagy struktúra egy vagy több DataSet mezőt vagy DataTable tulajdonságot tartalmaz, és nem rendelkezik GeneratedCodeAttribute.
CA2353: Nem biztonságos dataSet vagy DataTable szerializálható típusban Az XML-szerializálási attribútummal vagy adatszerződési attribútummal megjelölt osztály vagy szerkezet tartalmaz egy vagy DataSet több DataTable mezőt vagy tulajdonságot.
CA2354: A nem biztonságos dataSet vagy DataTable deszerializált objektumdiagramon sebezhető lehet a távoli kódvégrehajtási támadásokkal szemben Szerializált deszerializálás System.Runtime.Serialization.IFormatter , és a leadott típus objektumdiagramja tartalmazhat egy DataSet vagy DataTable.
CA2355: Nem biztonságos adathalmaz vagy DataTable deszerializált objektumgráfban Deszerializálás, ha a leadott vagy a megadott típus objektumgráfja tartalmazhat egy DataSet vagy DataTable.
CA2356: Nem biztonságos adathalmaz vagy adattábla a webes deszerializált objektumdiagramon Egy metódus olyan System.Web.Services.WebMethodAttributeSystem.ServiceModel.OperationContractAttribute paraméterrel vagy paraméterrel rendelkezik, amely hivatkozhat egy DataSet vagy DataTable.
CA2361: Győződjön meg arról, hogy a DataSet.ReadXml() tulajdonságot tartalmazó automatikusan létrehozott osztály nem használható nem megbízható adatokkal A nem megbízható bemenettel rendelkező adatok deszerializálásakor DataSet a támadó rosszindulatú bemeneteket hozhat létre a szolgáltatásmegtagadásos támadás végrehajtásához. Előfordulhat, hogy ismeretlen távoli kódvégrehajtási biztonsági rések vannak.
CA2362: A nem biztonságos adathalmaz vagy az automatikusan szerializálható típusú DataTable sebezhető lehet a távoli kódvégrehajtási támadásokkal szemben Ha a nem megbízható bemenetet BinaryFormatter deszerializálja, és a deszerializált objektumdiagram tartalmaz egy DataSet vagy DataTable, a támadó rosszindulatú hasznos adatokat hozhat létre egy távoli kódvégrehajtási támadás végrehajtásához.
CA3001: Az SQL-injektálási biztonsági rések kódjának áttekintése Ha nem megbízható bemeneti és SQL-parancsokkal dolgozik, ügyeljen az SQL-injektálási támadásokra. Az SQL-injektálási támadások rosszindulatú SQL-parancsokat hajthatnak végre, veszélyeztetve az alkalmazás biztonságát és integritását.
CA3002: Az XSS biztonsági réseinek kódjának áttekintése A webes kérések nem megbízható bemeneteivel való munka során ügyeljen a helyek közötti szkriptelési (XSS-) támadásokra. Az XSS-támadások nem megbízható bemenetet injektálnak a nyers HTML-kimenetbe, így a támadó rosszindulatú szkripteket hajthat végre vagy rosszindulatúan módosíthatja a tartalmat a weblapon.
CA3003: Fájlútvonal-injektálási biztonsági rések kódjának áttekintése A webes kérésekből származó nem megbízható bemenetek használatakor ügyeljen arra, hogy a fájlok elérési útjainak megadásakor felhasználó által vezérelt bemenetet használjon.
CA3004: Az információfeltárás biztonsági réseinek kódjának áttekintése A kivételinformációk közzététele betekintést nyújt a támadóknak az alkalmazás belső elemeibe, ami segíthet a támadóknak a biztonsági rések kihasználásában.
CA3006: A folyamatparancs-injektálási biztonsági rések kódjának áttekintése Ha nem megbízható bemenettel dolgozik, ügyeljen a parancsinjektálási támadásokra. A parancsinjektálási támadások rosszindulatú parancsokat hajthatnak végre a mögöttes operációs rendszeren, ami veszélyezteti a kiszolgáló biztonságát és integritását.
CA3007: Nyílt átirányítási biztonsági rések kódjának áttekintése Ha nem megbízható bemenettel dolgozik, ügyeljen a nyílt átirányítási biztonsági résekre. A támadók kihasználhatják a nyílt átirányítási biztonsági rést, hogy a webhelyet használva valódi URL-címet jelentessenek meg, de a gyanútlan látogatót adathalász vagy más rosszindulatú weblapra irányíthatják át.
CA3008: XPath-injektálási biztonsági rések kódjának áttekintése Ha nem megbízható bemenettel dolgozik, ügyeljen az XPath-injektálási támadásokra. Az XPath-lekérdezések nem megbízható bemenettel történő létrehozása lehetővé teheti, hogy a támadó rosszindulatúan manipulálja a lekérdezést, hogy nem kívánt eredményt adjon vissza, és esetleg közzétehesse a lekérdezett XML tartalmát.
CA3009: Az XML-injektálási biztonsági rések kódjának áttekintése Ha nem megbízható bemenettel dolgozik, ügyeljen az XML-injektálási támadásokra.
CA3010: XAML-injektálási biztonsági rések kódjának áttekintése Ha nem megbízható bemenettel dolgozik, ügyeljen az XAML-injektálási támadásokra. Az XAML egy olyan korrektúranyelv, amely közvetlenül az objektumok példányosítását és végrehajtását jelöli. Ez azt jelenti, hogy az XAML-ben létrehozott elemek képesek együttműködni a rendszererőforrásokkal (például a hálózati hozzáféréssel és a fájlrendszer IO-jával).
CA3011: A DLL-injektálási biztonsági rések kódjának áttekintése Ha nem megbízható bemenettel dolgozik, ügyeljen a nem megbízható kód betöltésére. Ha a webalkalmazás nem megbízható kódot tölt be, a támadók rosszindulatú DLL-eket szúrhatnak be a folyamatba, és rosszindulatú kódot hajthatnak végre.
CA3012: Regex-injektálási biztonsági rések kódjának áttekintése Ha nem megbízható bemenettel dolgozik, ügyeljen a regex injektálási támadásokra. A támadó regex-injektálással rosszindulatúan módosíthatja a regex-kifejezést, nem várt eredményeket érhet el, vagy hogy a regex túlzott processzorhasználatot használjon, ami szolgáltatásmegtagadási támadást eredményez.
CA3061: Ne adjon hozzá sémát URL-cím alapján Ne használja az Add metódus nem biztonságos túlterhelését, mert veszélyes külső hivatkozásokat okozhat.
CA3075: Nem biztonságos DTD-feldolgozás Ha nem biztonságos DTDProcessing-példányokat használ, vagy külső entitásforrásokra hivatkozik, az elemző elfogadhatja a nem megbízható bemeneteket, és bizalmas információkat tehet közzé a támadók számára.
CA3076: Nem biztonságos XSLT-szkript végrehajtása Ha nem biztonságos módon hajtja végre az Extensible StyleSheet Language Transformations (XSLT) szolgáltatást a .NET-alkalmazásokban, a processzor feloldhatja a nem megbízható URI-hivatkozásokat, amelyek bizalmas információkat tehetnek közzé a támadók számára, ami szolgáltatásmegtagadáshoz és helyek közötti támadásokhoz vezethet.
CA3077: Nem biztonságos feldolgozás az API-tervezésben, az XML-dokumentum és az XML-szövegolvasóban Ha XMLDocumentből és XMLTextReaderből származó API-t tervez, ügyeljen a DtdProcessingre. A nem biztonságos DTDProcessing-példányok használata külső entitásforrásokra való hivatkozáskor vagy feloldásakor, illetve az XML-ben nem biztonságos értékek beállításakor információ felfedéséhez vezethet.
CA3147: Igekezelők megjelölése az ValidateAntiForgeryToken használatával ASP.NET MVC-vezérlő tervezésekor ügyeljen a helyek közötti hamisítási támadásokra. A helyek közötti hamisítási támadások rosszindulatú kéréseket küldhetnek egy hitelesített felhasználótól a ASP.NET MVC-vezérlőnek.
CA5350: Ne használjon gyenge titkosítási algoritmusokat A gyenge titkosítási algoritmusokat és kivonatolási függvényeket ma számos okból használják, de nem használhatók a védett adatok bizalmasságának vagy integritásának garantálására. Ez a szabály akkor aktiválódik, ha tripleDES, SHA1 vagy RIPEMD160 algoritmusokat talál a kódban.
CA5351: Ne használjon hibás titkosítási algoritmusokat A hibás titkosítási algoritmusok nem tekinthetők biztonságosnak, és használatukat erősen el kell kerülni. Ez a szabály akkor aktiválódik, ha megkeresi az MD5 kivonatoló algoritmust, vagy a DES vagy RC2 titkosítási algoritmusokat a kódban.
CA5358: Ne használjon nem biztonságos titkosítási módokat Ne használjon nem biztonságos titkosítási módokat
CA5359: Ne tiltsa le a tanúsítványérvényesítést A tanúsítvány segíthet a kiszolgáló identitásának hitelesítésében. Az ügyfeleknek ellenőriznie kell a kiszolgálótanúsítványt, hogy a kérések a kívánt kiszolgálóra érkezhessenek. Ha a ServerCertificateValidationCallback mindig visszaadja true, minden tanúsítvány megfelel az ellenőrzésnek.
CA5360: Ne nevezz veszélyes módszereket a deszerializálásban A nem biztonságos deszerializálás olyan biztonsági rés, amely akkor fordul elő, ha nem megbízható adatokat használnak egy alkalmazás logikájának visszaélésére, szolgáltatásmegtagadási (DoS-) támadás végrehajtására, vagy akár tetszőleges kód végrehajtására az alkalmazás deszerializálásakor. Gyakran előfordulhat, hogy a rosszindulatú felhasználók visszaélnek ezekkel a deszerializálási funkciókkal, ha az alkalmazás az irányításuk alá tartozó nem megbízható adatokat deszerializálja. A deszerializálás folyamatában különösen veszélyes módszereket hívhat meg. A sikeres nem biztonságos deszerializálási támadások lehetővé tehetik, hogy a támadók olyan támadásokat hajtsanak végre, mint a DoS-támadások, a hitelesítési megkerülések és a távoli kódfuttatás.
CA5361: Ne tiltsa le az erős titkosítás SChannel használatát Switch.System.Net.DontEnableSchUseStrongCrypto A kimenő true Transport Layer Security (TLS) kapcsolatokban használt titkosítás gyengítése. A gyengébb titkosítás veszélyeztetheti az alkalmazás és a kiszolgáló közötti kommunikáció bizalmasságát, így a támadók könnyebben lehallgathatják a bizalmas adatokat.
CA5362: Lehetséges referenciaciklus deszerializált objektumgráfban Ha nem megbízható adatokat deszerializál, akkor a deszerializált objektumgráfot feldolgozó kódnak végtelen ciklusok nélkül kell kezelnie a referenciaciklusokat. Ez magában foglalja mind a deszerializálási visszahívás részét képező kódot, mind az objektumgráfot a deszerializálás befejezése után feldolgozó kódot. Ellenkező esetben a támadó szolgáltatásmegtagadásos támadást hajthat végre hivatkozási ciklust tartalmazó rosszindulatú adatokkal.
CA5363: Ne tiltsa le a kérések érvényesítését A kérelmek érvényesítése a ASP.NET egyik funkciója, amely megvizsgálja a HTTP-kéréseket, és meghatározza, hogy tartalmaznak-e potenciálisan veszélyes tartalmakat, amelyek injektálási támadásokhoz vezethetnek, beleértve a helyek közötti szkriptelést is.
CA5364: Ne használjon elavult biztonsági protokollokat A Transport Layer Security (TLS) biztosítja a számítógépek közötti kommunikációt, leggyakrabban a Hypertext Transfer Protocol Secure (HTTPS) használatával. A TLS régebbi protokollverziói kevésbé biztonságosak, mint a TLS 1.2 és a TLS 1.3, és nagyobb valószínűséggel vannak új biztonsági rések. A kockázat csökkentése érdekében kerülje a régebbi protokollverziókat.
CA5365: Ne tiltsa le a HTTP-fejlécek ellenőrzését A HTTP-fejléc-ellenőrzés lehetővé teszi a kocsivissza és a válaszfejlécekben található új vonal karakterek (\r és \n) kódolását. Ez a kódolás segíthet elkerülni az olyan injektálási támadásokat, amelyek olyan alkalmazásokat használnak ki, amelyek a fejlécben található nem megbízható adatokat tükrözik.
CA5366: Az XmlReader használata adathalmaz olvasási XML-fájljához DataSet Ha nem megbízható adatokat tartalmazó XML-t olvas, veszélyes külső hivatkozásokat tölthet be, amelyeket biztonságos feloldóval vagy letiltott DTD-feldolgozással kell korlátozniXmlReader.
CA5367: A típusok nem szerializálása mutatómezőkkel Ez a szabály ellenőrzi, hogy van-e szerializálható osztály mutatómezővel vagy tulajdonsággal. A szerializálni nem tudó tagok lehetnek mutatók, például statikus tagok vagy a velük NonSerializedAttributemegjelölt mezők.
CA5368: ViewStateUserKey beállítása lapról származtatott osztályokhoz ViewStateUserKey A tulajdonság beállítása segíthet megelőzni az alkalmazással kapcsolatos támadásokat, ha lehetővé teszi, hogy azonosítót rendeljen az egyes felhasználók nézetállapot-változójához, hogy a támadók ne tudják használni a változót támadás létrehozásához. Ellenkező esetben biztonsági rések lépnek fel a helyek közötti kérelemhamisításhoz.
CA5369: Az XmlReader használata deszerializáláshoz A nem megbízható DTD- és XML-sémák feldolgozása lehetővé teheti a veszélyes külső hivatkozások betöltését, amelyeket korlátozni kell egy biztonságos feloldóval rendelkező XmlReaderrel, vagy letiltott DTD- és XML-beágyazott sémafeldolgozással.
CA5370: Az XmlReader használata az olvasó ellenőrzéséhez A nem megbízható DTD- és XML-sémák feldolgozása veszélyes külső hivatkozások betöltését teheti lehetővé. Ezt a veszélyes betöltést egy biztonságos feloldóval rendelkező XmlReaderrel, vagy a DTD és az XML beágyazott sémafeldolgozás letiltásával korlátozhatja.
CA5371: Az XmlReader használata sémaolvasáshoz A nem megbízható DTD- és XML-sémák feldolgozása veszélyes külső hivatkozások betöltését teheti lehetővé. Ezt korlátozza, ha egy XmlReader biztonságos feloldóval vagy letiltott DTD- és XML-beágyazott sémafeldolgozással rendelkezik.
CA5372: Az XmlReader használata XPathDocumenthez Az XML nem megbízható adatokból való feldolgozása veszélyes külső hivatkozásokat tölthet be, amelyek korlátozhatók egy biztonságos feloldóval rendelkező XmlReaderrel vagy a DTD-feldolgozás letiltásával.
CA5373: Ne használjon elavult kulcs származtatási függvényt Ez a szabály észleli a gyenge kulcs származtatási módszereinek System.Security.Cryptography.PasswordDeriveBytes és Rfc2898DeriveBytes.CryptDeriveKeya . System.Security.Cryptography.PasswordDeriveBytes a PBKDF1 gyenge algoritmust használt.
CA5374: Ne használja az XslTransformot Ez a szabály ellenőrzi, hogy System.Xml.Xsl.XslTransform a kód példányosítva van-e. System.Xml.Xsl.XslTransform elavult, és nem szabad használni.
CA5375: Ne használjon megosztott hozzáférésű fiók aláírását A fiók sasa delegálhatja az olvasási, írási és törlési műveleteket a blobtárolókon, táblákon, üzenetsorokon és fájlmegosztásokon, amelyek nem engedélyezettek a szolgáltatás SAS-jével. Ez azonban nem támogatja a tárolószintű szabályzatokat, és kevésbé rugalmas és szabályozható a megadott engedélyek felett. Ha a rosszindulatú felhasználók megkapják, a tárfiók könnyen megsérül.
CA5376: A SharedAccessProtocol HttpsOnly használata Az SAS olyan bizalmas adatok, amelyek nem szállíthatók egyszerű szövegben HTTP-n.
CA5377: Tárolószintű hozzáférési szabályzat használata A tárolószintű hozzáférési szabályzat bármikor módosítható vagy visszavonható. Nagyobb rugalmasságot és ellenőrzést biztosít a megadott engedélyek felett.
CA5378: A ServicePointManagerSecurityProtocols letiltása DisableUsingServicePointManagerSecurityProtocols A Windows Communication Framework (WCF) Transport Layer Security (TLS) kapcsolatainak TLS 1.0-s használatára való korlátozásának beállításatrue. A TLS e verziója elavult lesz.
CA5379: Győződjön meg arról, hogy a kulcs származtatási függvény algoritmusa kellően erős Az Rfc2898DeriveBytes osztály alapértelmezés szerint az SHA1 algoritmust használja. Meg kell adnia azt a kivonatoló algoritmust, amelyet a konstruktor SHA256 bizonyos túlterheléseinél használjon. Vegye figyelembe, hogy HashAlgorithm a tulajdonság csak tartozékokkal get rendelkezik, és nem rendelkezik overridden módosítóval.
CA5380: Ne adjon hozzá tanúsítványokat a legfelső szintű tárolóhoz Ez a szabály észleli azokat a kódot, amelyek tanúsítványt adnak hozzá a megbízható legfelső szintű hitelesítésszolgáltatók tanúsítványtárolójába. Alapértelmezés szerint a megbízható legfelső szintű hitelesítésszolgáltatók tanúsítványtárolója olyan nyilvános hitelesítésszolgáltatókkal van konfigurálva, amelyek megfelelnek a Microsoft főtanúsítvány-program követelményeinek.
CA5381: Győződjön meg arról, hogy a tanúsítványok nincsenek hozzáadva a gyökértárolóhoz Ez a szabály észleli azokat a kódot, amelyek tanúsítványt adhatnak hozzá a megbízható legfelső szintű hitelesítésszolgáltatók tanúsítványtárolójába. Alapértelmezés szerint a megbízható legfelső szintű hitelesítésszolgáltatók tanúsítványtárolója olyan nyilvános hitelesítésszolgáltatókkal van konfigurálva, amelyek megfelelnek a Microsoft főtanúsítvány-program követelményeinek.
CA5382: Biztonságos cookie-k használata a ASP.NET Core-ban A HTTPS-en keresztül elérhető alkalmazásoknak biztonságos cookie-kat kell használniuk, amelyek jelzik a böngészőnek, hogy a cookie-t csak a Transport Layer Security (TLS) használatával kell továbbítani.
CA5383: Győződjön meg arról, hogy biztonságos cookie-kat használ a ASP.NET Core-ban A HTTPS-en keresztül elérhető alkalmazásoknak biztonságos cookie-kat kell használniuk, amelyek jelzik a böngészőnek, hogy a cookie-t csak a Transport Layer Security (TLS) használatával kell továbbítani.
CA5384: Ne használjon digitális aláírási algoritmust (DSA) A DSA egy gyenge aszimmetrikus titkosítási algoritmus.
CA5385: A Rivest–Shamir–Adleman (RSA) algoritmus használata megfelelő kulcsmérettel A 2048 bitesnél kisebb RSA-kulcs sebezhetőbb a találgatásos támadásokkal szemben.
CA5386: A SecurityProtocolType érték korlátozásának elkerülése A Transport Layer Security (TLS) biztosítja a számítógépek közötti kommunikációt, leggyakrabban a Hypertext Transfer Protocol Secure (HTTPS) használatával. A TLS 1.0 és a TLS 1.1 protokollverzió elavult, míg a TLS 1.2 és a TLS 1.3 aktuális. A jövőben a TLS 1.2 és a TLS 1.3 elavult lehet. Annak érdekében, hogy az alkalmazás biztonságos maradjon, kerülje a protokollverzió keménykódolását, és legalább .NET-keretrendszer 4.7.1-es verziót célozz meg.
CA5387: Ne használjon gyenge kulcs származtatási függvényt elégtelen iterációszámmal Ez a szabály ellenőrzi, hogy a titkosítási kulcsot 100 000-nél kisebb iterációs számmal hozták-e létre Rfc2898DeriveBytes . A magasabb iterációs szám segíthet enyhíteni a létrehozott titkosítási kulcsot kitaláló szótári támadásokat.
CA5388: Gondoskodjon a megfelelő iterációszámról gyenge kulcs származtatási függvény használatakor Ez a szabály ellenőrzi, hogy a titkosítási kulcsot 100 000-nél kisebb iterációs számmal hozták-e létre Rfc2898DeriveBytes . A magasabb iterációs szám segíthet enyhíteni a létrehozott titkosítási kulcsot kitaláló szótári támadásokat.
CA5389: Ne adja hozzá az archív elem elérési útját a cél fájlrendszer elérési útjához A fájl elérési útja relatív lehet, és a fájlrendszer a várt célelérési útvonalon kívülre is elérheti a fájlrendszert, ami kártékony konfigurációs módosításokhoz és távoli kódvégrehajtáshoz vezethet a lay-and-wait technikával.
CA5390: Ne használj kemény kódú titkosítási kulcsot Ahhoz, hogy egy szimmetrikus algoritmus sikeres legyen, a titkos kulcsot csak a feladónak és a fogadónak kell ismernie. Ha egy kulcs nehezen kódolt, könnyen felderíthető. Még a lefordított bináris fájlok esetén is könnyen kinyerhetik a kártékony felhasználók. A titkos kulcs feltörése után a titkosító szöveg közvetlenül visszafejthető, és többé nem védett.
CA5391: Antiforgery tokenek használata ASP.NET Core MVC-vezérlőkben A POST, , PUT, PATCHvagy DELETE kérések antiforgery jogkivonat érvényesítése nélkül történő kezelése sebezhető lehet a helyek közötti hamisítási támadások ellen. A helyek közötti hamisítási támadások rosszindulatú kéréseket küldhetnek egy hitelesített felhasználótól a ASP.NET Core MVC-vezérlőnek.
CA5392: A DefaultDllImportSearchPaths attribútum használata P/Invokes esetén Alapértelmezés szerint a P/Invoke függvények több könyvtár mintavételét használják DllImportAttribute , beleértve a betöltendő tár aktuális munkakönyvtárát is. Ez biztonsági probléma lehet bizonyos alkalmazások esetében, ami DLL-eltérítéshez vezethet.
CA5393: Ne használjon nem biztonságos DllImportSearchPath értéket Rosszindulatú DLL lehet az alapértelmezett DLL keresési könyvtárakban és szerelvénykönyvtárakban. Vagy attól függően, hogy honnan futtatja az alkalmazást, az alkalmazás címtárában rosszindulatú DLL is lehet.
CA5394: Ne használjon nem biztonságos véletlenszerűséget A kriptográfiailag gyenge pszeudo-véletlenszerű számgenerátor használatával a támadó előre jelezheti, hogy milyen biztonsági szempontból érzékeny érték jön létre.
CA5395: Miss HttpVerb attribútum a műveleti módszerekhez Az adatokat létrehozó, szerkesztendő, törölhető vagy egyéb módon módosító összes műveletmetelyt az antiforgery attribútummal kell védeni a helyek közötti kérelemhamisítási támadásoktól. A GET művelet végrehajtásának olyan biztonságos műveletnek kell lennie, amelynek nincsenek mellékhatásai, és nem módosítja a tárolt adatokat.
CA5396: HttpOnly beállítása true for HttpCookie Mélységi védelmi intézkedésként győződjön meg arról, hogy a biztonsági szempontból érzékeny HTTP-cookie-k HttpOnlyként vannak megjelölve. Ez azt jelzi, hogy a webböngészőknek le kell tiltania a szkriptek hozzáférését a cookie-khoz. Az injektált rosszindulatú szkriptek gyakran ellopják a cookie-kat.
CA5397: Ne használjon elavult SslProtocols-értékeket A Transport Layer Security (TLS) biztosítja a számítógépek közötti kommunikációt, leggyakrabban a Hypertext Transfer Protocol Secure (HTTPS) használatával. A TLS régebbi protokollverziói kevésbé biztonságosak, mint a TLS 1.2 és a TLS 1.3, és nagyobb valószínűséggel vannak új biztonsági rések. A kockázat csökkentése érdekében kerülje a régebbi protokollverziókat.
CA5398: A merevlemezes SslProtocols értékek elkerülése A Transport Layer Security (TLS) biztosítja a számítógépek közötti kommunikációt, leggyakrabban a Hypertext Transfer Protocol Secure (HTTPS) használatával. A TLS 1.0 és a TLS 1.1 protokollverzió elavult, míg a TLS 1.2 és a TLS 1.3 aktuális. A jövőben a TLS 1.2 és a TLS 1.3 elavult lehet. Annak érdekében, hogy az alkalmazás biztonságos maradjon, kerülje a protokollverziók keménykódolását.
CA5399: Határozottan tiltsa le a HttpClient-tanúsítványok visszavonási listájának ellenőrzését A visszavont tanúsítványok már nem megbízhatók. Ezt használhatják a támadók, akik rosszindulatú adatokat adnak át, vagy ellopják a bizalmas adatokat a HTTPS-kommunikációban.
CA5400: Győződjön meg arról, hogy a HttpClient-tanúsítványok visszavonási listájának ellenőrzése nincs letiltva A visszavont tanúsítványok már nem megbízhatók. Ezt használhatják a támadók, akik rosszindulatú adatokat adnak át, vagy ellopják a bizalmas adatokat a HTTPS-kommunikációban.
CA5401: Ne használja a CreateEncryptort nem alapértelmezett IV-es verzióval A szimmetrikus titkosításnak mindig nem ismételhető inicializálási vektort kell használnia a szótártámadások megelőzése érdekében.
CA5402: A CreateEncryptor használata az alapértelmezett IV-vel A szimmetrikus titkosításnak mindig nem ismételhető inicializálási vektort kell használnia a szótártámadások megelőzése érdekében.
CA5403: Ne használj kemény kódú tanúsítványt Egy data vagy rawData több konstruktor vagy X509Certificate konstruktor paramétere X509Certificate2 szigorúan kódolt.
CA5404: Ne tiltsa le a jogkivonat-érvényesítési ellenőrzéseket TokenValidationParameters a jogkivonat érvényesítését vezérlő tulajdonságok nem állíthatók be a következőre false: .
CA5405: Ne hagyja ki mindig a tokenérvényesítést a meghatalmazottakban A visszahíváshoz rendelt AudienceValidator vagy LifetimeValidator mindig visszaadott truevisszahívás.