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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
cleverhans — 공격을 구성하고 방어를 구축하며 둘 모두를 벤치마킹하기 위한 적대적 예제 라이브러리 | Kitploit
도구/GitHubGitHub/cleverhans-lab/cleverhans
Defensive ToolsVulnerability AnalysisMachine LearningAI SecurityAdversarial Attack
GitHubcleverhans-lab/cleverhans

cleverhans

공격을 구성하고 방어를 구축하며 둘 모두를 벤치마킹하기 위한 적대적 예제 라이브러리

저장소 보기
6.4k1.4k2년 전Kitploit 검토 완료

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

CleverHans (최신 릴리스: v4.0.0)

cleverhans logo

이 저장소는 적대적 예제(adversarial examples)에 대한 머신러닝 시스템의 취약성을 벤치마킹하기 위한 Python 라이브러리인 CleverHans의 소스 코드를 포함합니다. 이러한 취약성에 대해 더 자세히 알아보려면 관련 블로그를 참조하세요.

CleverHans 라이브러리는 지속적으로 개발 중이며, 최신 공격 및 방어 기법의 기여(contributions)를 항상 환영합니다. 특히, 현재 열려 있는 이슈(issues)를 해결하는 데 도움을 주시면 항상 환영합니다.

v4.0.0부터 CleverHans는 JAX, PyTorch, TF2의 3가지 프레임워크를 지원합니다. 현재는 PyTorch에서의 공격 구현을 우선적으로 진행하고 있지만, 세 가지 프레임워크 모두에 대한 기여를 매우 환영합니다. v3.1.0 및 이전 버전에서 CleverHans는 TF1을 지원했습니다. v3.1.0의 코드는 cleverhans_v3.1.0/에서 찾거나 이전 Github 릴리스를 확인하면 됩니다.

이 라이브러리는 머신러닝 모델에 대한 공격의 참조 구현을 제공하여 적대적 예제에 대한 모델 벤치마킹을 돕는 데 중점을 둡니다.

디렉터리 구조는 다음과 같습니다: cleverhans/에는 공격 구현이, tutorials/에는 CleverHans의 기능을 보여주는 스크립트가, defenses/에는 방어 구현이 포함되어 있습니다. 각 프레임워크는 이 폴더 안에 고유한 하위 디렉터리를 가지고 있습니다(예: cleverhans/jax).

CleverHans 설정하기

의존성

이 라이브러리는 많은 머신러닝 모델이 수행하는 그래프 계산을 가속화하기 위해 Jax, PyTorch 또는 TensorFlow 2를 사용합니다. 따라서 이러한 라이브러리 중 하나를 설치하는 것이 선행 조건입니다.

설치

의존성이 처리되면 pip를 사용하거나 이 Github 저장소를 클론하여 CleverHans를 설치할 수 있습니다.

pip 설치

pip를 사용하여 CleverHans를 설치하는 경우 다음 명령을 실행하세요:

root@kitploit:~
pip install cleverhans

그러면 Pypi에 업로드된 마지막 버전이 설치됩니다. 최신 개발 버전을 설치하려면 다음을 사용하세요:

root@kitploit:~
pip install git+https://github.com/cleverhans-lab/cleverhans.git#egg=cleverhans

개발용 설치

CleverHans를 편집 가능한(editable) 설치로 만들어 라이브러리를 개발하고 변경 사항을 기여하려면, 먼저 GitHub에서 저장소를 포크한 다음 원하는 디렉터리에 포크를 클론하세요:

root@kitploit:~
git clone https://github.com/<your-org>/cleverhans

그런 다음 로컬 패키지를 "editable" 모드로 설치하여 PYTHONPATH에 추가할 수 있습니다:

root@kitploit:~
cd cleverhans
pip install -e .

현재 지원되는 구성

CleverHans는 다른 많은 시스템 구성에서도 작동할 가능성이 높지만, 현재 Ubuntu 18.04 LTS (Bionic Beaver)에서 Python 3.6, Jax 0.2, PyTorch 1.7, Tensorflow 2.4로 테스트하고 있습니다.

지원 받기

지원 요청이 있는 경우 GitHub 트래커에 이슈를 여는 대신 StackOverflow에 질문을 올려 주세요. GitHub 이슈 트래커는 버그 신고 또는 기능 요청에 만 사용해야 합니다.

기여하기

기여는 환영합니다! 코드 리뷰 과정을 빠르게 하기 위해 다음을 요청합니다:

  • 새로운 작업과 기능은 토론 게시판에서 조율해 주세요.
  • CleverHans에 코드를 기여할 때는 풀 리퀘스트에서 Black 코딩 스타일을 따라야 합니다.
  • git 서브모듈을 추가하는 풀 리퀘스트는 git 서브모듈 유지 시 발생하는 문제들 때문에 받지 않습니다.

버그 수정은 Github 풀 리퀘스트를 통해 진행할 수 있습니다.

튜토리얼: tutorials 디렉터리

이 라이브러리에서 제공하는 기능을 시작하는 데 도움이 되도록 tutorials/ 폴더에는 다음 튜토리얼이 포함되어 있습니다:

  • FGSM 및 PGD를 사용한 MNIST (jax, tf2): 이 튜토리얼은 MNIST 모델을 훈련하고 빠른 경사 부호 방법(fast gradient sign method) 및 투영 경사 하강법(projected gradient descent)을 사용하여 적대적 예제를 생성하는 방법을 다룹니다.
  • FGSM 및 PGD를 사용한 CIFAR10 (pytorch, tf2): 이 튜토리얼은 CIFAR10 모델을 훈련하고 빠른 경사 부호 방법 및 투영 경사 하강법을 사용하여 적대적 예제를 생성하는 방법을 다룹니다.

참고: 튜토리얼은 지속적으로 계속 작동하는지 확인하기 위해 지속적 통합(continuous integration)을 사용한다는 점에서 주의 깊게 유지 관리됩니다. 튜토리얼은 API의 일부로 간주되지 않으며 예고 없이 언제든지 변경될 수 있습니다. 튜토리얼을 임포트하는 타사 코드를 작성하고 인터페이스가 깨지지 않을 것이라고 기대해서는 안 됩니다. 6개월 인터페이스 폐기 경고 규칙이 적용되는 것은 기본 라이브러리뿐입니다.

참고: 새 튜토리얼을 작성하기 전에 토론 게시판에 스레드를 시작해 주세요. 각 새 튜토리얼은 기존 튜토리얼에 비해 많은 양의 중복 코드를 수반하고, 모든 코드 줄은 무기한 지속적인 테스트와 유지 관리가 필요하기 때문에, 일반적으로 새 튜토리얼을 추가하는 것을 선호하지 않습니다. 각 튜토리얼은 라이브러리를 사용하는 매우 다른 방식을 보여주어야 합니다. 단순히 다른 공격, 모델 또는 데이터셋을 호출하는 것만으로는 병렬 튜토리얼을 유지할 만한 이유가 되지 않습니다.

예제: examples 디렉터리

examples/ 폴더에는 CleverHans 라이브러리의 다양한 사용법을 보여주거나 다양한 적대적 예제 대회에 참가하는 데 도움이 되는 추가 스크립트가 포함되어 있습니다. 이 디렉터리는 라이브러리의 나머지 부분만큼 지속적인 유지 관리나 지원을 제공하지 않으며, 여기의 코드가 손상되면 예고 없이 삭제될 수 있습니다.

최근 TF1 지원을 중단했기 때문에 examples/ 폴더는 현재 비어 있지만, 풀 리퀘스트를 통해 여러분의 사용 사례를 제출해 주시면 환영합니다 :)

CleverHans v3.1.0 및 이전 버전의 이전 예제는 cleverhans_v3.1.0/examples/에서 찾을 수 있습니다.

벤치마크 보고

벤치마크를 보고할 때는 다음을 지켜 주세요:

  • 버전이 지정된 CleverHans 릴리스를 사용하세요. 릴리스된 버전 목록은 여기에서 찾을 수 있습니다.
  • 최신 버전을 사용하거나, 이전 출판물과 비교하는 경우 이전 출판물과 동일한 버전을 사용하세요.
  • 사용된 공격 방법을 보고하세요.
  • 공격의 동작을 결정하는 데 사용된 모든 구성 변수를 보고하세요.

예를 들어, "CleverHans v4.0.0을 사용하여 적대적 공격에 대한 우리 방법의 강건성을 벤치마킹했습니다. 최대 놈(norm) eps가 0.3인 FastGradientMethod로 수정된 테스트 세트에서 71.3%의 테스트 세트 정확도를 얻었습니다."라고 보고할 수 있습니다.

이 작업 인용하기

학술 연구에 CleverHans를 사용하는 경우 다음 논문을 인용하는 것이 강력히 권장됩니다(필수는 아님):

root@kitploit:~
@article{papernot2018cleverhans,
  title={Technical Report on the CleverHans v2.1.0 Adversarial Examples Library},
  author={Nicolas Papernot and Fartash Faghri and Nicholas Carlini and
  Ian Goodfellow and Reuben Feinman and Alexey Kurakin and Cihang Xie and
  Yash Sharma and Tom Brown and Aurko Roy and Alexander Matyasko and
  Vahid Behzadan and Karen Hambardzumyan and Zhishuai Zhang and
  Yi-Lin Juang and Zhi Li and Ryan Sheatsley and Abhibhav Garg and
  Jonathan Uesato and Willi Gierke and Yinpeng Dong and David Berthelot and
  Paul Hendricks and Jonas Rauber and Rujun Long},
  journal={arXiv preprint arXiv:1610.00768},
  year={2018}
}

이름에 대하여

CleverHans라는 이름은 Bob Sturm의 "Clever Hans, Clever Algorithms: Are Your Machine Learnings Learning What You Think?"라는 발표와 해당 출판물인 "A Simple Method to Determine if a Music Information Retrieval System is a 'Horse'."를 참조한 것입니다. Clever Hans는 산수 문제에 답하는 법을 배운 것처럼 보였지만, 실제로는 정답을 말할 수 있게 해주는 사회적 단서를 읽는 법만 배운 말이었습니다. 사람들의 얼굴을 볼 수 없거나 다른 피드백을 받을 수 없는 통제된 환경에서는 같은 질문에 답할 수 없었습니다. Clever Hans의 이야기는 훈련 데이터와 동일한 분포에서 추출된 테스트 세트에서 매우 높은 정확도를 달성할 수 있지만 실제로는 기본 작업을 이해하지 못하고 다른 입력에서는 성능이 저조한 머신러닝 시스템에 대한 은유입니다.

저자

이 라이브러리는 토론토 대학교(University of Toronto)의 CleverHans Lab에서 공동으로 유지 관리합니다. 현재 연락 담당자는 Jonas Guan입니다. 이전에는 Ian Goodfellow와 Nicolas Papernot이 유지 관리했습니다.

다음 저자들은 100줄 이상을 기여했습니다(GitHub 기여자 페이지 기준):

  • Ian Goodfellow (Google Brain)
  • Nicolas Papernot (Google Brain)
  • Nicholas Carlini (Google Brain)
  • Fartash Faghri (University of Toronto)
  • Tzu-Wei Sung (National Taiwan University)
  • Alexey Kurakin (Google Brain)
  • Reuben Feinman (New York University)
  • Shiyu Duan (University of Florida)
  • Phani Krishna (Video Analytics Lab)
  • David Berthelot (Google Brain)
  • Tom Brown (Google Brain)
  • Cihang Xie (Johns Hopkins)
  • Yash Sharma (The Cooper Union)
  • Aashish Kumar (HARMAN X)
  • Aurko Roy (Google Brain)
  • Alexander Matyasko (Nanyang Technological University)
  • Anshuman Suri (University of Virginia)
  • Yen-Chen Lin (MIT)
  • Vahid Behzadan (Kansas State)
  • Jonathan Uesato (DeepMind)
  • Florian Tramèr (Stanford University)
  • Haojie Yuan (University of Science & Technology of China)
  • Zhishuai Zhang (Johns Hopkins)
  • Karen Hambardzumyan (YerevaNN)
  • Jianbo Chen (UC Berkeley)
  • Catherine Olsson (Google Brain)
  • Aidan Gomez (University of Oxford)
  • Zhi Li (University of Toronto)
  • Yi-Lin Juang (NTUEE)
  • Pratyush Sahay (formerly HARMAN X)
  • Abhibhav Garg (IIT Delhi)
  • Aditi Raghunathan (Stanford University)
  • Yang Song (Stanford University)
  • Riccardo Volpi (Italian Institute of Technology)
  • Angus Galloway (University of Guelph)
  • Yinpeng Dong (Tsinghua University)
  • Willi Gierke (Hasso Plattner Institute)
  • Bruno López
  • Jonas Rauber (IMPRS)
  • Paul Hendricks (NVIDIA)
  • Ryan Sheatsley (Pennsylvania State University)
  • Rujun Long (0101.AI)
  • Bogdan Kulynych (EPFL)
  • Erfan Noury (UMBC)
  • Robert Wagner (Case Western Reserve University)
  • Erh-Chung Chen (National Tsing Hua University)
  • Joel Frank (Ruhr-University Bochum)

저작권

Copyright 2021 - Google Inc., OpenAI, Pennsylvania State University, University of Toronto.

도구 다운로드