visit
The two terms “security and privacy” in Microsoft is like an electron’s bombardment on an atom”, which cant be separated from its software culture and the development phases. The transparency we get from the published documents is sufficient enough to develop a secure product upon its release.
Reader's Mind:
In this section, we defined the target audience responsibilities that includes from an individual member, developers, testers, project managers, product managers, product directors, Trainers, and other individuals assisting in the SSDLC.Today, we gonna evolve deeply into the concepts and principles currently used by Microsoft on its products and services, and at the same time, Microsft doesn’t disclose any of its core proprietary technologies and resources in this Microsoft SDL methodology V5.2. You know, Microsoft mind voice is like “you can have my Ice cream, not the recipe”, hahaha make sense to us.
Alright, in this article we will discuss and learn something useful about the secure SDL methodology, and how to implement in your organization or even you may introduce it to your manager or the board members to take it into consideration.Microsoft SDL Optimization Model:
When public or private sector organizations integrate the Secure SDL concepts into the existing developmental model (let’s say DevOps), things are always tough in the beginning with the changes and the cost of adoption. But, the impact and likelihood of the changes and cost could be controlled when you understand the core elements of the traits in secure SDL principles and concepts by establishing on your company’s products and services.Let me highlight some of the key issues that could be resolved or reduced with adopting this Secure SDL.I will make it easy for you, Traditional Vs Simplified versions of the Secure software development life cycle (SSDLC).
Figure 1: Secure software development life cycle (SSDLC).
The Simplified versions of the Secure software development life cycle (SSDLC) defined in 12 stage process (stages or practices) as follows:
Microsoft calls it practices, others call it stages, steps, phases, process, etc.
Stage 1: Education and Awareness (training).
Stage 2: Product requirement (security and privacy).
Stage 3: Define and follow design requirements (best practices, protocols, tools, documents).
Stage 4: Define security features with cryptography standards.
Stage 5: Metrics, criteria, and compliance reporting.
Stage 6: Product risk assessment (define context, risk identification, risk analysis, risk treatment).
Stage 7: Manage and understand the security risk of using third-party components.
Stage 8: List of approved SDL tools.
Stage 9: Static Analysis Security Testing (SAST).
Stage 10: DynamicAnalysis Security Testing (DAST).
Stage 11: Penetration testing.
Stage 12: Establish a Standard Incident Response Process (planning, execution).
Figure 2. Microsoft Secure SDL-12 stage process.
Traditional Microsoft Product Development Process:
Since 2002, a formal process begins with many software development groups at Microsoft due process to Trustworthy Computing (TwC) directive. The main cause of TwC is to bring inherently secure, available, and reliable security to the code development process.After a while, Microsoft coined “SD3+C” to enforce a secure by design, by default, by deployment, and communications to understand the comprehensive security and privacy efforts required in all 3 areas.Figure 3. Traditional Microsoft Product Development Process under- SD3+C Directive.
Post Integration of Security Development Lifecycle (SDL) + SD3+C:
After you integrate the two modules together the post integration steps will look likes in the development process as shown in Figure4.
Figure 4. Post integration of SDL + SD3 stages.
Both private and public sector organizations should instigate competent training programs, and encourage their employees to understand that security isn't a “single person’s job” its “everyone’s job”.
All participating members of the project such as software developers, software testers, program engineers, service engineers, team lead, product manager, and product director should inherit the basic security traits and concepts to know how to build security into any software products & services. This is how a product should be painted with security to meet the industry standards and address all the customer’s requirements and delivery protocols.The perspective:
The perspective of the key concepts is important to build a successful software product with a guarantee of privacy & security.Figure 5. Stage 1: Education and Awareness (Training).
Security Requirements:
In addition to that code verification, outputs, logs can be verified by an eternal agent as well.
Security Requirements:
During the design phase, it’s very useful to craft a security plan with the required timing, resources to outline the overall process and workflow for your team members throughout the development process. These requirement items as follows:The “Security Bug Effect” and “Security Bug” Cause field items should be set to one of the following STRIDE values to ensure that we configure bug reporting tools correctly in order to limit access to security-related bugs, and avoid any security-related implications to the project.
Quick Tip: STRIDE concept was created with security in mind, it consists 6 categories of threats. It was developed by Praerit Garg and Loren Kohnfelder at Microsoft, for identifying computer security threats.
So, why do we are using STRIDE ?To identify security threats, and each threat comes with a violation of a desirable property for a system or software.Figure 6. STRIDE (security) Threat Model.
Figure 7. Threat Relates to Property.
Security Bug Cause:
Figure 8. Security Bug Cause.
Cost Analysis:
It's very important and one of the foundations for any project out there, that’s cost. One must know how to evaluate in handling the data with privacy and security related risks, and required development and support costs. That's how you keep up with your business needs.We conduct a security risk assessment (SRA) on our products to identify the security-related aspects such as (Risk, Threat, Vulnerability, Exposure, Risk impact, countermeasures).
A simplified SRA or a detailed SRA should be carried out to meet the project scope. What portions of the project will require (Threat models, code review, penetration testing, analysis, fuzz testing).
Security requirements:
A security design review should be conducted with your security advisor regardless of the project that you are doing. That being said low-risk components might not require a detailed security design review. It’s quite pretty ironic Hahn, isn’t it?AllowPartiallyTrustedCallersAttribute (APTCA):
It enables an assembly to be called by untrusted code. It depends on the version of the framework you are using.Relying Party Suite (RPS) v4.0 SDK:
What is it? It provides a security advantage over the current Passport Manager (PPM) SDK version, it helps to mitigate several security issues involving keys such as key distribution, key deployment, and key administration.User Account Control (UAC) environment:
It is a popular security feature in windows vista, XP, server2008, srver2008r2, It was defined to help the transition to regular use of non-administrative privilege by client applications. It helps the team to design and develop their applications by elevating the admin functions.Firewall Rules and Requirements:
If a user required an open port, use Firewall Rules and Requirements guidelines to define and control it.All cryptographic choices must comply with the Microsoft defined Cryptographic Standards for SDL-covered products & services.Figure 9. Microsoft Cryptographic Standards.
(.NET) security features:
(i)Refuse unneeded permissions.(ii)Request optional permissions.(iii)Use CodeAccessPermission Assert and LinkDemand carefully. Use Assert in as small a window as possible.(iv)Disable tracing and debugging before deploying ASP.NET applications.SDL Security Bug Bar:
Figure 10. SDL Security Bug Bar.
SDL Privacy Bug Bar:
Figure11. SDL Privacy Bug Bar.
Risk Rating Factors:
The factors we used to determine the vulnerability. Ideally, we should use all risk factors as rating factors.
Risk identification descriptions:
a) Describing threats in terms of who, how, and when.
b) Establishing into which threat class a threat falls.
c) Determining the threat likelihood.
d) Determining the implications on the business operations should a threat achieve success.
e) Assessing the impact of the results as less serious, serious, or exceptionally grave injury.
f) Assigning an exposure rating to every threat, in terms of the relative severity to the organization.
g) Prioritizing the impacts /likelihood pairs, according to the determined ratings.
Threat Modeling: Part of your routine development lifecycle.
Figure 12. Threat Modeling.
Benefits:
Communicate about the security design.Analyze those designs for potential security issues.Suggest and manage mitigations for security issues.Third-party Component Management Life Cycle (TPCM):
In TPCM Maintain, Assess, and Mitigate phases depends on each other outcomes, but Monitor phase considered as an independent process that is required throughout the entire third-party component life cycle.Figure 13. Third-party Component Management Life Cycle (TPCM)-safecode.
Security Risks of Open Source — (Act First, Rest Later):
What these practices recommend the team members should aware (keep-an-eye) of newly released modules, updates, notices in the community to find a patch and keep it updated. When you are lagging to do the upgrades to the latest version, in the meantime the adversaries could do the reconnaissance on your environment and could launch an exploit. So, Act First, Rest Later.Benefits of Open Source:
Recommendation on Open Source:
Take the minimum precautions to properly manage this risk:Figure 14. Microsoft’s list of approved tools.
Speaking of which, privacy and security testing addresses the Confidentiality, integrity, and availability (CIA) triad of the software and data processed by the software.
Security Requirements:
All issues must be fixed according to the Bug Bar.Win32/64/Mac:
Where any input to file parsing code could have crossed a trust boundary, then a file fuzzing must be performed on that code and each file parser should be fuzzed through a approved list of tools.WinCE and Xbox:
A Template optimization scheme is applied based on the code coverage of the parser. Recent studies proved the double fuzzing increased effectiveness. Do you know a minimum of 500,000 iterations, and have fuzzed at least 250,000 iterations since the last bug found/fixed that meets the SDL Bug Bar.Do you know since the last bug found/fixed more than 100,000 bug-free iterations happened over time according to the Microsoft SDL Bug Bar’s guidance statistics.If the program exposes to a remote procedure call (RPC) interfaces, be ready to use any of the RPC fuzzing tools to test for problems.If your project uses “ActiveX controls”, use an “ActiveX fuzzer”, to test for problems because they pose a significant security risk on the applications.The Application Verifier helps to identify issues that are MSRC patch class issues in unmanaged code.Define, Document, Verify every bug according to the security bug bar in Figure 10.Online services and/or LOB applications:
Use approved cross-site scripting scanning test tool to find vulnerabilities, also together check for XML parsing problems as well. it saves your golden time. considered this as a double date, hahha.Make sure you addressed it before the Final Security Review(FSR). He will yell at you. hahaKernel-mode driver testing:
Security Push:
A security push occur when the product enters the verification stage, it is a team-wide effort on threat models to discover changes that might have happened during the software development time, gives you time to identify, remediate any new or missed vulnerabilities. It is essential to get the point straight here, that the goal of a security push is to find vulnerabilities, not to fix them. You may ask a question when we will do the fix, we do it right after you complete the security push steps.Push Preparation:
Allocate time and resources.The security coordinator determines what resources are required, and helps to organize, create the needed supporting materials and resources.The security representatives should determine how to communicate security push information to the rest of the team.To determine when the push will be completed.Push Duration:
The amount of time, energy, and team-wide focus on a push differs because it depends on the attention from your team members given to security earlier in development.Privacy Requirements:
Random Tip: Please, refer to the SDL Security Bug Bar in Figure 10.
Attack Surface Analyzer:
Microsoft developed an Attack Surface Analyzer(ASA) tool and published it as open source. This open-source ASA tool helps to analyze the attack surface of a target system and reports on possible security vulnerabilities introduced during the installation of a software or software misconfiguration.Who can use it?
(I)DevOps Engineers — View changes to the system attack surface introduced when your software is installed.(ii)IT Security Auditors — Evaluate risk presented by when third-party software is installed.Microsoft provided Scenarios:
Attack Surface Analyzer can help identify potential security risks exposed through changes to services, user accounts, files, network ports, certificate stores, and the system registry. It also includes some support for “live” monitoring of certain system changes (i.e. file system and registry).Another key use for the tool is in ensuring your software development process and products are following best practices for least privilege and reducing the attack surface for your customers by providing evidence, to your security and release teams, that your code does only what it claims. Maintaining customer trust is one reason why it is recommended from the Microsoft SDL Practices.Core Features:
The Microsoft Security Response Center (MSRC), Product Security Incident Response Team (PSIRT), Azure security-center is part of the overall defender community on security response. Be prepared and preparing an Incident Response Plan (IRP) is crucial for helping to address rapidly emerging threats on the surface.
Organizations should create an Incident Response Plan (IRP) in coordination with your organization’s dedicated Product Security Incident Response Team (PSIRT). Because, this plan should include an “Incident Commander” with a POC in case of a security emergency, and establish an internal emergency protocol for security servicing. The incident response plan (IRP) should be tested and deployed prior to the emergency situation.
Post-SDL Requirement: Response:
Security Servicing and Response ExecutionAfter the software is released to the public or delivered to the customer, the product development team must be available to respond to any possible security vulnerabilities or privacy related issues that required an immediate response to call actions. That being said develop a response plan that includes preparations for potential post-release issues to tackle.— — — — — — — — — — — — -THE END — — — — — — — — — — — —
Quote of the day: 石橋を叩いて渡る (Ishibashi o tataite wataru).
Explanation: For instance, consider a stone bridge very solid in structure. However, like any kind of bridge, stone bridges could potentially collapse at any time if their structure has weakened. It’s the necessity of taking precautions even though it may seem safe at first.
Thanks for reading!Have a pleasant day!Previously published .