Bevezetés az integer overflow és underflow Sebezhetőségekbe
az Integer overflow és underflow sebezhetőségek a nyolcadik legveszélyesebb sebezhetőségnek számítanak a Common Weakness Enumeration (CWE) Top 25 listáján 2019-ben. Az ilyen típusú sebezhetőségeket a változótípusokkal való visszaélés hozza létre, és kihasználhatók más típusú sebezhetőségek, például puffertúlcsordulások elleni védelem megkerülésére.
változó típusok és méretek
minden programozási nyelv különböző típusú változókat tartalmaz. A szöveges adatokat tartalmazó karakter nagyon különbözik az egész számtól vagy a lebegőtől. Ezen Általános típusokon túl azonban további különbségek vannak a változók között, és ezek a különbségek teszik lehetővé az egész túlcsordulás és aluláramlás sebezhetőségét.
A legtöbb programozási nyelv rendelkezik aláírt és előjel nélküli egész számokkal. Az aláírt egész számnak (ahogy a neve is sugallja) van egy jele, amely lehetővé teszi mind a pozitív, mind a negatív értékek tárolását. Az aláíratlan változó viszont csak pozitív számokat tárolhat.
amint a fenti képen látható, egy adott méretű aláírt és aláíratlan változókat azonos módon írnak a számítógép memóriájába. Az egyetlen különbség az érték értelmezése. Aláírt érték esetén a vezető negatív számot jelent, míg az előjel nélküli értéknél az első helyen lévő csak nagy számot jelent.
a másik fő különbség a különböző” egész ” változótípusok között az érték nagysága, amelyet tartalmazhatnak. A programozási nyelvek rövid, egész, hosszú és azon túli fogalmakkal rendelkeznek, amelyek mindegyike meghatározza az adott változóhoz rendelt memóriaterület méretét és az értékek tartományát.
egész túlcsordulások és alulcsordulások
az egész túlcsordulás és alulcsordulás biztonsági rései az aláírt és az alá nem írt változók, valamint a különböző méretű egész változótípusok közötti nem biztonságos konverzióhoz vezetnek. Általában megengedett a különböző típusok közötti átváltás, és sok esetben (tovább…)