Deprecated: Creation of dynamic property wpdb::$categories is deprecated in /var/www/html/uat.coloredcow.com/public/wp/wp-includes/wp-db.php on line 668

Deprecated: Creation of dynamic property wpdb::$post2cat is deprecated in /var/www/html/uat.coloredcow.com/public/wp/wp-includes/wp-db.php on line 668

Deprecated: Creation of dynamic property wpdb::$link2cat is deprecated in /var/www/html/uat.coloredcow.com/public/wp/wp-includes/wp-db.php on line 668

Deprecated: Return type of WP_Theme::offsetExists($offset) should either be compatible with ArrayAccess::offsetExists(mixed $offset): bool, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /var/www/html/uat.coloredcow.com/public/wp/wp-includes/class-wp-theme.php on line 554

Deprecated: Return type of WP_Theme::offsetGet($offset) should either be compatible with ArrayAccess::offsetGet(mixed $offset): mixed, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /var/www/html/uat.coloredcow.com/public/wp/wp-includes/class-wp-theme.php on line 595

Deprecated: Return type of WP_Theme::offsetSet($offset, $value) should either be compatible with ArrayAccess::offsetSet(mixed $offset, mixed $value): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /var/www/html/uat.coloredcow.com/public/wp/wp-includes/class-wp-theme.php on line 535

Deprecated: Return type of WP_Theme::offsetUnset($offset) should either be compatible with ArrayAccess::offsetUnset(mixed $offset): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /var/www/html/uat.coloredcow.com/public/wp/wp-includes/class-wp-theme.php on line 544

Deprecated: Return type of WP_REST_Request::offsetExists($offset) should either be compatible with ArrayAccess::offsetExists(mixed $offset): bool, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /var/www/html/uat.coloredcow.com/public/wp/wp-includes/rest-api/class-wp-rest-request.php on line 960

Deprecated: Return type of WP_REST_Request::offsetGet($offset) should either be compatible with ArrayAccess::offsetGet(mixed $offset): mixed, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /var/www/html/uat.coloredcow.com/public/wp/wp-includes/rest-api/class-wp-rest-request.php on line 980

Deprecated: Return type of WP_REST_Request::offsetSet($offset, $value) should either be compatible with ArrayAccess::offsetSet(mixed $offset, mixed $value): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /var/www/html/uat.coloredcow.com/public/wp/wp-includes/rest-api/class-wp-rest-request.php on line 992

Deprecated: Return type of WP_REST_Request::offsetUnset($offset) should either be compatible with ArrayAccess::offsetUnset(mixed $offset): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /var/www/html/uat.coloredcow.com/public/wp/wp-includes/rest-api/class-wp-rest-request.php on line 1003

Deprecated: Return type of WP_Block_List::current() should either be compatible with Iterator::current(): mixed, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /var/www/html/uat.coloredcow.com/public/wp/wp-includes/class-wp-block-list.php on line 151

Deprecated: Return type of WP_Block_List::next() should either be compatible with Iterator::next(): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /var/www/html/uat.coloredcow.com/public/wp/wp-includes/class-wp-block-list.php on line 175

Deprecated: Return type of WP_Block_List::key() should either be compatible with Iterator::key(): mixed, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /var/www/html/uat.coloredcow.com/public/wp/wp-includes/class-wp-block-list.php on line 164

Deprecated: Return type of WP_Block_List::valid() should either be compatible with Iterator::valid(): bool, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /var/www/html/uat.coloredcow.com/public/wp/wp-includes/class-wp-block-list.php on line 186

Deprecated: Return type of WP_Block_List::rewind() should either be compatible with Iterator::rewind(): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /var/www/html/uat.coloredcow.com/public/wp/wp-includes/class-wp-block-list.php on line 138

Deprecated: Return type of WP_Block_List::offsetExists($index) should either be compatible with ArrayAccess::offsetExists(mixed $offset): bool, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /var/www/html/uat.coloredcow.com/public/wp/wp-includes/class-wp-block-list.php on line 75

Deprecated: Return type of WP_Block_List::offsetGet($index) should either be compatible with ArrayAccess::offsetGet(mixed $offset): mixed, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /var/www/html/uat.coloredcow.com/public/wp/wp-includes/class-wp-block-list.php on line 89

Deprecated: Return type of WP_Block_List::offsetSet($index, $value) should either be compatible with ArrayAccess::offsetSet(mixed $offset, mixed $value): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /var/www/html/uat.coloredcow.com/public/wp/wp-includes/class-wp-block-list.php on line 110

Deprecated: Return type of WP_Block_List::offsetUnset($index) should either be compatible with ArrayAccess::offsetUnset(mixed $offset): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /var/www/html/uat.coloredcow.com/public/wp/wp-includes/class-wp-block-list.php on line 127

Deprecated: Return type of WP_Block_List::count() should either be compatible with Countable::count(): int, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /var/www/html/uat.coloredcow.com/public/wp/wp-includes/class-wp-block-list.php on line 199

Deprecated: Optional parameter $category declared before required parameter $page_number is implicitly treated as a required parameter in /var/www/html/uat.coloredcow.com/public/wp-content/mu-plugins/cc-employee-portal/class-ccemployee.php on line 114

Deprecated: Creation of dynamic property ACF::$fields is deprecated in /var/www/html/uat.coloredcow.com/public/wp-content/plugins/advanced-custom-fields-pro-5.8.7/includes/fields.php on line 136

Deprecated: Creation of dynamic property ACF::$locations is deprecated in /var/www/html/uat.coloredcow.com/public/wp-content/plugins/advanced-custom-fields-pro-5.8.7/includes/locations.php on line 130

Deprecated: Creation of dynamic property ACF::$json is deprecated in /var/www/html/uat.coloredcow.com/public/wp-content/plugins/advanced-custom-fields-pro-5.8.7/includes/json.php on line 184

Deprecated: Creation of dynamic property acf_loop::$loops is deprecated in /var/www/html/uat.coloredcow.com/public/wp-content/plugins/advanced-custom-fields-pro-5.8.7/includes/loop.php on line 26

Deprecated: Creation of dynamic property ACF::$loop is deprecated in /var/www/html/uat.coloredcow.com/public/wp-content/plugins/advanced-custom-fields-pro-5.8.7/includes/loop.php on line 270

Deprecated: Creation of dynamic property ACF::$revisions is deprecated in /var/www/html/uat.coloredcow.com/public/wp-content/plugins/advanced-custom-fields-pro-5.8.7/includes/revisions.php on line 413

Deprecated: Creation of dynamic property acf_validation::$errors is deprecated in /var/www/html/uat.coloredcow.com/public/wp-content/plugins/advanced-custom-fields-pro-5.8.7/includes/validation.php on line 26

Deprecated: Creation of dynamic property ACF::$validation is deprecated in /var/www/html/uat.coloredcow.com/public/wp-content/plugins/advanced-custom-fields-pro-5.8.7/includes/validation.php on line 212

Deprecated: Creation of dynamic property acf_form_customizer::$preview_values is deprecated in /var/www/html/uat.coloredcow.com/public/wp-content/plugins/advanced-custom-fields-pro-5.8.7/includes/forms/form-customizer.php on line 26

Deprecated: Creation of dynamic property acf_form_customizer::$preview_fields is deprecated in /var/www/html/uat.coloredcow.com/public/wp-content/plugins/advanced-custom-fields-pro-5.8.7/includes/forms/form-customizer.php on line 27

Deprecated: Creation of dynamic property acf_form_customizer::$preview_errors is deprecated in /var/www/html/uat.coloredcow.com/public/wp-content/plugins/advanced-custom-fields-pro-5.8.7/includes/forms/form-customizer.php on line 28

Deprecated: Creation of dynamic property ACF::$form_front is deprecated in /var/www/html/uat.coloredcow.com/public/wp-content/plugins/advanced-custom-fields-pro-5.8.7/includes/forms/form-front.php on line 603

Deprecated: Creation of dynamic property acf_form_widget::$preview_values is deprecated in /var/www/html/uat.coloredcow.com/public/wp-content/plugins/advanced-custom-fields-pro-5.8.7/includes/forms/form-widget.php on line 34

Deprecated: Creation of dynamic property acf_form_widget::$preview_reference is deprecated in /var/www/html/uat.coloredcow.com/public/wp-content/plugins/advanced-custom-fields-pro-5.8.7/includes/forms/form-widget.php on line 35

Deprecated: Creation of dynamic property acf_form_widget::$preview_errors is deprecated in /var/www/html/uat.coloredcow.com/public/wp-content/plugins/advanced-custom-fields-pro-5.8.7/includes/forms/form-widget.php on line 36

Deprecated: Creation of dynamic property InsertHeadersAndFooters::$plugin is deprecated in /var/www/html/uat.coloredcow.com/public/wp-content/plugins/insert-headers-and-footers/ihaf.php on line 41

Deprecated: Creation of dynamic property InsertHeadersAndFooters::$body_open_supported is deprecated in /var/www/html/uat.coloredcow.com/public/wp-content/plugins/insert-headers-and-footers/ihaf.php on line 48

Deprecated: Constant FILTER_SANITIZE_STRING is deprecated in /var/www/html/uat.coloredcow.com/public/wp-content/plugins/wp-smushit/core/modules/helpers/class-parser.php on line 229

Deprecated: Constant FILTER_SANITIZE_STRING is deprecated in /var/www/html/uat.coloredcow.com/public/wp-content/plugins/wp-smushit/core/modules/helpers/class-parser.php on line 234

Deprecated: Creation of dynamic property Smush\Core\Modules::$webp is deprecated in /var/www/html/uat.coloredcow.com/public/wp-content/plugins/wp-smushit/core/class-modules.php on line 95

Deprecated: Creation of dynamic property acf_field_oembed::$width is deprecated in /var/www/html/uat.coloredcow.com/public/wp-content/plugins/advanced-custom-fields-pro-5.8.7/includes/fields/class-acf-field-oembed.php on line 31

Deprecated: Creation of dynamic property acf_field_oembed::$height is deprecated in /var/www/html/uat.coloredcow.com/public/wp-content/plugins/advanced-custom-fields-pro-5.8.7/includes/fields/class-acf-field-oembed.php on line 32

Deprecated: Creation of dynamic property acf_field_google_map::$default_values is deprecated in /var/www/html/uat.coloredcow.com/public/wp-content/plugins/advanced-custom-fields-pro-5.8.7/includes/fields/class-acf-field-google-map.php on line 33

Deprecated: Creation of dynamic property acf_field__group::$have_rows is deprecated in /var/www/html/uat.coloredcow.com/public/wp-content/plugins/advanced-custom-fields-pro-5.8.7/includes/fields/class-acf-field-group.php on line 31

Deprecated: Creation of dynamic property acf_field_clone::$cloning is deprecated in /var/www/html/uat.coloredcow.com/public/wp-content/plugins/advanced-custom-fields-pro-5.8.7/pro/fields/class-acf-field-clone.php on line 34

Deprecated: Creation of dynamic property acf_field_clone::$have_rows is deprecated in /var/www/html/uat.coloredcow.com/public/wp-content/plugins/advanced-custom-fields-pro-5.8.7/pro/fields/class-acf-field-clone.php on line 35

Deprecated: Creation of dynamic property WP_Block_Type::$skip_inner_blocks is deprecated in /var/www/html/uat.coloredcow.com/public/wp/wp-includes/class-wp-block-type.php on line 347

Deprecated: Creation of dynamic property WP_Post_Type::$singular_label is deprecated in /var/www/html/uat.coloredcow.com/public/wp/wp-includes/class-wp-post-type.php on line 554

Deprecated: Creation of dynamic property WP_Post_Type::$singular_label is deprecated in /var/www/html/uat.coloredcow.com/public/wp/wp-includes/class-wp-post-type.php on line 554

Deprecated: Creation of dynamic property WP_Post_Type::$singular_label is deprecated in /var/www/html/uat.coloredcow.com/public/wp/wp-includes/class-wp-post-type.php on line 554

Deprecated: Creation of dynamic property WP_Post_Type::$singular_label is deprecated in /var/www/html/uat.coloredcow.com/public/wp/wp-includes/class-wp-post-type.php on line 554

Deprecated: Creation of dynamic property WP_Post_Type::$singular_label is deprecated in /var/www/html/uat.coloredcow.com/public/wp/wp-includes/class-wp-post-type.php on line 554

Deprecated: Creation of dynamic property WP_Post_Type::$singular_label is deprecated in /var/www/html/uat.coloredcow.com/public/wp/wp-includes/class-wp-post-type.php on line 554

Deprecated: Creation of dynamic property WP_Post_Type::$singular_label is deprecated in /var/www/html/uat.coloredcow.com/public/wp/wp-includes/class-wp-post-type.php on line 554

Deprecated: Creation of dynamic property WP_Post_Type::$singular_label is deprecated in /var/www/html/uat.coloredcow.com/public/wp/wp-includes/class-wp-post-type.php on line 554

Deprecated: Creation of dynamic property WP_Post_Type::$singular_label is deprecated in /var/www/html/uat.coloredcow.com/public/wp/wp-includes/class-wp-post-type.php on line 554

Deprecated: Creation of dynamic property WP_Post_Type::$singular_label is deprecated in /var/www/html/uat.coloredcow.com/public/wp/wp-includes/class-wp-post-type.php on line 554

Deprecated: Creation of dynamic property WP_Post_Type::$singular_label is deprecated in /var/www/html/uat.coloredcow.com/public/wp/wp-includes/class-wp-post-type.php on line 554

Deprecated: trim(): Passing null to parameter #1 ($string) of type string is deprecated in /var/www/html/uat.coloredcow.com/public/wp/wp-includes/class-wp.php on line 173

Deprecated: Creation of dynamic property WP_Term::$object_id is deprecated in /var/www/html/uat.coloredcow.com/public/wp/wp-includes/class-wp-term.php on line 198

Deprecated: Creation of dynamic property WP_Term::$object_id is deprecated in /var/www/html/uat.coloredcow.com/public/wp/wp-includes/class-wp-term.php on line 198
ColoredCow




Switch to a better hosting platform for security and operational benefits.

Deprecated: ltrim(): Passing null to parameter #1 ($string) of type string is deprecated in /var/www/html/uat.coloredcow.com/public/wp/wp-includes/wp-db.php on line 3030

We recently helped one of our US-based clients to recover from a huge malware injection into their data. They are an established firm in the branding & marketing world for more than 3 decades. With a good number of customers who trust them, they are supporting several businesses through their digital services.

 

Backstory

In addition to branding & marketing, the digital agency also serves their 60+ clients by maintaining the web hosting servers that include websites and admin portals. Some servers had been online and running for more than 10 years now and had been pretty much stable.

ColoredCow partnered with the digital agency in late-2018 aiming to provide them the technical support and give them a long-missing tech strength they can leverage to bring more business.

 

The Doomsday

One fine day, the digital agency team started reporting several sites going down one by one. It initially looked like a minor server error or scheduled maintenance. However, the reports kept coming in, and the increment in sites going down did not stop.

Upon deeper investigation, the ColoredCow team found malicious code on the websites. Hackers got access to all the data related to the agency’s business and their customers by breaching their server security. The malware manipulated the code to show explicit content to the users. It was a real doomsday considering the server contains several non-profits websites and kids’ education portals with high daily traffic.

 

Not only the digital agency but their customers’ reputations were at stake.

 

It was a big task to clean the data from 60+ infected sites and fix the security breach to avoid future damages. Apart from this we also helped them to get their business continuity to normal and also suggested a Master Plan to avoid this crisis in the future.

It was not just our clients who were impacted due to this. It was a global attack that affected around 320,000 sites. Based on our investigation, we found one of the primary reasons for this security breach was a serious vulnerabilities issue in a plugin called InfiniteWP that was being used in all the sites. Also, the server security wasn’t that strong to manage this attack and hence the data got manipulated.

Data surpassed oil in terms of the most valuable resource in the world. It’s a primary asset for any digital organization as it helps them to grow their business, make better decisions, and continuity in their business. As the value of data increases, it also increases its vulnerability. Whether it’s a small business or a giant company everyone wants to make sure that their data is safe and secured by the best measures.

 

Present Day

While removing all the malicious data from the server, we were also working on a plan on how to prepare ourselves for something like this in the future. As attackers are getting more advanced in their approach, we choose to strengthen the data security by migrating the sites into a more secure service.

We worked on a plan to migrate their 60+ clients’ sites to an upgraded, more secure, and cost-effective hosting provider.

We waded through all the trending hosting options present in the marketplace and narrowed it down to the most suitable one. Below are our research, recommendations, and a detailed plan for the hosting migration 

 

Best suitable hosting

The parameters to decide the best suitable hosting:

  1. Reliability and uptime
  2. Security updates
  3. Cost-effectiveness
  4. Best available service
  5. Our expertise to manage them

Comparison of various hosting services based on the above parameters

From the above comparisons, Amazon AWS is coming out to be the most suitable hosting service.

Following articles and blogs had been the basis of these comparisons:

  1. Athemes – Siteground vs WP Engine vs Flywheel
  2. SpinupWP – Digital Ocean vs AWS vs Google Cloud
  3. WP Engine backed by AWS servers

AWS – Amazon Web Service

 

  • Hosting servers – Amazon AWS Lightsail
      1. State-of-the-art. Easy to scale.
      2. Cost-effective
      3. 99.99% uptime
      4. Minimum support needed
      5. High performance
  • Website setup and management tool – SpinupWP
    1. Automatic security updates
    2. Automated backup mechanism
    3. Free backup recovery
    4. Free SSL certificates
  • Backups & Storage – Amazon AWS S3
    1. Cost-effective storage system
    2. 24×7 accessibility

 

Detailed Plan for Site Migration.

The site migration plan determines how much time and effort it will take to migrate from outdated infrastructure to AWS.

To explain it further with an example, let’s say you have 20 clients having a marketing website for their business. So far you have been using an old infrastructure and want to migrate to AWS to provide a better service and security to their digital presence. We will explain the approach and costing for the migration process.

As all the sites were configured as per the old infrastructure for which it was good to migrate the sites one by one between these servers to avoid any major compatibility issue. We can prioritize the order based on the following factors:

 

Less critical sites first

The latest set up sites in which tools/plugins and framework versions are already up to date or have minor updates availableThis will help to ensure the new hosting setup is running smoothly without putting anything at risk if there is any downtime. This will help us to prepare better for other migrations down the line.

 

Smaller sites first
Another parameter to determine priority can be to migrate smaller sites first so that we get a good grip on the migration and testing steps. This will help to strengthen the migration checklist for bigger websites.

 

Migration at the time of usually less traffic

The parameter to define the appropriate time for migrating a website is traffic. The target is to migrate the site during midnight, where traffic is usually less, and the time zone difference of 12hrs would come in handy for the migration during fewer traffic hours.

Assuming we target migrating 6-7 sites/month, we can finish the process in 4 months. Here’s a roadmap for the above-mentioned example.

Process for new site setup post-migration

With the new hosting setup in place, the steps to set up a new website should be straightforward.

  1. Ensure domain settings are correct and pointing to the server IP address
  2. Set up the source code for the website for automated deployment support. This is an additional benefit.
  3. Create a new website through SpinupWP
  4. Ensure SSL certificate is generated
  5. Ensure the data backup is configured for the website
  6. Enable advanced caching option (not needed for test-sites)

 

Conclusion

From our experience with this data breach, we realized how risky it could get to rely on the old infrastructure for data security. Our Belief is that security should be the primary concern for any digital organization and we should utilize all the latest technologies to make ourselves a step from the data hackers.


Deprecated: ltrim(): Passing null to parameter #1 ($string) of type string is deprecated in /var/www/html/uat.coloredcow.com/public/wp/wp-includes/wp-db.php on line 3030

Deprecated: wp_make_content_images_responsive is deprecated since version 5.5.0! Use wp_filter_content_tags() instead. in /var/www/html/uat.coloredcow.com/public/wp/wp-includes/functions.php on line 5075
CHALLENGE
  • Vulnerable and insecure servers
  • High cost
  • Longer response time during urgencies

Deprecated: ltrim(): Passing null to parameter #1 ($string) of type string is deprecated in /var/www/html/uat.coloredcow.com/public/wp/wp-includes/wp-db.php on line 3030

Deprecated: ltrim(): Passing null to parameter #1 ($string) of type string is deprecated in /var/www/html/uat.coloredcow.com/public/wp/wp-includes/wp-db.php on line 3030

Deprecated: ltrim(): Passing null to parameter #1 ($string) of type string is deprecated in /var/www/html/uat.coloredcow.com/public/wp/wp-includes/wp-db.php on line 3030

Deprecated: ltrim(): Passing null to parameter #1 ($string) of type string is deprecated in /var/www/html/uat.coloredcow.com/public/wp/wp-includes/wp-db.php on line 3030

Deprecated: ltrim(): Passing null to parameter #1 ($string) of type string is deprecated in /var/www/html/uat.coloredcow.com/public/wp/wp-includes/wp-db.php on line 3030
Next case study