<?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: Ujwal</title>
    <description>The latest articles on Forem by Ujwal (@uwatgule).</description>
    <link>https://forem.com/uwatgule</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%2F1172551%2F0c4c74ba-d2a3-4872-9a5a-d9b5a1e9f918.png</url>
      <title>Forem: Ujwal</title>
      <link>https://forem.com/uwatgule</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/uwatgule"/>
    <language>en</language>
    <item>
      <title>Threat Modeling in Architecture</title>
      <dc:creator>Ujwal</dc:creator>
      <pubDate>Sun, 22 Dec 2024 10:45:20 +0000</pubDate>
      <link>https://forem.com/uwatgule/threat-modeling-in-architecture-2hh6</link>
      <guid>https://forem.com/uwatgule/threat-modeling-in-architecture-2hh6</guid>
      <description>&lt;p&gt;&lt;strong&gt;## Introduction&lt;/strong&gt;&lt;br&gt;
In the rapidly-changing world of software development, security is an important aspect. It is not something which we can push to later stage. Threat modeling plays an important role in creating strong and secure systems. This help teams to identify potential vulnerabilities early in the development process. This article walk you through proactive strategies of threat modeling in software architecture. It discussed real-world examples and further reading references.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.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%2Fms7aujzeb4m5fslmxvxu.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.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%2Fms7aujzeb4m5fslmxvxu.png" alt="Image description" width="800" height="516"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;## Real-World Scenarios Highlighting the Importance of Threat Modeling&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;1.Equifax Data Breach(2017)&lt;/em&gt;&lt;/strong&gt;&lt;br&gt;
&lt;em&gt;Incident&lt;/em&gt;: An unpatched vulnerability in a web application exposed the personal information of 147 million people.&lt;br&gt;
&lt;em&gt;Key Learning&lt;/em&gt;: The significance of prompt patch management and the possibility of exploiting weak components may have been discovered through threat modeling.&lt;br&gt;
&lt;em&gt;Mitigation&lt;/em&gt;: Integrating automated patch management systems and frequent threat assessments.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;2.Capial One Data Breach(2019)&lt;/em&gt;&lt;/strong&gt;&lt;br&gt;
&lt;em&gt;Incident&lt;/em&gt;: 100 million customer records were accessed without authorization due to a web application firewall that was improperly setup.&lt;br&gt;
&lt;em&gt;Key Learning&lt;/em&gt;: Secure settings might have been prioritized in threat modeling.&lt;br&gt;
&lt;em&gt;Mitigation&lt;/em&gt;: Automating routine access control audits and security configuration checks.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;3.SolarWinds Supply Chain Attack(2020)&lt;/em&gt;&lt;/strong&gt;&lt;br&gt;
&lt;em&gt;Incident&lt;/em&gt;: The Orion program had a backdoor introduced by malicious individuals, affecting thousands of companies worldwide.&lt;br&gt;
&lt;em&gt;Key Learning&lt;/em&gt;: Supply chain-level threat modeling might have brought attention to the possibility of third-party software flaws.&lt;br&gt;
&lt;em&gt;Mitigation&lt;/em&gt;: Improved monitoring for anomalous activities and more stringent security evaluations for third-party dependencies.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;## What is Threat Modeling?&lt;/strong&gt;&lt;br&gt;
Threat modeling is a method for identifying, listing, and ranking potential security threats that an application may face. By checking the application's design, data movement, and business processes, threat modeling helps architects and developers to identify potential entry points for attacks. It take steps to reduce risks ahead of time.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Main Goals:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Assess assets and determine their worth.&lt;/li&gt;
&lt;li&gt;Identify possible threats and weaknesses.&lt;/li&gt;
&lt;li&gt;Create strategies and measures to minimize risks.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Proactive Approaches to Threat Modeling&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;1.Define the Scope&lt;/em&gt;&lt;/strong&gt;&lt;br&gt;
Define the boundaries of the system, including:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Components (e.g., microservices, databases)&lt;/li&gt;
&lt;li&gt;Entry points (e.g., APIs, user interfaces)&lt;/li&gt;
&lt;li&gt;Data flows (e.g., between services or external systems)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;2.Identify Assets&lt;/em&gt;&lt;/strong&gt;&lt;br&gt;
List critical assets and their importance, such as:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;User Data (e.g., personal information, payment details)&lt;/li&gt;
&lt;li&gt;Intellectual property (e.g., proprietary algorithms, trade secrets)&lt;/li&gt;
&lt;li&gt;System availability (e.g., critical for apps which need 100% uptime)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;3.Analyze Threats&lt;/em&gt;&lt;/strong&gt;&lt;br&gt;
To find potential threats, use frameworks like STRIDE (Spoofing, Tampering, Repudiation, Information Disclosure, Denial of Service, Elevation of Privilege).&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.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%2Fqgweak6ea76ae8aszb3d.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.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%2Fqgweak6ea76ae8aszb3d.png" alt="Image description" width="800" height="166"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;4.Prioritize Risks&lt;/em&gt;&lt;/strong&gt;&lt;br&gt;
Sort the risks that have been identified based on -&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;their likelihood of happening.&lt;/li&gt;
&lt;li&gt;their impact on the system in the event of exploitation.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;5.Develop Mitigation Strategies&lt;/em&gt;&lt;/strong&gt;&lt;br&gt;
Propose solutions to address identified risks. Some strategies are -&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Putting in place strong authentication procedures.&lt;/li&gt;
&lt;li&gt;Sensitive information encryption both in transit and at rest.&lt;/li&gt;
&lt;li&gt;Including throttling and rate-limiting in APIs.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;6.Iterative Review and Feedback&lt;/em&gt;&lt;/strong&gt;&lt;br&gt;
Use threat modeling at every stage of the software development process. Frequent reviews guarantee that newly discovered vulnerabilities are found and fixed.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;## Threat Modeling Tools&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.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%2Fdm298ml13sg6hzsyw8yn.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.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%2Fdm298ml13sg6hzsyw8yn.png" alt="Image description" width="800" height="101"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;## Best Practices&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;em&gt;Integrate Early&lt;/em&gt;: To minimize rework, start threat modeling during the design stage.&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;Work Together Across Teams&lt;/em&gt;: Include developers, architects, and security professionals.&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;Automate when Possible&lt;/em&gt;: Effectively identify common threats with tools.&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;Record Findings&lt;/em&gt;: Keep detailed records for audits and future reference.&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;Educate Teams&lt;/em&gt;: Provide team with instructions on threat modeling techniques.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;## Conclusion&lt;/strong&gt;&lt;br&gt;
In order to create proactive software, threat modeling is essential. Organizations can create safe systems that can resist changing attack methods by seeing such dangers early and taking appropriate action. Iterative procedures, robust tools, and structured approaches like STRIDE can help teams reduce risks and improve system resilience.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;## References&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;1.Microsoft Threat Modeling Tool. &lt;a href="https://www.microsoft.com/security" rel="noopener noreferrer"&gt;https://www.microsoft.com/security&lt;/a&gt; &lt;br&gt;
2.OWASP Threat Dragon. &lt;a href="https://owasp.org/www-project-threat-dragon/" rel="noopener noreferrer"&gt;https://owasp.org/www-project-threat-dragon/&lt;/a&gt; &lt;br&gt;
3.IriusRisk. &lt;a href="https://www.iriusrisk.com" rel="noopener noreferrer"&gt;https://www.iriusrisk.com&lt;/a&gt;&lt;br&gt;
4.CERT Secure Coding Standards. &lt;a href="https://www.securecoding.cert.org" rel="noopener noreferrer"&gt;https://www.securecoding.cert.org&lt;/a&gt;&lt;br&gt;
5.Shostack, A. (2014). Threat Modeling: Designing for Security. Wiley.&lt;/p&gt;

</description>
      <category>architecture</category>
      <category>cybersecurity</category>
      <category>microservices</category>
      <category>ai</category>
    </item>
    <item>
      <title>Understanding SVM</title>
      <dc:creator>Ujwal</dc:creator>
      <pubDate>Thu, 28 Sep 2023 17:40:54 +0000</pubDate>
      <link>https://forem.com/uwatgule/understanding-svm-49gg</link>
      <guid>https://forem.com/uwatgule/understanding-svm-49gg</guid>
      <description>&lt;p&gt;A Support Vector Machine (SVM) is a supervised machine learning algorithm that is primarily used for classification tasks, but it can also be extended for regression tasks. SVMs are known for their effectiveness in handling both linear and non-linear classification problems.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;In Simple Terms:&lt;/strong&gt; &lt;br&gt;
Imagine you have a bunch of different fruits, like apples and bananas, and you want to teach a computer to tell them apart. A Support Vector Machine, or SVM for short, is like a smart robot that helps the computer learn.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;The Playground&lt;/em&gt;: Think of a playground where you have apples and bananas scattered around. Your job is to draw a line on the ground (but in the air, not on paper) so that it separates the apples from the bananas as best as possible.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Best Line&lt;/em&gt;: The SVM helps you find the best line. But not just any line – it's the one that's farthest away from all the apples and bananas. It's like drawing a line in such a way that there's as much space as possible between the line and the fruits on both sides.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Supporters&lt;/em&gt;: Some fruits are very close to the line you drew – these are like the "supporters." They help you decide where the line should go. You can think of them as your special helpers.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;No Mistakes&lt;/em&gt;: The SVM doesn't like mistakes. It wants to make sure that the line you draw doesn't touch any fruit. So, it tries really hard to get the line just right.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;In the Air&lt;/em&gt;: Remember, this line is not on paper; it's in the air. It's a magical line that separates the fruits perfectly.&lt;/p&gt;

&lt;p&gt;So, in simple terms, a Support Vector Machine is like a smart robot that helps you draw a magical line in the air to separate things, like apples and bananas, as best as possible. It makes sure the line is far away from the fruits and doesn't make mistakes. That way, the computer can learn to tell the fruits apart really well!&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Key concepts of Support Vector Machines:&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;em&gt;Binary Classification&lt;/em&gt;: SVMs are often used for binary classification, where the algorithm assigns data points to one of two classes. However, with some modifications, SVMs can also be applied to multi-class classification problems.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;em&gt;Margin Maximization&lt;/em&gt;: One of the central ideas behind SVMs is to find the decision boundary (hyperplane) that maximizes the margin between the classes. The margin is the distance between the hyperplane and the nearest data points from each class. SVM aims to find the hyperplane that has the largest margin while correctly classifying the training data.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;em&gt;Support Vectors&lt;/em&gt;: Support vectors are the data points that are closest to the decision boundary and have the largest influence on determining the position and orientation of the hyperplane. These are the critical data points that "support" the definition of the hyperplane.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;em&gt;Kernel Trick&lt;/em&gt;: SVMs can handle non-linearly separable data by using a kernel function. Kernel functions transform the original feature space into a higher-dimensional space where the data might become linearly separable. Common kernel functions include linear, polynomial, radial basis function (RBF), and sigmoid kernels.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;em&gt;Regularization (C-parameter)&lt;/em&gt;: SVMs use a regularization parameter denoted as 'C' to control the trade-off between maximizing the margin and minimizing classification errors. Smaller values of 'C' result in a larger margin but may allow some misclassification, while larger 'C' values result in a smaller margin but fewer misclassifications.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;em&gt;Hard and Soft Margin SVM&lt;/em&gt;: In a "hard-margin" SVM, the algorithm strictly enforces the margin and does not tolerate any misclassification. In contrast, a "soft-margin" SVM allows for a certain level of misclassification to handle noisy or overlapping data.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;em&gt;Hyperparameter Tuning&lt;/em&gt;: To make the SVM perform well, it's often necessary to fine-tune hyperparameters such as 'C' and the choice of kernel. This can be done through techniques like cross-validation.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;SVMs have found applications in various fields, including text classification, image classification, bioinformatics, and more. They are especially useful when dealing with complex, high-dimensional data and scenarios where a clear margin between classes exists.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Concluding Remarks&lt;/strong&gt;:&lt;br&gt;
To conclude, Support Vector Machine is a powerful and versatile machine learning algorithm that aims to find an optimal decision boundary for classification tasks while maximizing the margin between classes. Its effectiveness, particularly with the kernel trick, makes it a valuable tool in the field of machine learning.&lt;/p&gt;

</description>
      <category>machinelearning</category>
      <category>datascience</category>
      <category>programming</category>
      <category>beginners</category>
    </item>
  </channel>
</rss>
