Witam,
Czy ktoś miał może do czynienia ze skanami z Fortify? Ostatnio mój kod przeszedł coś takiego i dostałem następujące błędy. Może ktoś będzie w stanie mi poradzić:
- Heap Inspection
Z tego co wyczytałem ogranicza się to do tego, ze nie powinno się przechowywać danych jak hasła w na przyklad stringach ponieważ można to odzyskać z pamięci. Metoda w której został ten błąd wskazany używaMemory stream
iCrypto Stream
i konwertuje to naSecureString
.
Konwertuje to za pomocą:
Encoding.UTF8.GetString(plainTextBytes, 0, decryptedByteCount).ToCharArray()
Z tego co mi się wydaje to problemem jest ta częśćGetString
, prawda? Ponieważ w tym momencie ten string zostaje zapisywany w pamięci a dopiero potem konwerstowany naCharArray
iSecureString
.
Jakakolwiek porada mile widziana
2)Unsafe Native Invoke
Mam taka oto klase:
class Win32NativeMethods
{
[DllImport("advapi32.dll", SetLastError = true, CharSet = CharSet.Unicode )]
public static extern int LogonUser( string lpszUserName, string lpszDomain,IntPtr lpszPassword, int dwLogonType, int dwLogonProvider, ref IntPtr phToken);
[DllImport("advapi32.dll", CharSet = CharSet.Auto, SetLastError = true)]
public static extern int DuplicateToken( IntPtr hToken, int impersonationLevel, ref IntPtr hNewToken);
}
W momencia wykorzystywania przeze mnie metody LogonUser
int myInt = SecureNativeMethods.LogonUser(userName, domainName, p, (int)logonType, (int)logonProvider, ref logonToken);
pokazuje mi się ów błąd, ale jak używam DuplicateToken
if (Win32NativeMethods.DuplicateToken(logonToken, (int)ImpersonationLevel.SecurityImpersonation, ref logonTokenDuplicate) != 0)
to taki błąd nie zostje wytknięty.
Z góry dziękuję za pomoc.
Pozdrawiam