Designing for the Future of Education: A Tutorial on Building Secure Applications

Overview This tutorial addresses the challenge of creating meaningful software examples that bridge the gap between basic tutorials and real-world complexity. Most software security tutorials use overly simplistic examples like to-do applications or focus exclusively on high-value financial data. Purpose The authors aim to demonstrate how integrating security principles—even when not legally mandated—can lead to cleaner implementations and lower total cost of ownership. Using an online educational platform as the example, the tutorial examines three categories of security needs: ...

February 7, 2024 · 2 min · Snake Eyes Software

The Secure Software Habit

Overview Creating trustworthy software demands deliberate attention to three core security principles: availability, integrity, and confidentiality. The article outlines practical habits developers can adopt throughout the software lifecycle. Building Phase Practices Threat Modeling involves considering potential failures and appropriate responses. Coding Standards establish consistency but require careful balance between enforcement and practicality. Code Reviews leverage peer expertise, though effectiveness depends on reviewer skill. Code Quality Scans automate detection of poor practices. SAST (Static Analysis Software Testing) identifies vulnerabilities in source code quickly, though complexity and framework support present challenges. Various testing approaches—unit tests, integration tests, and end-to-end testing—validate functionality at different levels. ...

January 31, 2024 · 1 min · Snake Eyes Software

Hiding Data in Plain Sight

Overview Access controls alone are insufficient for data protection. When data lacks adequate security or passes through unprotected networks, converting plaintext into seemingly random characters provides defense against unauthorized access. Four Data Conversion Methods Encryption “Encryption is the process of converting data into a coded format that can only be accessed by someone with the correct key.” This bidirectional approach allows data recovery through decryption, making it suitable for protecting sensitive information both in transit and at rest. ...

January 10, 2024 · 2 min · Snake Eyes Software

None Shall Pass

Overview The article uses the famous scene from Monty Python and the Holy Grail featuring the Black Knight to introduce access control concepts. The Black Knight’s refusal to grant passage serves as a metaphor for security mechanisms that prevent unauthorized data access. Key Access Control Strategies The foundation of data protection relies on “Deny By Default” - a principle where system administrators cannot access data without following established procedures. This approach prevents mistakes and creates audit trails for accountability. ...

January 2, 2024 · 2 min · Snake Eyes Software

The Honor Code of Data: Privacy-First Design

Trust Through Protection The article asserts that “Protecting customers’ information is about gaining their trust.” Privacy safeguards data while confidentiality represents the formal commitment organizations make to maintain that security. Core Design Principle A foundational tenet states that “the user does not implicitly consent to any and all use of their data.” Companies bear responsibility for protecting all customers based on their application’s stated purpose. Multi-Layered Protection Strategy The piece outlines several protection stages: ...

December 27, 2023 · 1 min · Snake Eyes Software

It All Starts With Design

Software design combines artistic vision with scientific principles. Like woodworking, it involves envisioning a final product and executing it through methodical processes, with adjustments made throughout. Design as Continuous Process Design isn’t a single event but rather “a continuous thread that runs through the entire creation process.” It spans from high-level concepts to intricate algorithmic details, driven primarily by product requirements. Educational Software Example When designing educational systems, the student becomes the primary user. Designers must consider enrollment processes, assignment distribution, and evaluation methods—details that often require prototyping to clarify. ...

December 20, 2023 · 1 min · Snake Eyes Software

Software Security Is Software Quality

The Craftsmanship Parallel The author draws an extended analogy between woodworking and software development. Just as a skilled woodworker must understand wood grain, joint construction, and material selection, software developers must prioritize the details that matter—particularly data protection and security. Quality Standards and Rigor The piece emphasizes that software intended for mass consumption requires rigorous testing across multiple development lifecycle phases. A simple workshop project differs fundamentally from products serving thousands of users, teachers, parents, and students who depend on reliability and confidentiality. ...

December 13, 2023 · 1 min · Snake Eyes Software

Security Posture Basics

Core Pillars A software product’s security posture depends on preserving three fundamental elements: confidentiality, integrity, and availability. The more ways these can be compromised, the weaker the overall security position becomes. Types of Weaknesses Two primary weakness categories exist: Architecture Flaws: Design decisions or missing coding standards. Example: allowing students to enter class identification codes themselves rather than verifying against actual student records. Coding Defects: Programming errors that create vulnerabilities. Example: missing authorization checks when group leaders attempt to remove members. ...

October 11, 2023 · 1 min · Snake Eyes Software

Availability

Availability represents the final pillar of information security, ensuring that “the data is available when the system says it will” with timeframes ranging from immediate access to several days, depending on system requirements. Multi-Layer Implementation Effective availability requires management across three layers: Network Layer: Controls request handling capacity through firewalls, load balancing, and network sizing. Distributed denial-of-service attacks deliberately overwhelm systems by flooding networks and servers with excessive requests. Server Layer: Optimizes processing power, memory, and disk allocation. Running only necessary processes allows servers to dedicate resources efficiently and minimizes security risks. ...

October 4, 2023 · 1 min · Snake Eyes Software

Integrity: What You See Is What You Get

Integrity represents the second core principle of software security, focused on ensuring data trustworthiness through accuracy and completeness. Data Corruption Risks The article notes that “data can be corrupted due to system errors, unauthorized modification, and data tampering.” These risks apply across all application types, regardless of domain. Real-World Educational Platform Examples In learning systems, integrity failures could result in graded submissions using outdated versions or incorrect grade assignments. The concept of eventual consistency acknowledges that distributed systems experience propagation delays—similar to inter-bank transfers requiring processing time. ...

September 27, 2023 · 1 min · Snake Eyes Software