Blogs By Author

Sean
Website vulnerability to hacks

Whether it drizzles or pours, it’s good to be carrying an umbrella.

Back in 2014, Drupalgeddon rained cats and dogs.

Drupal released a critical security update on October 15, 2014 with express directions to address the vulnerability within seven hours of the release. Unfortunately, a large number of system administrators didn’t grab their umbrellas, and—to stretch this metaphor to its limit—they got soaked. It was a wake-up call, to say the least.

So four years later, when Drupal released a similarly critical security update that many people called Drupalgeddon 2.0, the admin community was prepared. At Sandstorm®, we started planning right after the announcement, and when the update was released, we secured more than 30 sites in a single afternoon.

But we’ve always understood the importance of taking security updates seriously, whether it’s 2014 or 2018. Because staying on top of these updates is just one easy way to keep your systems safe. And as recent hacks and data breaches like those from Saks and Lord & Taylor continue to show, your safety is under constant attack.

So what else can you do to keep your site as safe as possible?

1. Move your site to HTTPS

More than half of internet traffic is now encrypted, which is great news. Having your site use HTTPS (SSL/TLS) helps protect against session hijack attacks, because all traffic between your server and the client is encrypted.

This is such a boon to security that Google has been talking about penalizing sites that don't use HTTPS. Most notably, the Google Chrome browser will start indicating sites without HTTPS as insecure, starting in July 2018. Just one more reason to get a move on.

2. Take charge of your passwords and access

A major line of defense for any infrastructure is good management of credentials. As individuals and institutions, we now have a number of tools at our disposal, such as password managers, policies, etc.

But what is often forgotten is to consistently and comprehensively review who has access to your systems. As a result, old employees still have access to sites and accounts, creating vulnerabilities that are just waiting to happen.

3. Keep your server and applications up to date

When security updates are released, they represent known vulnerabilities. It’s imperative to apply the updates immediately, or risk leaving a door open for malicious activity.

Ensure that your server is applying updates on a regular basis and that your web applications are updating any relevant frameworks or libraries. An ounce of prevention is much more cost efficient than trying to recover from a compromised server or application.

4. Ensure you have frequent backups

If something ever does happen, you want to be able to roll back to a safe state. That’s why it’s so critical to make sure your servers and your application have automated backups.

Most hosts offer backup services for a small additional fee, and you’ll want to ensure that these are configured and working.

5. Proactive threat management

Be proactive. Start a conversation with your host provider about threat management, and ask about automated systems that look for irregular traffic. Ask your web vendor about how code is managed on the server, and spend the time to find a solution that’s right for your organization.

Still not sure how you can stay protected? Sandstorm can help! Feel free to drop us a line, so we can help ensure your site is secure.

This blog was posted by Sean on April 12, 2018.
Sean Fuller

About the Author

Sean Fuller

As Technology Director, Sean is a hands-on developer and technical lead on projects. He works with design and strategist teams from kick off through launch to plan, design and execute technical solutions for client projects. 

THIS FILE WAS POSTED UNDER: 
this file was posted under: 
Sean

Now more than ever, digital security is something that needs a thoughtful approach.

From Yahoo! to the DNC, large, high-profile security breaches are filling the news and making security a hot topic for everyday conversation. There are so many hacks that even data visualizers are struggling to make sense of them all. Which is why 2017 will be the year that companies finally realize the value and necessity of security for their digital properties.

Whether cause or effect, our increasing reliance on technology correlates with the spike in frequency, size, and severity of security breaches. At Sandstorm®, we're big fans of Steve Gibson and his podcast Security Now, where he talks about the race to keep up with new security threats. With each new security improvement developers release, hackers are ready to uncover weaknesses. Over the years, this has brought us to a place where both the threats—and the necessary defenses against those threats—have reached a level of complexity that can seem daunting.

From Convenience to Security

The complexity and automated nature of modern attacks has changed the industry’s view on the lengths hackers are willing to go to. Now, we have to assume that there is always someone looking to exploit opportunities and weaknesses.

While these are just a few examples of the risks and remediations that companies need to consider, they illustrate the many different attack vectors that developers need to address. The trick is to do the following:

  • Define the requirements
  • Identify the risks and determine the solutions
  • Design a highly functional application that still puts the user first

Trend #1: Rise of the Botnets

Botnets are a major reason for the increase in security issues. As an industry, we’ve known for some time about the danger of improperly patched or unsecure computers and servers that get infected with malware. But in the last few years, risk has increased exponentially due to the prominence of the Internet of Things (IOT). We have an explosion of internet-connected devices (light bulbs, refrigerators, dishwashers, teddy bears) with many of them rushed to market without regard for security.

Night of the Living Malware

Malware programs target these vulnerable systems to create zombie armies of infected computers that work together to feed on sites. The most recent and well known is the Murai botnet, the code of which was released as open source and has since spawned a plethora of derivations. That's right; you heard me. They’re multiplying, evolving, and getting smarter like a creature out of a bad horror movie.

How bad is it? Projections as of 2016 suggested that 35% of all internet traffic consisted of malicious bots. That's a lot of zombies wandering around looking for your server's brains.

GhostBot in the Machine

Another recent example is GiftGhostBot. This attack came to light in March 2017. Bots are brute forcing the pages that allow customers to check the balance on their gift cards. These bots keep guessing gift card numbers (at an estimated rate of four billion requests per hour) until they get one that has a remaining balance. They can then use that gift code to steal from the gift card holder.

What makes this GiftGhostBot particularly sinister is its sophistication. First, the attack is distributed across multiple compromised devices, servers, and computers—which means there’s no way to track and block these requests by IP. Second, the bots have been set up to use over 740 different user agent profiles, meaning they masquerade as different browsers and operating systems to confuse attempts to filter out their traffic. Vendors might add CAPTCHAs or completely remove these pages to remediate the issue. This is just another example of the exponential scale and complexity of attacks that have shifted the conversation towards security.

What You Can Do

  1. Your best defense is keeping your systems up-to-date. Apply security updates to all technology in your ecosystem in a timely manner (including websites, servers, computers, employee mobile devices, etc.).
  2. Be sure to spend the time to review all new features and components of your digital products with an eye for potential vulnerabilities. Always overestimate the lengths someone would go.
  3. When in doubt, engage a knowledgeable specialist to help review your security configuration.

Trend #2: Are You a Robot? – Identifying Friend From Foe

If you’re thinking this is all about the rise of the machines, you might (or might not) be happy to hear that humans still play an important role in threatening your business’s security. While botnets have increased the quantity of attacks, the level of sophistication for attacks has also dramatically increased. In some areas, malicious entrepreneurs have even turned to crowdsourcing to enhance automated attacks. Take CAPTCHA as an example. When those annoying pictures were too much for some bots to circumvent, unscrupulous companies paid real people to fill them out. Bots passed the CAPTCHAs back to humans whose answers were fed back to the bots so they could proceed with their attack.

Invisible ReCAPTCHA

This resulted in concerns with the CAPTCHA as a solution for determining bot from human. While still used, it was understood that this solution is not 100% effective. Recently, however, Google updated their reCAPTCHA service with their new Invisible reCAPTCHA. Maybe you’ve seen this: It’s a simple checkbox that says “I am not a robot.” Because so much information on your behavior has been compiled by Google, it can compare your digital fingerprints and activity against its vast repository of analytics to determine if you’re a real person. Or that’s the theory anyway; the new service has just rolled out and we're excited to see how it matures.

Mollom

Mollom is another service we recommend, specifically for Drupal projects. It takes form submissions on your site and checks the content to see if it looks like bot-generated content. If it does, the content is flagged. This technique analyzes content to protect against spam, relying on the consolidation of massive amounts of examples to understand how to proceed.

What You Can Do

  1. You can do is realize that identifying bots is not as straight-forward as it seems. They have gotten very good at pretending to look like real users performing real actions on your site.
  2. Shift your thinking to a place where you assume that hackers and spammers are probably smarter (or at least more persistent) than you. Look at each element of your digital products as a place where a bot might pretend to be a human and consider what they might be able to do.
  3. Layer different preventative techniques. Don't assume that one fix is enough and have a contingency plan for is a bot does get past your defenses.

Trend #3: Moving to SSL

Another major trend for 2017 will be the push for secure socket layer (SSL or HTTPS) traffic for everything. This has been an important shift for security in the last few years. Previously, SSL was only considered important for highly sensitive data, but a few things have pushed us into a world where regular HTTP traffic is considered unsecure.

Man in the Middle

First, a number of tools have come out that make watching the traffic of someone else on your network very easy to do. This allows a person to see the sites you are visiting and even steal your username and password. This is generally referred to as a man-in-the-middle attack resulting in session hijacking. Traffic over HTTPS helps to protect against that because your browser and the server are essentially communicating via a secret language that only they can understand.

Man on the Side

Second, browsers pulling in content over regular HTTP can't 100% confirm where the content they’re displaying came from. There have been a few complicated attacks over the past few years where malware was sent to site visitors instead of the assets they were expecting. This is generally referred to as a man-on-the-side attack. The attempted attack on GitHub in 2015 is an example of this. Moving towards HTTPS traffic gives the browser certainty that the content it received is the one it was expecting.

Pushing the Transition

If you’re thinking all of that sounds scary, you're not alone. Google agrees and has started to roll out changes to the Chrome browser—you've probably noticed that grayed out "not secure" message near the URL. Additionally, if you log in to a site over regular HTTP, you may also notice a red "not secure" message. This is meant to push websites towards SSL, and it’s only the start. Google has announced additional plans to clearly mark all traffic as not secure going forward.

What You Can Do

  1. Work with your hosting provider or website developer to purchase an SSL certificate from a reputable vendor.
  2. Have those same partners review your SSL configuration to confirm that you’re using strong protocols and ciphers that have not been deemed to be compromised.
  3. You may also need to review your site to confirm that you don't have any mixed content errors, which is when HTTPS pages are referencing insecure HTTP resources.
  4. While you're at it, complete a full review of your server configuration.
  5. A full penetration test or security scan may also be a good investment.

How Sandstorm Can Help

This is just the start of the conversation and we've only covered a few topics. Whether you’re moving your current website to SSL or want to ensure your new website is developed with the latest security in mind, we utilize the technology and techniques that make sure you’re protected.

This blog was posted by Sean on April 13, 2017.
Sean Fuller

About the Author

Sean Fuller

As Technology Director, Sean is a hands-on developer and technical lead on projects. He works with design and strategist teams from kick off through launch to plan, design and execute technical solutions for client projects. 

THIS FILE WAS POSTED UNDER: 
this file was posted under: 
Sean
seeking Full Stack Engineer

Join a creative, collaborative and nimble team to help architect and build innovative digital products.

The Full Stack Engineer is dynamic individual responsible for implementing front-end and back-end development on client websites and web applications utilizing HTML, CSS, JavaScript, jQuery, PHP, .NET, Python and other relevant programming languages. Other responsibilities include Drupal and other application architecture; server configuration; developing, maintaining and following coding standards and best practices; working with the creative and sales teams to estimate upcoming projects and proposals; staying informed of new web development trends and technologies in order to bring ideas and suggestions to current and future projects. Other duties as requested.

You’ll work in a fun, energetic environment that builds careers and makes news. Founded in 1998 by a successful female entrepreneur, Sandstorm has earned nationwide recognition for being an industry leader and sustaining a track record of satisfied clients.

If this sounds like the right fit, apply online or email your cover letter and resume to jobs@sandstormdesign.com. If it’s not quite right for you, please share this opportunity with someone in your network.

Skills & Requirements

Full Stack Engineer Job Description

·       Minimum of 3 years experience developing web pages and digital solutions from provided wireframes and designs using server-side programming languages, relational databases, HTML, CSS, JavaScript

·       Strong understanding of object-oriented PHP.

·       Strong understanding of relational databases (MySQL, MSSQL, PostgreSQL)

·       Strong understanding of JavaScript/jQuery

·       Understanding of at least one other server-side language (Python, C#, etc.)

·       Understanding of AJAX, XML and JSON

·       Understanding of server configurations (LAMP, LEMP, IIS, etc.)

·       Understanding of Git workflows

·       Understanding of Grunt, Gulp and similar tools

·       Understanding of HTML and CSS/SASS/LESS

·       Understanding of web standards, cross-browser and cross-platform development techniques

·       Demonstrated ability to work both independently and as a member of a team

·       Commitment to excellence, usability, and coding standards

·       Intense attention to detail

Bonus if you have

·       Familiarity with content management systems (Drupal, WordPress, Django, SiteCore, etc.)

·       Familiarity with JavaScript frameworks (EmberJS, AngularJS, BackboneJS, ReactJS, etc.)

·       Familiarity with NoSQL and data warehousing

·       Familiarity with security and performance testing techniques

 

Why Sandstorm?

We’re a high-energy Chicago-based user experience agency that does good work for good people (that’s our mission). We leverage strategic marketing, UX design, emerging technologies, and usability to create high-impact and compelling brand experiences. We work with large amazing brands and interesting niche players, too. If you want to do big agency digital work in a boutique environment, we’re the place for you.

Who works at Sandstorm?

At our core, we are a team of compulsive problem solvers and solution-seekers; always thinking about what could be and implementing it. We play well with others and have found that clients benefit most when all partners are aligned and working well together. This follows our “Yes and” philosophy of always listening and building upon ideas, no matter where they originate. Collaboration is in our cultural DNA.

What about Culture?

Our team is constantly evolving and growing both as employees and as professionals in our industry. Job titles rarely do our staff justice. Our culture is grounded in our three core values:

  • Learning & Sharing – Continuous, collaborative improvement is fundamental.
  • Warrior Spirit – We are a team and in it together. Persevere!
  • Having Fun! – Showcased by our monthly “You Rocks!” and random Super Secret Sandstorm events.

We have amazing benefits, too. Free snacks, beverages in the fridge, costume contests, annual guacamole contests, 4% match in your 401K, $50/month contribution into your HSA, great hours for work/life balance, paid volunteer days, company lunches—and your birthday is a day off here!

 
This blog was posted by Sean on 05/31/2016.
Sean Fuller

About the Author

Sean Fuller

As Technology Director, Sean is a hands-on developer and technical lead on projects. He works with design and strategist teams from kick off through launch to plan, design and execute technical solutions for client projects. 

THIS FILE WAS POSTED UNDER: 
this file was posted under: 
Sean
Consider your options when comparing Content Management Systems

[This is second post of a series on choosing a CMS. Check out Part 1, and learn about the importance of your goals and requirements in the process]

Now that you have a solid set of requirements for your content management system (CMS), you can start to explore some different options. To narrow the conversation, it's sometimes helpful to consider them as a balance between simplicity versus flexibility.

5 approaches from simple to flexible

1: No development needed

Starting on one side, you'll find the most simple subscription-based solutions that require no development and minimal setup. As an example, think of a blogging site for which you just need to create an account. The options are limited. It doesn't give you much more than a running list of posts that you can create and edit. Google Blogger and Tumblr are examples. While some border on being social media more than CMS, they are in fact services that allow you to manage your content.

2: Simple and customizable

Moving up from there, you have simple frameworks that provide a medium amount of customization. This can be anything from services like SquareSpace to platforms like Ghost and Wordpress. These are designed to get you up and running quickly, but also allow you to heavily customize your site.

At this level, you can sometimes add basic online stores. You can create a unique look and feel. With something like Wordpress, you can even add some custom functionality. Eventually when dealing with options in this category you'll find that you're trying to do things for which the framework just wasn't built, so you'll move closer to flexibility.

3: Scalable and flexible solutions

The next level up are the more scalable and flexible solutions. Options like Drupal, SiteCore or AdobeCQ are in this category. While they are very different frameworks, they all have some basic preconceived notions about how content should be managed and structured. These are solutions that get you quickly up and going, but they are also intended for heavy customization. Advanced custom functionality can be added on top of them. Some can even be extended to the point where they are more than just a website and terms like "web application" start to emerge.

They are meant to be fast to deploy because much of the structure of how to manage your content has already been determined. However, this ease of deployment and development can sometimes come with the penalty of rigidity. Once you start to stray outside of their assumptions about how content should be managed, things can start to get messy. It's like strapping a howitzer on a sports car. Sure, we can get it to mostly work, but it just wasn't designed to do that.

4: Frameworks for fully custom sites

At the far extreme you find frameworks for custom-built applications that allow for advanced integrations, workflows, relationships and functionality. These are true development frameworks that allow you to build your own CMS or web application. Laravel and Django are two examples that fit in this category. They make sense when basic management of content is a secondary requirement, trumped by custom functionality. Or perhaps the structure of the content is unique enough that trying to get it to fit into some of the options in the previous category would not be ideal.

The primary benefit is that your application is faster because it was built to do exactly what you want. The primary downside is that it may cost more to build because you have more custom code and less community-tested extensions that effortlessly drop into your new site.

5: From the ground up

Of course out at the furthest edge you'll find the "from the ground up" option. This would be to pick a language and build a completely custom solution, without taking advantage of any frameworks. There are reasons that you'd do this, but if you're looking for a CMS, you're probably better off considering one of the many frameworks that exist today.

Proprietary versus Open Source

One of the key decisions is to consider when choosing a CMS whether you want to go with one that is proprietary software versus one that is open-source.

Proprietary

Proprietary software brings licensing fees and/or ongoing hosting fees. These fees are often in addition to the work required to design, configure, customize and host your site. Solutions like SquareSpace, SiteCore, AdobeCQ and others are businesses that provide a service in order to make money.

For some of these, the costs can get quite high (the average AdobeCQ license can run into hundreds of thousands of dollars). This can be fine if the CMS fits your needs. After all, part of what you're theoretically purchasing is the peace-of mind that if something goes wrong, that vendor will be there to help.

Open Source

In contrast, open-source software is free to download and use. Solutions like Wordpress, Drupal, Django and Laravel are all built by a community of developers and released under open licenses. Generally you want to look for a knowledgeable partner who you feel confident can properly build your CMS solution using one of these frameworks.

Final considerations

Budget

A final step is to consider your budget. You can make strategic decisions to create a CMS-based site with a small budget or invest heavily in some items to ensure your site covers the full extent of your needs.

Maintaining your site after launch

A final cost consideration is ongoing maintenance and support. If you are considering a proprietary solution, be sure to budget for the ongoing licensing fees. You should also double check that these fees cover ongoing upgrades and security fixes.

If you are considering an open source solution, be sure to set aside some of your budget to have your developer perform security updates and proactive maintenance. In either case, consider also setting aside some budget for support requests – minor feature requests and other changes to how the site functions. Properly considering your ongoing maintenance and support costs will help you to finalize the amount you have to build your CMS.

Making your final CMS decision

With the term CMS covering such a wide range of digital platforms, it's no wonder that many feel overwhelmed when choosing one. Defining your goals and requirements can help you to navigate your options. We've found that walking through these steps is a great way to reduce apprehension, provide clarity and deliver a solid final product. We hope you find them useful also.

[If you enjoyed this post, read Part 1: Goals and Requirements]

This blog was posted by Sean on July 30, 2015.
Sean Fuller

About the Author

Sean Fuller

As Technology Director, Sean is a hands-on developer and technical lead on projects. He works with design and strategist teams from kick off through launch to plan, design and execute technical solutions for client projects. 

Sean
How to Compare Content Management Systems - Goals and Requirements

Deciding which Content Management System (CMS) to use can be a daunting task. It can be difficult to sort through the plethora of irrelevant recommendations and confusing information to find the best solution. Many of our clients come to us with a rough sense of what they want, but need help making the final recommendation.

How to compare CMS?

Comparing Content Management Systems is challenging because it means different things to different people. The phrase has evolved to cover a range of web frameworks and applications. It is a broad term that covers any program which facilitates content creation and updates (usually on the web). On top of that, many popular CMS options are highly customizable – two sites built on the same framework can look very different. 

Going beyond the simple editing of an organization's "About Us" page, modern websites demand a great flexibility in how they handle content. They often need different types of content, each one requiring specific workflows or relationships aimed at solving various goals. For example, consider the differences between a blog post, an event listing, and a product detail page. Each one has unique data associated with it. Each one is organized in different ways. Being able to handle unique types of content while still providing a consistent interface is an important part of any CMS.

A CMS often has other advanced functionality. They pull content in from other systems. Some integrate with different authentication systems. Some have an online stores. Others allow a community of users to login and participate in some way. Still others might pull in raw data from one source to display it to users in a completely new way. These are all managing different kinds of content at some level. 

Create Goals

Not every site needs every possible option. So, what does it your site need? It's good to get back to your goals and requirements. Your website has needs that are just as unique as your organization. A needs-based assessment can help to focus your requirements and narrow down the search.

Start by defining your goals. Create a list of what you want to achieve with this new CMS. Starting with your goals will help to focus your efforts.

  • What problems are you looking to solve? 
  • Are you looking to increase your brand perception as part of this project? 
  • Is increased membership or sales a primary goal? 
  • If you have a current website, what is it not doing well? 
  • How will your CMS need to support your organization? 

Identify and prioritize your requirements

Once you have a good list, start writing a list of requirements. Some will just require a quick rephrase of a stated goal. Others will lead to a whole new list of items. For example, if your goal is to publish your events calendar online, but your events are currently managed in a different system, integration with that system is a potential requirement. 

Next start to prioritize these requirements. Rank your requirements from must-haves to nice-to-haves. This exercise helps you make the most informed decisions as you start to build your budget. Some items might need to come in a second phase after the first version of the site launches. 

Eliminate some options from the start

Understanding your organization's technical requirements can also help to eliminate some options. For example, if your IT infrastructure requires you to use .Net, then a Ruby, Python or PHP-based solution (like Drupal) may not be possible. More and more these restrictions are no longer a problem with modern hosting options, but it's one of the first questions to ask.

[Continue to Part 2: Consider Your Options]

This blog was posted by Sean on July 24, 2015.
Sean Fuller

About the Author

Sean Fuller

As Technology Director, Sean is a hands-on developer and technical lead on projects. He works with design and strategist teams from kick off through launch to plan, design and execute technical solutions for client projects.