BPF를 사용한 SSH 향상된 세션 녹화
BPF를 사용하여 SSH 세션 명령을 녹화하는 방법.
이 가이드는 BPF를 사용한 SSH 향상된 세션 녹화와 Teleport 클러스터에서 설정하는 방법을 설명합니다. Teleport의 기본 SSH 및 Kubernetes 세션 녹화 기능은 터미널에 출력되는 내용을 캡처합니다. 이에는 본질적인 장점이 있습니다. 예를 들어, 입력이 캡처되지 않으므로 Teleport 세션 녹화에는 일반적으로 터미널에 입력된 비밀번호가 포함되지 않습니다. 단점은 세션 녹화를 덜 유용하게 만드는 몇 가지 기술이 있다는 것입니다: 난독화 . 예를 들어, echo Y3VybCBodHRwOi8vd3d3LmV4YW1wbGUuY29tCg== | base64 --decode | sh 명령은 curl http://www.example.com 을 포함하지 않지만, 디코딩하면 그것이 실행됩니다. 셸 스크립트 . 예를 들어, 사용자가 스크립트를 업로드하고 실행하면 스크립트 내에서 실행된 명령은 캡처되지 않고 출력만 캡처됩니다. 터미널 제어 . 터미널은 터미널 에코를 비활성화하는 기능을 포함한 다양한 제어를 지원합니다. 이는 자격 증명을 요청할 때 자주 사용됩니다. 터미널 에코를 비활성화하면 명령이 캡처되지 않고 실행될 수 있습니다. 또한 구조화되지 않은 특성으로 인해 세션 녹화는 모니터링 및 알림에 수집하고 활용하기 어렵습니다. Teleport 향상된 세션 녹화는 고급 보안과 더 큰 로깅 기능을 제공하고 사용자와 그 활동을 더 잘 연관시켜 세 가지 우려 사항을 모두 해소합니다. 보안 경고 Teleport 향상된 세션 녹화는 자체적으로 안전한 환경을 제공하지 않으며 Linux 보안 모듈(SELinux, AppArmor 등)의 대체품이 아닙니다. 핵심 시스템 바이너리 및 라이브러리에 대한 적절한 접근 제어와 잘 설계된 사용자 관리를 포함하여 신뢰할 수 있는 호스트 환경을 강제하는 합리적인 시스템 강화 방법과 함께 사용해야 합니다. 권한 있는 사용자(root 또는 sudo 통해)는 세션 녹화 활동에 간섭할 수 있습니다(필요한 라이브러리 언로딩/비활성화, Teleport 실행 방식 변경, 커널 기능 조작, 터널 생성 또는 제한된 세션 외부에서 작업 수행 등). 또한 모니터링되는 세션과 모니터링되지 않는 콘솔 세션 또는 ptrace 권한이 모두 있는 로컬 사용자는 녹화에 완전히 캡처되지 않을 수 있습니다. 데몬(systemd, crond, atd 등)을 통해 실행된 명령은 녹화된 세션 범위 밖에 있을 수 있습니다. 무단 데이터 전송을 방지하기 위해 이그레스 트래픽에 대한 적절한 네트워크 기반 제한도 구현해야 합니다. 또한 전체 바이너리 경로(잠재적인 심볼릭 링크 고려), 공유 라이브러리 사전 로딩을 통한 수정 사항, 환경 변수와 같은 특정 포렌식 정보는 세션 녹화에 캡처되지 않을 수 있습니다. 사전 요구사항 # A running Teleport cluster. If you want to get started with Teleport, sign up for a free trial or set up a demo environment . The t
