Jelenthet-e biztonsági kockázatot az, hogy a C és C++ nyelvekben memóriaszemét lehet az inicializálatlan változók értéke?
A titkosítást vissza kell fejteni, hogy a kódban dolgozni tudj az adatokkal, és ha már a kódban az adatokkal dolgozol és nem a titkosított verzióval, mert ugyebár azzal nem fogsz tudni .... Akkor ugyanott vagy, memóriában megtalálhatod.
Példa: Játékokban csalások. Multiplayerekben pl. A legtöbb csalást úgy készítik, hogy a memóriában kutatnak. ;)
"Például C# esetén a SecureString-et nem fogod semmivel kinyerni Windows alatt."
Azért óvatosan a SecureStringgel:
"Important
We don't recommend that you use the SecureString class for new development. For more information, see SecureString shouldn't be used on GitHub."
Forrás: Microsoft Docs - SecureString Class (System.Security) ( [link] )
"When porting code to .NET Core, consider that the contents of the array are not encrypted in memory."
A biztonsági kockázatot az jelenti, hogy ha egy vagy több változó idő előtt inicializálatlanul marad, később viszont használatba lesz véve /elvégre azért van ott/ a használat során a random memóriaszemét biztosítja majd a változó értékét, mint operandust. Ez pedig komoly veszélyforrás.
Tekintve, hogy a C soha nem inicializálta a változókat, így ez a tény széles körben ismertté és kihasználhatóvá vált.
Tekintve továbbá, hogy a PC-n futó programok zömét C-ben írták, ez nem kis gond.
Nem kizárólag, de ennek is köszönhetünk sok vírust, trójait, malware-t.
"korábban ott lévő adatot vissza lehet-e nyerni egy programmal"
Kb. erről szólt régebben a buffer overflow attack/vulnerability. (Illetve ma is, védelemtől függően.)
Kapcsolódó kérdések:
Minden jog fenntartva © 2025, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!