¿Hay manera de impedir que la aplicación que se está analizando o se inyecta? (C#)

StackOverflow https://stackoverflow.com/questions/893658

  •  23-08-2019
  •  | 
  •  

Pregunta

Hay un montón de perfiladores y analizadores de código estático que hay para C # asambleas.

Sólo me pregunto si hay algún método para prevenir que se está analizando, ya que me hace sentir un poco nervioso al ser despojado.

He buscado en todo el Internet y stackoverflow. Parece que ninguno de mi asombro.

Lo que tengo son sólo algunos de los títulos aún más aterrador como estos (lo siento, el nuevo usuario no puede publicar los hipervínculos, por favor google ellos):

"Asamblea Manipulación y C # / VB.NET Code Injection"

"Cómo inyectar una Asamblea administrado de .NET (DLL) en otro proceso"

¿Es justo que yo estaba demasiado preocupado o qué?

Por cierto, con C #, estamos construyendo un nuevo cliente WinForm para los clientes de un banco para hacer transacciones en línea. ¿No deberíamos hacer esto de la manera WinForm o debemos utilizar algún otro lenguaje como Delphi, C ++? En la actualidad tenemos un cliente WinForm construida con C ++ Builder.

¿Fue útil?

Solución

Casi cualquier aplicación puede ser "analizó y se inyectó". Algunos más que otros. Es por eso que nunca confía en la entrada del usuario. Validar plenamente las peticiones de su usuario en el servidor final, asegurándose de que no es vulnerable a amortiguar los excesos, la inyección de SQL y otros vectores de ataque.

Obfuscators pueden hacer ensamblados .NET más difíciles de analizar. El uso de una clave segura a la fuerte-Name asambleas pueden hacer que sea mucho más difícil de alterar su código. Pero, como todo lo demás en el mundo digital, alguien puede aprovechar una vulnerabilidad y moverse por lo salvaguardias se pone en su lugar.

Otros consejos

Si por analizada quiere decir que alguien descompilación el código y mirarlo, entonces el Dotfucstor que se incluye con VS Pro y por encima es una herramienta sencilla (gratuito) para ayudar aquí. Hay una funcionalidad completa (pero pagado) versión que puede hacer más.

Para evitar que alguien la manipulación de sus assmebliles desplegado, utilice Nombres fuertes .

Donde hay una voluntad, hay un camino, si se trata de código nativo o montaje logró. La clave es mantener la información importante sobre el extremo del servidor y mantener el control de ello.

La primera cosa que hay que decidir en contra de lo que está tratando de proteger? Ofuscadores son útiles sólo para proteger a los algoritmos de "salsa secreta", pero el atacante puede simplemente extraer el código y utilizarlo como negro-caja. En el 99% de los casos son ofuscadores pérdida de dinero. Si el atacante tiene acceso físico no hay mucho que puede hacer.

Si el usuario final se está ejecutando con privilegios administrativos, entonces será capaz de asociar un depurador, y modificar su código, incluyendo detalles de la cuenta de destino. Mi banco amigo local me ha dado un lector de chip y pin que tengo que introducir los últimos n dígitos de la cuenta de destino, que se hashes / encripta con Chip de mi tarjeta de crédito; entonces introducir el código del dispositivo en la aplicación web del banco que se puede comprobar al final del banco también. Esto mitiga "hombre en el medio" ataques de tipo ...

Seguridad sólo es posible en los sistemas a controlar físicamente el acceso a, y aun así no se garantiza, sólo alcanzable. Debe asumir cualquier código no se ejecuta en un sistema a controlar lata y se verá comprometida. Como se dijo Rowland Shaw, la mejor apuesta para una institución financiera es una especie de identificación física que añade un componente único efectivamente fuera de línea para todas las transacciones que no pueden ser (fácilmente) conocidos de antemano por un atacante que opera desde un sistema comprometido. Incluso entonces usted debe ser consciente del hecho de que si el ordenador del usuario ha sido comprometida y que inicia sesión con su token seguro desde ese punto hacia adelante hasta que la sesión termina el atacante está libre para realizar cualquier acción que el usuario tiene permiso para, pero por lo menos en ese caso es más probable que note la actividad fraudulenta al usuario.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top