Define, implement and document new security features
Lead security-oriented thinking in a product engineering team
Analyze, fix, and test vulnerabilities in Canonical and open source Software
Contribute to Ubuntu and upstream projects to benefit the community
Audit and analyze source code for vulnerabilities
Integrate new tools in our security infrastructure, pipelines and processes
Achieve and retain various security certifications
Extend and enhance Linux cryptographic components - specifically with modules such as OpenSSL/Libgcrypt - with the features and functionality required for country-specific compliance such as FIPS and CC certification
Work with external partners to develop CIS benchmarks
Design and develop hardening automation for Ubuntu
Monitor the security industry for new developments
Develop, test and maintain new software capabilities
Provide guidance and support to other engineering teams
What we are looking for in you
An exceptional academic track record from both high school and university
Undergraduate degree in Computer Science or STEM, or a compelling narrative about your alternative path
Drive and a track record of going above-and-beyond expectations
A thorough understanding of the common categories of security vulnerabilities
Modern engineering techniques to find and fix them
Familiarity with open source development tools and methodologies
Skill in one or more of C, Python, Go, Rust, Java, Ruby or PHP
Experience as a security champion
Experience driving security within a wider SDLC process
Professional written and spoken English
Experience with Linux (Debian or Ubuntu preferred)
Excellent interpersonal skills, curiosity, flexibility, and accountability
Passion, thoughtfulness, and self-motivation
Excellent communication and presentation skills
Result-oriented, with a personal drive to meet commitments
Ability to travel twice a year, for company events up to two weeks each
Optional skills we also value
Clear and effective communication with the team and Ubuntu community members
Experience working with Linux Kernel
Security Certification experience and knowledge in FIPS and/or CC
Experience with OVAL (Open Vulnerability Assessment Language)
Knowledge of and familiarity with low-level Linux cryptography APIs
Demonstrated high learning ability
Performance engineering experience
Desired candidate profile
1. Security Architecture and Design
Secure Software Design: Collaborate with development teams to design software with security in mind, implementing security principles such as least privilege, defense in depth, and secure by design.
Threat Modeling: Perform threat modeling on new software applications and systems, identifying potential vulnerabilities and designing mitigations early in the development process.
Security Requirements: Define security requirements for new applications, systems, and features, ensuring that they are built to withstand known and emerging threats.
2. Vulnerability Management
Vulnerability Scanning: Use static analysis, dynamic analysis, and other scanning tools to identify vulnerabilities in the codebase and infrastructure.
Penetration Testing: Perform penetration testing to simulate attacks on applications and infrastructure, identifying and addressing weaknesses before they can be exploited.
Patch Management: Identify, prioritize, and implement security patches or updates to address vulnerabilities in both third-party libraries and custom code.
3. Secure Software Development
Secure Coding Practices: Follow and enforce secure coding practices, preventing common vulnerabilities such as SQL injection, cross-site scripting (XSS), cross-site request forgery (CSRF), and buffer overflows.
Code Reviews: Participate in or lead security-focused code reviews, ensuring that developers adhere to security standards and best practices.
Security Testing: Implement automated security tests into the CI/CD pipeline, ensuring that software vulnerabilities are detected as early as possible during the development lifecycle.
4. Incident Response and Threat Detection
Security Incident Response: Respond to security incidents, helping to identify the scope of the attack, contain damage, and recover. Assist in post-incident analysis and lessons learned.
Monitoring and Alerts: Set up and configure tools for continuous monitoring of application and infrastructure security. Implement security alerts for suspicious activity or anomalies.
Log Analysis: Analyze system and application logs for signs of malicious activity or security breaches, ensuring the security infrastructure is effective.
5. Security Automation and Tools
Automation of Security Testing: Develop or integrate tools that automate security testing, vulnerability scanning, and incident detection to streamline security processes.
Security Tools: Work with or develop security tools and software, such as firewalls, intrusion detection/prevention systems (IDS/IPS), and encryption technologies, to ensure robust protection across the organization’s infrastructure and applications.
DevSecOps: Integrate security practices into the DevOps pipeline (DevSecOps) by working on automating security checks within the CI/CD pipeline.