<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Forem: Sturdy</title>
    <description>The latest articles on Forem by Sturdy (@sturdy5).</description>
    <link>https://forem.com/sturdy5</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F187698%2F8132a271-ca06-478c-a9b3-f83a9548957b.jpg</url>
      <title>Forem: Sturdy</title>
      <link>https://forem.com/sturdy5</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/sturdy5"/>
    <language>en</language>
    <item>
      <title>Stop Using Acronyms</title>
      <dc:creator>Sturdy</dc:creator>
      <pubDate>Wed, 27 Jul 2022 16:29:00 +0000</pubDate>
      <link>https://forem.com/sturdy5/stop-using-acronyms-5d88</link>
      <guid>https://forem.com/sturdy5/stop-using-acronyms-5d88</guid>
      <description>&lt;p&gt;I recently was invited to a vendor lunch and learn. Here is the subject -&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;OCP Platform - ACS and ACM - ODF Advanced&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;I didn't go. I don't know what all of the acronyms mean.&lt;/p&gt;

&lt;p&gt;That example came from a vendor, but we do this to ourselves all the time. Here are a few email/meeting subjects I've had in my inbox recently&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;SI-2 &amp;amp; RA-5 Escalation Step 1&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;or&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Implementing MTLS for SSO for our app&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;or&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;OD4B and SPO&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Unless you work with those terms on a regular basis, you aren't likely to know what those mean.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why Do We Use Acronyms?
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Foqap3rm2un5mz02y6y7j.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Foqap3rm2un5mz02y6y7j.png" alt="The word acronym in letter blocks"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;We tend to use acronyms for a couple of reasons, but I think it really comes down to speed. It is just faster to write SPO than it is SharePoint Online. But there is a less obvious reason we use acronyms - it makes us feel good. In the book &lt;em&gt;The Upside of Irrationality&lt;/em&gt;, Dan Ariely talks about how acronyms can be used to communicate about ideas in shorthand. Those not familiar with the ideas don't understand the acronyms. When you know what the acronym means, it creates this sense of cohesiveness of being part of the "in" crowd.&lt;/p&gt;

&lt;p&gt;The downside to using acronyms like this is that it keeps outsiders out. It becomes difficult to break into the "in" crowd. For those of us that have been at a company for many years, some of the common acronyms aren't new to us, but when you try talking to new employees, across departments, or sometimes even teams, those acronyms don't always translate.&lt;/p&gt;

&lt;p&gt;Not only can the acronyms not translate, they are often overloaded. If I'm working with our web services team and I'm talking about SSO, it stands for "Single Sign On". If I'm working with a security team and talking about SSO, it stands for "System Security Officer" (or at least I think it does - a SSO is definitely a Security Officer of some kind).&lt;/p&gt;

&lt;h2&gt;
  
  
  Acronyms Are Exclusive Language
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fy822lqgxgrggumb2drkg.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fy822lqgxgrggumb2drkg.jpg" alt="Oregon Department of Forestry Logo"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;When we use acronyms, we are using an exclusive language where only people in the "in" crowd will know what we are talking about. Others are left to ask questions or use Google to figure it out. Using the Google method, I figured out what the meeting request I mentioned above was about - the Oregon Catholic Press's (OCP) Platform with the American Chemical Society (ACS) and the Association for Computing Machinery (ACM) for the Oregon Department of Forestry's (ODF) Advanced [force]. That would have been a long title, I'm glad they used acronyms. While that might have been interesting, I'm glad I didn't go.&lt;/p&gt;

&lt;p&gt;All joking aside, I really don't know what the meeting was about. I may have been needed. It may have been about something that impacts my work. I don't know and I made the decision to not attend in lieu of other, more well-defined work.&lt;/p&gt;

&lt;p&gt;As part of my job, I teach new, entry-level employees on various programming techniques and technologies we use. Over the years, I've learned there are a lot of different acronyms we use and just expect people to know. If you are curious about how often we slip into acronym world, try teaching. It will highlight where we expect people to understand acronyms.&lt;/p&gt;

&lt;h2&gt;
  
  
  Not All Acronyms are Bad
&lt;/h2&gt;

&lt;p&gt;I do believe we should cut way back on using acronyms, but there are certain acronyms that aren't all bad. There are acronyms that are part of every day life that we can continue to use - USA, NYC, SCUBA, DMV, GEICO, NASA. There are acronyms used specific in technology - IT, SDLC, API, HTML, XML. Everyone knows what those mean. Go ahead and use those shortcuts. On the other hand, if there is any doubt about whether someone will know what you are talking about - do not use the acronym.&lt;/p&gt;

&lt;p&gt;If you are on the receiving end of an acronym you don't know, make sure you speak up and ask about it. If you don't know, there are likely plenty of other people who also don't know.&lt;/p&gt;

&lt;h2&gt;
  
  
  TL;DR (Too Long; Didn't Read)
&lt;/h2&gt;

&lt;p&gt;Stop using acronyms if they aren't widely known.&lt;/p&gt;

</description>
      <category>productivity</category>
      <category>career</category>
      <category>watercooler</category>
    </item>
    <item>
      <title>Secure Software Design</title>
      <dc:creator>Sturdy</dc:creator>
      <pubDate>Wed, 22 Jun 2022 01:35:07 +0000</pubDate>
      <link>https://forem.com/sturdy5/secure-software-design-4o00</link>
      <guid>https://forem.com/sturdy5/secure-software-design-4o00</guid>
      <description>&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--xctu3AZp--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/67k06bbkqyy0mycn1lop.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--xctu3AZp--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/67k06bbkqyy0mycn1lop.jpg" alt="empty college classroom" width="640" height="457"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;As part of the &lt;a href="https://www.whitehouse.gov/briefing-room/presidential-actions/2021/05/12/executive-order-on-improving-the-nations-cybersecurity/"&gt;Executive Order on Improving the Nation's Cybersecurity&lt;/a&gt;, there is a provision in Section 4, subsection s that says&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;The Secretary of Commerce acting through the Director of NIST, in coordination with representatives of other agencies as the Director of NIST deems appropriate, shall initiate pilot programs informed by existing consumer product labeling programs to educate the public on the security capabilities of Internet-of-Things (IoT) devices and software development practices, and shall consider ways to incentivize manufacturers and developers to participate in these programs.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;When I first read this, I got excited. I think that as a whole, we in the development community don't naturally build in security to our applications because we've never been taught what that means. This is an opportunity to improve that.&lt;/p&gt;

&lt;p&gt;I've looked into it and I haven't seen too much published, but I knew The Linux Foundation played some major roles in various parts of the Executive Order, so I started to explore what they had available. And I found it - training about secure software development through the Open Source Security Foundation (OpenSSF).&lt;/p&gt;

&lt;p&gt;&lt;a href="https://openssf.org/training/courses/"&gt;https://openssf.org/training/courses/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;As it should, the training starts off with how to design secure software. Here are a few of the high-level points you can take away without actually taking the training&lt;/p&gt;

&lt;h2&gt;
  
  
  Requirements
&lt;/h2&gt;

&lt;p&gt;Security should be an integral part of the requirements of any software application. Specifically you should think about the following:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Confidentiality&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Which information should not be publicly revealed? Who is allowed to see the data? Can we avoid having that information at all? What about passwords - how are they stored?&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Integrity&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Which information should only certain people be allowed to modify? Who are those certain people?&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Availability&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This is a hard one as availability is rarely an absolute. How can we develop our software so it isn't easy to overwhelm? Can we build our applications to scale up with load? To protect against corruption, make sure the data is backed up to cold storage.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Non-repudiation&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Is there an action that we want to prove someone took?&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Identity &amp;amp; Authorization&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;How do people prove who they are? We should implement two factor authentication whenever possible.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Authorization&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Who is allowed to do what? Implement role based security.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Auditing/Logging&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;What events are important to record? Login, logout, user creation, user deletion are a must. The format for the record should include when it happened, what happened, what system component did it, and who caused it to happen.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Privacy
&lt;/h2&gt;

&lt;p&gt;Privacy is the right to be left alone, or freedom from interference or intrusion. Information privacy is the right to have some control over how your personal information is collected and used. Various countries and cultures have wildly differing views on what a person's rights are with regard to privacy.&lt;/p&gt;

&lt;p&gt;When setting privacy requirements, often the best thing to do is to not collect information. When you don't collect information, you don't have to tell people how you use it, you don't have to figure out a strategy for the misuse of the information. If you need to collect personal information, you must provide protections for them.&lt;/p&gt;

&lt;p&gt;The European Union has a comprehensive privacy regulation - General Data Protection Regulation (GDPR). The Linux Foundation has &lt;a href="https://www.linuxfoundation.org/wp-content/uploads/lf_gdpr_052418.pdf"&gt;a summary worth reviewing&lt;/a&gt; for additional information.&lt;/p&gt;

&lt;h2&gt;
  
  
  Managing Risk
&lt;/h2&gt;

&lt;p&gt;If people start using the software you develop, &lt;em&gt;expect&lt;/em&gt; that intelligent adversaries will try to attack it. Don't wait to address risk. If you ignore risk until something happens then they are now problems. Addressing risk now is easier and cheaper than addressing problems later. Additionally, it is better for professional and organizational reputations to address risk before they are problems.&lt;/p&gt;

&lt;p&gt;Identifying risk is something a lot of people are not very good at. Most of us try to use things the way they were meant to be used. As an example, when you go vote, have you ever tried to vote twice? That is the mindset we need to start addressing risk and the best way to get there is to start doing it now and continuously improve. Software we designed 5 years ago with security in mind is likely not secure anymore. &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Security is rarely once and done&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Someone once told me, "we have to be right 100% of the time, but attackers only have to be right once." I don't know anyone that is right 100% of the time, and NIST agrees with me. They've put together &lt;a href="https://www.nist.gov/cyberframework"&gt;Cybersecurity Framework&lt;/a&gt; that should be followed when an incident occurs. Here are the high-level steps:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Identify&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Develop an organizational understanding to manage cybersecurity risk to systems, people, assets, data, and capabilities&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Protect&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Develop and implement appropriate safeguards to ensure delivery of critical services&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Detect&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Develop and implement appropriate activities to identify the occurrence of a cybersecurity event&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Respond&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Develop and implement appropriate activities to take action regarding a detected cybersecurity incident&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Recover&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Develop and implement appropriate activities to maintain plans for resilience and to restore any capabilities or services that were impaired due to a cybersecurity incident&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Secure Design Principles
&lt;/h2&gt;

&lt;p&gt;These are just rules of thumb for building in security, but they should never replace thinking and doing the right thing. These are the same secure design principles put together in 1975 in &lt;a href="http://web.mit.edu/Saltzer/www/publications/protection/index.html"&gt;The Protection of Information in Computer Systems&lt;/a&gt;.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Least Privilege&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Each user and program should operate using the fewest privileges possible. This principle limits the damage from an accident, error, or attack. It also reduces the number of potential interactions among privileged programs, so unintentional, unwanted, or improper uses of privilege are less likely to occur.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Complete Mediation&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Also known as &lt;strong&gt;non-bypassability&lt;/strong&gt;. Every access attempt must be checked; position the mechanism so it cannot be subverted.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Economy of Mechanism&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Ironically also known as &lt;strong&gt;simplicity&lt;/strong&gt;. The system, in particular the part that security depends on, should be as simple and small as possible. Easier to review, harder to get wrong.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Open Design&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The protection mechanism must not depend on attacker ignorance. Instead, you should act as if the mechanism is publicly known, and instead depend on the secrecy of relatively few and easily changeable items like passwords or private keys. An attacker should not be able to break into a system just because the attacker known how it works. Security through obscurity generally doesn't work.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Fail-safe Defaults&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The default installation should be the secure installation. if it is not certain that something should be allowed, don't allow it.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Separation of Privilege&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Access to objects should depend on more than one condition (such as having a password). That way, if an attacker manages to break one condition (e.g., by stealing a key), the system remains secure.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Least Common Mechanism&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Minimize the amount and use of shared mechanisms. Avoid sharing files, directories, operating system kernel execution, or computers with something you do not trust, because attackers might exploit them.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Psychological Acceptability&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Also known as &lt;strong&gt;easy to use&lt;/strong&gt;. The human interface must be designed for ease of use, so users will routinely and automatically use the protection mechanisms correctly.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Reusing Software
&lt;/h2&gt;

&lt;p&gt;Looking at the composition of applications, a very large majority of the code is reused. It could be proprietary or third-party, open source software. When we reuse software, regardless of the source, we need to consider a few things.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Is the software easy to use securely? If it isn't easy, then it likely won't be used securely.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Can evidence be found that the authors of the software are working to make it more secure?&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Is the software maintained at all?&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Are there other people using the software?&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;What license is applied to the software? A lack of a license is a big red flag - a lot of countries make it illegal to use unlicensed software.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;And even with all of those questions answered, don't be afraid to do your own review. Run a static analysis tool against it, check for TODO statements, are there tests?&lt;/p&gt;

&lt;p&gt;If you are using Open Source Software, you should never fork it to make changes. Contribute the updates back to the community. Forking makes receiving updates very difficult. If &lt;a href="https://videos.itrevolution.com/watch/467489374/"&gt;Google had a hard time with it&lt;/a&gt;, I can't imagine you will do better.&lt;/p&gt;

&lt;p&gt;And lastly, if you are using software from a third-party, you should try to keep it up to date as much as possible. The further out of date you are, the harder it will be to upgrade.&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;That was a long, but brief introduction to the training available through the OpenSSF. If this is of any interest to you, I highly recommend going through the available training material they offer.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://openssf.org/training/courses/"&gt;https://openssf.org/training/courses/&lt;/a&gt;&lt;/p&gt;

</description>
      <category>design</category>
      <category>programming</category>
      <category>security</category>
    </item>
    <item>
      <title>Hello, I'm Sturdy and I'm Burned Out</title>
      <dc:creator>Sturdy</dc:creator>
      <pubDate>Tue, 24 May 2022 17:58:40 +0000</pubDate>
      <link>https://forem.com/sturdy5/hello-im-sturdy-and-im-burned-out-lln</link>
      <guid>https://forem.com/sturdy5/hello-im-sturdy-and-im-burned-out-lln</guid>
      <description>&lt;p&gt;I read a &lt;a href="https://dev.to/mary_grace/burnout-what-happens-when-you-take-on-too-much-74d"&gt;blog post about burnout&lt;/a&gt; and I've been thinking about that post a lot recently. I'm finding it difficult to remain motivated and even with taking some time off, I'm not feeling refreshed when I get back. I have a hard time not feeling like all I'm doing is hitting my head against the same very hard wall over and over.&lt;/p&gt;

&lt;p&gt;In parallel with my normal work, I'm also going through a leadership training program at work where we are taking classes to help us learn about ourselves, how others perceive us, and how we can strive to improve our leadership abilities. For anyone who knows me, I am one of the biggest introverts you've ever met. I don't like to be around a bunch of people, especially people I don't know very well. Going through these classes, especially because they are in-person, is a source of anxiety for me.&lt;/p&gt;

&lt;p&gt;I have a problem. I think I'm burned out and have high anxiety, which isn't helping the burnout.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--uRpKb56a--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ftb8esexz0545b0iblw5.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--uRpKb56a--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ftb8esexz0545b0iblw5.jpg" alt="burned out guy at desk" width="880" height="587"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Reflection
&lt;/h2&gt;

&lt;p&gt;How did I get here? I'm honestly not sure. As that original blog post points out, burnout is a little like slowly boiling to death. It is difficult to point out one thing that got me here. It is likely lots of little things that add up. I've been saving up my vacation, so I haven't taken a lot of time off from work. Some of the things I've been working on, I've been working on for 3+ years and we've made only minimal progress. I've enjoyed working from home, but I'm now coming into the office more than I used to - and I did mention I'm an introvert, right?&lt;/p&gt;

&lt;h2&gt;
  
  
  What Am I Doing About It?
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--VL3SOIPb--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/7u59eom8uiwaovjyx02n.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--VL3SOIPb--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/7u59eom8uiwaovjyx02n.jpg" alt="stop burnout sticky note" width="880" height="586"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Well, I started off with a list of things that give me energy, and these are the things that I'm going to focus on for a bit. Here is my list, depending on your personality, yours will likely look different.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Learn a new language&lt;/strong&gt; - while I've been dabbling in learning some Spanish, I'm talking about a different kind of language. I'm trying to learn &lt;a href="https://go.dev/"&gt;Go&lt;/a&gt;. With more talk about microservices, I've always heard that Go is a good language to quickly build them.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Spend time outside&lt;/strong&gt; - as part of the leadership training classes, I took a &lt;a href="https://birkman.com/the-birkman-method/"&gt;Birkman assessment&lt;/a&gt; and I have interests solidly in the outdoor group of activities. I've started going to the park more with the dog, getting out on the motorcycle more, and doing more yard work.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Find more focus time&lt;/strong&gt; - Microsoft Teams has been great for keeping up to date on what is going on. I have notifications set to Always for a large number of channels. I've never felt more connected to the work going on. Unfortunately, this also means constant interruptions. I wish Microsoft Teams had features like we have in Slack. I want to have pre-scheduled 'Do Not Disturb' windows where I see no notifications except those which I am specifically mentioned in. For now, I am manually turning on/off 'Do Not Disturb' during certain hours of the day to focus on work.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Taking more breaks&lt;/strong&gt; - yes, I'm saving up my vacation, but that doesn't mean I can't take breaks. Periodically throughout the day, I am stepping away from the computer and going outside with the dog and playing in the yard. Or maybe the dog and I will hop in the truck and go for a drive. My goal with these breaks is to not look at a screen. No TV, no phone, just disconnect.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  National Alliance on Mental Illness
&lt;/h2&gt;

&lt;p&gt;Burnout is a form of a mental health issue and mental health issues in tech are rampant. If you didn't know, May is Mental Health Awareness month. And for me, the more we talk about it, the more it feels "normal." There shouldn't be any stigma associated with mental issues and as a tech community we need to support each other. The National Alliance on Mental Illness (NAMI) is a group that offers free mental health resources including education, support and advocacy.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.nami.org/mentalhealthmonth"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--UC8Z0b-a--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/15tprcjc5ux1ubtqjb85.png" alt="NAMI: Together for Mental Health" width="880" height="461"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I hope that if you are having issues then reading this helps you realize you aren't alone and may give you some ideas on things you can do to help in your life. If you need help and blog posts like this aren't enough, I recommend checking out NAMI at &lt;a href="https://www.nami.org/"&gt;https://www.nami.org/&lt;/a&gt;. There is a lot of educational material on their site and you can find local affiliates that can have additional resources like weekly support group meetings.&lt;/p&gt;

</description>
      <category>mentalhealth</category>
      <category>together4mh</category>
    </item>
    <item>
      <title>Zero Trust Explained</title>
      <dc:creator>Sturdy</dc:creator>
      <pubDate>Wed, 13 Apr 2022 11:17:29 +0000</pubDate>
      <link>https://forem.com/sturdy5/zero-trust-explained-2mj4</link>
      <guid>https://forem.com/sturdy5/zero-trust-explained-2mj4</guid>
      <description>&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--MWw_Mc6X--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/n7iyk73lfzdenh0pxhmc.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--MWw_Mc6X--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/n7iyk73lfzdenh0pxhmc.jpg" alt="header image of man wearing hood and mask with neon lights" width="880" height="587"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Last year, the President signed an &lt;a href="https://www.whitehouse.gov/briefing-room/presidential-actions/2021/05/12/executive-order-on-improving-the-nations-cybersecurity/"&gt;Executive Order to improve our Nation's Cybersecurity&lt;/a&gt;, and part of that Executive Order was a direction to use Zero Trust Architectures to access cloud assets. I have talked to a few people over the last couple months about the impacts of the Executive Order and one of the reoccurring themes is that there isn't a clear understanding of what Zero Trust is. So let's hit some of the high-level points here so we can all be on the same page. And if I've missed something in this list - please let me know.&lt;/p&gt;

&lt;h2&gt;
  
  
  Origin and Concepts
&lt;/h2&gt;

&lt;p&gt;The term was originally part of a whitepaper called &lt;a href="https://media.paloaltonetworks.com/documents/Forrester-No-More-Chewy-Centers.pdf"&gt;&lt;em&gt;No More Chewy Centers: Introducing The Zero Trust Model of Information Security&lt;/em&gt;&lt;/a&gt; which was released by Forrester in 2010. The paper lays out that our traditional networking model is like an M&amp;amp;M - hard and crunchy on the outside and soft and chewy on the inside. Meaning it is hard to get into the network, but once you are in, it is pretty easy to move around. The author points out numerous cases where this has been a problem. One of those stories is about &lt;a href="https://www.nbcnews.com/id/wbna6001526"&gt;Philip Cummings&lt;/a&gt;, who used to work at the help desk at TeleData Communications, Inc (TCI). TCI provided software to credit bureaus like Equifax, TransUnion, and Experian. Through his job duties, Philip had access to all of the passwords and API keys to access all three of the major credit bureaus. While he was working at TCI, a Nigerian crime organization told Philip that they would give him $60 per credit report he was able to send to them. Philip left TCI in 2000, but before he left, he saved off the password and API keys for the credit bureaus in order to send credit reports to the crime organization. It is estimated that he sent over 30,000 credit reports in the next two years until the theft was noticed in 2002.&lt;/p&gt;

&lt;p&gt;The Philip Cummings story shows us it is hard to trust people inside our networks, but people have an identity. When we move to the network level, the packets sent across the network have no definitive identity. We can tell where they are coming from, where they want to go, and what the request is. There is no identity. Trusting that packets are legitimate is something we all do, but in computing terms, what does that mean? Because there is no concept of identity, how can we trust packets? We can't. We shouldn't.&lt;/p&gt;

&lt;p&gt;Zero trust means that we should never have the soft chewy center. All networks should be treated as untrusted. This will ensure security is baked into the network. In order to implement this, Forrester lays out these concepts:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Ensure that all resources are accessed securely regardless of location&lt;/strong&gt; - treat all traffic as if it were coming from the internet, even internally.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Adopt a least privilege strategy and strictly enforce access control&lt;/strong&gt; - use something like role based access control to control what people have access to.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Inspect and log all traffic&lt;/strong&gt; - most companies log traffic data, but very few inspect it&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Forrester makes the point that monitoring the security of 100's to 1,000's of applications is difficult and can be done in as many different ways as there are applications. Fortunately, access to these applications is all done the same way - through the network. Implementing security at the network level is easier and more effective.&lt;/p&gt;

&lt;p&gt;Lastly, the paper lays out that cloud traffic isn't going away and we need to have a better way to verify and monitor that traffic. Implementing Zero Trust never ends, much like Agile, Zero Trust is a way of thinking, not a prescriptive method for implementing security. "Trust, but verify" can no longer be our standard, instead it should be "Verify and never trust."&lt;/p&gt;

&lt;p&gt;Themes throughout the paper highlight the benefits of using Zero Trust -&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;More secure against insider threats&lt;/li&gt;
&lt;li&gt;More secure against external threats when using a "defense in-depth" strategy&lt;/li&gt;
&lt;li&gt;Ultimately cheaper to maintain than the traditional "defense in-depth" options&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Standards - NIST 800-207
&lt;/h2&gt;

&lt;p&gt;Since the whitepaper by Forrester in 2010, the evolution of Zero Trust hasn't stopped. In 2020, the National Institute for Standards and Technology (NIST) released &lt;a href="https://nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-207.pdf"&gt;publication 800-207 - Zero Trust Architecture&lt;/a&gt;. As it is with any Government publication, it is a dry read and is full of acronyms, so here is my summary of the document.&lt;/p&gt;

&lt;p&gt;The seven tenets of a zero trust architecture:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;All data sources and computing services are considered resources&lt;/strong&gt;. Big or small, simple or complex, all systems on a network are considered resources. This should also include Software as a Service (SaaS).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;All communication is secured regardless of network location&lt;/strong&gt;. There is no trust, there is only untrust. All devices, regardless of network placement should be treated as untrusted devices.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Access to individual enterprise resources is granted on a per-session basis&lt;/strong&gt;. Trust in the requester is evaluated before access is granted and may include time-based rules. Granting access to one resource does not automatically grant access to another.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Access to resources is determined by dynamic policy - including observable state of client activity, application/service, and the requesting asset - and may include other behavioral and environmental attributes&lt;/strong&gt;. Trust should be contextually based. Meaning taking into account the patterns of the user, including time of day, device being used, versions of operating systems, among others.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The enterprise monitors and measures the security posture of all owned and associated assets&lt;/strong&gt;. Enterprises should be able to answer the questions: what is on the network, who is on the network, what is happening on the network, and how is data protected on the network. Associated assets are any other assets allowed to connect to enterprise resources; this likely includes personally owned devices.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;All resource authentication and authorization are dynamic and strictly enforced before access is allowed&lt;/strong&gt;. Zero Trust Architectures have a continuous cycle of obtaining access, scanning and assessing threats, adapting, and reevaluating trust.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The enterprise collects as much information as possible about the current state of assets, network infrastructure and communications and uses it to improve its security posture&lt;/strong&gt;. Enterprises need to continually collect data about security postures, network traffic, and access requests and use the data to adjust policies.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;There are a bunch of different models for a zero trust architecture. Most of them look similar to this picture:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--hjm4aH4W--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/bllndc3rp6mq6uvtizcz.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--hjm4aH4W--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/bllndc3rp6mq6uvtizcz.png" alt="core zero trust logical components" width="880" height="384"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;While there are a lot of acronyms there, here is the core concept - any person or service account (subject) uses a system to access Enterprise Resources. A policy enforcement point is added somewhere in the middle of it to intercept the request and send it through policy engine to make a decision on whether access will be granted. The policy administrator takes inputs from various sources to help guide the creation and evolution of policies used by the policy engine. There are different ways for the policy engine to make a decision. One of the more popular methods is a scoring system where the contextual data is weighted in a certain way and if the cumulative score of the request is over a threshold then the access will be granted. If the cumulative score does not reach the threshold then the subject is presented with a challenge of some kind to allow them to raise their score.&lt;/p&gt;

&lt;p&gt;I think things are always easier with an example, so let's see what it looks like if you are trying to connect to a GitHub Enterprise instance.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--rpH-hCMA--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/pbk4l4xtzd2yzjqbxwdj.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--rpH-hCMA--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/pbk4l4xtzd2yzjqbxwdj.png" alt="zero trust network example" width="880" height="462"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;As you make the request to the GitHub Enterprise instance, your traffic is intercepted by the policy enforcement point. Here is some of the data that comes along with your request:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;IP Address&lt;/li&gt;
&lt;li&gt;Geolocation&lt;/li&gt;
&lt;li&gt;Time&lt;/li&gt;
&lt;li&gt;Date&lt;/li&gt;
&lt;li&gt;An identity&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The policy enforcement point sends this traffic to the policy engine which see that the traffic is coming from a place within the United States, it is an IP address that has accessed the system before, by an identity that is valid. The time might be a little off though. Maybe this request is being made at 1AM on a weekend - hours when you don't normally work. Those two last data points would lower the score and this request might not meet the configured threshold. Instead of allowing you access to the GitHub instance, you are instead redirected to a challenge page to allow you to prove you are who you say you are. Maybe you will need to re-enter your RSA PIN and token, or maybe you will have to respond with a code sent via text message. Once complete, the policy engine will raise your score and allow you through to GitHub Enterprise. This flow would happen whether you are physically within the enterprise network, working from home, or travelling anywhere in the world.&lt;/p&gt;

&lt;h2&gt;
  
  
  How to Deploy Zero Trust Architectures
&lt;/h2&gt;

&lt;p&gt;The short answer - it will be a journey. NIST 800-207 does provide some guidance on how to migrate to a Zero Trust Architecture depending on your current network configuration. One of the big pieces to consider is the policy engine and the administration of the scoring. It is likely that with the initial implementations there will be some issues where traffic is denied when it should have been allowed. We will have to make sure we set expectations as we work through this process.&lt;/p&gt;

&lt;p&gt;Based on the NIST documentation, there might be some good first steps for us to start implementing Zero Trust.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Identify Actors in the Enterprise - these are humans as well as service accounts&lt;/li&gt;
&lt;li&gt;Identify Assets Owned by the Enterprise - includes physical, virtual and data assets (like user accounts)&lt;/li&gt;
&lt;li&gt;Identify Key Processes and Evaluate Risks Associated with Executing Process - find a system that is relatively low risk to the business; cloud-based resources are a typical first step&lt;/li&gt;
&lt;li&gt;Formulating Policies for the Zero Trust Architecture Candidate - find all supporting systems for your candidate and start setting the initial thresholds for score&lt;/li&gt;
&lt;li&gt;Identify Candidate Solutions - we need to pick a solution that matches our existing asset policies and tooling&lt;/li&gt;
&lt;li&gt;Initial Deployment and Monitoring - the initial deployment might limit traffic to only coming from specific locations and might be in report-only mode to allow us to gauge how well our scoring system works&lt;/li&gt;
&lt;li&gt;Expanding the Zero Trust Architecture - with the confidence built in the previous step, expand the criteria for accessing resources and add more resources to add&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;Unfortunately, this isn't something we can do with the snap of a finger. This will take time to implement and gain confidence in. One of the hardest things to prove out here will be return on investment. Will we ever be the victim of an insider threat? What will the cost of a breach be? Is it worth spending money to try to prevent something that we don't know will happen?&lt;/p&gt;

&lt;p&gt;I think it is.&lt;/p&gt;

&lt;p&gt;We might take a different perspective on return on investment though. If we look at this like insurance, we are paying for a possibility of a breach in smaller increments now. The determination of return on investment will depend on typical actuarial items, likelihood of the event and the potential cost of an event.&lt;/p&gt;

&lt;p&gt;References:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Zeroing in on Zero Trust Podcast - &lt;a href="https://open.spotify.com/episode/28o5axMB5tjSUzms03bmyk?go=1&amp;amp;sp_cid=90f1110ab844846f3afe849e3c5e5621&amp;amp;t=3&amp;amp;utm_source=embed_player_p&amp;amp;utm_medium=desktop&amp;amp;nd=1"&gt;https://open.spotify.com/episode/28o5axMB5tjSUzms03bmyk?go=1&amp;amp;sp_cid=90f1110ab844846f3afe849e3c5e5621&amp;amp;t=3&amp;amp;utm_source=embed_player_p&amp;amp;utm_medium=desktop&amp;amp;nd=1&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Zero Trust Security Explained: Principles of the Zero Trust Model - &lt;a href="https://www.crowdstrike.com/cybersecurity-101/zero-trust-security/"&gt;https://www.crowdstrike.com/cybersecurity-101/zero-trust-security/&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;NIST 800-207 - &lt;a href="https://csrc.nist.gov/publications/detail/sp/800-207/final"&gt;https://csrc.nist.gov/publications/detail/sp/800-207/final&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;No More Chewy Centers: Introducing The Zero Trust Model Of Information Security - &lt;a href="https://media.paloaltonetworks.com/documents/Forrester-No-More-Chewy-Centers.pdf"&gt;https://media.paloaltonetworks.com/documents/Forrester-No-More-Chewy-Centers.pdf&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>zerotrust</category>
      <category>security</category>
      <category>beginners</category>
    </item>
  </channel>
</rss>
