BPF로 리눅스 관측 가능성 향상하기 - 성능 분석과 네트워킹을 위한 고급 프로그래밍
데이비드 칼라베라.로렌초 폰타나 지음, 류광 옮김 / 한빛미디어 / 2020년 5월
평점 :
장바구니담기


컴퓨터 기술이 발전하면서 관측의 중요성이 올라가는데요. 중요 정보가 있는 사이트의 경우 보안 부분에 민감한 경우들이 많이 있습니다. 일반 사이트 경우 보안이 취약할 경우 회원가입을 했는지 확인하기 위해 아이디를 쳐보고 확인합니다. 비밀번호만 틀렸다고 알려주는 창이 나오면 회원 가입한 아이디이기 때문에 아이디 정보를 얻을 수 있는 문제가 발생합니다. 그래서 보안을 유지하기 위해서는 아이디, 비밀번호 둘 중 하나라도 틀릴 경우 동일한 응답이 나오게 해야 됩니다.

 

응답은 아이디와 비밀번호가 틀렸다는 것을 응답하므로 추측을 못 하게 보완됐습니다. 이번에 알아볼 저서는 BPF로 리눅스 관측 가능성 향상하기입니다. BPF는 버클리 패킷 필터로 네트워크 트래픽을 분석하기 위해 사용되는 기술입니다. 이 저서에 가장 먼저 만나게 되는 문장은 비야네 스트롭스트룹의 우리의 문명은 소프트웨어를 바탕으로 돌아간다.” 인용글을 볼 수 있는데요. 소프트웨어의 기반으로 현대 문명을 지탱하는 컴퓨팅 기반구조에서 큰 자리를 차지하고 있는 것이 바로 리눅스 커널입니다.

 

우리 사람에 직·간접적으로 영향을 미치는 수많은 소프트웨어가 리눅스 커널에 의존하며, 어떤 운영체제이든 커널은 극도의 성능과 보안이 요구되는 영역입니다. 리눅스 커널은 아무나 건드릴 수 없는 소수의 전문가에게만 허용되는 영역으로 간주하는데요. 그 점을 생각하면, 평범한 개발자도 스크립팅과 vm을 통해 편하고 안전하게 리눅스 커널 안에서 원하는 코드를 실행하게 하는 BPF의 기술은 흥미롭다고 생각합니다.

 

먼저 관측 가능성 접근 방식은 주어진 임의의 시스템에 대해 임의의 복잡한 질문을 던지고 그 응답을 얻을 수 있는 능력을 정의하는데요. 관측 가능성과 로그, 측정치 취합의 차이점은 각각이 수집하는 자료에 있습니다. 관측 가능성을 활용한다는 것이 임의의 시점에서 임의의 질문에 대한 답을 얻을 필요가 있다는 뜻이라고 할 때, 자료로부터 응용 프로그램의 행동을 추론하려면 시스템이 생성하는 모든 자료를 수집해야 하며, 그러면서도 질문에 대한 답을 얻어야 할 필요가 있을 때만 그 자료를 취합해야 합니다.

 

이 저서는 컴퓨팅 시스템의 관측 가능성을 높이는 데 도움이 되는 BPF의 여러 강력한 기능들을 제시합니다.

 

BPF 패킷 필터는 시스템 네트워크를 감시하는 데 사용하는데요. 커널과 사용자 공간 사이의 주된 자료를 교환할 때는 BPF 맵을 사용하며, BPF 확장되면서 커널 시스템의 변화 된 것도 볼 수 있습니다. eBPF는 기존 BPF 구현보다 최대 4배 빠르게 작동합니다. 예전 32bit 레지스터 2개에서 64bit 레지스터 열개로 확장됐습니다. BPF로 표기를 하지만 업그레이 된 부분으로 이해하고 개념을 배울 수 있습니다.

 

직접 자료를 취합하거나 분류할 수 있다는 점이다. 이는 수집한 자료를 손실 가능성 있는 대기열을 거쳐 사용자 공간에 보낸 후 거기서 취합, 처리해야 하는 기존 도구들에 비해 BPF의 확실한 장점을 볼 수 있습니다. 다양한 프로그래밍 언어로 BPF 프로그램을 작성하는 방법도 설명하고 있습니다. 또한 예제 코드를 https://oreil.ly/lbpf-repo에서 확인 할 수 있습니다.

 

BPF는 리눅스 4.18부터 도입된 기능으로 리눅스 기능을 확장해줍니다. 기능 확장을 통해 관측 가능성도 향상할 수 있으며, 관측하게 되면 시스템을 안정적으로 운영 가능합니다. BPF 학습을 통해 보안능력이 향상되시길 바랍니다. 이 저서의 주 독자층은 시스템 엔지니어와 네트워크 성능 분석 전문가, 리눅스 커널 개발자 등이 많을 거로 생각합니다. 이번 기회에 BPF를 이용해서 자신을 업글할 수 있는 추적 프로그램을 작성하는 방법을 추천합니다.


댓글(0) 먼댓글(0) 좋아요(0)
좋아요
북마크하기찜하기 thankstoThanksTo