리틀 스니치 for Linux
1 day ago
2
- 애플리케이션의 네트워크 연결을 시각화하고 제어할 수 있는 도구로, 어떤 프로그램이 어떤 서버와 통신하는지 확인 가능
-
Connections View에서 실시간 및 과거 트래픽을 앱별로 표시하며, 클릭 한 번으로 연결 차단과 데이터 사용량 추적 지원
-
Blocklists와 Rules 기능을 통해 원치 않는 트래픽을 범주별 또는 세부 조건별로 정교하게 제어 가능
- 내부적으로 eBPF를 이용해 커널 수준에서 연결을 감시하고, 웹 UI를 통해 PWA 형태의 인터페이스 제공
-
보안 도구가 아닌 프라이버시 중심 도구로, 일반 소프트웨어의 외부 통신 차단에는 적합하지만 고급 공격 방어용으로는 제한적임
개요
-
Little Snitch for Linux는 애플리케이션의 네트워크 연결을 실시간으로 시각화하고 제어할 수 있는 도구
- 어떤 애플리케이션이 어떤 서버와 통신하는지 확인 가능
- 원치 않는 연결 차단, 트래픽 기록, 데이터 사용량 추적 기능 제공
-
Linux 커널 6.12 이상과 BTF 커널 지원 필요
- 웹 UI는 http://localhost:3031/에서 접근 가능하며, PWA(Progressive Web App) 형태로 설치 가능
연결 모니터링
-
Connections View에서 현재 및 과거 네트워크 활동을 애플리케이션별로 표시
- 규칙과 차단 목록에 의해 차단된 항목, 데이터 사용량, 트래픽 히스토리 표시
- 최근 활동, 데이터량, 이름 기준으로 정렬 및 필터링 가능
- 클릭 한 번으로 연결 차단 가능
- 하단의 트래픽 다이어그램은 시간에 따른 데이터량을 시각화
- 특정 구간을 드래그해 확대하면 해당 기간의 활동만 필터링되어 표시됨
차단 목록 관리
-
Blocklists 기능으로 원치 않는 트래픽 범주를 일괄 차단 가능
- 원격 소스에서 자동 다운로드 및 최신 상태 유지
- 지원 형식: 도메인당 한 줄, 호스트명당 한 줄, /etc/hosts 형식(IP + 호스트명), CIDR 네트워크 범위
-
와일드카드, 정규식, glob, URL 기반 형식은 지원하지 않음
- 효율성을 위해 도메인 기반 목록 사용 권장
- 예시 목록: Hagezi, Peter Lowe, Steven Black, oisd.nl
- macOS용 .lsrules 형식은 Linux 버전과 호환되지 않음
사용자 정의 규칙
-
Rules 기능은 블록리스트보다 세밀한 제어 제공
- 특정 프로세스, 포트, 프로토콜 단위로 설정 가능
- 규칙 목록은 정렬 및 필터링 가능
- 규칙을 통해 세부적인 네트워크 제어 정책 구성 가능
접근 보안
- 기본적으로 웹 인터페이스는 로컬에서 실행 중인 모든 프로세스가 접근 가능
- 악성 애플리케이션이 규칙 변경, 차단 목록 수정, 필터 비활성화 가능성 존재
- 이를 방지하기 위해 인증 요구 설정 가능
- 세부 설정은 고급 구성(Advanced configuration)에서 수행
내부 구조
-
eBPF를 이용해 Linux 네트워크 스택에 후킹
- eBPF 프로그램이 출력 연결을 감시하고 데이터를 데몬으로 전달
- 데몬은 통계 추적, 규칙 처리, 웹 UI 제공 역할 수행
- eBPF 프로그램과 웹 UI의 소스코드는 GitHub에서 공개
고급 구성
- 기본 UI는 주요 설정만 노출하며, 고급 설정은 텍스트 파일로 구성
- 변경 후 littlesnitch 데몬 재시작 필요
- 기본 설정 경로: /var/lib/littlesnitch/config/
- 직접 수정하지 말고, 수정할 파일을 /var/lib/littlesnitch/overrides/config/로 복사 후 편집
- override 디렉터리의 설정이 항상 우선 적용됨
- 주요 설정 파일
-
web_ui.toml: 네트워크 주소, 포트, TLS, 인증 설정
- 여러 사용자가 접근 가능할 경우 인증 활성화 필요
- 루프백 외부 노출 시 TLS 추가 필요
-
main.toml: 규칙에 일치하지 않는 연결의 기본 동작 설정
- 기본값은 허용이며, 필요 시 거부로 변경 가능
- 잘못 설정 시 시스템 접근 불가 위험 존재
-
executables.toml: 실행 파일 그룹화 규칙
- 버전 번호 제거로 동일 앱의 여러 버전을 하나로 표시
- 셸 및 앱 관리 프로세스의 부모 관계 정의
- 커뮤니티 피드백을 통해 지속 개선
- eBPF 프로그램과 웹 UI는 사용자 빌드 버전으로 교체 가능
- override 디렉터리의 버전이 우선 적용됨
한계점
-
보안 도구가 아닌 프라이버시 도구로 설계
- macOS 버전보다 단순하며, eBPF 제약으로 기능적 한계 존재
- eBPF는 저장 공간 및 프로그램 복잡도 제한이 있어
- 트래픽이 많을 경우 캐시 테이블이 넘쳐 패킷과 프로세스, DNS 이름 간 매핑이 불완전해질 수 있음
- IP 주소에서 원래 조회된 호스트명을 복원할 때 추론(heuristics) 사용
- macOS 버전은 딥 패킷 검사(DPI) 로 더 정확한 매핑 수행
-
일반 소프트웨어의 외부 통신 감시 및 차단에는 적합하지만
고급 공격자에 대한 시스템 방어용으로는 부적합
라이선스
- 구성 요소 3개로 구성
-
eBPF 커널 프로그램과 웹 UI는 GNU GPL v2로 공개, GitHub에서 이용 가능
-
데몬(littlesnitch --daemon) 은 비공개(proprietary) 이지만 무료 사용 및 재배포 가능
-
Homepage
-
개발자
- 리틀 스니치 for Linux