Skip to content
KitploitKITPLOIT
도구익스플로잇블로그
Log in
제출
도구익스플로잇블로그
제출

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

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

피드문의개인정보© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
alg_check — # Linux AF_ALG 취약점 감사 및 하드닝 도구 커널 암호화 API 노출을 확인하고, 모듈을 제한하며, 복원 스크립트를 제공하여 AF_ALG 로컬 권한 상승(CVE-2026-31431)으로부터 Linux 시스템을 감사하고 하드닝합니다. | Kitploit
도구/GitHubGitHub/professional-slacker/alg_check
Defensive ToolsVulnerability AnalysisConfiguration Auditing
GitHubprofessional-slacker/alg_check

alg_check

# Linux AF_ALG 취약점 감사 및 하드닝 도구 커널 암호화 API 노출을 확인하고, 모듈을 제한하며, 복원 스크립트를 제공하여 AF_ALG 로컬 권한 상승(CVE-2026-31431)으로부터 Linux 시스템을 감사하고 하드닝합니다.

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

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

⚠️ 중요 고지: 구조적 강화 위험

이 도구는 CVE-2026-31431을 완화하기 위해 커널 모듈을 물리적으로 이름 변경하고 메모리에서 제거하는 구조적 차단(Structural Blocking) 방식을 구현합니다. 사용 전에 다음 아키텍처 위험 사항을 숙지하시기 바랍니다:

  • 커널 업데이트 휘발성: 강화 효과는 일시적입니다. 커널 업데이트 시 새 /lib/modules/ 디렉토리에 취약한 모듈이 새로 배포되어 이전 차단 조치가 무효화됩니다.
  • 기능적 부작용: AF_ALG(커널 암호화 API)를 비활성화하면 커널 수준 하드웨어 가속에 의존하는 특정 애플리케이션이나 서비스(예: 특수 VPN, 디스크 암호화 유틸리티, 맞춤형 보안 도구)가 중단될 수 있습니다.[cite: 3]
  • 완화 vs. 패치: 이는 영구 패치가 아닌 임시 방편입니다. 배포판에서 패치된 커널이 제공될 때까지의 임시 조치입니다.

사용에 따른 책임은 본인에게 있습니다. solution.sh 실행 후 시스템의 중요 기능을 항상 검증하십시오.[cite: 3]

SSIA - 시스템 구조 무결성 감사

Linux 커널 암호화 API(AF_ALG)를 통한 LPE(로컬 권한 상승) 벡터를 발견, 진단, 차단하기 위한 도구 키트입니다.

⚠️ 중요 고지: 구조적 강화 위험

이 도구는 커널 모듈의 이름을 변경하고 메모리에서 제거하여 CVE-2026-31431을 해결하기 위해 구조적 차단(Structural Blocking) 방식을 사용합니다. 주요 아키텍처 위험 사항은 다음과 같습니다:

  • 커널 업데이트 휘발성: 효과는 일시적입니다. 커널 업데이트 시 새 /lib/modules/ 디렉토리에 취약한 모듈이 새로 배포되어 이전 차단 조치가 무효화됩니다.
  • 기능적 부작용: AF_ALG를 비활성화하면 특수 VPN, 디스크 암호화 유틸리티, 맞춤형 보안 도구 등 커널 수준 하드웨어 가속에 의존하는 서비스가 중단될 수 있습니다.
  • 완화 vs. 패치: 이는 패치된 커널이 제공될 때까지의 임시 조치인 임시 방편이지 영구 패치가 아닙니다.

사용에 따른 책임은 본인에게 있습니다.

개요

이 저장소는 AF_ALG(socket(38, 5, 0))를 통한 권한 상승 공격에 대한 진단 → 차단 → 검증 워크플로우를 구성하는 두 개의 스크립트를 제공합니다:

  • check.sh — 다계층 보안 상태 감사(비특권 실행)
  • solution.sh — AF_ALG 모듈을 메모리에서 강제 제거 + 물리적 모듈 파일 확인(루트 권한 필요)
  • restore.sh — AF_ALG 모듈을 다시 로드하고 시스템을 solution.sh 실행 전 상태로 복원(루트 권한 필요)

검사 항목

검사 항목검사 내용심각도
프로세스 컨텍스트현재 UID/GID 및 유효 capabilities낮음
AF_ALG 암호화 소켓socket(AF_ALG, ...)을 통한 커널 암호화 API 접근성높음
kptr_restrict사용자 공간에 대한 커널 포인터 가시성중간
dmesg_restrict커널 링 버퍼 접근 제한중간
SELinuxEnforcing / Permissive / Disabled 상태중간
/proc hidepid/proc가 다른 프로세스 정보를 숨기는지 여부낮음

사용법

감사(비특권)

./check.sh

차단(루트 권한 필요)

sudo ./solution.sh

복원(루트 권한 필요)

sudo ./restore.sh

복원

restore.sh는 AF_ALG 커널 모듈(af_alg, algif_rng, algif_aead, algif_skcipher, algif_hash)을 다시 로드하여 solution.sh의 효과를 되돌립니다. 물리적 모듈 파일(af_alg.ko.xz)이 이름 변경되거나 제거된 경우, 스크립트는 경고를 표시하고 모듈 로드를 시도하기 전에 수동 복원을 요청합니다.

⚠️ 경고

AF_ALG를 적극적으로 사용하는 라이브 시스템(예: IPsec, dm-crypt/LUKS 또는 하드웨어 암호화 오프로드를 사용하는 시스템)에서 solution.sh를 실행하면 모든 커널 암호화 작업이 즉시 중단됩니다. 여기에는 다음이 포함됩니다:

  • IPsec VPN 연결 및 WireGuard
  • 디스크 암호화(LUKS/dm-crypt)
  • 커널 기반 암호화를 사용하는 TLS 종료
  • algif_* 소켓 인터페이스에 의존하는 모든 컨테이너 또는 애플리케이션

이 스크립트는 AF_ALG 커널 모듈을 강제로 언로드합니다. 재부팅 전까지 커널 암호화 작업이 실패합니다. 이 스크립트는 테스트 및 분석 목적으로 에어갭, 비프로덕션 또는 폐기 가능한 시스템에서만 사용하도록 설계되었습니다. 프로덕션 또는 중요 인프라에서 실행하지 마십시오.

요구 사항

  • Linux(모든 배포판)
  • check.sh는 POSIX 셸과 /proc//sys 외에 추가 종속성이 필요 없음
  • solution.sh는 루트 권한 필요
  • restore.sh는 루트 권한 필요
  • af_alg_block.so는 /etc/ld.so.preload를 통한 설치를 위해 루트 권한 필요

WSL2 참고 사항

이 POC는 WSL2에서 테스트되었습니다. 다음 사항에 유의하십시오:

  • WSL2는 재부팅 시 모든 상태를 초기화합니다(wsl --shutdown). 여기에는 solution.sh의 커널 모듈 상태 변경, 파일 이름 변경, check.sh 결과 및 이 저장소의 로컬 파일 수정이 포함됩니다.
  • WSL2에서 영구적인 강화를 위해 .wslconfig, /etc/wsl.conf 또는 자동 시작 스크립트(예: /etc/rc.local) 구성을 별도로 고려하십시오.
  • WSL2는 테스트 및 검증 목적에 적합하지만 프로덕션 사용이나 지속적인 보안 완화에는 적합하지 않습니다.

완화

AF_ALG 공격 벡터를 확실히 차단하려면:

  1. 커널 모듈 블랙리스트 등록(가장 안정적):

    echo "blacklist af_alg" | sudo tee /etc/modprobe.d/af_alg-blacklist.conf
    

    또는 물리적 파일 이름 변경:

    sudo mv /lib/modules/$(uname -r)/kernel/crypto/af_alg.ko.xz \
            /lib/modules/$(uname -r)/kernel/crypto/af_alg.ko.xz.bak
    
  2. sysctl을 통한 AF_ALG 비활성화:

    sudo sysctl -w net.core.af_alg_disabled=1
    
  3. SELinux / AppArmor 정책을 통한 AF_ALG 소켓 생성 차단

  4. 비특권 사용자 네임스페이스 비활성화(컨테이너 환경):

    sudo sysctl -w kernel.unprivileged_userns_clone=0
    
  5. LD_PRELOAD를 통한 socket() syscall에서 AF_ALG 차단(WSL2 임시 방편):

    # 시스템 전체 설치(루트 권한 필요)
    echo /absolute/path/to/af_alg_block.so | sudo tee -a /etc/ld.so.preload
    

    사전 빌드된 공유 라이브러리(af_alg_block.so)가 저장소에 포함되어 있습니다. 이 라이브러리는 socket(2)를 가로채서 도메인이 AF_ALG(38)인 경우 EAFNOSUPPORT를 반환합니다. 다른 모든 소켓 호출은 변경 없이 실제 구현으로 전달됩니다.

    이 접근 방식은 주로 단일 사용자 의미 체계와 재부팅 시 초기화 동작으로 인해 시스템 전체 LD_PRELOAD가 실용적인 WSL2를 대상으로 합니다. 기존의 다중 사용자 Linux 시스템에서는 방법 1(모듈 블랙리스트)을 선호하십시오 — /etc/ld.so.preload를 통한 주입은 시스템의 모든 프로세스에 영향을 미치며 AF_ALG 의존 서비스를 조용히 중단시킬 수 있습니다.

    참고: glibc(musl 아님) 필요. /etc/ld.so.preload는 수정에 루트 권한이 필요합니다. 제거는 파일에서 해당 줄을 삭제하여 수행합니다.

라이선스

MIT

도구 다운로드