¿Cómo evitar que los administradores de sistemas manipulen el código?

0

Digamos que tiene algunos datos confidenciales de usuario que necesita proteger (por ejemplo, para el cumplimiento de PCI) y lo ha hecho al hacer que el código del servidor lo cifre antes de almacenarlo en un servidor independiente donde ningún usuario tenga acceso a ambos.

Pero, ¿qué se podría hacer para detener a quien esté implementando el código modificándolo para guardarlo en otro lugar sin cifrar (o cifrado con su propia clave), o de otra manera consultar y descifrar la base de datos manualmente (ya que el propio servidor necesitaría una forma de descifrar)? it)?

Se siente como si se usara algo DRM, pero de alguna manera dudo que eso sea lo que pasa en la práctica (y DRM es intrínsecamente inseguro). No veo cómo ayudaría un TPM debido a que el servidor necesita poder cifrar y descifrar.

¿Qué se requiere con respecto a esto cuando se solicita el cumplimiento de PCI? ¿Qué se hace a menudo para prevenir el "descifrado" anterior? ¿Qué cambiaría si el servidor solo necesitara cifrar ("escribir") y no descifrar ("leer")?

Nota: no estoy solicitando el cumplimiento de PCI, solo me interesa cómo se hace.

    
pregunta 小太郎 15.02.2016 - 08:49
fuente

2 respuestas

3

En realidad no hay control en la aplicación en sí. A menudo, la forma en que se verifica esto en la práctica es mediante el uso de principios de doble ojo para implementaciones (ningún usuario puede acceder o cambiar el sistema por sí solo) o usan soluciones que realizan una contabilidad de comandos completa como Powerbroker o CyberArk.

Tenga en cuenta que estos sistemas también deberían ser gestionados por equipos independientes.

    
respondido por el Lucas Kauffman 15.02.2016 - 09:50
fuente
2

Lo mejor aquí sería firmar el código, usando una raíz personalizada importada al servidor. (La PKI interna está permitida para el cumplimiento de PCI si el sistema PKI en cuestión solo se usa internamente)

Impedir que alguien modifique el software del servidor si tiene acceso físico es imposible, por lo que debe hacer que el servidor esté físicamente protegido, por lo que 2 personas deben escanear su tarjeta de acceso al mismo tiempo para obtener información física. Acceso al servidor. Preferiblemente, el control dual se entrega al desarrollador (uno que escribe el código) y al implementador (uno que implementa el código).

Lo mejor aquí sería tener 2 puertas a la sala de servidores (en serie), donde el desplegador tenga la tarjeta de acceso a la primera puerta, y el desarrollador tenga la tarjeta de acceso a la segunda puerta. Esto significa que ambos deben unirse para poder realizar el mantenimiento físico en el servidor.

Luego puede tener un terminal de despliegue entre estas 2 puertas, donde el servidor solo aceptará el código del terminal de despliegue si está firmado por la raíz personalizada. Dado que este terminal de implementación está detrás de la primera puerta, solo el implementador tiene acceso a este terminal, no el desarrollador. Esto significa que el desarrollador y el implementador no necesitan venir juntos para instalar un nuevo software en el servidor, pero aún así, tanto el desarrollador como el implementador deben aceptar el mismo código, pero pueden hacerlo en ubicaciones separadas.

Tenga en cuenta que todos, incluso aquellos que solo tienen acceso parcial a un sistema con certificación PCI para el almacenamiento de la información del titular de la tarjeta (con acceso parcial, me refiero a que un acceso está bloqueado, por lo que 2 personas deben unirse y autenticarse, y la persona solo tiene la mitad de lo que se requiere para obtener acceso) debe ser revisado por completo, por ejemplo, debe solicitar hojas informativas al departamento de policía, y posiblemente incluso necesite verificar a los familiares de la persona que va a trabajar para que la persona que solicita el empleo no tenga un padre que previamente haya robado banco. (Por ejemplo, en Suecia, toda la red social se verifica cuando se solicitan empleos muy sensibles, y esta verificación la realiza la "Policía de Seguridad", en Suecia llamada SÄPO, y usted, como solicitante, solo obtiene un sí o un no, no No conozca quién en su red de contactos sociales era "indigno de confianza", para proteger la privacidad de estas personas, e incluso es posible que no se le haya sospechado de ningún delito en los últimos 5 años, incluso si nunca lo hizo. fue condenado)

Por lo tanto, los requisitos son que aquellas personas que sí tienen la posibilidad de acceder a un entorno PCI certificado para el almacenamiento de datos del titular de la tarjeta DEBEN ser examinadas cuidadosamente y, si las revisa cuidadosamente, no debería tener este problema. desde el principio, se vuelven "deshonestos" y posiblemente deshabilitan cualquier protección de seguridad en el servidor.

La protección descrita en los requisitos de PCI, está ahí para proteger contra el acceso externo principalmente, por ejemplo, si alguien irrumpe en la sala del servidor con, digamos un C4 y roba el servidor, los datos deben ser ilegibles. Por lo tanto, las claves de encriptación preferibles solo deben existir en la RAM (donde una contraseña, que solo es preferible en 2 partes, la mitad en la cabeza del desarrollador y la mitad en la cabeza del implementador deben escribirse al inicio), y cualquier intento de manipulación debe estar protegido con una alarma que apague el servidor antes de que alguien se acerque demasiado.

    
respondido por el sebastian nielsen 15.02.2016 - 15:44
fuente

Lea otras preguntas en las etiquetas