Skip to main content

Security: Keeping your Database Safe

Hosting the database outside of premise systems in saas environment comes with security risks. There should be protocols setup for every storage mechanism to handle the situations of breach of penetration which could result in data leak. Educating the team involved on the importance of security is the first step to start with, Few considerations that can be taken up has been listed based on my experience.

Firstly the servers used for hosting should be reliable with latest security patches available. Most of the providers are quick to patch and prevent any recent penetration attacks on other servers. In case of web application, deploy the database on a different server with private IP and access to it should be limited with fewer individuals from local machines.

The passwords used should be strong and default udp/tcp ports should not be used to reduce predictability by bots when connecting to database. Setting of HTTPS server would help to provide an extra layer of security as any request data that passes to database would be in encrypted form. Monitoring tools can be used for logging every request on real time basis and this data can be studied to track any potential attemp to breach db. Database audits on regular intervals with options like penetration testing would help to find the loopholes beforehand.

Firewalls can be used apart from the firewalls on web requests for extra level of protection, make sure the firewalls are in updated state always. Encryption can play a major role to prevent data mishandling even if it can be accessed, end to end encryption will make sure that the data cannot be read or used. With GDPR implementation and other protocols to be followed, sensitive data anyways has to be in encrypted form when passed across servers. To bring up the systems after data breach is a major concern and to handle scenario like this make sure to have backups of database on regular intervals stored on different server. The server should not be accessed publicly.

Following these steps, data breach can be avoided to a large extent.

Comments

Post a Comment

Popular posts from this blog

Understanding TOP command and purpose

$top top - 12:24:34 up 9 days, 21:58, 0 users, load average: 5.98, 5.32, 4.30 Tasks: 13 total, 1 running, 12 sleeping, 0 stopped, 0 zombie %Cpu(s): 5.5 us, 1.5 sy, 0.0 ni, 92.6 id, 0.0 wa, 0.0 hi, 0.5 si, 0.0 st KiB Mem: 12969522+total, 11112360+used, 18571628 free, 135900 buffers KiB Swap: 0 total, 0 used, 0 free. 49328208 cached Mem PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 40 root 20 0 1466540 912540 12568 S 7.7 0.7 67:03.03 bundle 43 root 20 0 1413152 860252 11116 S 6.7 0.7 65:41.24 bundle The load averages indicate the average number of processes waiting for CPU time over the specified time periods. Shows running processes and their status. Buffer is the amount of data used while it's being written or read. The numbers are in KiB's showing the RAM available on system us - user process sy - system process process ID (PID), user, priority (PR), virtual memory usage (VIRT), resident memory usage (RES), shared memory usage (SHR), CPU usage (%...

upload images to AWS::S3 in ruby using aws sdk gem

Using gem aws-sdk for a ROR application for uploading images to s3 Uploading images to a fixed bucket with different folders for each object or application. The s3 keeps a limitation on the number of buckets creation whereas there is no limitation for content inside a bucket. This code will upload image for a user to s3 using aws-sdk gem. The bucket and the image uploaded are made public, so that the images uploaded are directly accessible. The input is takes is the image complete path where it is present, folder in which it should be uploaded and user_id for whom it should be uploaded. def save_screenshot_to_s3(image_location, folder_name,user_id) service = AWS::S3.new(:access_key_id => ACCESS_KEY_ID, :secret_access_key => SECRET_ACCESS_KEY) bucket_name = "app-images" if(service.buckets.include?(bucket_name)) bucket = service.buckets[bucket_name] else bucket = service.buckets.create(bucket_name...