Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
copyfail-guard — CVE-2026-31431 복사 실패에 대한 빠르고 감사 가능한 Linux 완화: algif_aead 차단, 검증 및 AF_ALG seccomp 강화. | Kitploit
도구/GitHubGitHub/juliosuas/copyfail-guard
Defensive ToolsContainer SecurityVulnerability AnalysisConfiguration AuditingCloud SecurityDevSecOpsIncident Response
GitHubjuliosuas/copyfail-guard

copyfail-guard

CVE-2026-31431 복사 실패에 대한 빠르고 감사 가능한 Linux 완화: algif_aead 차단, 검증 및 AF_ALG seccomp 강화.

저장소 보기
221개월 전아직 검토되지 않음

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

CopyFail Guard

CI License: MIT Platform Shell No exploit code

root@kitploit:~
   ______                 ______      _ __   ______                     __
  / ____/___  ____  __  _/ ____/___ _(_) /  / ____/_  ______ __________/ /
 / /   / __ \/ __ \/ / / / /_  / __ `/ / /  / / __/ / / / __ `/ ___/ __  /
/ /___/ /_/ / /_/ / /_/ / __/ / /_/ / / /  / /_/ / /_/ / /_/ / /  / /_/ /
\____/\____/ .___/\__, /_/    \__,_/_/_/   \____/\__,_/\__,_/_/   \__,_/
          /_/    /____/

커널이 패치되는 동안 CVE-2026-31431 “Copy Fail”에 대한 빠르고 감사 가능한 Linux 노출 평가 및 완화 도구입니다.

CopyFail Guard는 Linux 시스템 관리자, DevSecOps 엔지니어, 플랫폼 팀 및 침해 대응 담당자를 위한 방어 운영 도구입니다. Linux algif_aead/AF_ALG 문제에 대한 노출을 다음과 같이 줄이는 데 도움을 줍니다:

  • 익스플로잇 코드 없이 안전하게 노출 평가
  • algif_aead의 사용 가능 여부, 로드됨, 빌트인 또는 이미 차단됨 확인
  • 영구적인 modprobe.d 차단 설치 및 안전한 경우 모듈 언로드
  • Docker, Podman, Kubernetes seccomp 프로필에 AF_ALG 거부 규칙 추가
  • 익스플로잇 코드를 제공하지 않고 AF_ALG 접근 가능성 검증

최종 수정: 공급업체의 패치된 커널을 설치하고 재부팅하세요. 이 도구는 공개와 전체 플릿 패치 사이의 운영상의 공백을 메웁니다.

운영자가 신뢰할 수 있는 이유

  • 익스플로잇 코드 없음: 페이지 캐시 쓰기, splice, setuid 변경, 권한 상승 또는 파괴적인 프로브 없이 노출과 AF_ALG 접근 가능성 확인.
  • 감사 가능한 호스트 변경: 호스트 완화는 하나의 관리 파일 /etc/modprobe.d/99-copyfail-guard.conf를 작성하며, 롤백은 해당 파일만 제거합니다.
  • 기준 유지 seccomp: seccomp-patch는 기존 Docker/Podman/Kubernetes seccomp 프로필에 AF_ALG 거부를 추가하여 런타임 강화를 대체하지 않습니다.
  • 자동화 준비: assess --json 및 문서화된 종료 코드로 플릿 스캔, SIEM 캡처 및 변경 관리 증거 지원.
  • CI 검증: 셸 구문, seccomp 프로필 생성, JSON 출력 및 일반적인 Linux 배포 컨테이너에서의 스모크 테스트 실행.

30초 진단 경로

Linux 호스트에서 빠른 답변이 필요하다면:

root@kitploit:~
git clone --depth 1 https://github.com/juliosuas/copyfail-guard.git
cd copyfail-guard
sudo ./bin/copyfail-guard.sh doctor
sudo ./bin/copyfail-guard.sh assess

판정이 노출됨이고 algif_aead가 모듈형이라면:

root@kitploit:~
sudo ./bin/copyfail-guard.sh mitigate --yes
sudo ./bin/copyfail-guard.sh verify

반복 설치를 위해 릴리스 태그를 고정하려면:

root@kitploit:~
git clone --branch v0.3.0 --depth 1 https://github.com/juliosuas/copyfail-guard.git

최신 태그된 릴리스가 나오면 v0.3.0을 해당 버전으로 바꾸세요.

영향을 받나요?

먼저 안전한 노출 검사를 실행하세요:

root@kitploit:~
sudo ./bin/copyfail-guard.sh assess

결과를 읽는 방법:

신뢰할 수 없는 컨테이너, CI 작업, 샌드박스 또는 다중 사용자 워크로드를 실행하는 경우 해당 런타임 내에서 AF_ALG 소켓 생성이 차단되었는지도 테스트하세요:

root@kitploit:~
python3 tools/afalg-socket-test.py

PERMITTED는 성공적인 익스플로잇을 증명하지 않지만, 관련 사용자 공간 암호화 API에 접근 가능하다는 것을 증명합니다. 방어 운영의 경우, 패치된 커널 롤아웃을 확인하는 동안 완화를 적용할 충분한 이유입니다.

취약점을 증명하나요?

파괴적인 개념 증명은 포함되지 않았습니다. 이는 기능이지 결함이 아닙니다.

실제 Copy Fail 익스플로잇 증명은 커널 메모리/페이지 캐시 영향 또는 권한 상승을 검증해야 합니다. 공용 완화 저장소에 이를 포함하면 프로젝트의 안전성과 프로덕션 배포 가능성이 낮아집니다.

CopyFail Guard는 운영자가 안전하게 조치할 수 있는 사항을 증명합니다:

  • 위험 구성 요소의 사용 가능, 로드됨, 빌트인 또는 차단 여부
  • 대상 런타임에서 AF_ALG 소켓 생성이 허용되는지 여부
  • 호스트에 임시 완화가 적용되었는지 여부
  • 남은 필수 조치가 언로드, 재부팅, seccomp 또는 공급업체 패치인지 여부

최종 취약점 상태에 대해서는 이 도구를 공급업체 권고/패키지 인벤토리 및 재부팅 증거와 결합하세요.

해결 모델

CopyFail Guard는 완화이지 치료가 아닙니다. 노출을 줄이고 임시 통제를 확인합니다. 지속적인 수정은 공급업체 패치 커널과 재부팅입니다.

이 도구는 침해 대응을 위해 의도적으로 클론 앤 런 방식입니다: 코어 호스트 워크플로우에는 컴파일러, 커널 헤더, 익스플로잇 코드 또는 타사 패키지 관리자가 필요하지 않습니다. python3는 --json 출력, seccomp-patch 및 비익스플로잇 AF_ALG 소켓 테스트에 필요합니다.

빠른 시작

클론 앤 런:

root@kitploit:~
git clone https://github.com/juliosuas/copyfail-guard.git
cd copyfail-guard
chmod +x bin/copyfail-guard.sh

sudo ./bin/copyfail-guard.sh doctor
sudo ./bin/copyfail-guard.sh assess
sudo ./bin/copyfail-guard.sh mitigate --yes
sudo ./bin/copyfail-guard.sh verify

선택적 시스템 설치:

root@kitploit:~
git clone https://github.com/juliosuas/copyfail-guard.git
cd copyfail-guard
sudo ./scripts/install.sh
sudo copyfail-guard status

설치 프로그램은 소스와 대상을 고정하여 통제된 롤아웃을 지원합니다:

root@kitploit:~
sudo env COPYFAIL_GUARD_REF=v0.3.0 ./scripts/install.sh

최신 태그된 릴리스가 나오면 COPYFAIL_GUARD_REF에 해당 버전을 사용하세요.

컨테이너/CI 강화:

root@kitploit:~
./bin/copyfail-guard.sh seccomp-patch docker-default.json copyfail-seccomp.json
docker run --security-opt seccomp=./copyfail-seccomp.json IMAGE

보호된 컨테이너 내에서 AF_ALG가 차단되었는지 확인:

root@kitploit:~
docker run --rm \
  --security-opt seccomp=./copyfail-seccomp.json \
  -v "$PWD/tools:/tools:ro" \
  python:3.12-alpine \
  python /tools/afalg-socket-test.py

예상 보호 결과:

root@kitploit:~
BLOCKED: socket(AF_ALG) denied by policy (...)

예상 판정, JSON 형태 및 컨테이너 검증 결과는 샘플 출력을 참조하세요.

이것이 중요한 이유

Copy Fail은 AF_ALG 사용자 공간 암호화 API의 algif_aead 구성 요소에서 발생하는 Linux 커널 로컬 권한 상승입니다. 공개 권고에서는 권한이 없는 로컬 사용자가 접근할 수 있고 특히 공유 커널 시스템(Kubernetes 노드, CI/CD 러너, 멀티 테넌트 호스트, 에이전트 샌드박스, 개발자 박스)에서 위험한 페이지 캐시 쓰기 프리미티브를 설명합니다.

올바른 수정은 업스트림 되돌리기/수정을 포함한 공급업체 커널 업데이트와 패치된 커널로 재부팅입니다. CopyFail Guard는 전 플릿에 재부팅이 완료되기 전의 기간을 위한 방어 운영 도우미입니다.

도구가 수행하는 작업

설치 요구 사항

코어 호스트 명령:

  • Linux
  • bash
  • kmod 도구: modinfo, modprobe, lsmod, rmmod (사용 가능한 경우)
  • grep, awk, mktemp, install

선택적 가시성 도구:

  • lsof 또는 ss (AF_ALG 소비자 확인용)

Seccomp 프로필 패치:

  • --json, seccomp-patch 및 tools/afalg-socket-test.py에는 python3 필요

익스플로잇 코드, 컴파일러, 커널 헤더 또는 타사 패키지는 필요하지 않습니다.

안전한 평가 vs 개념 증명

CopyFail Guard는 익스플로잇 개념 증명을 포함하지 않습니다. 이는 의도적입니다. 취약점을 증명하나요? 참조.

대신 assess는 안전한 운영 점검을 수행합니다:

  • algif_aead가 사용 가능, 로드됨, 빌트인 또는 차단된 것으로 보이는지 감지
  • "임시 완화됨"과 "실제로 해결됨"을 구분
  • 호스트 완화, seccomp 또는 패치/재부팅 권장
  • 플릿 자동화를 위한 종료 코드 반환

자동화 JSON:

root@kitploit:~
sudo ./bin/copyfail-guard.sh assess --json
./bin/copyfail-guard.sh doctor --json

종료 코드:

호스트 완화 세부 사항

mitigate는 다음을 작성합니다:

root@kitploit:~
/etc/modprobe.d/99-copyfail-guard.conf

내용:

root@kitploit:~
# CopyFail Guard에서 CVE-2026-31431을 위해 관리함
install algif_aead /bin/false
blacklist algif_aead

그런 다음 시도:

root@kitploit:~
sudo rmmod algif_aead

모듈이 현재 사용 중이면 rmmod가 실패할 수 있습니다. 그 경우에도 영구 차단은 설치된 상태로 유지됩니다; AF_ALG 소비자를 중지하거나 완화 적용 후 재부팅하세요.

스크립트는 관리되는 modprobe 경로에서 심볼릭 링크를 덮어쓰지 않으며 파일을 안전한 권한으로 원자적으로 작성합니다.

컨테이너 및 CI 강화

신뢰할 수 없는 워크로드의 경우 호스트를 패치하는 동안에도 seccomp로 AF_ALG 소켓 생성을 차단하세요.

권장 경로: 기존 런타임 seccomp 기준을 교체하는 대신 패치하세요:

root@kitploit:~
./bin/copyfail-guard.sh seccomp-patch docker-default.json copyfail-seccomp.json

Docker와 함께 사용:

root@kitploit:~
docker run --security-opt seccomp=./copyfail-seccomp.json IMAGE

Podman과 함께 사용:

root@kitploit:~
podman run --security-opt seccomp=./copyfail-seccomp.json IMAGE

기준 프로필이 없는 경우 긴급 전용 경로:

root@kitploit:~
./bin/copyfail-guard.sh seccomp-docker ./copyfail-afalg-seccomp.json

생성된 긴급 프로필은 AF_ALG를 차단하지만 다른 syscall은 허용합니다. Docker의 일반적인 기본 seccomp 강화를 대체하는 것이 아니라 대상 임시 방편으로 취급하세요.

Kubernetes의 경우 kubelet seccomp 루트 아래에 프로필을 배치하세요. 일반적으로:

root@kitploit:~
/var/lib/kubelet/seccomp/profiles/copyfail-seccomp.json

그런 다음 다음과 같이 참조하세요:

root@kitploit:~
securityContext:
  seccompProfile:
    type: Localhost
    localhostProfile: profiles/copyfail-seccomp.json

examples/kubernetes-seccomp-pod.yaml 참조.

안전한 검증

이 프로젝트에는 비익스플로잇 AF_ALG 접근성 테스트가 포함되어 있습니다:

root@kitploit:~
python3 tools/afalg-socket-test.py

AF_ALG 소켓을 생성하고 닫는 것만 시도합니다. 암호화 작업을 바인딩하거나, splice를 호출하거나, setuid 바이너리를 건드리거나, 페이지 캐시를 손상시키거나, 권한 상승을 시도하지 않습니다.

결과:

  • BLOCKED는 정책이 해당 프로세스에 대해 AF_ALG를 거부했음을 의미합니다.
  • PERMITTED는 해당 프로세스에 대해 AF_ALG 소켓 생성이 여전히 허용됨을 의미합니다.
  • UNSUPPORTED는 해당 런타임에서 AF_ALG를 사용할 수 없음을 의미합니다.

커뮤니티 검증

CopyFail Guard는 Linux 호스트, 컨테이너 런타임, CI 러너 및 Kubernetes 노드에서 실제 호환성 보고가 필요합니다. 안전하게 테스트할 수 있다면, 검증된 doctor, assess --json, verify 또는 AF_ALG 소켓 테스트 출력과 함께 호환성 보고 이슈를 열어주세요.

유용한 보고는 다음 질문에 답하는 데 도움이 됩니다:

  • 어떤 배포판/커널/런타임 조합이 완화하기 쉬운가
  • algif_aead가 빌트인되어 패치/재부팅만 필요한 경우는 어디인가
  • 어떤 seccomp 기준에 런타임별 참고 사항이 필요한가
  • 문서가 침해 대응 사용에 충분히 명확한가

커뮤니티 검증 가이드 참조.

명령어

root@kitploit:~
copyfail-guard assess                 안전한 노출 평가, 익스플로잇 시도 없음
copyfail-guard status                 호스트 노출 지표 검사
copyfail-guard doctor                 종속성 및 런타임 준비 상태 확인
copyfail-guard mitigate               algif_aead를 영구적으로 비활성화하고 언로드
copyfail-guard verify                 호스트 완화 활성화 확인
copyfail-guard rollback               CopyFail Guard의 modprobe 완화 제거
copyfail-guard seccomp-docker [FILE]  긴급 AF_ALG 거부 프로필 생성
copyfail-guard seccomp-patch BASE OUT 기존 seccomp 프로필 안전하게 패치
copyfail-guard k8s-example            Kubernetes seccomp 예제 출력

플래그는 명령어 앞이나 뒤에 배치할 수 있습니다:

root@kitploit:~
--dry-run      파일 쓰기 또는 모듈 언로드 없이 계획된 변경 사항 표시
--yes          비대화형 확인
--no-logo      ASCII 배너 비활성화
--json         지원되는 명령어(assess, doctor)에 대해 JSON 출력

깨지지 않아야 할 것

일반적인 구성에서 algif_aead를 비활성화해도 다음에는 영향을 주지 않을 것으로 예상됩니다:

  • LUKS / dm-crypt
  • SSH
  • OpenSSL, GnuTLS, NSS 기본 빌드
  • kTLS / 커널 내 TLS
  • IPsec / XFRM
  • 일반적인 커널 내 암호화 소비자

AF_ALG 엔진을 명시적으로 사용하도록 구성된 애플리케이션이나 직접 AF_ALG 소켓을 생성하는 애플리케이션에는 영향을 줄 수 있습니다. 먼저 확인하세요:

root@kitploit:~
sudo lsof | grep AF_ALG || true
ss -xa | grep -i alg || true

운영자 문서

  • 침해 대응 런북
  • 플릿 롤아웃 가이드
  • 커뮤니티 검증 가이드
  • 샘플 출력
  • 릴리스 체크리스트
  • Seccomp 검증 노트
  • 안전한 평가 모델
  • 보안 정책
  • 지원 정책
  • 기여 가이드
  • 변경 로그

프로젝트 성숙도

  • 현재 범위: 방어 평가, 모듈형 algif_aead에 대한 호스트 완화, 신뢰할 수 없는 워크로드에 대한 seccomp 강화 및 롤백.
  • 지원 사용자: Linux 호스트 및 컨테이너 강화에 익숙한 운영자.
  • 릴리스 스타일: 태그된 릴리스, 변경 로그 항목, GitHub Actions 스모크 테스트 및 재현 가능한 보고를 위한 이슈 템플릿.
  • 커뮤니티 신호: 호환성 보고가 가장 강력한 신뢰 신호입니다; 현장 증거는 문서, 테스트 및 예제가 될 수 있습니다.
  • 안정성 약속: 익스플로잇 동작 회피, 호스트 쓰기 좁게 유지, 종료 코드 의미 문서화, 기존 런타임 seccomp 기준 유지.

한계

CopyFail Guard는 다음을 하지 않습니다:

  • 커널 패치
  • 정확한 커널 빌드가 익스플로잇 가능한지 증명
  • 익스플로잇 코드 제공
  • 이미 손상된 루트 사용자로부터 보호
  • EDR, 플릿 인벤토리, 공급업체 권고 또는 재부팅 계획을 대체

호스트 모듈 완화는 모듈형 algif_aead에 대해 작동합니다. algif_aead가 커널에 빌트인된 경우 modprobe.d와 rmmod로 비활성화할 수 없습니다; 패치/재부팅이 필수이며 패치 중에는 신뢰할 수 없는 워크로드에 대해 seccomp를 사용해야 합니다.

Seccomp는 프로필로 실행된 워크로드만 보호합니다. 기존 실행 중인 컨테이너 또는 파드는 강화된 프로필로 다시 시작해야 합니다.

롤백

root@kitploit:~
sudo ./bin/copyfail-guard.sh rollback --yes

롤백은 이 도구에서 관리하는 파일만 제거합니다. 모듈을 다시 로드하지 않습니다. 명시적으로 필요하고 위험을 수락했거나 커널을 패치한 경우에만 재부팅하거나 수동으로 modprobe algif_aead를 실행하세요.

FAQ

이것이 패치를 대체합니까?

아니요. 패치와 재부팅이 최종 수정입니다.

이것이 익스플로잇을 테스트합니까?

아니요. 프로젝트는 의도적으로 익스플로잇 동작을 피합니다. tools/afalg-socket-test.py는 AF_ALG 소켓 생성이 접근 가능한지만 확인합니다.

호스트 완화 후에도 컨테이너에서 AF_ALG를 차단하는 이유는 무엇입니까?

심층 방어입니다. 컨테이너 및 CI 워크로드는 신뢰할 수 없는 코드가 공유 커널에서 실행되는 일반적인 장소입니다. Seccomp는 해당 워크로드에 대해 이 공격 클래스의 첫 번째 단계를 도달 불가능하게 만듭니다.

새 프로필을 생성하는 대신 기존 seccomp 프로필을 패치하는 이유는 무엇입니까?

기본 런타임 프로필에는 많은 강화 결정이 포함되어 있기 때문입니다. 이를 최소 긴급 프로필로 대체하면 실수로 보호 조치가 제거될 수 있습니다. seccomp-patch는 기준을 유지하고 AF_ALG 거부를 추가합니다.

이것을 플릿 전체에 사용할 수 있습니까?

예. doctor와 assess --json으로 시작하고, 작은 Linux 샘플에서 완화를 단계별로 적용한 다음 호스트 완화와 seccomp 프로필 변경을 별도로 롤아웃하세요. 플릿 롤아웃 가이드 참조.

참고 자료

  • NVD: CVE-2026-31431
  • CERT-EU 권고: Linux 커널의 높은 취약점 ("Copy Fail")
  • CISA 알려진 익스플로잇 취약점 카탈로그 항목
  • copy.fail 공개 기술 권고
  • Linux 안정 수정: crypto: algif_aead - Revert to operating out-of-place

저자

Julio César Suástegui Calderón이 만들었습니다.

보안 엔지니어링, Linux 시스템 및 실용적인 방어 자동화.

라이선스

MIT

도구 다운로드
판정 계열의미조치
EXPOSED_*algif_aead/AF_ALG가 접근 가능하거나 로드 가능한 것으로 보임지금 완화, 이후 패치 후 재부팅
PARTIALLY_MITIGATED_*차단이 존재하지만 로드된 모듈이나 재부팅 상태가 여전히 중요함안전하게 재부팅 또는 언로드 후 확인
INTERIM_MITIGATED_*로컬 완화가 활성화됨유지하지만 여전히 패치 후 재부팅
LOW_OBVIOUS_EXPOSURE_*로컬 검사에서 명백한 algif_aead 노출을 찾지 못함그래도 공급업체 패치 상태 확인
영역명령목적
안전한 평가assess비익스플로잇 노출 판정, 다음 조치 및 자동화 친화적 종료 코드 제공
종속성 확인doctor필요/선택 도구 확인 및 런타임 제한 설명
호스트 검사statusOS/커널, 모듈 사용 가능 여부, 로드 상태, 빌트인 경고, modprobe 차단 및 명백한 AF_ALG 소비자 표시
호스트 완화mitigate/etc/modprobe.d/99-copyfail-guard.conf 작성 및 algif_aead 언로드 시도
확인verify모듈이 로드되었거나 빌트인이거나 차단되지 않은 경우 명확하게 실패
롤백rollbackCopyFail Guard가 관리하는 modprobe 파일만 제거
컨테이너seccomp-patch기존 seccomp 프로필에 socket(AF_ALG, ...)를 거부하도록 패치, 정상 소켓 사용은 유지
긴급 프로필seccomp-docker긴급 사용을 위한 대상 AF_ALG 거부 프로필 생성
Kubernetesk8s-exampleLocalhost seccomp 파드 예제 출력
코드의미
0로컬 검사에서 명백한 노출 낮음
1임시 완화 활성화, 패치/재부팅 여전히 필요
10노출됨/완화 가능
11부분 완화됨; 재부팅 또는 언로드 필요
12빌트인 모듈 경로; 패치/재부팅 필요
20알 수 없는 평가 상태