Module 4: Secure Software Development

A 6-Unit Module that Started on November 2022 and was Covered in 6 Weeks by Oliver Buckley


Overview of Key Tasks and Projects Completed

During this module, I completed a series of tasks and assignments that equipped me with practical skills in cybersecurity and software development.
Below is a summary of the projects, techniques, and security solutions learned throughout the course.

  1. Secure Software Development Methodologies and UML Modeling
  2. Explored waterfall vs. agile methodologies with a focus on security implications in software development.

    Learned aboutUnified Modeling Language (UML) and industry standards for secure software development.

    Collaborative Learning Discussion: Selected Visual Paradigm as my UML tool and created a flowchart illustrating an OWASP-identified coding weakness.

    Group Project: Part of a team working on a secure software project based on The Dutch Police Internet Forensics case study.

    Designed multiple UML diagrams and contributed to the Development Team Project: Design Document (Proposal Report).

  3. Programming and Secure Coding Practices
  4. Studied programming language security concepts with a focus on Python and C.

    Conducted a Codio activity on Buffer Overflow attacks in C and Python, gaining hands-on experience in identifying and mitigating these vulnerabilities.

    Finalized and submitted the Development Team Project: Design Document as a team.

  5. Software Testing and Secure Development
  6. Reviewed software testing methodologies and industry standards.

    Explored automated testing tools and frameworks for Python applications .

    Began development of the secure web application using Django and Python, as outlined in our project's first sprint.

    Installed and configured Django in a local development environment and started implementing the project in Visual Studio Code.

  7. Secure Web Application Development Project
  8. Team Workload Distribution: Due to tight deadlines, I focused on developing the web application, while my teammates handled testing, documentation, and demonstration.

    Implemented key Django components:
    - admin.py : Managed administrative functionalities.
    - Template system : Developed HTML templates with inheritance and CSS styling.
    - views.py : Handled HTTP requests and user authentication.
    - urls.py : Defined routing paths between requests and responses.
    - models.py : Designed and integrated a SQLite database for user profiles.
    - decorators.py : Created custom permission controls (e.g., login_required).
    - userlogs.py : Implemented system logging functions to track user activities.
    - settings.py : Configured middleware, databases, password validators, and installed apps.

    Project Finalization: Conducted a walkthrough with my team of 4 to demonstrate functionality before they performed testing and documentation.

  9. Security of Programming Languages Debate and Final Submissions
  10. Researched and debated the security capabilities of Python, Rust, Swift, and F#.

    Final Deliverables:
    - Test Report: Documented all tests conducted on the Django application.
    - README Documentation: Provided a comprehensive project summary, setup instructions, and screenshots.

  11. Reflective Piece
  12. Submitted a Reflective Essay analyzing key takeaways from the module, challenges faced, and how the acquired skills apply to real-world secure software development.

    Key Tasks and Projects Completed

    The tasks, projects and assignments that equipped me with practical skills in cybersecurity and software development.

    1. Codio activity on Buffer Overflow in both C and Python programming languages
    2. Below is a screenshot of the Buffer Overflow in C.

      Download PDF

    3. Vulnerability Assessment Project
    4. My group members of 4 worked on the first part of the assessment project Development Team Project: Design Document, focusing on The Dutch Police Internet Forensics case study.

      Using Visual Paradigm UML tool, I designed a couple of UML diagrams and did personal researches on the project (sources are referenced on the left pane), I was able to create and submit to my group the document below (as part of my contribution towards successful completion of the Development Team Project: Design Document).

      Download PDF

      Finale copy of the first part of the assessment project, that is Development Team Project: Design Document.

      Download PDF

    5. Screenshots of Django Web Application project (internetForensics) as from Github (our groupleader's repository)
    6. Below is admin.py screenshot.

      Download PDF

      Below is the Template folder that has all the project's HTML files designed for the application (inheritance was used so as to avoid code repitition and CSS was used to style html document).

      Download PDF

      Below is the views.py file that shows the Python functions that takes http requests and returns http response (HTML documents). It also shows the logout request, user controls and all the imports of the models, libraries, decorators, etc. that were made to the application.

      Download PDF

      Below is the urls.py file that shows the different paths are to be taken between a Django request and its matching function in views.py.

      Download PDF

      Below is the models.py file that contains a SQLite database (whereby I created the userProfile database to be an extension of the Django's default user database).

      Download PDF

      Below is the decorators.py file that contains the Decorators (which I created the login_required and allowed_users classes).This acts as custom permissions that enables control of the users' access in the application.

      Download PDF


      Below is the userlogs.py file that has the Python functions to capture system logs (logs of when and which user successfully/unsuccessfully logs in and logs out from the system).

      Download PDF

      Below is the settings.py file that has the Python functions and the Django application's settings. These include: middleware, databases, password custom and default validators, installed apps, etc.

      Download PDF

    7. Final Tests document and documentation (a readme file)
    8. Below is the Tests file that includes all the tests (and there screenshots) that were perfomed by one of my groupmates on the Django web application project .

      Download PDF

      Below is the README file that included the documentation and screenshots of the Django web application project that was created by one of my groupmates.

      Download PDF

    9. Reflective Piece
    10. Assessment on "Reflective Piece" essay.

      Download PDF


      Contact

      Please Do Not Hesitate to Contact Me at mutegibeatrice93@gmail.com for more Information