Risks of Using HTTP For Your Web Application

Risks of Using HTTP For Your Web Application

For modern web applications, the average user will interact over a secure protocol for communication (i.e. HTTPS, or Hypertext Transfer Protocol Secure). However, it’s not uncommon to encounter a web application hosted in an internal corporate environment using the less secure HTTP (Hypertext Transfer Protocol) which communicates in cleartext. While it may not seem like a big deal since the application is not exposed publicly to the Internet, we will briefly examine the risks of using HTTP for your web application.

Overview of HTTP vs. HTTPS

As mentioned above, HTTP communicates over cleartext. This means that any data you send from your device (client) to the site (server) can be captured and viewed by anyone on the same network as you. Obviously, this is problematic. The graphic below shows the basic flow of a user logging into an application:

In the above image, we can see an Administrator user logging into a website with the username “Admin” and the password “SecurePassword123!”. We can see this because of the cleartext communication that HTTP allows. Fortunately, most sites publicly exposed to the Internet do not communicate over HTTP anymore. The graphic below is a rudimentary view if an application communicates over HTTPS:

Note how the previously viewed values of the username and password are now impossible to view. Additionally, the response from the server which contains a “PHPSESSID”, a common authorization value which we now cannot see. This means an attacker cannot leverage this session cookie value to issue requests from the context of a victim user. This is always the ideal scenario and is best practice for security. Let’s look at what this looks like from a practical standpoint. An attacker will realistically see the below images, HTTP vs. HTTPS:

“But wait, where is the password in the left image? I don’t see it…”. Great observation! The above left image displays an Authorization request header in the form of “Basic Authentication”. Basic Authentication (Basic Auth) over HTTP is encoded, not encrypted (that’s a whole different blog post). Basic Auth can be decoded as it is encoded in Base64. While there are many ways to decode Base64, I prefer to use a website called CyberChef:

The image on the right cannot be decoded, as it uses encryption. The distinction of encryption vs encoding is very important, but without diving into that completely just know that encryption is much more important for information security.

HTTPS Best Practices

Now that we the know risks of using HTTP for your web application, let’s briefly examine some security best practices for deploying HTTPS. HTTPS was created in 1994 by NetScape, and the TLS protocol was officially submitted as RFC 2246 in January 1999. As you can imagine, technology has changed drastically since then and so have the protocols to secure communications for your favorite websites. So where do we stand today?

As of the creation of this blog post, Lucid Security recommends avoiding using legacy protocols (SSLv2, SSLv3, TLSv1.0, and TLSv1.1) in favor of TLSv1.2 or higher with strong cipher suites to prevent downgrade attacks and other known cryptographic weaknesses. A common finding when Lucid Security conducts a web application penetration test are violations of the OWASP A2 Security Control – Cryptographic Failures. In most cases, it is a minor security hygiene weakness (i.e. using TLSv1.0 instead of TLSv.1.2). Lucid Security strongly encourages organizations to follow security best practice to obtain the most ideal clean bill of health possible.

Summary

Even if an application is internally hosted, the risks of using HTTP for your web application are too great. Cleartext HTTP traffic can be obtained by very basic users within a network. ‘Introduction to Networking’ classes are often now taught in high schools, which introduce tools such as Wireshark or tcpdump. Both of these tools are capable of capturing cleartext communication via HTTP. Further, advanced threat actors are patient and will sniff traffic and attempt to “stay under the radar”. Sniffing traffic is a passive technique that can help prevent an attacker from getting caught. As such, internally hosted web applications should always communicate over HTTPS to prevent credentials and sensitive information from being leaked.

How Lucid Security Can Help

Lucid Security consists of seasoned security professionals with decades of experience in security and penetration testing. Our unique and competent perspective enables us to enhance clients’ security environments. Please contact us today to learn more about our services and how we can make your organization more secure.

Risks of a Large Attack Surface

A common theme amongst clients when conducting penetration tests is a large attack surface. Generally, the biggest risk is amongst externally exposed assets. However, this can be related to internal penetration tests and web application penetration tests. This blog post will briefly examine the biggest risks associated with a large attack surface.

Unknown Assets

It is not uncommon for companies to have unknown assets exposed to their networks. Historically, Lucid Security has encountered client’s who have acquired other companies. As such, they assume control of the assets that the acquired company. This can lead to client’s having exposed assets that they are unaware of, or not inventoried. If this is the case, these assets may go unpatched/updated leading to further security vulnerabilities.

Test Content

It is important for organizations to continue to grow and evolve. Because of that, IT administrators may test out new software and services. While this is a great idea, unfortunately this test content may find itself exposed externally to the Internet. By testing out software and exposing it to the Internet, typical hardening procedures may have not been made.

Excessive Logging Solutions Exposed

Oftentimes for development reasons, logging software is included in dev/staging environments. However, organizations may forget to exclude them from their applications or external perimeter. This can lead to information disclosures such as database information or internal server architecture.

Conclusion

Between an everchanging security climate and regular development procedures, it is possible for organizations to expose more information/assets than necessary. For this reason, Lucid Security recommends conducting annual penetration testing and at a minimum quarterly external vulnerability assessments to stay on top of issues.

How Lucid Security Can Help

Lucid Security often conducts penetration testing and vulnerability assessments. Our services are catered to assist in identifying issues and help provide expert remediation advice. Contact us today to get started!

The Difference Between a Vulnerability Scan and a Penetration Test

What is the difference between a vulnerability scan and a penetration test?


A common question many client’s may ask, is what is the difference between a vulnerability scan and a penetration test? This blog post will go into addressing the similarities and differences of each activity.

What is a Vulnerability Scan?

A vulnerability scan is a thorough scan and assessment of a network or application. For the purposes of this article, we will assume the context of a client having an assessment of their external perimeter. That is, any assets that are exposed to the Internet that anyone in the world can access.

A vulnerability scan for a client’s external perimeter will generally include all of the IP addresses or FQDNs (Fully Qualified Domain Names) belonging to that client’s organization. This may include all sorts of assets such as the main marketing website, a VPN portal, a web application, and other various services. Lucid Security generally recommends including all assets during a vulnerability scan, especially critical systems. Once the hosts have been provided, it is now time to run the vulnerability scan. A popular vulnerability scanner is Tenable’s Nessus. The scan runtime will vary based on the amount of hosts included by the client, and the complexity of the services that may be running.

From here, the vulnerability scanner will generate a list of all of the potential vulnerabilities and security risks. This is where Lucid Security’s expertise comes into play. From here, our experienced Security Engineers parse through the results to determine the following:

  • Is this a false positive?
  • Is this truly a security risk?
  • What is the true criticality of this vulnerability?

These are just a few questions Lucid Security considers when reviewing the results. At this point, Lucid Security will now compile a list of all of the vulnerabilities and their associated affected assets, and create a custom-tailored report for the client. This report will include the following:

  • Complete list of all vulnerabilities.
  • Associated criticality of each finding.
  • A detailed remediation description to assist in fixing the issue.
  • Supplemental information which is not provided by vulnerability scanners.

The report is then sent to the client securely.


What is a Penetration Test?

A penetration test has elements of a standard vulnerability scan, but takes it a step further. Again, we will be assuming the scenario is testing an organization’s external perimeter by conducting an external penetration test. A penetration test is a comprehensive assessment of an organizations assets, in this case provided again as IP addresses or FQDNs. The penetration test will have the following phases:

  1. Scope verification – All assets provided by the client are rigorously verified as belonging to the client. While the scope provided to the client is generally accurate, it is always possible for a typo to be made or IP addresses to change from previous years assessments. This ensures that testing is true to the organizations intended hosts.
  2. Open-Source Intelligence (OSINT) – In this phase, the security team scours the Internet for any potentially sensitive information which may aid in the assessment. This could be usernames, sensitive documents/files, etc.
  3. Enumeration of assets – Here the security team begins to actively examine what is running on the hosts. The team will be looking for any open ports or services that can potentially be attacked.
  4. Vulnerability Identification – One of the most important phases of an external penetration test is actually identifying the vulnerabilities which may exist. This is crucial for the remediation process for a client.
  5. Exploitation – At this phase, the security team will attempt to exploit potential vulnerabilities. This is beneficial to demonstrate impact, as well as potentially uncover additional sensitive information which may aid in follow-on attacks.
  6. Reporting – The reporting phase consists of gathering all of the identified vulnerabilities and information during the OSINT phase and ensuring that all the findings are accurate and have remediation steps to aid in fixing the issues. During the reporting phase, the reports are peer-reviewed by a Lucid Security engineer to ensure that all findings are addressed, and the remediation steps are accurate.
  7. Debrief – The debrief is generally an 30 minute to an hour long call in which the security team will review the findings with the client. In this phase, the client can ask any questions, address any concerns, and get a detailed and comprehensive understanding of the findings.

Conclusion

While a vulnerability scan and a penetration test both attempt to identify vulnerabilities for a client, the biggest takeaway is that a penetration test goes a few steps further. Both are very important and recommended by Lucid Security to be conducted. Generally, a vulnerability scan should be conducted monthly or quarterly to monitor any new threats that may be introduced in the ever-changing security landscape. While a penetration test is generally recommended to be conducted annually or bi-annually.

How Lucid Security Can Help

Lucid Security has decades of hands-on security experience in vulnerability threat assessments and penetration testing. Our expert security engineers are ready to secure your networks and applications. Reach out today to get started!

What Can Go Wrong During an External Penetration Test?

External penetration tests often require organizations to safeguard their external perimeter against threats, whether for compliance, banking, or client requirements. However, it can be a daunting task which may have you wondering, “What can go wrong during a penetration test?”. This blog post examines the risks and will empower you to address these issues before kicking off an assessment.

Account Lockouts

Clients often worry about account lockouts during external penetration tests, although such incidents are rare. A proficient security team and penetration tester will consider this risk before each assessment. Lucid Security employs custom methodologies to prevent employee lockouts during assessments. Organizations with unique account lockout policies should inform the security team during kickoff calls to ensure appropriate measures are in place to prevent such issues.

Disruptions and Downtime

Related to account lockouts, disruptions and downtime also pose concerns during penetration tests. These often pertain to system or web application stability. A reputable penetration testing firm will not test for denial of service (DoS) vulnerabilities, as such tests offer little value and can hinder the discovery of other vulnerabilities by rendering the application or host unresponsive. Lucid Security reports potential DoS vulnerabilities without actively testing them to prevent client downtime.

Fear of the Unknown

Undergoing a penetration test can be daunting, particularly when organizations have invested heavily in infrastructure and data security. Lucid Security ensures clients feel comfortable by informing them about testing activities and providing clear, transparent results, embodying the clarity and transparency that is a core value of Lucid Security.

Conclusion

While external penetration tests can present several issues, a skilled security provider will anticipate and address these concerns, working closely with clients to mitigate risks.

Lucid Security’s Assistance

Lucid Security routinely conducts external penetration tests and services for various client sizes. Contact us today to discuss how we can help secure your network.

What is an External Penetration Test?

What is an External Penetration Test?

Before diving into what an external penetration test entails, let’s first recap what a penetration test involves. A penetration test simulates an attack on a network, application, device, location, controls, or humans in a controlled environment. Lucid Security conducts external penetration tests by simulating attacks on their internet-facing assets. These tests are crucial for an organization’s security maturation process, ensuring that websites and services are secure against attackers.

Phases of an External Penetration Test

An external penetration test consists of several phases:

  • Scope Verification – This critical phase ensures everyone understands that the listed assets are correct. It’s common for typos to occur when defining the scope, and IP addresses may change annually. Therefore, the security team must verify the scope the client provides. If discrepancies arise, the security team will contact the client for further clarification and verification.
  • Open-Source Intelligence (OSINT) – This process involves using services like Google to find potentially sensitive information, such as documents, username formats for password attacks, internal company information for phishing campaigns or social engineering, or technology details to target applications or infrastructure more effectively.
  • Enumeration – After identifying assets, the next step involves enumerating the “target” or host to determine what is available, such as a web server or an FTP server. The goal is to create an accurate attack map of the external perimeter to prioritize targets.
  • Vulnerability Identification – This phase works alongside enumeration. Once the team knows what’s running on a host, it’s important to identify any potential vulnerabilities.
  • Exploitation – This phase might not always apply. Here, the security team actively attacks a vulnerability to compromise a host, application, service, etc. The attack could allow information gathering, remote access to the web server, or unauthorized application access.
  • Post Exploitation – The security team assesses the impact level of the exploit, which could range from minimal to critical, depending on the vulnerability and any mitigating controls in place. For example, a SQL injection could lead to remote code execution under the right circumstances.
  • Reporting – Lucid Security compiles a custom-tailored report based on the findings from the engagement. The report will detail the vulnerabilities, their impacts or potential impacts, solutions, and any helpful references for remediation.
  • Deliverable – This phase provides an excellent opportunity for the security team and client to discuss the results in real-time. They will also address any questions or concerns to ensure the client fully understands the findings.

Benefits of an External Penetration Test

It’s common for third parties to require security testing, often specifying the assessments required before partnership. An external penetration test is a typical prerequisite for organizations seeking to do business with another company. This precaution ensures data protection and proactive measures against security breaches. Moreover, an external penetration test identifies potential security risks along an organization’s external perimeter. Often, IT teams are unaware of external assets, which a competent security team needs to identify and address.

How Lucid Security Can Help

Lucid Security consists of seasoned security professionals with decades of experience in security and penetration testing. Our unique and competent perspective enables us to enhance clients’ security environments. Please contact us today to learn more about our services and how we can make your organization more secure.

The Blind Spot in Cybersecurity: Overlooking Application Security Testing

This process, involving the simulated attack on a network to identify vulnerabilities, is critical for maintaining the integrity and confidentiality of an organization’s data. However, there’s a crucial aspect often neglected during these tests: application security testing.