Checklist for Best Practices
qUse a positive security model.
qRun with least privilege.
qAvoid security by obscurity.
qKeep security simple.
qDetect intrusions and keep logs.
qNever trust infrastructure and services.
qEstablish secure defaults.
qUse open standards.
Checklist for Auditing Applications
qReview and evaluate data input controls.
qDetermine the need for error/exception reports related to data integrity, and evaluate whether this need has been fulfilled.
qReview and evaluate the controls in place over data feeds to and from interfacing systems.
qIn cases where the same data are kept in multiple databases and/or systems, periodic ‘sync’ processes should be executed to detect any inconsistencies in the data.
qReview and evaluate the audit trails present in the system and the controls over those audit trails.
qThe system should provide a means to trace a transaction or piece of data from the beginning to the end of the process enabled by the system.
qThe application should provide a mechanism that authenticates users based, at a minimum, on a unique identifier for each user and a confidential password.
qReview and evaluate the application's authorization mechanism to ensure that users are not allowed to access any sensitive transactions or data without first being authorized by the system's security mechanism.
qEnsure that the system's security/authorization mechanism has an administrator function with appropriate controls and functionality.
qDetermine whether the security mechanism enables any applicable approval processes.
qEnsure that a mechanism or process has been put in place that suspends user access on termination from the company or on a change of jobs within the company.
qVerify that the application has appropriate password controls.
qReview and evaluate processes for granting access to users. Ensure that access is granted only when there is a legitimate business need.
qEnsure that users are automatically logged off from the application after a certain period of inactivity.
qEvaluate the use of encryption techniques to protect application data.
qEvaluate application developer access to alter production data.
qEnsure that the application software cannot be changed without going through a standard checkout/staging/testing/approval process after it is placed into production.
qEvaluate controls around code checkout, modification, and versioning.
qEvaluate controls around the testing of application code before it is placed into a production environment.
qEnsure that appropriate backup controls are in place.
qEnsure that appropriate recovery controls are in place.
qEvaluate controls around the application's data retention.
qEvaluate controls around data classification within the application.