¿Cómo se utilizan los softwares bancarios a través de Internet?

-3

Estoy desarrollando un software bancario que usa PHP y que se usará a través de Internet. ¿Cuáles son algunos de los pasos de seguridad que debo seguir en el diseño, la programación, el alojamiento de db ...? gracias.

    
pregunta karto 01.08.2012 - 16:52
fuente

2 respuestas

11

Probablemente esto no sea lo que quieres escuchar, pero ...

NO HAGA ESTO.

La seguridad es un campo enorme y complejo, e incluso las grandes empresas se equivocan horriblemente de forma regular. Agregue esto al hecho de que desea lidiar con la información financiera, y también tiene un atolladero legal para analizar. Las políticas y la legislación involucradas en este proyecto son suficientes para llenar varios libros.

Yo no intentaría tal proyecto yo mismo. Es una empresa enorme y requiere una amplia experiencia técnica y legal.

Si está realmente interesado en la seguridad, dedique un tiempo a leer las preguntas y respuestas aquí, e investigue estos temas hasta que se sienta cómodo con los conceptos involucrados. Con suerte, entonces, entenderá por qué damos este consejo.

    
respondido por el Polynomial 01.08.2012 - 17:25
fuente
4

100% de acuerdo con el polinomio. Pero algunos consejos más.

  1. No utilice ningún alojamiento de terceros / alojamiento compartido / VPS / base de datos. Los administradores de sistemas en el alojamiento de terceros, en principio, tienen acceso completo a todos los datos en esa máquina y están fuera de su capacidad de monitorear completamente. ¿Puede asegurarse de que no alteraron la máquina virtual que ejecuta su aplicación para cambiar un entero que representa su saldo de $ 20 a $ 65556? Necesitará tener personal a tiempo completo para mantener estas máquinas y las copias de seguridad redundantes.

  2. No uses php; es un langague notoriamente difícil de programar de forma segura, y solo se utiliza para la interfaz web. El front-end web de su aplicación bancaria es la menor de sus preocupaciones. Debe preocuparse por el backend que verifica la integridad de los datos de su sistema. Por ejemplo, un cajero bancario no puede aumentar el saldo de una cuenta aceptando cheques / dinero que se valida al final del día; o si alguien transfiere dinero de la cuenta A a la cuenta B, esa cuenta A siempre disminuye en la misma cantidad en que aumenta la cuenta B, y no hay forma de que alguien ingrese al sistema y altere la base de datos. Reconozca la necesidad de retrasar las transferencias, emitir un cheque, aceptar un depósito, detectar y revertir el fraude.

  3. Cuando tenga ese sistema de base de datos completamente operativo e intacto, puede pensar en inventar una interfaz web. Una vez más, no sugeriría php. Asegúrese de que su sistema sea robusto contra la inyección de SQL, CSRF, XSS, ataques MITM, use encriptación de capa de transporte de extremo a extremo con un certificado válido, no almacene contraseñas (pero hashes con sal reforzados con clave fuerte), posiblemente use 2 Factor de autenticación. Hacer todos los cálculos / transacciones del lado del servidor; No confíe en la entrada del usuario. Envíe notificaciones a un usuario a través de un tercer canal (correo electrónico / llamada telefónica) cada vez que se realice una transferencia; se paga la factura; Asegúrese de que su aplicación tenga registros de auditoría completos en un formato conveniente para analizar y que el personal pagado busque patrones de ataque haciendo todo lo posible para evitarlos.

  4. Luego, contrate a uno o más consultores de seguridad para auditar su software antes de ponerlo en funcionamiento, y no lo ponga en funcionamiento hasta que haya una auditoría de seguridad completa realizada por expertos antes de comenzar a funcionar.

  5. Esté al tanto de las leyes bancarias relevantes y su posible responsabilidad por arruinar esto en su área.

  6. Verificación de antecedentes de todos los personales con privilegios elevados.

PS: No tengo experiencia en el diseño de software bancario como este, y esto es solo la punta del iceberg.

    
respondido por el dr jimbob 01.08.2012 - 19:50
fuente

Lea otras preguntas en las etiquetas