1. Deployment is the last phase of software development lifecycle where the application is moved form development environment to production environment
  2. It is the first time where the system administrator is involved in software development
  3. The application can be exposed to different types of attacks, if an administrator commits configuration mistakes in the deployment phase
  4. Security should also be the key consideration while deploying any application

Prior Deployment Activity: Check the Integrity of Application Package before Deployment

  • Software vendors generally provide checksum of the application with the application package
  • System administrators should again generate a checksum of the application and compare it with the checksum provided with the package to ensure the integrity of the application
  • Two identical checksums confirm that the application is not tampered during the delivery

Prior Deployment Activity: Review the Deployment Guide Provided by the Software Vendor

  • Use deployment checklists provided by the software vendor
  • Do not build and use your own deployment checklist as it may affect the application security

Deployment Activities: Ensuring Security at Various Levels

  • Secure deployment involves ensuring security at various levels from bottom to top
  • It involves considering security related to the potential customer environments which include:
    – Host Level Deployment Security
    – Container Level (Tomcat) Deployment Security
    – Oracle Level Deployment Security

Check and Configure the Security of Machine Hosting Web Server, Application Server, Database Server and Network Devices

  1. Firstly, the production environment will be secured, if the machine hosting the web server is secured
  2. The physical security of a host machine, its OS security, and the security of the all other software installed on the machine should be ensured
  3. Check the host server and all of the services upon which the application security will depend

Physical Security

  • Ensure that server machine is placed in a secured area
  • Ensure that an appropriate physical access control is implemented to restrict unauthorized physical access

Host Level Security

  • Patches and Updates (Component)
    – Not deploying patches and updates to the web sever can allow attackers to run malicious code or intrude the server
  • Services
    – Services are easy targets for attackers to access the privilege and exploit the functioning of the server
    – Do not run the service that is not required for the server functioning
    – It is important to monitor running services
  • Protocols
    – Do not implement protocols that are insecure and can not provide encrypted authentication
    – Example: Telnet, File Transfer Protocol(FTP), Simple Mail transfer Protocol(SMTP)
  • Accounts
    – Audit the user accounts regularly to avoid any malicious activities
    – Provide limited privileges to account to prevent privilege elevation
    – Delete accounts that are no more beneficial for the application
    – Implement strong password policies
  • Files and Directories
    – Implement NTFS permissions on files and directories on web server this will allow access to only Windows services
  • Shares
    – Secure file shares process with NTFS permissions
    – Limited shares reduces intrusion possibility on web server
  • Ports
    – Services running on server listen to specific ports
    – Auditing ports regularly will help to detect any irregular service on the server
  • Registry
    – Secure the registry by:
    – Applying restricted Windows ACL
    – Blocking remote registry administration