GN⁺: No More Blue Fridays
(brendangregg.com)-
미래에는 커널 코드가 포함된 소프트웨어 업데이트로 인해 컴퓨터가 충돌하지 않을 것임. 앞으로는 이러한 업데이트가 eBPF 코드를 푸시할 것
-
2024년 7월 19일, 정보 기술 역사상 가장 큰 중단 사태가 발생했음
- 전 세계의 Windows 컴퓨터가 블루스크린과 부팅 루프에 빠졌음
- 병원, 항공사, 은행, 식료품점, 미디어 방송사 등에서 중단 사태가 발생했음
- 보안 회사의 커널 드라이버가 포함된 업데이트가 원인이었음
- 이 드라이버가 잘못된 메모리를 읽으려 시도하여 커널이 충돌했음
-
Linux 시스템에서는 이미 eBPF를 채택하고 있어 이러한 충돌을 방지할 수 있음
- eBPF는 안전한 커널 실행 환경을 제공함
- eBPF 프로그램은 소프트웨어 검증기를 통해 안전성이 확인되며, 안전하지 않은 코드는 실행되지 않음
- eBPF는 높은 보안성과 낮은 자원 사용량을 제공함
-
eBPF 기반 보안 스타트업과 대형 기술 회사들도 eBPF를 채택하고 있음
- Cisco는 eBPF 스타트업 Isovalent를 인수하고 새로운 eBPF 보안 제품을 발표했음
- Google과 Meta는 이미 eBPF를 사용하여 악성 행위를 감지하고 차단하고 있음
-
eBPF 프로그램이 할 수 있는 최악의 일은 자원을 과도하게 소비하는 것임
- eBPF는 시스템 충돌을 방지하지만, 비효율적인 코드를 작성하는 것은 막을 수 없음
- eBPF 관리 코드에도 버그가 있을 수 있지만, 이러한 버그를 수정하면 모든 eBPF 벤더의 보안이 개선됨
-
소프트웨어 배포 시 위험을 줄이는 다른 방법도 있음
- 카나리아 테스트, 단계적 롤아웃, 회복력 엔지니어링 등이 있음
- eBPF 방법은 Linux와 Windows 커널에서 기본적으로 사용할 수 있는 소프트웨어 솔루션임
-
커널 드라이버나 모듈이 포함된 상용 소프트웨어를 사용하는 회사는 eBPF를 요구할 수 있음
- Linux에서는 이미 가능하며, Windows에서도 곧 가능해질 것임
- 일부 벤더는 이미 eBPF를 채택했으며, 고객의 인식 제고가 필요함
GN⁺의 정리
- 이 글은 커널 코드 업데이트로 인한 시스템 충돌 문제를 해결하기 위해 eBPF의 중요성을 강조함
- eBPF는 안전한 커널 실행 환경을 제공하며, 시스템 충돌을 방지할 수 있음
- 대형 기술 회사들도 eBPF를 채택하고 있으며, 보안성과 자원 사용량 측면에서 이점을 제공함
- eBPF를 통해 소프트웨어 배포 시 위험을 줄일 수 있으며, 고객의 인식 제고가 필요함
Hacker News 의견
-
Microsoft의 eBPF 지원이 Windows에서 생산 준비가 되면, Windows 보안 소프트웨어도 eBPF로 포팅될 수 있음
- 현실적이지 않음
- Windows eBPF의 "hooks"는 패킷 필터링에만 사용됨
- NT 커널에 연결되는 다른 드라이버와 달리, eBPF는 제한적임
- eBPF가 커널 공간의 안티멀웨어 드라이버를 대체하려면 많은 시간이 필요함
-
eBPF 프로그램이 할 수 있는 최악의 일은 CPU 사이클과 메모리를 더 많이 소비하는 것이라는 주장에 반대함
- eBPF 프로그램은 무한히 해로울 수 있음
- 커널에서 BPF로 코드를 이동함으로써 특정 취약점을 완화할 수 있음
- eBPF 프로그램이 일반적으로 안전하다는 의미는 아님
-
Brendan Gregg와 논쟁하기 싫지만, 벤더들이 실패 체인을 완전히 조사하는 포괄적인 접근 방식을 취하길 바람
- 특정 버그 클래스에서는 CPU 사이클 낭비가 유일한 부정적 결과일 수 있음
- 나쁜 규칙 집합이 시스템을 망가뜨릴 수 있는 다양한 실패 모드가 있음
- eBPF 기반 보안 모듈이 많은 벤더에게 적합할 수 있지만, 위험을 이해하는 것이 중요함
-
코드가 깨졌을 때 시스템이 작동하지 않아야 함
- 의료 기기의 안전 잠금 장치가 작동하지 않으면 전체 시스템이 작동하지 않는 것이 더 나음
-
eBPF가 Windows에서 특정 문제를 해결한다고 가정하면, Microsoft는 하위 호환성을 제공하지 않아야 함
- 하위 호환성은 Windows 세계에서 중요한 문제임
- 오래된 NT 코드와 접근 방식을 정리하는 것이 더 유익함
-
eBPF 프로그램은 소프트웨어 검증기에 의해 안전하게 체크되고 샌드박스에서 실행되므로 시스템 전체를 크래시할 수 없음
- 운영 체제의 목적 중 하나는 소프트웨어를 감시하는 것임
- 복잡성을 줄이는 것이 더 나음
-
새로운 기술이 필요하지 않음
- 기본적인 품질 관리 방법을 사용해야 함
-
금요일을 쉬는 날로 정해 더 많은 사람들이 생각할 시간을 가질 수 있도록 해야 함
-
eBPF에 버그가 있으면 Windows 커널 크래시를 유발할 수 있음
-
부팅 시 필터가 로드되고 모든 것에 연결되면 시스템을 잠글 수 있음
- Microsoft가 복구에 필요한 필수 항목을 포함하는 하드코딩된 화이트리스트를 포함하면 버그 수정이 더 쉬워질 수 있음