Secure Coding in Python
A practical course on the security traps specific to Python. Covers Python's trust model (eval/exec, dynamic imports, format-string and dunder-method abuse) and safer built-ins, SQL and command injection with SQLAlchemy, the Django ORM and subprocess, deserialization attacks with pickle and YAML and safe alternatives, Django and Flask security features and pitfalls (CSRF, SECRET_KEY, debug mode, Jinja2 SSTI, signed sessions), path traversal and file uploads, and dependency and secrets management (PyPI risks, pip-audit, environment variables, vaults). Prerequisite: Secure Development Foundations.
API Security Fundamentals
A course on securing REST and GraphQL APIs, built around the OWASP API Security Top 10 (2023). Covers the API threat landscape and attack-surface discovery, authentication with API keys, bearer tokens, mTLS and OAuth 2.0 / OpenID Connect (Authorization Code with PKCE, Client Credentials), object-, property- and function-level authorization failures, injection and resource-consumption abuse, GraphQL-specific risks, and hardening with schema validation, gateways, and inventory management. Prerequisite: Web Application Security.
Cloud Security Basics
A provider-agnostic introduction to securing workloads in the public cloud, with concepts mapped across AWS, Microsoft Azure, and Google Cloud. Covers the shared responsibility model and common misconceptions, identity and access management and its misconfigurations, storage and database exposure, secrets and credential management, cloud network design and metadata-service attacks, and cloud audit logging, monitoring, and compliance frameworks. Prerequisite: Network Security Basics.
Incident Response Fundamentals
A practical course on responding to cybersecurity incidents, based on NIST SP 800-61 Revision 3 (2025) and the NIST Cybersecurity Framework 2.0. Covers the incident response lifecycle and team roles, detection sources and triage, short- and long-term containment, digital forensics basics (evidence handling, memory and disk acquisition, log and artifact analysis, timelines), eradication of persistence and validated recovery, and post-incident reviews, lessons learned, and tabletop exercises — including EU incident-reporting duties under NIS2, GDPR, DORA, and the CRA. Prerequisite: Network Security Basics.
Secure Coding in Java
A practical course on Java-specific security for enterprise and backend developers. Covers the JVM security model after the SecurityManager, reflection and module encapsulation, Java deserialization and gadget chains with Log4Shell as a case study, serialization filters and safe Jackson configuration, XXE and SSRF in Java, Spring Security architecture and common misconfigurations, SQL, JPQL, LDAP, Expression Language and log injection, and Maven/Gradle dependency security with JVM hardening. Prerequisite: Secure Development Foundations.
- Teacher: Costas Economou
CyberHOT Summer School Challenges
Secure Development: Good Practices
A practical guide to writing secure software. Covers the OWASP developer mindset, input validation and output encoding, authentication and authorization patterns, cryptography essentials, secure error handling, and the Secure SDLC with dependency management.
Secure Coding in JavaScript
A practical security course for JavaScript and Node.js developers. Covers the JavaScript security model, XSS prevention, prototype pollution and injection attacks, authentication and session security patterns, Node.js server-side risks, and supply chain security in the npm ecosystem.
EU Cyber Resilience Act (CRA) Compliance for Developers
A policy-and-process course translating the EU Cyber Resilience Act into developer-actionable practice. Covers what the CRA is and who it applies to, the essential cybersecurity requirements of Annex I, vulnerability handling and reporting obligations, conformity assessment and documentation, embedding CRA requirements into the SDLC, and practical compliance strategies for SMEs. No coding prerequisite.
Cryptography Fundamentals
A standalone foundation in applied cryptography. Covers symmetric encryption and key management, asymmetric cryptography and key exchange, hashing and message authentication, public key infrastructure and TLS, common cryptographic mistakes, and cryptography in practice — secrets management and encrypting data at rest and in transit.
Web Application Security
A deep dive into the OWASP web attack surface from both attacker and defender perspectives. Covers HTTP security headers and Content Security Policy, session management and CSRF, injection vulnerabilities across SQL/command/LDAP/XPath/template contexts, access control failures including IDOR and privilege escalation, file upload and parsing attacks (XXE, insecure deserialization), and client-side security. Complements secure-development-foundations with vulnerability-class depth.
Software Supply Chain Security
A technical course on securing everything your software is built from and built with. Covers the supply chain threat landscape through real incidents (SolarWinds, event-stream, xz utils), Software Bills of Materials (SPDX, CycloneDX, VEX), dependency management and vulnerability scanning, build integrity with SLSA, Sigstore, and in-toto, open-source risk management, and running supply chain security in practice — including responding to a compromised dependency. Gives the CRA's SBOM and vulnerability-handling obligations their technical substance. Prerequisite: Secure Development Foundations.
DevSecOps & CI/CD Pipeline Security
A practical course on securing the pipeline that builds and ships your software. Covers DevSecOps foundations and threat modeling the CI/CD pipeline (OWASP Top 10 CI/CD Security Risks), GitHub Actions security (token permissions, pull_request_target, third-party actions, self-hosted runners), secrets management with OIDC federation, automated security testing gates (SAST, DAST, dependency, container, and IaC scanning), secure deployment practices, and pipeline hardening. Builds directly on Software Supply Chain Security. Prerequisites: Secure Development Foundations, Software Supply Chain Security.
Application Security Testing Fundamentals (SAST/DAST/IAST)
A course on the tools that find vulnerabilities in software and how to act on what they report. Covers the application security testing landscape (SAST, DAST, IAST, SCA) and where each fits in the SDLC, how static analysis works (parsing, data flow, taint tracking) and how to tune it, dynamic analysis and fuzzing, software composition analysis with container and IaC scanning, reading and triaging findings (severity, CWE, exploitability, false positives), and building a testing programme for an SME with metrics that matter. Prerequisite: Secure Development Foundations.
- Teacher: Eftychia Lakka
JavaScript Fundamentals for Beginners
This course provides a practical introduction to JavaScript, one of the most widely used programming languages for web development, application building, and interactive programming. Through structured modules, learners are guided from the fundamentals—setting up the development environment, understanding variables and data types, and writing basic commands—to more advanced tasks such as control flow with conditionals and loops, creating reusable functions, working with arrays and objects, and manipulating the Document Object Model (DOM) to build interactive applications.
The course combines theory with hands-on examples, including runnable JavaScript code, practical exercises, and clear explanations. Each module concludes with a quiz to reinforce understanding and support self-assessment.
By the end of the course, learners will be able to:
- Write and execute JavaScript code using browser developer tools
- Work with variables, data types, and operators
- Apply control flow structures including conditionals and loops
- Create and use functions to organize and reuse code
- Manipulate arrays and objects for data management
- Understand and work with JSON for data exchange
- Select and modify HTML elements dynamically
- Handle user events and create interactive features
- Debug code systematically using console tools
- Build functional applications using core JavaScript concepts
This course is designed for beginners with no prior programming experience and offers a solid foundation for further learning in web development, software engineering, and modern JavaScript frameworks.
- Teacher: Rano Manta
Introduction to C#
The Introduction to C# course is a beginner-friendly training module designed to teach the fundamentals of the C# programming language. It aims to build digital skills and support knowledge transfer in modern programming technologies.
The course focuses on:
- Installing an IDE for C# (Visual Studio).
- Understand basic syntax, data types and operators.
- Understand the use of conditions and loops.
- Familiarize with the structure and use of methods and classes.
This course is designed for beginners and offers a solid foundation for further learning in building applications.
- Teacher: Rano Manta
Introduction to R for Data Analysis
This course provides a practical introduction to R, one of the most widely used programming languages for statistical computing, data analysis, and visualisation.
Through 11 structured modules, learners are guided from the fundamentals, installing R and RStudio, understanding key data structures, and writing basic commands, to more advanced tasks such as data import/export, visualisation with ggplot2, automation using scripts and functions, and performing descriptive and inferential statistical analysis.
The course combines theory with hands-on examples, including runnable R code, outputs, and visual diagrams. Each module concludes with a mini quiz to reinforce understanding and support self-assessment. The final module summarises all key concepts and provides a comprehensive final quiz.
By the end of the course, learners will be able to:
-
Navigate and use RStudio effectively
-
Work with vectors, matrices, data frames, and lists
-
Manipulate data and manage the R workspace
-
Import, clean, and export datasets
-
Create visualisations using base R and ggplot2
-
Apply descriptive statistics and run simple regression models
-
Write scripts and functions to automate analysis workflows
This course is designed for beginners with no prior programming experience and offers a solid foundation for further learning in data science and analytics.