© Mapbox, © OpenStreetMap

Most Active Speaker

Ignat Korchagin

Ignat Korchagin

Cloudflare, Linux Guru

London, United Kingdom

Actions

Ignat is a systems engineer at Cloudflare working mostly on Linux, platforms and hardware security. Ignat’s interests are cryptography, hacking, and low-level programming. Before Cloudflare, Ignat worked as a senior security engineer for Samsung Electronics’ Mobile Communications Division. His solutions may be found in many older Samsung smart phones and tablets. Ignat started his career as a security researcher in the Ukrainian government’s communications services.

Awards

  • Most Active Speaker 2024

Area of Expertise

  • Business & Management
  • Information & Communications Technology

Topics

  • Linux
  • DevOps
  • DevSecOps
  • Software Development
  • Security
  • Software Engineering
  • Software Engineering Management
  • SRE
  • Kernel

“Helpful” eBPF: how BPF helpers help create security vulnerabilities

The Linux Kernel extended Berkeley Packet Filter subsystem (eBPF) is the new hot goto solution for many operational and security applications. It allows inserting small custom programs directly into the running kernel, which can provide insight into the kernel internals. There are many commercial and open source solutions these days utilizing eBPF for observability, security monitoring and enforcement and kernel hacking.

The biggest advantage of eBPF is safety: even though eBPF programs execute directly in the kernel context, a bad program can never crash the kernel or do any other harm (unlike kernel modules, for example). This is enforced by the in-kernel eBPF virtual machine, which checks all programs for bad behavior before executing them.

However, over time to make eBPF more useful and feature rich BPF helpers were introduced. BPF helpers are “canned” kernel functions, which can be called from eBPF programs. They may provide some small functionality, like getting a value from some kernel data structure or helping track kernel data across different programs.

BPF helpers are real in-kernel functions, so they are not subject to eBPF virtual machine checks. Even though the code for BPF helpers is fixed, a carefully crafted eBPF program may utilize them to introduce new unexpected in-kernel code execution paths, which may lead to security vulnerabilities. And since such code execution paths are created at runtime by eBPF users, they cannot be easily discovered by static or dynamic analysis.

This presentation provides one such example, where a BPF helper could be used to create a security vulnerability in otherwise properly written kernel code. We also explore some kernel security knobs, which could make eBPF usage safer.

TPMs and the Linux Kernel: unlocking a better path to hardware security

TPMs have been present in modern laptops and servers for some time now, but their adoption is quite low. While operating systems do provide some security features based on TPMs (think of BitLocker on Windows or dm-verity on Linux) third party applications or libraries usually do not have TPM integrations.

One of the main reasons of low TPM adoption is that interfacing with TPMs is quite hard: there are competing TPM software stacks, lack of key format standardization and many operating systems are not set up from the start to make TPM easily available (TPM device file is owned by root or requires privileged group for access). Even with a proper software stack the application may have to deal with low-level TPM communication protocols, which are hard to get right.

In this presentation we will explore a better integration of TPMs with some Linux Kernel subsystems, in particular: kernel keystore and cryptographic API. We will see how it allows the Linux Kernel to expose hardware-based security to third party applications in an easy to use manner by encapsulating the TPM communication complexities as well as providing higher-level use-case based security primitives.

TPMs and the Linux Kernel: unlocking a better path to hardware security

TPMs have been present in modern laptops and servers for some time now, but their adoption is quite low. While operating systems do provide some security features based on TPMs (think of BitLocker on Windows or dm-verity on Linux) third party applications or libraries usually do not have TPM integrations.

One of the main reasons of low TPM adoption is that interfacing with TPMs is quite hard: there are competing TPM software stacks, lack of key format standardization and many operating systems are not set up from the start to make TPM easily available (TPM device file is owned by root or requires privileged group for access). Even with a proper software stack the application may have to deal with low-level TPM communication protocols, which are hard to get right.

In this presentation we will explore a better integration of TPMs with some Linux Kernel subsystems, in particular: kernel keystore and cryptographic API. We will see how it allows the Linux Kernel to expose hardware-based security to third party applications in an easy to use manner by encapsulating the TPM communication complexities as well as providing higher-level use-case based security primitives.

Go as a scripting language in Linux

Why use Go as a scripting language? Short answer: why not? Go is relatively easy to learn, not too verbose and there is a huge ecosystem of libraries which can be reused to avoid writing all the code from scratch. Some other potential advantages it might bring:

* build your complex Go project with Go-based build system: no Makefiles, bash or Python - all pure Go!
* easy non-privileged package management out of the box: if you want to use a third-party library in your script, you can simply `go get` it to your `GOPATH`
* quick code prototyping on early project stages: short-circuit the *"edit->compile->check"* cycle, instead immediately execute your source file
* fail early with strongly-typed scripting language: if you have a typo in your 2k line script, it will fail to start instead of executing first 1800 lines and leave your system in an inconsistent state

There were previous attempts to make Go scriptable using a shebang line, however (mostly because lines starting with `#` are not valid in Go) the solution is not perfect: you end up with `.go` files either to be used as scripts only or as real compilable Go programs, but not both. This talk describes how one can use some advanced features of binary execution on Linux to overcome previous problems and make Go truly native scripting language.

Linux user namespaces: a blessing and a curse

Unprivileged Linux user namespaces is a rather controversial topic in the security community, Linux Kernel community and in software engineering in general. On one side it allows building unprivileged and sandboxed services and applications, which would otherwise require elevated privileges to successfully run and provide features to their users. Not granting privileges to such applications follows the least privilege principle and makes our systems more secure.

On the other side, this mechanism has been repeatedly used in various vulnerabilities and exploits as a starting attack vector, multiplying the damage and impact of these exploits. And since it became so popular within the offensive industry, many Linux distributions and security guidances started recommending disabling this feature altogether.

There is an ongoing debate whether unprivileged user namespaces provide more security or make the system more vulnerable. In this presentation we will review how user namespaces might help building sandboxed secure applications. But we will also show how a recently discovered Linux kernel bug turned into a security vulnerability just because user namespaces are available on the system. Finally, we will give recommendations on how to get the best of both worlds: allow well-behaved applications to utilize user namespaces for better security, while blocking the feature for potentially malicious users/code.

How to protect yourself from the biggest Internet threats

Nowadays, there are many attack vectors an adversary can employ to either break into the system or impact its operations. Oftentimes a successful attack is a clever combination of smaller vectors, which on their own do not seem very important or dangerous. That’s why to efficiently mitigate modern Internet threats the system should be built with the “defense in depth” in mind.

In this presentation we will discuss the various approaches and technical solutions Cloudflare implemented to protect infrastructure and services from the biggest Internet threats. We will review a layered approach to security starting from the Internet itself, then data centre networking, server and operating systems layers, application and service layers. We will see how the Internet today has become the global “security perimeter” and how to protect modern cloud workloads and corporate services.

Sandboxing in Linux with zero lines of code

Linux seccomp is a simple, yet powerful tool to sandbox running processes and significantly decrease potential damage in case the application code gets exploited. It provides fine-grained controls for the process to declare what it can and can’t do in advance and in most cases has zero performance overhead.

The only disadvantage: to utilise this framework, application developers have to explicitly add sandboxing code to their projects and developers usually either delay this or omit completely as their main focus is mostly on the functionality of the code rather than security. Moreover, the seccomp security model is based around system calls, but many developers, writing their code in high-level programming languages and frameworks, either have little knowledge to no experience with syscalls or just don’t have easy-to-use seccomp abstractions or libraries for their frameworks.

All this makes seccomp not widely adopted—but what if there was a way to easily sandbox any application in any programming language without writing a single line of code? This presentation discusses potential approaches with their pros and cons.

What is Linux kernel keystore and why you should use it in your next application

Did you know that Linux has a full-featured keystore ready to be used by any application or service it runs? Applications can securely store and share credentials, secrets and cryptographic keys, sign and encrypt data, negotiate a common encryption key - all this by never touching a single byte of the underlying cryptographic material.

This is especially useful in the post-heartbleed and cloud-native environments, where services authenticate and securely talk to each other using some kind of credentials. But if a network-facing service also has some secret in its process address space, it sets itself up for a security failure as any potential out-of-bounds memory access vulnerability may allow the secret to be leaked. Imagine a world where you don’t have to run an SSH agent just to protect your SSH keys.

On top of keeping your secrets secret Linux keystore nicely integrates with specialized security hardware, like TPMs and HSMs and may provide a single entry point on the system for applications to obtain their secrets. Thus Linux keystore is a very useful building block for a corporate key management system.

An engineer's guide to Linux Kernel upgrades

Because the kernel code executes at the highest privilege level and a kernel bug usually crashes the whole system, many SREs, production engineers and system administrators try to avoid upgrading the kernel too often for the sake of stability. There is a tendency to create more obstacles to Linux kernel releases (requiring more approvals etc). But introducing all these obstacles and not treating kernel updates like any other software usually significantly increases the risk for the company and their service of being exploited.

One of the reasons SREs and engineers are too afraid of ANY kernel upgrade is that they don’t actually know the details about Linux kernel release process and policy. This talk tries to demystify Linux Kernel releases and provides a guide on how to distinguish a kernel bugfix release from a feature release. We also describe how kernel releases are implemented in our company and propose possible approaches to deploy kernel upgrades regularly with minimal risk.

Reconciling performance and security in high load environments

Most perceive security fixes and improvements as a necessary evil, because security is much “less tangible” than primary product functionality in terms of potential revenue. On top of not bringing any “meaningful” value to the overall system, security comes at a cost of potential performance degradation, as it steals precious CPU cycles and memory from the overall resource pool.

Because of the above in a performance-driven environment product and infrastructure security are either heavily avoided altogether or forcibly imposed by security teams, excusing themselves with numerous legal and compliance requirements. The fear of potential performance penalty and the need to balance performance vs security often leads to insecure architectures and designs or unnecessary complexity.

All this usually makes the rest of the organisation dislike and distrust security in the long term. But what if we can show that security actually improves performance? This presentation explores how to drive security in a high performance environment and make it a welcome and natural part of the product lifecycle.

Incontro DevOps Italia (IDI) 2025 Sessionize Event Upcoming

March 2025 Bologna, Italy

NDC Security 2025 Sessionize Event Upcoming

January 2025 Oslo, Norway

DefCamp 2024 Sessionize Event

November 2024 Bucharest, Romania

NDC Porto 2024 Sessionize Event

October 2024 Porto, Portugal

DEV: challenge accepted

September 2024 Sofia, Bulgaria

NDC TechTown 2024 Sessionize Event

September 2024 Kongsberg, Norway

HITBSecConf2024

August 2024 Bangkok, Thailand

COSCUP 2024

August 2024 Taipei, Taiwan

Render Atlanta 2024 Sessionize Event

June 2024 Atlanta, Georgia, United States

Hardwear.io

May 2024 Santa Clara, California, United States

Confidence

May 2024 Kraków, Poland

J On The Beach

May 2024 Málaga, Spain

Tech Internals Conf

April 2024 Limassol, Cyprus

t3chfest

March 2024 Madrid, Spain

Norfolk Developers Conference 2024 Sessionize Event

February 2024 Norwich, United Kingdom

State of Open Con 24 Sessionize Event

February 2024 London, United Kingdom

FOSDEM

February 2024 Brussels, Belgium

NDC Security 2024 Sessionize Event

January 2024 Oslo, Norway

DevOps Vision 2023 Sessionize Event

December 2023 Clearwater, Florida, United States

POC2023

POC is established in 2006 and organized by Korean security experts. POC is an international security & hacking conference based in South Korea which focuses on highly technical academics and sharing creative discussions on latest hacking and security measures. The talks at POC conference shares variety of topics from vulnerability discovery, advanced exploitation on numerous softwares and outpouring of remarkable new ideas.

POC unlocks your intense appetite for sharing desires and passion for hacking and believes that the Power of Community will definitely contribute to the world the better way.

November 2023 Seoul, South Korea

SREcon

October 2023 Dublin, Ireland

NDC TechTown 2023 Sessionize Event

September 2023 Kongsberg, Norway

DevOpsDays Alamty

September 2023 Almaty, Kazakhstan

Jump Developer Conference

August 2023 Yerevan, Armenia

SREcon Asia/Pacific

SREcon23 Asia/Pacific is a gathering of engineers who care deeply about site reliability, systems engineering, and working with complex distributed systems at scale. SREcon strives to challenge both those new to the profession as well as those who have been involved in it for decades. The conference has a culture of critical thought, deep technical insights, continuous improvement, and innovation.

June 2023 Singapore

Risk Conference

June 2023 Laško, Slovenia

WTF is SRE? A Conference by SREs for SREs 2023 Sessionize Event

May 2023 London, United Kingdom

NDC Security 2023 Sessionize Event

January 2023 Oslo, Norway

Black Hat MEA

November 2022 Riyadh, Saudi Arabia

SecTor

October 2022 Toronto, Canada

Black Hat

Founded in 1997, Black Hat is an internationally recognized cybersecurity event series providing the most technical and relevant information security research. Grown from a single annual conference to the most respected information security event series internationally, these multi-day events provide the security community with the latest cutting-edge research, developments, and trends.

Black Hat Briefings and Trainings are driven by the needs of the global security community, striving to bring together the best minds in the industry. Black Hat inspires professionals at all career levels, encouraging growth and collaboration among academia, world-class researchers and leaders in the public and private sectors. Today, Black Hat Briefings and Trainings are held annually in the United States, Europe, and Asia, providing premier venues for elite security researchers and trainers to find their audience.

August 2022 Las Vegas, Nevada, United States

Hope

July 2022 New York City, New York, United States

Code Europe

June 2022 Warsaw, Poland

GDG DevFest Siberia

November 2019 Novosibirsk, Russia

Velocity Conference

Resilience. Performance. Security.
Explore cloud native infrastructure, DevOps, serverless, Kubernetes, security, and more.

November 2019 Berlin, Germany

NoNameCon

May 2019 Kyiv, Ukraine

dotGo

March 2019 Paris, France

DevOpsPro

November 2018 Moscow, Russia

GopherCon Brasil

September 2018 Florianópolis, Brazil

Open Source Summit Japan

June 2018 Tokyo, Japan

Layer One 2017

May 2017 Los Angeles, California, United States

Black Hat

Founded in 1997, Black Hat is an internationally recognized cybersecurity event series providing the most technical and relevant information security research. Grown from a single annual conference to the most respected information security event series internationally, these multi-day events provide the security community with the latest cutting-edge research, developments, and trends.

Black Hat Briefings and Trainings are driven by the needs of the global security community, striving to bring together the best minds in the industry. Black Hat inspires professionals at all career levels, encouraging growth and collaboration among academia, world-class researchers and leaders in the public and private sectors. Today, Black Hat Briefings and Trainings are held annually in the United States, Europe, and Asia, providing premier venues for elite security researchers and trainers to find their audience.

March 2017 Singapore

NopCon

March 2017 Istanbul, Turkey

Ignat Korchagin

Cloudflare, Linux Guru

London, United Kingdom

Actions

Please note that Sessionize is not responsible for the accuracy or validity of the data provided by speakers. If you suspect this profile to be fake or spam, please let us know.

Jump to top