
Target professionals with a background in software architecture or development, especially backend oriented roles, to benefit from this course on software security, with no coding required for any role.
Explore software security fundamentals and the five-step secure architectural process. Delve into threat modeling, secure architecture, application and data security, sdlc, testing, production tasks, and a practical case study.
Explore the essence of software security beyond headlines and incidents, clarifying what security means and why DDoS, identity theft, and fake identities are merely surface concerns.
Learn what software security aims to protect against: data loss, disruption of service, data leak, and data inconsistency. Real-world examples from VFEmail, Dyn, and Marriott illustrate these threats.
Define software security terminology, including threat, attack, vulnerability, authentication, and authorization, and show how threats like SQL injection and DDoS lead to security incidents.
Learn how security responsibility spans the organization, and everyone is responsible for security—from the CIO, the CISO, and the architect to developers and QA—ensuring secure architecture, awareness, and testing.
Identify potential threats and define protections through threat modeling, prioritizing mitigations to defend the system and shape the work plan and team input in design and development.
Secure architecture integrates security defense mechanisms into the core architecture from the outset, guided by the security perimeters paradigm to cover components, code, database, and network.
Execute security-focused tests to validate the system's resilience, then analyze results against prior threat modeling to ensure threats are avoided and progress to next phase of the secure architectural process.
Discover the production phase of secure architecture, emphasizing continuous monitoring and applying security patches to keep systems up to date and ready for threat modeling.
Identify threats through threat modeling and discuss mitigation to guide security. Involve the project team—manager, architect, dev manager, system analyst, CISO, developers, QA—guided by the orange square.
Threat modeling is a methodical process for identifying threats, listening to everyone, using questions: what do we build, what can go wrong, how can we mitigate, and did we succeed.
Conduct threat modeling early in the project with requirements and architecture, reassess after major changes or security incidents, and document outcomes from a structured meeting led by a supervisor.
Explore threat modeling methodologies, focusing on STRIDE's six threats—spoofing, tampering, repudiation, information disclosure, denial of service, and elevation of privilege—and the use of flow diagrams and tools.
Explore threat modeling tools like Microsoft Threat Modeling Tool and Threat Dragon by OWASP to build data flow diagrams, attach STRIDE threats, and craft mitigation plans for secure software architecture.
Identify threats early with threat modeling, involve the team, and answer four core questions: what do we build, what can go wrong, how can we mitigate, did we succeed.
Design a secure architecture grounded in threat modeling, balancing needed security with simplicity. The architect leads this stage and produces a secure architecture document integrated with the overall architecture process.
Understand the security perimeters paradigm, from physical perimeter to data, including network, platform, and application, and see how architects protect the application and data.
Explore the physical security perimeter that controls access to hardware and data centers, including keycards, locks, fencing, and biometrics; architects should understand the environment even if they cannot influence it.
Explore network security concepts focusing on access control and reliability, including authentication engines like MFA and Active Directory, firewalls, segmentation, and intrusion prevention system, and the architect's proactive role.
Explore how platform security protects the underlying infrastructure, including operating systems and virtual machines, with patch management, antivirus, and data loss prevention, and outline the architect's role.
Architects secure the application and data perimeter by designing safeguards across APIs, code, databases, and external mechanisms within the secure architecture process, covering threat types, authentication, and secure code.
Explore authentication fundamentals, architectures, and flows, including user stores, engines, and software components, plus hybrid identity, MFA options, and modern protocols like OAuth2.
Introduce the OAuth 2.0 flow, detailing the user, client app, authorization server, and resource server, and explain how a jwt access token authenticates API calls via bearer authorization.
The architect selects the authentication engine, evaluates user store locations (often hybrid), and designs the business data. They choose authentication types and the oauth2 protocol, collaborating with IT and development.
Enforce authorization through action and data permissions, guided by least privilege, and implement RBAC to manage roles and protect data access.
Secure data in transit using TLS to protect privacy and integrity. Explain how encryption, authentication, and certificate authorities defend against eavesdropping and man-in-the-middle attacks.
Explore how secure code educates developers, promotes secure practices, and mitigates threats like SQL injection, XSS, and data exposure through validation and parameterized queries.
Learn how to protect data in databases by using built-in encryption and key management, applying the least privileged principle, and avoiding self-developed encryption.
Learn how logging and monitoring provide a holistic view to detect security events, warn about data leak and data loss, and set alerts and metrics for potential attacks.
Explore the secure development life cycle, integrating security and privacy across all development phases to guide architects, developers, and qa in building secure software from start to finish.
Explore the SDLC process for software security, focusing on development-oriented practices such as team security training, managing third-party components, using approved tools, and preparing standard incident response plans.
Explore the testing phase of the secure architecture process, the fourth stage before go live, and how penetration and load testing verify security with architect, QA, development manager, and developers.
Master penetration testing to simulate attacks, uncover weaknesses, and protect data, using black box, white box, and grey box methods along with thorough reporting.
Conduct load testing to simulate heavy load and verify system resilience against disruption and DDoS threats, using predefined scenarios, multiple machines, and automated reports.
Plan and participate in penetration and load testing, translating results into architectural changes like adding two-factor authentication or replacing bottlenecks with queues.
Explore the production phase of the secure architecture process and learn how ongoing security reviews and penetration testing keep systems secure in production through cross‑team collaboration.
Conduct monthly security reviews to assess new worldwide threats, determine their relevance to the system, and publish formal upgrade plans detailing steps and impacts.
Conduct monthly or quarterly penetration testing in production to verify security, detect new vulnerabilities, and plan changes to mitigate risks.
The architect participates in security reviews and pen testing conclusions during production, then drives architecture changes with the dev team to keep the system secure.
Explore a real-world case study to apply the secure architecture process to an existing system, improve its security, and practice architecture analysis after threat modeling.
introduces dunderly, a paper supplies company, and outlines a web-based HR system to manage employees, salaries, vacations, and external payments via an HTTP interface.
Threat modeling guides securing an HR web system and external payment interface by asking: what we build, what can go wrong, how to mitigate, and did we succeed.
Implement secure architecture by mapping threats to mitigations and detailing encryption and key management. Enforce privilege-based access, two-factor authentication, logging, and TLS-secured payment data in a .NET core multi-service app.
Guide the secure development life cycle by ensuring architecture is implemented, always encrypted features and two-factor authentication are active, and developers follow secure coding practices to prevent sql injection.
Perform white box penetration testing on an internal system to expose authentication and data encryption weaknesses, then enforce multifactor authentication and retest to secure the production environment.
Implement ongoing security in production by monitoring SQL Server vulnerabilities monthly, tracking dot net core risks, and participating in security reviews to create and execute a mitigation work plan.
Reinforce security through threat modeling, secure architecture, and active architect participation across the software development lifecycle stages, from testing to production, using encryption, key stores, and secure server roles.
Here is what my students have to say about this course:
"Impressive and full of knowledge" - Pradip
"Well organized and structured material. Also a good case study to get an idea about the usage of the process. Thank you Memi!" - Gabriel
"Memi has given the deeper understanding of security aspect in architecture which is otherwise missing in majority of architectures... Highly recommended course" - Yashodan
Software Security is one of the most important aspects of Software Architecture these days.
Almost daily you hear about new security incidents which caused data leak, disruption of service, and often - billions of dollar in damages, and some companies even shut down because of that.
You, as as software architect, has the responsibility to make sure your architecture is as secure as possible.
You simply cannot allow yourself to release a system that is not secure. These days, it's simply unacceptable.
Now, in order to design secure architecture, you must be well versed in all security aspects of software design.
And this is exactly what this course is for.
This course will teach you all you need to know, as an architect, regarding software security. When completing the course, you'll have the necessary knowledge to design secure architecture.
Now, I strongly believe that talking just about secure architecture is not enough. In order to be a really great architect you must have a holistic view of all aspects of software security.
And because of that, this course covers all the bases of software security.
Here is a partial list of what we'll talk about in this course:
- What is Security?
- The Secure Architecture Process
- Threat Modeling
- The Five Perimeters of software security
- Some common attacks and how to defend from them
- Authentication and Authorization
- Encryption
- Secure Communication
And lots and lots more...
In this course you'll learn the terminology of Software Security, and you'll encounter terms such as SQL Injection, MFA, MITM and more. Don't worry - we'll explain everything, and will make sure you fully understand these terms.
In fact, you don't have to have any prior knowledge of software security. We'll start from the very beginning.
After completing this course you'll have everything you need in order to design software architecture which is as secure as possible.
But that's not all...
At the end of this course, you'll be able to download the Secure Architecture Checklist, a comprehensive checklist that will guide you through the process of designing secure systems, and provide a step-by-step guidance for each step.
Using this checklist will ensure your system is as secure as possible, will make your client happy, and, most important - will make you a better architect.
This course takes you from the absolute basics of Software Security to the most advanced topics, known only to few. Completing this course will give you all the knowledge required for designing secure systems, and, as a bonus, will put you in a great position when looking for your next job.
No other course covers this topic in such a comprehensive and thorough way. I've put all my 20+ years of experience with hundreds of clients in this course, and I'm sure you will greatly benefit from it.
------------------------------------------------------------
What do my students have to say about my courses?
------------------------------------------------------------
"well done - The course was very practical" - Sam
"Good explanation on the topics covered, "Soft Skills" section is a great addition of topics" - Sergio
"[The course] given me the confidence to go out to the market and advertise myself as such [an Architect]" - Mathew
"Life Changing" - Arivazhagan
And lots more...
------------------------------------------------------------
Who is this course for?
------------------------------------------------------------
Any person who is involved in development, even system analyst, can profit from this course.
That includes:
- Junior developers
- Senior developers
- Architects
- Anyone who is interested in software security.
If you're not sure if this course is for you - drop me a note!
------------------------------------------------------------
What are the prerequisites for this course?
------------------------------------------------------------
It's a good idea to have some basic knowledge about software architecture, but it's not a must.
In any case, you don't have to have any prior knowledge of software security!
------------------------------------------------------------
About Me
------------------------------------------------------------
I've been in the software industry for more than 20 years, and a Software Architect for more than 17 years, working with a variety of clients - Fortune 100 enterprises, start-ups, govt. entities, defense, telco, banking, and lots more.
I'm an avid speaker and trainer, having trained thousands of students in various courses.
I love what I do, and my greatest passion (well, besides my family...) is designing modern, practical, and reliable systems for my clients, using the best possible architecture patterns.