Original release date: May 17, 2022

Summary

Best Practices to Protect Your Systems:
• Control access.
• Harden Credentials.
• Establish centralized log management.
• Use antivirus solutions.
• Employ detection tools.
• Operate services exposed on internet-accessible hosts with secure configurations.
• Keep software updated.

Cyber actors routinely exploit poor security configurations (either misconfigured or left unsecured), weak controls, and other poor cyber hygiene practices to gain initial access or as part of other tactics to compromise a victim’s system. This joint Cybersecurity Advisory identifies commonly exploited controls and practices and includes best practices to mitigate the issues. This advisory was coauthored by the cybersecurity authorities of the United States,[1],[2],[3] Canada,[4] New Zealand,[5],[6] the Netherlands,[7] and the United Kingdom.[8]

Download the PDF version of this report (pdf, 430kb).

Technical Details

Malicious actors commonly use the following techniques to gain initial access to victim networks.[TA0001]

Malicious cyber actors often exploit the following common weak security controls, poor configurations, and poor security practices to employ the initial access techniques.

  • Multifactor authentication (MFA) is not enforced. MFA, particularly for remote desktop access, can help prevent account takeovers. With Remote Desktop Protocol (RDP) as one of the most common infection vector for ransomware, MFA is a critical tool in mitigating malicious cyber activity. Do not exclude any user, particularly adminstrators, from an MFA requirement. 
  • Incorrectly applied privileges or permissions and errors within access control lists. These mistakes can prevent the enforcement of access control rules and could allow unauthorized users or system processes to be granted access to objects. 
  • Software is not up to date. Unpatched software may allow an attacker to exploit publicly known vulnerabilities to gain access to sensitive information, launch a denial-of-service attack, or take control of a system. This is one of the most commonly found poor security practices.
  • Use of vendor-supplied default configurations or default login usernames and passwords. Many software and hardware products come “out of the box” with overly permissive factory-default configurations intended to make the products user-friendly and reduce the troubleshooting time for customer service. However, leaving these factory default configurations enabled after installation may provide avenues for an attacker to exploit. Network devices are also often pre-configured with default administrator usernames and passwords to simplify setup. These default credentials are not secure—they may be physically labeled on the device or even readily available on the internet. Leaving these credentials unchanged creates opportunities for malicious activity, including gaining unauthorized access to information and installing malicious software. Network defenders should also be aware that the same considerations apply for extra software options, which may come with preconfigured default settings.
  • Remote services, such as a virtual private network (VPN), lack sufficient controls to prevent unauthorized access. During recent years, malicious threat actors have been observed targeting remote services. Network defenders can reduce the risk of remote service compromise by adding access control mechanisms, such as enforcing MFA, implementing a boundary firewall in front of a VPN, and leveraging intrusion detection system/intrusion prevention system sensors to detect anomalous network activity.  
  • Strong password policies are not implemented. Malicious cyber actors can use a myriad of methods to exploit weak, leaked, or compromised passwords and gain unauthorized access to a victim system. Malicious cyber actors have used this technique in various nefarious acts and prominently in attacks targeting RDP. 
  • Cloud services are unprotected. Misconfigured cloud services are common targets for cyber actors. Poor configurations can allow for sensitive data theft and even cryptojacking.
  • Open ports and misconfigured services are exposed to the internet. This is one of the most common vulnerability findings. Cyber actors use scanning tools to detect open ports and often use them as an initial attack vector. Successful compromise of a service on a host could enable malicious cyber actors to gain initial access and use other tactics and procedures to compromise exposed and vulnerable entities. RDP, Server Message Block (SMB), Telnet, and NetBIOS are high-risk services. 
  • Failure to detect or block phishing attempts. Cyber actors send emails with malicious macros—primarily in Microsoft Word documents or Excel files—to infect computer systems. Initial infection can occur in a variety of ways, such as when a user opens or clicks a malicious download link, PDF, or macro-enabled Microsoft Word document included in phishing emails. 
  • Poor endpoint detection and response. Cyber actors use obfuscated malicious scripts and PowerShell attacks to bypass endpoint security controls and launch attacks on target devices. These techniques can be difficult to detect and protect against. 

Mitigations

Applying the following practices can help organizations strengthen their network defenses against common exploited weak security controls and practices.

Control Access

  • Adopt a zero-trust security model that eliminates implicit trust in any one element, node, or service, and instead requires continuous verification of the operational picture via real-time information from multiple sources to determine access and other system responses.[9],[10] Zero-trust architecture enables granular privilege access management and can allow users to be assigned only the rights required to perform their assigned tasks.
  • Limit the ability of a local administrator account to log in from a remote session (e.g., deny access to this computer from the network) and prevent access via an RDP session. Additionally, use dedicated administrative workstations for privileged user sessions to help limit exposure to all the threats associated with device or user compromise. 
  • Control who has access to your data and services. Give personnel access only to the data, rights, and systems they need to perform their job. This role-based access control, also known as the principle of least priviledge, should apply to both accounts and physical access. If a malicious cyber actor gains access, access control can limit the actions malicious actors can take and can reduce the impact of misconfigurations and user errors. Network defenders should also use this role-based access control to limit the access of service, machine, and functional accounts, as well as the use of management privileges, to what is necessary. Consider the following when implementing access control models:
    • Ensure that access to data and services is specifically tailored to each user, with each employee having their own user account. 
    • Give employees access only to the resources needed to perform their tasks.
    • Change default passwords of equipment and systems upon installation or commissioning. 
    • Ensure there are processes in place for the entry, exit, and internal movement of employees. Delete unused accounts, and immediately remove access to data and systems from accounts of exiting employees who no longer require access. Deactivate service accounts, and activate them only when maintenance is performed.[11]
  • Harden conditional access policies. Review and optimize VPN and access control rules to manage how users connect to the network and cloud services.
  • Verify that all machines, including cloud-based virtual machine instances do not have open RDP ports. Place any system with an open RDP port behind a firewall and require users to use a VPN to access it through the firewall.[12]

Implement Credential Hardening

Establish Centralized Log Management

  • Ensure that each application and system generates sufficient log information. Log files play a key role in detecting attacks and dealing with incidents. By implementing robust log collection and retention, organizations are able to have sufficient information to investigate incidents and detect threat actor behavior. Consider the following when implementing log collection and retention: 
    • Determine which log files are required. These files can pertain to system logging, network logging, application logging, and cloud logging. 
    • Set up alerts where necessary. These should include notifications of suspicious login attempts based on an analysis of log files. 
    • Ensure that your systems store log files in a usable file format, and that the recorded timestamps are accurate and set to the correct time zone. 
    • Forward logs off local systems to a centralized repository or security information and event management (SIEM) tools. Robustly protect SIEM tools with strong account and architectural safeguards.
    • Make a decision regarding the retention period of log files. If you keep log files for a long time, you can refer to them to determine facts long after incidents occur. On the other hand, log files may contain privacy-sensitive information and take up storage space. Limit access to log files and store them in a separate network segment. An incident investigation will be nearly impossible if attackers have been able to modify or delete the logfiles.[13]

Employ Antivirus Programs

  • Deploy an anti-malware solution on workstations to prevent spyware, adware, and malware as part of the operating system security baseline.
  • Monitor antivirus scan results on a routine basis.

Employ Detection Tools and Search for Vulnerabilities

  • Implement endpoint and detection response tools. These tools allow a high degree of visibility into the security status of endpoints and can help effectively protect against malicious cyber actors.
  • Employ an intrusion detection system or intrusion prevention system to protect network and on-premises devices from malicious activity. Use signatures to help detect malicious network activity associated with known threat activity.
  • Conduct penetration testing to identify misconfigurations. See the Additional Resources section below for more information about CISA’s free cyber hygiene services, including remote penetration testing.
  • Conduct vulnerability scanning to detect and address application vulnerabilities. 
  • Use cloud service provider tools to detect overshared cloud storage and monitor for abnormal accesses.

Maintain Rigorous Configuration Management Programs

  • Always operate services exposed on internet-accessible hosts with secure configurations. Never enable external access without compensating controls such as boundary firewalls and segmentation from other more secure and internal hosts like domain controllers. Continuously assess the business and mission need of internet-facing services. Follow best practices for security configurations, especially blocking macros in documents from the internet.[14]

Initiate a Software and Patch Management Program 

  • Implement asset and patch management processes to keep software up to date. Identify and mitigate unsupported, end-of-life, and unpatched software and firmware by performing vulnerability scanning and patching activities. Prioritize patching known exploited vulnerabilities.

Additional Resources 

References 

[1] United States Cybersecurity and Infrastructure Security Agency 
[2] United States Federal Bureau of Investigation
[3] United States National Security Agency
[4] Canadian Centre for Cyber Security 
[5] New Zealand National Cyber Security Centre 
[6] New Zealand CERT NZ
[7] Netherlands National Cyber Security Centre
[8] United Kingdom National Cyber Security Centre 
[9] White House Executive Order on Improving the Nation’s Cybersecurity
[10] NCSC-NL Factsheet: Prepare for Zero Trust
[11] NCSC-NL Guide to Cyber Security Measures
[12] N-able Blog: Intrusion Detection System (IDS): Signature vs. Anomaly-Based
[13] NCSC-NL Guide to Cyber Security Measures
[14] National Institute of Standards and Technology SP 800-123 – Keeping Servers Secured

Contact

U.S. organizations: To report incidents and anomalous activity or to request incident response resources or technical assistance related to these threats, contact CISA at report@cisa.gov. To report computer intrusion or cybercrime activity related to information found in this advisory, contact your local FBI field office at www.fbi.gov/contact-us/field, or the FBI’s 24/7 Cyber Watch at 855-292-3937 or by email at CyWatch@fbi.gov. For NSA client requirements or general cybersecurity inquiries, contact Cybersecurity_Requests@nsa.gov

Canadian organizations: report incidents by emailing CCCS at contact@cyber.gc.ca

New Zealand organizations: report cyber security incidents to incidents@ncsc.govt.nz or call 04 498 7654. 

The Netherlands organizations: report incidents to cert@ncsc.nl

United Kingdom organizations: report a significant cyber security incident: ncsc.gov.uk/report-an-incident (monitored 24 hours) or, for urgent assistance, call 03000 200 973.

Caveats

The information you have accessed or received is being provided “as is” for informational purposes only. CISA, the FBI, NSA, CCCS, NCSC-NZ, CERT-NZ, NCSC-NL, and NCSC-UK do not endorse any commercial product or service, including any subjects of analysis. Any reference to specific commercial products, processes, or services by service mark, trademark, manufacturer, or otherwise, does not constitute or imply their endorsement, recommendation, or favoring.

Purpose

This document was developed by CISA, the FBI, NSA, CCCS, NCSC-NZ, CERT-NZ, NCSC-NL, and NCSC-UK in furtherance of their respective cybersecurity missions, including their responsibilities to develop and issue cybersecurity specifications and mitigations. This information may be shared broadly to reach all appropriate stakeholders. 

Revisions

  • May 17, 2022: Initial version

This product is provided subject to this Notification and this Privacy & Use policy.

Source de l’article sur us-cert.gov

Thanks to services provided by AWS, GCP, and Azure it’s become relatively easy to develop applications that span multiple regions. This is great because slow apps kill businesses. There is one common problem with these applications: they are not supported by multi-region database architecture.

In this blog, I will provide a solution for the problem of getting Kubernetes pods to talk to each other in multi-region deployments.

Source de l’article sur DZONE

The underlying theme of this month’s collection of new tools and resources is development. Almost every tool here makes dev a little easier, quicker, or plain fun. There are a few great tutorials in the mix to help you get into the spirit of trying new things and techniques.

Here’s what is new for designers this month…

Cryptofonts

Cryptofonts is a huge open-source library of icons that represent cryptocurrencies. There are more than 1,500 CSS and SVG elements in the collection. Cryptofonts includes all scalable vector icons that you can customize by size, color, shadow, or practically anything else. They work with Sketch, Photoshop, Illustrator, Adobe XD, Figma, and Invision Studio, and there’s no JavaScript.

 

Reasonable Colors

Reasonable Colors is an open-source color system for building accessible and beautiful color palettes. Colors are built using a coded chart. Each color comes in six numbered shades. The difference between their shade numbers can infer the contrast between any two shades. The differences correspond to WCAG contrast ratios to help you create an accessible palette. This is a smart project and a valuable tool if you work on projects where color contrast and accessibility are essential (which is all of them).

 

Chalk.ist

Chalk.ist is a fun tool to make your code snippets look amazing. Add your code (there’s a vast language selector), pick some colors and backgrounds, and then download it as a shareable image. Your code has never looked so beautiful!

 

WeekToDo

WeekToDo is a free minimalist weekly planner. Improve productivity by defining and managing your week and life easily and intuitively. Plus, this tool is focused on privacy with data that is stored on your computer (in your web browser or the application). The only person who has access to it is you.

 

Bio.Link

Bio.Link is a tool that collects all your links – from social media to blog posts to any other kind of link you want to share. It’s free to use, includes 15 design themes, visitor stats, and is super fast.

 

Spacers

Spacers are a set of three-dimensional space characters that you can use in projects. Characters are in multiple poses and ultra high-def formats to play with.

11ty

11ty is a super simple, static website generator. Try it for small projects and read the documentation to see everything you can do with this tool.

Scrollex

Scrollex is a react library that lets you build beautiful scroll experiences using minimal code. You can create scroll animations in all kinds of combinations – vertical, horizontal, almost anything you want to try. The documentation is fun and easy to understand if you’re going to see how it works.

GetCam

GetCam is an app that lets you turn your smartphone into a webcam for your computer. It works with any iPhone and a Mac or Windows computer. It works with most video conference and streaming tools as well as browser-based apps.

Flatfile

Flatfile is a data onboarding platform that intuitively makes sense of the jumbled data customers import and transforms it into the format you rely on. You won’t have any more messy spreadsheets or have to build a custom tool.

Loaders

Loaders is a collection of free loaders and spinners for web projects. They are built with HTML, CSS, and SVG and are available for React and copypasta.

Lexical

Lexical is an extensible JavaScript web text-editor framework emphasizing reliability, accessibility, and performance. It’s made for developers, so you can easily prototype and build features with confidence. Combined with a highly extensible architecture, Lexical allows developers to create unique text editing experiences that scale in size and functionality.

Picture Perfect Images with the Modern img Element

This tutorial is a primer on why the img element is such a powerful tool in your development box. Images are so prominent that they are part of the most important content in over 70% of pages on both mobile and desktop, according to the largest contentful paint metric. This post takes you through how to better optimize and improve core web vitals simultaneously.

Building a Combined CSS-Aspect-Ratio-Grid

Building a Combined CSS-Aspect-Ratio-Grid provides two solutions for creating the title effect. You can define an aspect ratio for the row or use Flexbox with a little flex grow magic. Learn how to try it both ways.

QIndR

QIndR is a QR code generator made for events and appointments. The form is designed to capture your event information so you can quickly build and use a QR code for listings and even allow users to add it to their calendars! It’s super quick and easy to use.

On-Scroll Text Repetition Animation

On-Scroll Text Repetition Animation shows you how to create an on-scroll animation that shows repeated fragments of a big text element. This is a fun and easy lesson that you can use right away.

Eight Colors

Eight Colors won’t do anything for your productivity, but it is a fun game that you may not be able to stop playing. It is a block-shifting game with the goal to shift circular blocks to reach the target given.

Creative Vintage

Creative Vintage is a pair of typefaces including a thin script and vintage slab serif (with rough and smooth styles). The pair is designed to work together for various uses or can be used independently.

Hardbop

Hardbop is a vintage-style typeface with a lot of personality. It would work great for display, and the family includes seven full-style character sets.

Kocha

Kocha is a funky ligature-style typeface perfect for lighter design elements, including logos or packaging. It includes clean and rough versions.

Magnify

Magnify is a large font family with 16 styles and plenty of fun alternates. You can use it straight or with the more funky styles that create less traditional character forms.

Stacker

Stacker is a fun and futuristic style font with a triple outline style. Use it for display when you really want to make an impression.

Source

The post Exciting New Tools for Designers, May 2022 first appeared on Webdesigner Depot.

Source de l’article sur Webdesignerdepot

Before diving into debugging memory issues and the other amazing running process, memory debugging capabilities (which are amazing)… I want to discuss a point I left open in the last duckling post. Back there we discussed customizing the watch renderer. This is super cool!

But it’s also tedious. Before we continue, if you prefer, I cover most of these subjects in these videos:

Source de l’article sur DZONE

Every day design fans submit incredible industry stories to our sister-site, Webdesigner News. Our colleagues sift through it, selecting the very best stories from the design, UX, tech, and development worlds and posting them live on the site.
The best way to keep up with the most important stories for web professionals is to subscribe to Webdesigner News or check out the site regularly. However, in case you missed a day this week, here’s a handy compilation of the top curated stories from the last seven days. Enjoy!”

Google Updates its Classic Roboto Font

The Worst Design Fails of 2022 to Date

Learn CSS Subgrid

15 Modal / Popup Windows Created with Only CSS

Roboto Flex Now on Google Fonts

Veryfront – Code Faster, Deploy Instantly

This Mammoth Paper Bag Collection is a Graphic Design Dream

Smartcat for Figma

15 Best New Fonts, May 2022

Magical SVG Techniques

Web Development for Beginners – A Curriculum

Eleventy – A Simpler Static Site Generator

The Complete Modern React Developer 2022

Source

The post Popular Design News of the Week: May 9, 2022 – May 15, 2022 first appeared on Webdesigner Depot.

Source de l’article sur Webdesignerdepot

There are a good number of articles that articulate functional differences between HashMap, Hashtable, and ConcurrentHashMap. This post compares the performance behavior of these data structures through practical examples. If you don’t have the patience to read the entire post, here is the bottom line: when you are confronted with the decision of whether to use HashMap, Hashtable, or ConcurrentHashMap, consider using ConcurrentHashMap since it’s thread-safe implementation without compromise in performance.

Performance Study

 To study the performance characteristics, I have put together this sample program:

Source de l’article sur DZONE

Some believe that experienced developers do not make silly errors. Comparison errors? Dereferencing null references? Bet you think: « No, it’s definitely not about me… » ;) By the way, what about errors with sorting? As the title suggests, there are some nuances.

OrderBy(…).OrderBy(…)

Let me give you an example to describe the problem. Let’s say we have some type (Wrapper) with two integer properties (Primary and Secondary). There’s an array of instances of this type. We need to sort it in ascending order. First — by the primary key, then — by the secondary key.

Source de l’article sur DZONE

Are you a creative person looking for the perfect career path to take? If so, there are not many more creative professions than that of a web designer.

However, becoming a web designer can be challenging, especially if you do not know where to start. For example, do you need to attend college to become a web designer? And what kind of computer and software do you need to own to be successful as a web designer?

This guide aims to answer all these questions and show you the steps you need to follow to build a career in web design.

Web Designer: Main Skills and Responsibilities

Generally speaking, a web designer is a professional who creates, manages, and maintains content for the web. Nothing is left out from designing pages and visual elements via programming languages and creating user-friendly websites.

Web Designer (Hard and Soft) Skills:

  • UX, UI, and visual design knowledge (web fonts, colors, etc.)
  • Management of design software (e.g., Adobe Photoshop)
  • Coding knowledge (HTML, CSS, JavaScript, etc.)
  • Time management
  • Communication skills
  • Problem-solving and teamwork skills
  • Research skills

Web Designer Responsibilities:

  • Plan and create web pages
  • Design appealing layouts
  • Use codes to create user-friendly pages
  • Ability to meet deadlines
  • Listen and advise clients
  • Able to work as part of a team and effectively solve occurring problems
  • Analyze the client’s niche, explore new web design opportunities/ innovative digital marketing approaches

If you feel overwhelmed reading this table, don’t be! You do not have to master all of the above skills. No one expects you to either. Becoming a top-notch web designer takes some dedication, but ultimately it’s nothing more than a series of steps. Let’s dive deeper into them.

Becoming a Web Designer: 7 Essential Steps

1. Gaining the Knowledge Needed: Theory and Certifications

Let’s start with the most common question, “Do I need to go to college to become a web designer?” Research shows that more than 65% of web designers are self-taught (fully or partially). Of course, that does not mean you can jump into design from the start.

Instead, we recommend that you learn some essential web design elements and how to use them in your future projects. This includes UX (user experience), UI (user interface), protocols, and patterns. The same goes for technical knowledge like programming languages, frameworks, and design software.

2. Developing Certain Skills

So, there are numerous aspects you can explore regarding technical skills. To be specific, your first steps in web design include developing the following skills: 

  1. Theory and certifications: Learning the theory to understand how the web and the market work
  2. Web design tools: Finding the web design tools you need to start designing (.e.g Webflow, Sketch, Figma). This will allow you to learn how to prototype web design mock-ups.
  3. Graphic design tools: Becoming familiar with software like Photoshop, Illustrator, etc.
  4. Programming languages: Especially if you think of becoming a freelance web designer, you should at least learn how to use fundamental languages (HTML, JavaScript, CSS).
  5. SEO (Search Engine Optimization): Learning how to optimize your web pages to rank on search engines is crucial.  

3. Mastering Web Design Software 

What software do you need as a beginner to start creating web designs? There are numerous apps that will help you gradually enter the fascinating world of web design. 

When it comes to CMS platforms, WordPress is by far the most popular in the market. The good thing about WordPress is that it is very beginner-friendly and comes with thousands of pre-built themes and plugins that you can use when creating a website.

But the same is true for InVision Studio. Unlike WordPress, InVision Studio is specifically designed to help web designers prototype and design a website. Finally, when it comes to graphic design software, we recommend you start with Photoshop (for creating visual samples and prints) and Sketch (for UI designs). 

4. Learning How Much Computing Power you Need

Although online CMS platforms like WordPress do not require special hardware, that’s not true for web design and graphic design software. To be precise, both InVision Studio and Photoshop have quite demanding system requirements. 

Still, a mid-range desktop or an entry-level gaming laptop can easily handle such applications. You need a reliable CPU, 8 GB RAM, and a dedicated graphics card.

I find working with two screens perfect when it comes to prototyping. You do not need to spend thousands of dollars to buy a laptop or desktop for web design.

5. Practice, Practice, and Practice

As with any other profession, practice makes perfect in web design. Therefore, the good idea is to get involved with personal web design projects before you start seeking clients or applying for job offers. This way, you can gradually acquire the technical skills you need.

Also, by working on some personal projects first, you can build a professional portfolio.

6. Creating a Professional Portfolio

If you want to draw attention to your talent, you should have a comprehensive portfolio as a web designer. This way, potential customers to trust you by having a look at your work and previous experience.

When creating a portfolio, make sure to showcase all aspects of your work and make it user-friendly. In other words, think of your online portfolio representing your talent and treat it accordingly.

7. Choosing the Web Designer Type That Best Suits Your Needs and Preferences

Last but not least, before working as a web designer, you should know that there are three main types of web designers: Freelance web designers, Agency web designers, and In-house web designers.

If you prefer to be self-employed and believe that you have the required soft skills, freelancing is probably the best path.

On the other hand, working for an agency or a company is usually easier (especially for beginners) and will provide you with a stable income. But, in the end, it all depends on your needs and preferences.

Wrap Up

Being a web designer can be an exciting career. As long as you have the necessary dedication and willingness, nothing will stand in your way.

Learning different aspects of the profession and mastering specific software will only make you better. All you need to do is respond positively to (and ask for) incoming feedback and practice!

 

Featured image via Pexels.

Source

The post How To Take Your First Steps in Web Design first appeared on Webdesigner Depot.

Source de l’article sur Webdesignerdepot

Thread debugging has the reputation of being one of the most arduous tasks for developers. I beg to differ. Asynchronous debugging is so much worse. It’s supposed to solve threading problems, and to some degree, async helps… But it doesn’t make debugging simpler. I will get into that in the next post.

Today we’ll discuss the process of debugging threading issues and dealing with deadlocks and race conditions in the debugger.

Source de l’article sur DZONE

Misconfigurations are the leading cause behind security incidents in Kubernetes-orchestrated or otherwise containerized environments. Without proper configuration in place, applications would run into problems ranging from noncompliance and inconsistencies to performance bottlenecks, security vulnerabilities, and functionality failure. Therefore, configuration management is a critical component in a software development lifecycle for maintaining systems in a desired, consistent state.

According to Red Hat’s State of Kubernetes Security report, misconfigurations were the leading cause behind security incidents in Kubernetes-orchestrated or otherwise containerized environments. Without proper configuration in place, applications would run into problems ranging from noncompliance and inconsistencies to performance bottlenecks, security vulnerabilities, and functionality failure. This would make cloud-native systems unstable and cause them to become a liability to businesses. For this reason, configuration management is a critical component in a software development lifecycle for maintaining systems in a desired, consistent state. However, the way configuration management is done has been evolving over the years. This post traces the history of configuration management, focusing on how GitOps handles this critical aspect of running cloud-native applications today.

Source de l’article sur DZONE