
Labtainers v1.4.4n
Labtainers: Docker 기반 사이버 연구실 프레임워크
Labtainers: Docker 기반 사이버 랩 프레임워크
Labtainers에는 50개 이상의 사이버 랩 실습과 직접 제작할 수 있는 도구가 포함되어 있습니다. 단일 VM 어플라이언스를 가져오거나 Linux 시스템에 설치하면, 학생들은 이 실습과 향후 랩 실습을 위한 프로비저닝 및 관리 설정을 완료할 수 있습니다.
- Docker 컨테이너를 통한 일관된 랩 실행 환경 및 자동 프로비저닝
- 적당한 성능의 노트북 컴퓨터에서의 다중 구성 요소 네트워크 토폴로지
- 학생 랩 활동 및 진행 상황의 자동 평가
- 해결책 공유를 방지하기 위한 개별화된 랩 실습
Labtainers는 학생들이 자신의 컴퓨터에 설치된 Linux 배포판과 패키지에 관계없이 전적으로 자신의 컴퓨터 내에서 랩을 수행할 수 있는 통제되고 일관된 실행 환경을 제공합니다. Labtainers는 [VM 어플라이언스][vm-appliancee] 또는 Docker가 설치된 모든 Linux에서 실행됩니다. 또한 Labtainers는 Student Guide에 설명된 대로 Azure와 같은 클라우드 기반 VM으로도 사용할 수 있습니다.
설치 및 사용 방법은 Student Guide를, 학생 평가는 Instructor Guide를 참조하십시오. 랩 실습의 개발 및 사용자 정의는 Designer Guide에 설명되어 있습니다. 프레임워크에 대한 추가 정보는 Papers를 참조하십시오. Labtainers 웹사이트 및 다운로드(Labtainers가 사전 설치된 VM 어플라이언스 포함)는 https://nps.edu/web/c3o/labtainers에서 확인할 수 있습니다.
Distribution created: 09/11/2026 11:33
Revision: v1.4.4n
Commit: 9f1012dc
Branch: master
Content
Distribution and Use
라이선스 및 배포 정보는 docs/license.md 파일을 참조하십시오.
Guide to directories
-
scripts/labtainers-student -- 학생 랩을 실행하고 테스트하기 위한 작업 디렉터리입니다. 학생 랩을 실행하려면 해당 디렉터리에 있어야 합니다.
-
scripts/labtainers-instructor -- 자동 평가를 실행하고 테스트하며 학생 결과를 확인하기 위한 작업 디렉터리입니다.
-
labs -- 각 랩에 특화된 파일
-
setup_scripts -- Labtainers와 Docker를 설치하고 Labtainers를 업데이트하기 위한 스크립트
-
docs -- labdesigner.pdf의 latex 소스 및 기타 문서.
-
UI -- Labtainers 랩 편집기 소스 코드 (Java).
-
headless-lite -- Docker Workstation 및 Labtainers의 클라우드 인스턴스(네이티브 X11 서버가 없는 시스템)를 관리하기 위한 스크립트.
-
scripts/designer -- 새로운 랩을 구축하고 기본 Docker 이미지를 관리하기 위한 도구.
-
config -- 시스템 전역 구성 설정 (랩별 구성 설정이 아닙니다).
-
distrib -- 배포 지원 스크립트, 예: Docker hub에 랩을 게시하기 위한 스크립트.
-
testsets -- 테스트 절차 및 예상 결과. (SimLab용 랩별 드라이버는 배포되지 않습니다).
-
pkg-mirrors -- 테스트 및 배포 중 외부 패키지 풀링을 줄이기 위한 내부 NPS 패키지 미러링용 유틸리티 스크립트.
Support
GitHub 이슈 보고서를 사용하거나 [email protected]로 이메일을 보내주십시오.
https://my.nps.edu/web/c3o/support1도 참조하십시오.
Release notes
표준 Labtainers 배포판에는 새로운 랩 개발에 필요한 파일이 포함되어 있지 않습니다. 해당 파일은 labtainer/trunk/setup_scripts 디렉터리에서 ./update-designer.sh를 실행하십시오.
설치 스크립트와 update-designer.sh 스크립트는 환경 변수를 설정하므로, Labtainers를 처음 사용하기 전에 로그아웃/로그인하거나 새로운 bash 셸을 시작하는 것이 좋습니다.
2026년 1월 6일
- 들여쓰기로 인해 설치 스크립트에 발생한 버그를 수정했습니다.
2025년 12월 30일
- checkwork 보고서 형식을 세로형으로 수정; headless용 비디오 가이드; 편의 경로
2025년 10월 15일
- packet-introspection 랩을 수정하여 maxmind 지리 위치 데이터베이스의 링크를 업데이트하고 레거시 데이터베이스 사용을 명시했습니다.
2025년 4월 24일
- pull request #96에 따라 누락된 디렉터리를 올바르게 생성하도록 imodule을 수정했습니다.
2024년 11월 22일
- Google Cloud VM을 교체했습니다. 이번에는 컨테이너 내부의 systemd 실패 때문이었습니다.
2024년 9월 23일
- 잘못된 Docker 버전을 사용하던 Google Cloud VM을 교체했습니다.
2024년 9월 10일
- imodule 경로 생성 시 오타
2024년 7월 26일
- 컨테이너에서 실행할 때 충돌하는 것으로 보이는 grantpt clib 함수를 사용하지 않도록 capinout을 수정했습니다.
2024년 7월 22일
- Ubuntu22용 기본 컨테이너와 이를 지원하기 위한 프레임워크 변경 사항을 추가했습니다.
2024년 7월 5일
- VM 어플라이언스로 Ubuntu 24로 마이그레이션
- docker python 패키지가 깨진 python http 라이브러리를 사용하므로 패키지 다운그레이드가 필요합니다.
- Ubuntu의 python 패키지 잠금을 피하기 위해 가상 python 환경을 사용합니다.
- 컨테이너와 VM 간에 systemd를 공유할 수 있도록 부팅 매개변수를 추가했습니다.
- 업데이트 시 깨진 tar 유틸리티의 오류 메시지를 리디렉션합니다.
- 버전 18 VM의 msc 패키지에 대한 Ubuntu 업데이트 문제 (update-ubuntu.sh 참조)
- docker-compose 명령이 깨졌으므로 "docker compose"를 사용하십시오.
- headless labtainers에서 소켓 권한을 강제합니다.
- headless Labtainers를 Ubuntu 24를 사용하도록 업데이트했습니다.
2023년 11월 27일
- ec2 머신의 ubuntu22용 Google Cloud Platform 옵션을 추가했습니다.
2023년 9월 18일
- 이전 수정 구현에 결함이 있었습니다.
2023년 8월 8일
- DockerHub 이미지 json 형식 변경을 처리했습니다. Kees에게 감사드립니다!
2023년 4월 17일
- 최신 랩 버전을 강제로 사용하도록 했습니다. 예: iptables 대신 iptables2. 탭 완성이 최신 버전만 표시하도록 수정했습니다. (이슈 #77)
- X11 경쟁 조건으로 인해 CyberCIEGE 랩 설치가 실패했습니다. (이슈 #76)
- CyberCIEGE readme에 학생들이 수집한 로그를 $HOME 디렉터리에 저장하도록 안내하는 내용을 추가했습니다. (이슈 #75)
- Radius 랩 checkwork가 "radiusd not running"을 잘못 보고했으며, prestop 스크립트가 누락되었습니다. (이슈 #74)
- MACVLAN_EXT 옵션을 사용할 때 Labedit이 시작 구성 파일을 손상시켰습니다. (이슈 #73)
2023년 2월 1일
- 비기본 사용자의 Bash 기록이 저장되지 않았습니다. 2023년 1월 26일
- VM 이름을 한정하기 위해 선택한 영역을 사용하도록 gcloud용 powershell 스크립트를 수정했습니다. 2023년 1월 4일
- systemd를 사용하는 컨테이너가 Ubuntu 22에 있는 최신 systemd에서 실패했습니다.
- set_defaults 스크립트에서 파생된 값을 사용하여 google cloud 스크립트에 --zone 매개변수를 추가했습니다. 2022년 12월 21일
- xforge 결과 기준이 경로명을 기대하지 않도록 수정하고, 프로필 편집을 위해 POST가 발행되었는지 확인하는 검사를 추가했습니다. 또한 공격자 http 서버가 홈 디렉터리에서 실행되도록 수정했습니다. 2022년 12월 19일
- 시스템 호출 추적을 소개하는 strace 랩을 추가했습니다.
- /tmp/.X11-unix 디렉터리에 여러 장치가 있는 경우 X11 DISPLAY 값이 잘못되었습니다.
- 인수 없이 python/bash/sh/etc를 사용하면 capinout이 충돌했습니다. 2022년 12월 9일
- Azure Community Gallery의 사전 빌드된 Labtainer VM 이미지를 사용하도록 Azure vm 생성 스크립트를 수정했습니다.
- 클라우드 VM의 터미널이 시작 중이나 터미널을 마우스 오른쪽 버튼으로 클릭할 때 알 수 없는 이유로 충돌합니다. 터미널을 시작/중지하여 해결을 시도했습니다. 2022년 12월 5일
- 아티팩트를 수집할 때 비기본 사용자의 디렉터리에서 수정된 파일(예: bash 기록)을 포함합니다.
- 새로운 "other user" 파일을 표시하도록 웹 평가를 변경했습니다.
- 각 컨테이너의 .local/bin에 있는 파일을 아티팩트에 포함합니다. 강사가 웹 평가를 통해 이러한 파일을 사용할 수 있도록 하기 위한 것입니다.
- ACL 랩에서 강사가 참조할 수 있도록 결과에 /shared_data/bob/fun 파일을 포함합니다.
- 명령줄에서 "sh" 또는 "bash" 사용을 감지하고 주어진 명령을 파싱할 때 건너뜁니다. 예: "time" 또는 "sudo"에서 수행하는 것처럼.
- tcpip 랩에서 후속 랩 세션 중에 서버에 ssh할 수 없었으며, /run/sshd 디렉터리가 다시 생성되지 않았습니다. 2022년 11월 16일
- snort 랩에서 Snort 매뉴얼 경로를 수정했습니다.
- ossec 매뉴얼에서 manage_agents 경로를 수정했습니다. 2022년 10월 12일
- Google cloud에서 gnome-terminal 명령의 백그라운드 연산자를 제거했습니다. 마우스 오른쪽 버튼 클릭 시 여전히 충돌하지만 newterm.sh를 실행한 후에는 안정적인 것으로 보입니다. 2022년 10월 10일
- Google cloud newterm.sh를 수정했습니다. 부팅 디스크를 30G로 확장했습니다. 2022년 9월 20일
- 랩 매뉴얼에 TCP/IP 랩의 사용자 ID와 비밀번호를 명시했습니다. 2022년 8월 30일
- 컨테이너의 .profile에서 DISPLAY를 설정할 때 X11 소켓 이름을 사용합니다. 2022년 8월 9일
- grader에서 processValueMax 함수의 이름을 수정했습니다. 이슈 #63
2022년 8월 4일
- labedit 프로그램이 잘못된 JDK로 재빌드되어 이전 JRE에서 labedit을 실행할 수 없었습니다.
2022년 7월 18일
- IModule 내에서 Ubuntu20 기반 컨테이너 생성이 실패했습니다. 이슈 #61.
2022년 3월 23일
- tap lock 디렉터리 경로를 수정했습니다. 네트워크 탭을 사용하는 랩의 실패 원인이었습니다.
- java 환경의 새로운 grassmarlin에 필요한 openjfx를 갖도록 plc-traffic netmon 컴퓨터를 업데이트했습니다.
- docker에서 매우 느린 chown -R을 피하여 랩 시작 속도를 높였습니다.
- 컨테이너 /tmp 디렉터리에서 X11 링크 삭제를 피하기 위한 또 다른 시도.
- webtrack의 방문 사이트 카운팅을 수정하고 더 이상 사용할 수 없는 live-headers 목표를 제거했습니다. 일부 랩 매뉴얼 단계를 명확히 했습니다.
2022년 3월 2일
- 새로운 ssh-tunnel 랩을 추가했습니다 (GWD에게 감사드립니다!)
- new_lab_setup에서 설정한 X11 값을 반영하지 못하는 labedit 실패를 수정했습니다.
- 컨테이너를 매개변수화하지 않는 옵션을 추가했습니다.
2022년 2월 23일
- 새로운 컨테이너 추가 후 labedit이 start.config를 손상시켰습니다.
- 학생 README 파일의 학생 가이드 경로가 잘못되었습니다. 클라우드 구성에 대해 동적으로 변경합니다.
- update-labtainer.sh의 잘못된 확장자
- Msc 가이드 개선
- Ghidra 랩을 업데이트하여 Ghidra 버전 10.1.2를 포함했습니다.
2022년 2월 15일
- Azure 클라우드 지원을 각 학생별 프로비저닝으로 되돌렸습니다. Azure는 리소스 공유를 권장하지 않습니다.
2022년 1월 24일
- Azure 클라우드는 이제 각 학생별 프로비저닝 대신 Azure blob에 저장된 이미지를 사용합니다.
- Google Cloud 지원을 추가했습니다.
2022년 1월 19일
- Azure 클라우드에서 Labtainers를 소개했습니다. 사용 방법에 대한 자세한 내용은 Student Guide를 참조하십시오.
2022년 1월 3일
- setuid-env 랩을 수정하여 더 나은 평가를 추가했습니다. simlab 테스트 및 printenv 자식에서 sighup을 방지합니다.
- false의 결과 태그 값을 제외하도록 평가 목표 카운트 지시문을 수정했습니다.
- debug 옵션으로 시작된 grader와 함께 gradelab -a를 사용할 때 labname을 요구하지 않습니다.
- 명령 프로세스 자식의 고아화를 처리하도록 capinout (stdin/stdout 미러링)을 수정하고 문서와 오류 처리를 개선했습니다.
- 랩을 처음 실행할 때 풀링되는 docker 이미지의 진행률 표시줄을 추가했습니다.
- 컨테이너 초기화 진행 상황에 대한 사용자 피드백.
- pcap-lib 랩에 자동 평가에 필요한 notify 파일이 누락되었습니다. Lab Manual에서 불필요한 단계를 제거했습니다.
2021년 11월 23일
- 테스트 VM에서 ubuntu 팝업 오류를 비활성화했습니다.
- 다양한 DISPLAY 변수 형식 처리를 수정했습니다.
2021년 10월 22일
- tcpip 랩 가이드를 수정하여 성공적인 syn-flood 공격이 불가능함을 명시했습니다. 자동 평가를 수정하고 SimLab 스크립트를 추가했습니다.
- 아티팩트 파일 확장자를 zip에서 lab으로 변경하고, GUI 파일 관리자를 혼란스럽게 하기 위한 프리앰블을 추가했습니다. 학생들이 zip을 열고 내용물을 제출하고 있었습니다.
- gradelab의 -r 옵션을 기본값으로 하고, grader의 누적 사용을 위한 -c 옵션을 추가했습니다.
- DockerHub에 대한 빈번한 쿼리를 피하기 위해 로컬 릴리스 날짜를 참조하도록 refresh_mirror를 수정했습니다. 이러한 각 쿼리는 이미지 풀에 해당하며, 이제 이를 수익화하려고 합니다.
2021년 9월 30일
- bufoverflow 랩 가이드와 채점을 수정하여 ASLR이 켜진 상태에서 성공을 기대하지 않고, 실행되었는지 평가합니다.
- 학생이 결과를 가지고 있지 않은 경우를 위한 웹 grader의 오류 처리.
- 더 이상 사용되지 않는 랩이 실행될 때 경고를 출력합니다.
- 사용되지 않는 "_leaked_secret" 설명을 제거하고 leaked_no_scanf의 값을 명확히 하도록 formatstring 채점을 변경했습니다.
- 또한 취약한 실행 파일의 이름을 허용하도록 formatstring 채점을 변경했습니다.
2021년 9월 29일
- Gradelab 오류 처리, 잘못된 zip 파일로 인한 충돌 사례를 줄였습니다.
- stdout 아티팩트 파일을 1MB로 제한했습니다.
2021년 9월 17일
- Ghidra 랩 가이드에 잘못된 IP 주소가 있었고, 소스에서 재생성되지 않았습니다.
2021년 9월 14일
- SSL을 사용하는 LDAP 및 Mariadb용 예제 랩. 새로운 랩의 템플릿으로 사용하기 위한 것입니다.
- Mariadb 로그 형식 처리
- CPU 사용을 제한하거나 컨테이너를 CPU 세트에 고정하기 위한 컨테이너별 매개변수를 추가했습니다.
- Labpack 생성이 이제 GUI (makepackui)를 통해 가능합니다.
- labtainer, labpack 및 gradelab 명령에 대한 탭 완성.
- MPI를 사용하는 새로운 병렬 컴퓨팅 랩 ``parallel''.
2021년 8월 3일
- 다른 컨테이너가 매개변수화를 완료할 때까지 컨테이너가 매개변수화를 지연하도록 하는 "WAIT_FOR" 구성 옵션을 추가했습니다.
- 결과 파싱에서 Mariadb 로그 형식 지원
- Mac 및 Windows의 Docker Desktop 사용 지원을 제거했습니다. 해당 제품은 우리가 지원하기에는 너무 불안정합니다.
- 사용자가 "which"와 같은 내장 bash 명령을 사용할 때 stderr 메시지를 억제합니다.
- makepack/labpack 프로그램의 버그 수정.
2021년 7월 19일
- DNS 프로토콜과 구성을 소개하는 DNS 랩을 추가했습니다.
- 올바른 업데이트 스크립트로 시작하도록 VirtualBox 어플라이언스 이미지를 수정했습니다.
- resolv.conf nameserver 매개변수를 lab_gw 구성 필드에서 분리하여 자체 값으로 만들었습니다.
- 랩을 시작하기 전에 IModule 명령을 실행하면 실패했습니다.
2021년 7월 5일
- DISPLAY 환경 변수 관리의 오류로 Docker Desktop에서 GUI 애플리케이션이 중단되었습니다.
2021년 7월 1일
- headless Labtainers의 Mac 패키지 설치를 지원합니다.
- treataslocal 파일 부족으로 routing-basics 랩 자동 평가가 실패했습니다.
- routing-basics 랩의 오타와 잘못된 주소를 수정하고 자동 평가를 수정했습니다.
- pcapanalysis 평가가 실패했습니다.
2021년 6월 10일
- 모든 랩 매뉴얼 PDF가 이제 github repo에 있습니다.
- vpnlab 및 vpnlab2 지침을 PDF 랩 매뉴얼로 변환했습니다.
2021년 5월 25일
- 각 랩에 검색 가능한 키워드를 추가했습니다. 사용법은 "labtainer -h"를 참조하십시오.
- routing-basics 랩과 랩 매뉴얼을 확장했습니다.
- routing-basics2 랩을 제거했습니다. 이제 중복됩니다.
- 일부 컨테이너에서 sudo가 실패했습니다. 호스트 이름이 밑줄을 제거하여 hosts 파일과 불일치가 발생했습니다. 밑줄 없는 컨테이너 이름으로 hosts 파일에 추가 항목을 넣어 수정했습니다.
- 랩 모음을 패키징하는 새로운 Labpack 기능과 Labpack을 생성하는 makepack 도구.
- ubuntu20 사용 시 /sbin 디렉터리에 대한 오류 검사 -- 조용히 치명적이었을 것입니다.
- 새로운 network-basics 랩
2021년 5월 5일
- 사용자/그룹 관리를 소개하는 새로운 users 랩을 소개했습니다.
- centos 컨테이너 syslog에서 Apparmor 호스트 메시지를 억제합니다.
2021년 4월 28일
- 새로운 base2 이미지에 man 페이지가 없었습니다. unminimize를 사용하여 기본 이미지에서 복원했습니다.
- OSSEC 호스트 기반 IDS 랩을 소개했습니다.
2021년 4월 13일
- fixlocal을 통해 Wine을 시작하기 전에 X11 소켓이 재배치되지 않아 CyberCIEGE 랩이 실패했습니다.
2021년 4월 9일
- 간단한 C++ 프로그램에서 GDB를 사용하기 위한 새로운 gdb-cpp 튜토리얼 랩.
- 부동 소수점 예외로 인해 stdin/stdout 미러링을 위한 exec_wrap.sh 사용이 드러났습니다.
2021년 4월 7일
- Ubuntu 20으로 이동했을 때 ldap 랩이 실패했습니다. 문제는 nscd의 pwd 캐시 문제로 추적되었습니다. ldap을 Ubuntu 20으로 이동했습니다.
2021년 3월 23일
- RANDOM으로 매개변수화할 때 상한이 포함되지 않았습니다.
- RANDOM에 선택적 단계 매개변수를 추가했습니다. 예: 단어 경계를 보장하기 위해.
- db-access 랩: 데이터베이스 컴퓨터에 mysql-workbench를 추가했습니다.
- c 데이터 구조의 범위를 벗어난 메모리 참조를 설명하는 새로운 overrun 랩.
- printf 함수에 의해 이루어지는 메모리 참조를 소개하는 새로운 printf 랩.
2021년 3월 19일
- gradelab이 makdirs 오류를 무시하도록 했습니다. 공유 폴더에서 Windows rmtree 문제.
- gradelab이 학생 zip 파일 이름의 공백을 처리합니다.
- gradelab이 빌드 다운로드를 포함한 Moodle의 zip 파일 이름을 처리합니다.
2021년 3월 12일
- labedit UI: 기본 이미지 목록에서 이전 wireshark 이미지를 제거했습니다.
- labedit UI: 일부 글꼴 크기를 늘렸습니다.
- 매뉴얼 이름이 명명 규칙을 따르지 않는 경우 grader 웹 인터페이스가 랩 매뉴얼을 표시하지 못했습니다.
2021년 3월 11일
- labedit UI에서 새로운 전역 랩 구성 패널에 레지스트리 설정을 추가했습니다.
2021년 3월 10일
- labedit UI 수정: 랩에 구문 오류가 있으면 빌드하지 않도록 수정
- labedit UI "Lab running" 표시기가 현재 랩을 반영하도록 수정했습니다.
2021년 3월 8일
- HOST_HOME_XFER 사용을 폐기했습니다. 모든 랩은 labtainer.config 파일에 따른 디렉터리를 사용합니다.
- REGISTRY 및 BASE_REGISTRY에 대한 문서 주석을 start.config에 추가했습니다.
2021년 3월 5일
- 결과가 누락된 경우 gradelab 웹 인터페이스의 오류 처리.
- labedit에 precheck 추가, msc 버그 수정.
2021년 2월 26일
- dmz-example 랩에 일부 구성 요소의 라우팅 및 dnsmasq 설정에 오류가 있었습니다.
2021년 2월 18일
- UI가 이유 없이 파일 시간을 업데이트하여 이미지를 재빌드하고 있었습니다.
- 일부 중복 데이터 복사본을 제거하도록 UI 코드를 정리했습니다.
2021년 2월 14일
- UI에 로컬 빌드 옵션을 추가했습니다.
- centos6 기반용 빈 faux_init을 생성했습니다.
2021년 2월 11일
- 파일 편집에 대한 UI 처리를 수정했습니다. 레이아웃을 수정하고 사용하지 않는 필드를 제거했습니다.
- ssh2, network2 및 wireshark2와 함께 ubuntu20 base2 기본 구성을 추가했습니다.
- 새로운 wireshark는 검은색/노이즈 창 문제를 해결합니다.
- /tmp/.X11-unix를 /var/tmp에 매핑하고 링크를 생성했습니다. ubuntu20에 필요하며(/tmp를 삭제하고 있었나요?) 다른 것도 수정할 수 있습니다.
2021년 2월 4일
- 결과 아티팩트에 SIZE 옵션을 추가했습니다.
- wireshark-intro 평가 및 매개변수화를 단순화하고 PDF 랩 매뉴얼을 추가했습니다.
- pregrade.sh 스크립트에 매개변수 목록 값을 환경 변수로 제공합니다.
- grader에서 X11을 활성화합니다.
- update-designer.sh를 사용자 경로에 넣었습니다.
2021년 1월 19일
- README 날짜/개정 관리를 소스 repo의 파일을 업데이트하도록 변경했습니다.
- 랩 생성/편집을 위한 GUI를 소개했습니다. labedit 명령을 참조하십시오.
2020년 12월 21일
- VirtualBox 공유 폴더에서 zip 파일을 복사할 때 gradelab 함수가 실패했습니다.
- 호스트 컴퓨터에서 학생 zip 파일 관리를 설명하도록 Instructor Guide를 업데이트했습니다.
2020년 12월 4일
- tar 배포를 GitHub 릴리스 아티팩트로 전환했습니다.
- 별도의 designer tar 파일을 제거하고 git repo tarball을 사용합니다.
- 학생 랩 아티팩트 분석을 위한 grader 웹 기능 테스트
- 전체 smoketest에서 로그를 지우고 removelab 명령에서 grader 컨테이너를 삭제합니다.
2020년 12월 1일
- iptables2 랩 평가가 nmap에 "알려지지 않은" 임의 포트에 의존했습니다.
- 랩 시작 전에 smoketest가 시작되지 않도록 sync 디렉터리를 사용하여 지연시켰습니다.
- Lab designer UI 요소 통합을 시작했습니다.
2020년 10월 13일
- Mac 및 Windows의 Docker Desktop에서 실행하기 위한 headless 구성
- headless 서버 지원, 클라우드 배포를 위한 cloud-config 파일
- headless 구성에 대한 테스트 지원
- 부팅 시 rc.local이 실행될 때까지 mynotify가 기다리도록 강제합니다.
- mynotify 서비스가 출력을 단일 타임스탬프로 병합하는 기능을 개선했습니다.
- stopgrade 스크립트용 Python3
- SimLab이 이제 system ps 대신 docker top을 사용합니다.
2020년 9월 26일
- 랩이 아닌 컨테이너를 무시하도록 stoplab 스크립트를 정리했습니다.
- mysql db의 통제된 공유를 위한 db-access 데이터베이스 접근 제어 랩을 추가했습니다.
2020년 9월 17일
- X11 설정으로 인해 macs-hash 랩에서 Leafpad를 실행할 수 없었습니다.
- Grader 로깅이 잘못된 로그 파일로 리디렉션되었으며, 이제 instructor.py의 오류를 캡처합니다.
- 오류가 있는 경우 grader에서 호스트 로그 디렉터리로 instructor.log를 복사합니다.
2020년 8월 28일
- python3-pip를 사용하도록 설치 스크립트를 수정하고 깨진 스크립트(getinfo.py 및 pull-all.py)를 수정했습니다.
- 레지스트리 로직이 깨졌으며, 테스트 시스템이 테스트 레지스트리를 사용하지 않았습니다. 개발 문서를 추가했습니다.
- OWASP 기반 웹 보안 랩을 위한 juiceshop 및 owasp 기본 파일을 추가했습니다.
- check_nets에서 불필요한 sudo를 제거했습니다.
- 자동 평가를 위한 CHECK_OK 문서 지시문을 추가했습니다.
- 지시된 경우 iptables 및 라우팅 문제를 수정하도록 check_nets를 변경했습니다.
2020년 8월 12일
- prestop 스크립트에 타임아웃을 추가했습니다.
- dmz-lab에 quiz와 checkwork를 추가했습니다.
- -r 옵션 없이 dmz-lab을 재시작하면 ISP 외부로의 라우팅이 중단되었습니다.
- time_delim 결과에 여러 파일을 허용합니다.2020년 8월 6일
- X11 소켓이 없을 때의 오류 처리 버그
- 퀴즈 문제의 쉼표로 인한 파싱 오류
- iptables2 랩에 퀴즈 및 checkwork 추가
2020년 7월 28일
- 퀴즈 지원 추가 -- 이는 평가 퀴즈가 아닌 안내 퀴즈입니다. 디자이너 가이드를 참조하세요.
- checkwork 명령과 함께 사용할 현재 상태 평가 추가.
2020년 7월 21일
- 디자이너의 경로에 testsets/bin 추가
- 디자이너 가이드 수정 및 IModule 단계에 대한 설명.
- 로그 항목에 정규식을 사용하여 시간 범위를 정의하기 위한 RANGE_REGEX 결과 유형 추가.
- 랩 시작 시 필요한 경우 X11 소켓이 존재하는지 확인.
- mysql용 기본 이미지 추가
- 결과 파싱에서 mysql 로그 타임스탬프 형식 처리.
2020년 6월 15일
- Bird 오픈 소스 라우터를 포함한 새 기본 이미지
- bird-bgp Border Gateway Protocol 랩 추가.
- bird-ospf Open Shortest Path First 라우팅 프로토콜 추가.
- DNS 변경 처리 개선, 일부 사이트에서 일부 컨테이너의 외부 접근이 차단되었습니다.
- 인터넷 접근이 없는 환경에서 Labtainers를 사용하는 방법에 대한 강사 가이드 섹션 추가.
2020년 5월 21일
- 모든 저장소를 Docker Hub labtainers 레지스트리로 이동
- 영구 소프트웨어 설치를 허용하기 위해 start.config에 정의된 마운트 지원
- ida 랩을 IDA의 영구 설치를 사용하도록 변경 -- 새 이름은 ida2
- DARPA Cyber Grand Challenge의 200개 이상의 취약한 서비스 탐색을 위한 cgc 랩 추가
- SimLab에 type_string 명령 추가
- NetFlow 네트워크 트래픽 분석 사용을 위한 netflow 랩 추가
- bufoverflow 및 formatstring 랩의 64비트 버전 추가
2020년 4월 9일
- 파일 선택에 와일드카드가 사용된 경우 Grader가 CONTAINS 및 FILE_REGX 조건 평가에 실패했습니다.
- symlab 랩에서 hexedit 사용에 대한 힌트 포함.
- 구성 파일에 예상 답변을 게시하지 않도록 자동 평가에 hash_equal 연산자 및 hash-goals.py 추가.
- pcap-lib 랩에 대한 자동 평가.
2020년 4월 7일
- 로그가 $LABTAINER_DIR/logs로 이동되었습니다.
- Jenkins를 사용한 재빌드 및 테스트를 허용하는 기타 정리 작업, 빌드에 고유한 임시 디렉토리 사용 포함
- 빌드 지원 함수를 labutils에서 build.py로 이동
- 트래픽 분석 프로그램의 PCAP 라이브러리 기반 개발을 위한 pcap-lib 랩 추가
2020년 3월 13일
- 랩 중 생성된 트래픽과 함께 GrassMarlin을 사용하기 위한 plc-traffic 랩 추가.
- 선택된 네트워크에서 PCAP을 수집하기 위해 "tap" 컨테이너를 추가하는 기능 도입.
- 컨테이너에 대한 외부 접근 및 dummy_hcd를 사용한 USB 드라이브 시뮬레이션에 대한 GNS3 문서 업데이트.
- kali 템플릿을 systemd 사용 시도 대신 faux_init을 사용하도록 변경.
- 배포판(tar 파일)을 box.com으로 이동
- SimLab의 netstat 사용을 dns 조회를 하지 않도록 변경.
2020년 2월 26일
- labtainer 명령이 랩을 찾지 못하면 사용자에게 update-labtainer.sh 실행을 제안
- 모든 네트워크 트래픽을 보기 위한 네트워크 tap 구성 요소에 대한 예비 지원 추가.
- 인터넷 없이 사용될 VM을 준비하기 위해 랩 이미지를 가져오는 스크립트.
- nmap-discovery 랩에 대한 사용자 이름 및 비밀번호 제공.
2020년 2월 18일
- :0을 가정하는 대신 호스트(예: VM)에서 DISPLAY 환경 변수 상속
2020년 2월 14일
- Ghidra 소프트웨어 리버스 엔지니어링 입문 실습 추가.
2020년 2월 11일
- GNS3 환경 내 컨테이너에 대한 원격 접근을 설명하는 가이드 업데이트
- GNS3 내에서 선택된 구성 요소 및 링크 숨기기.
- webtrack 랩 가이드의 그림이 보이지 않았습니다. 이 문서와 nmap-ssh의 오타
2020년 2월 6일
- 컨테이너를 원격으로 관리하는 기능 도입, 예: 파일 푸시.
- USB 드라이브 삽입을 시뮬레이션하는 GNS3 환경 기능 추가.
- Docker 빌드 오류 처리 개선.
2020년 2월 3일
- metasploit 랩에서 postgresql 서비스가 victim에서 실행되지 않았습니다.
- IModule 매뉴얼 내용을 Lab Designer 가이드에 병합.
- 추가 IModule 지원.
2020년 1월 27일
- IModules(강사 개발 랩)에 대한 초기 지원 도입. docs/imodules.pdf 참조.
- update-labtainer 내의 깨진 LABTAINER_DIR 환경 변수 수정
- ACL 랩의 accounting.txt 파일 접근 모드 수정(rw-r-r이 되었음). fixlocal.sh에서 명시적 chmod 사용.
2020년 1월 14일
- 프레임워크 및 gradelab을 Python3로 포팅(기존 Python2 랩은 변경되지 않음)
- 하위 호환 random.seed 옵션 사용
- 호환되지 않는 randint를 해킹하여 이전 값 반환
- python3가 없는 플랫폼(또는 random.seed 호환성을 깨뜨리는 python 3.5.2를 포함하는 구형 VM 어플라이언스 등)을 위해 python2 계속 지원.
- 필요한 경우 python2를 선택하는 rebuild.py에 대한 rebuild 별칭 추가.
- Centos 기반 랩의 manpage가 실패했습니다. 기본 docker 파일 내에서 mandb 사용
- dmz-lab의 DMZ 네트워크 넷마스크가 잘못되었습니다(python3에서 발견됨). 랩 매뉴얼의 내부 게이트웨이 IP 주소도 마찬가지였습니다.
- ghex가 centos 랩에서 제거됨 -- centos 7에서 더 이상 쉽게 지원되지 않음
- file-deletion 랩은 VM을 재부팅하지 않고 완료해야 합니다. 랩 매뉴얼에 이를 명시하세요.
- 컨테이너의 기본 게이트웨이를 비활성화하기 위해 start.config에 NO_GW 스위치 추가.
- Metasploit 랩, 권한으로 실행하면 호스트 VM이 충돌합니다. systemd가 활성화된 경우 su에서 긴 지연이 발생합니다. 따라서 systemd 없이 실행하세요. 랩 매뉴얼에서 데이터베이스 사용 제거, 새로운 no_gw 스위치를 사용하도록 구성
- 라이선싱/약관에 대한 파일 헤더 업데이트; 통합 라이선스 파일 추가.
- publish.py를 수정하여 기본적으로 테스트 레지스트리를 사용하도록 하고, -d를 사용하여 default_registry 사용을 강제.
- 각 브랜치에 대해 다른 테스트 레지스트리를 사용하고 릴리스의 최종 테스트를 위해 premaster 브랜치를 사용하도록 소스 제어 절차 개정.
2019년 10월 9일
- dmz-lab의 dns 구성 요소에서 dnsmasq 제거. 일부 설치에서 bind가 실패하는 원인이었습니다.
2019년 10월 8일
- 테스트 레지스트리 설정의 구문 오류; 대용량 파일에 대한 랩 디자이너 정보; bigexternal.txt 파일 가져오기
2019년 9월 30일
- 일부 사용자에게 DockerHub 레지스트리 검색이 다시 실패했습니다. json에 대한 html 접두사 무시.
2019년 9월 20일
- onewayhash 평가는 학생이 선택한 파일에 대한 hmac 작업을 허용해야 합니다.
2019년 9월 5일
- metasploit 랩 재빌드, metasploit-framework에 버그가 있었습니다. 그리고 랩의 "treataslocal" 파일이 svn에서 이동할 때 누락되었습니다. metasploit 랩 매뉴얼의 오타 수정.
2019년 8월 30일
- 컨테이너 디렉토리 존재 여부 테스트를 되돌림, 항상 존재하지는 않습니다.
2019년 8월 29일
- docker hub에서 랩 이미지 가져오기가 github 또는 curl의 변경으로 인해 실패했습니다. cloudflare로의 리디렉션을 잡으세요. GNS3 지원 추가. dmz-lab dnssec 수정.
2019년 7월 11일
- CentOS6 컨테이너에 대한 자동 평가, firefox 메모리 문제 수정, start.config 파일에서 임의의 docker create 인수 지원.
2019년 6월 6일
- Centos6 기본을 도입했지만 아직 자동 평가는 지원하지 않음
2019년 5월 23일
- setuid-env의 자동 평가가 필드 구분자의 오타로 인해 실패했습니다.
2019년 5월 8일
- Capabilities 랩 매뉴얼 수정
2019년 5월 2일
- Acl 랩의 bobstuff.txt 권한 수정. fixlocal.sh에서 명시적 chmod 사용
- 매뉴얼 본문에서 stop 및 -r 옵션 사용을 명확히 하기 위해 학생 가이드 개정.
2019년 3월 9일
- checkwork 함수가 컨테이너를 재사용하여 학생들이 이전 랩 작업의 아티팩트를 제거하지 못하게 했습니다.
- BMP 이미지 형식을 설명하기 위해 symkey 랩에 부록 추가.
2019년 2월 22일
- vpn 및 vpn2 랩에서 http 서버가 시작되지 않았습니다. 재작업될 때까지 해당 랩에서 자동 평가 제거.
2019년 1월 7일
- gdblesson 자동 평가를 최소한 작동하도록 수정.
2019년 1월 27일
- routing-basics2의 랩 매뉴얼 수정 및 내부 웹 서버에 대한 외부 접근을 가능하게 하도록 라우팅 수정.
2018년 12월 29일
- routing-basics2 수정, routing-basics와 동일한 문제, 게이트웨이 resolv.conf의 잘못된 ip 주소 추가
2018년 12월 5일
- routing-basics 랩 수정, isp 및 gatway 구성 요소의 dns 확인이 깨졌습니다.
2018년 11월 14일
- backups2의 archive 머신에서 /run/nologin 제거 -- 이 nologin 문제에 대한 일반적인 해결책 필요
2018년 11월 5일
- file-integrity 랩의 기본 aid.conf를 파일 수정 시간 대신 메타데이터 변경을 추적하도록 변경
2018년 10월 22일
- macs-hash 랩의 verydodgy.com 확인이 랩 재시작 시 실패
- notify_cb.sh가 없으면 Notify 함수가 실패
2018년 10월 12일
- 파일 크기에 ulimit 설정, 1G로 제한
2018년 10월 10일
- 매개변수화된 파일의 강제 수집
- centos-xtra 베이스라인에 leafpad 및 ghex를 명시적으로 포함하고 종속 이미지 재빌드.
2018년 9월 28일
- ACL 랩의 공유 파일 접근 모드 수정
- pass-crack의 질문 명확화
- 랩 시작보다 오래된 파일을 무시하도록 아티팩트 수집 수정.
- 양자 컴퓨팅 알고리즘 랩 추가
2018년 9월 12일
- setuid-env 채점 구문 오류 수정
- iptables2 예제 방화벽 규칙의 구문 오류 수정
- centos 랩 재빌드, lamp 파생물을 waitparam에 lamp.xtr을 사용하도록 이동하고 httpd가 완료될 때까지 대기하도록 강제.
2018년 9월 7일
- CyberCIEGE를 랩으로 추가
- 이미지 가져오기 전 read_pre.txt 정보 표시 및 중단 기회.
2018년 9월 5일
- gradelab 함수에 sakai 대량 다운로드 처리 복원.
- 사용하지 않는 강사 스크립트 제거.
2018년 9월 4일
- 네트워크 인터페이스당 여러 IP 주소 허용
- Wine용 기본 이미지 추가
- GRFICS 가상 ICS 시뮬레이션 추가
2018년 8월 23일
- GrassMarlin 랩 추가(ICS 네트워크 검색)
2018년 8월 23일
- GrassMarlin 랩 추가(ICS 네트워크 검색)
2018년 8월 21일
- AWS 인증 문제에 대한 또 다른 수정(DockerHub는 AWS 사용).
- new_lab_setup.py를 svn 대신 git을 사용하도록 수정.
- plc-forensics 랩을 기본 랩과 고급 랩(plc-forensics-adv)으로 분할
2018년 8월 17일
- git & GitHub을 권위 있는 저장소로 전환.
2018년 8월 15일
- plc-forensics 랩 평가를 더 일반적으로 수정; Labtainer의 wireshark를 반영하도록 랩 매뉴얼 개정.
2018년 8월 15일
- 학생들이 랩 작업에 대한 자동 평가 결과를 볼 수 있는 "checkwork" 명령 추가.
- iptables2 및 iptables-ics 랩에 iptables 패킷 드롭 로깅 포함.
- goal.config에서 사용하지 않는 is_true 및 is_false 인스턴스 제거
- "NOT foo"를 처리하도록 부울 평가 수정, 더 많은 피연산자를 예상했었습니다.
2018년 8월 9일
- results.config 파일의 매개변수 대체 지원
- results.config용 TIME_DELIM 결과 유형 추가
- iptables 랩 재작업, 숨겨진 nmap 명령 제거, 사용자 정의 서비스 도입
2018년 8월 7일
- labtainer-student 디렉토리의 학생 가이드에 링크 추가
- VM 데스크톱의 학생 가이드에 링크 추가
- 종료 시 긴 지연을 피하기 위한 iptables-ics 수정; 회귀 테스트 수정
- 학생이 VM 브라우저를 사용하여 아티팩트 zip 파일을 강사에게 전송하도록 제안하는 가이드 노트 추가.
2018년 8월 1일
- 자동 평가에 일반 Docker 이미지 사용; 랩별 "instructor" 이미지 생성 중단.
2018년 7월 30일
- fixlocal.sh 스크립트가 waitparam이 전제 조건인 서비스를 시작하려는 경우 waitparam.service를 차단 해제해야 함(플래그 디렉토리 생성)을 문서화.
- PLC 애플리케이션 방화벽 및 화이트리스트 실습을 위한 plc-app 랩 추가.
2018년 7월 25일
- goals 처리에 string_contains 연산자 추가
- 누출된 비밀이 항상 표시된 문자열의 끝에 있지 않은 경우를 고려하도록 formatstring 랩 평가 수정.
2018년 7월 24일
- SSH Agent 랩 추가(ssh-agent)
2018년 7월 20일
- 오프라인 빌드 지원, 선택적으로 모든 이미지 가져오기 건너뛰기
- Dockerfile 템플릿에 apt/yum 저장소 복원 복원.
- 인증 오류를 피하기 위해 Docker 레지스트리 blob 검색의 리디렉션 URL 처리(curl --location에 의존하지 마세요).
2018년 7월 12일
- 랩 종료 전에 선택된 구성 요소에서 디자이너 지정 스크립트 실행을 허용하는 prestop 기능 추가.
- ssl 랩의 호스트 이름 수정, 자동 평가를 깨뜨렸습니다.
- 내부 네트워크에서 DNS 확인을 허용하도록 dmz-lab 초기 상태 수정.
- FILE\REGEX 처리가 여러 줄 검색을 제대로 처리하지 못했습니다.
- 새로 재빌드된 이미지에서 파생된 프레임워크 버전의 기본값이 잘못되었습니다.
2018년 7월 10일
- LDAP 랩 추가
- systemd 기반 Ubuntu 이미지로의 전환 완료, 사용하지 않는 파일 제거
- 동시성을 위해 lab_sys tar 파일을 컨테이너별 tmp 디렉토리로 이동.
2018년 7월 6일
- 모든 Ubuntu 기본 이미지가 systemd 기반 버전으로 교체됨
- 레지스트리의 Labtainer 컨테이너 이미지가 이제 기본 이미지 ID로 태그되고 기본 이미지를 반영하는 레이블을 가짐.
- 주어진 설치가 보유한 기본 이미지와 일치하는 이미지를 가져와 사용합니다.
- VM 이미지를 사용하는 경우 웹사이트의 최신 VM 이미지로 교체하는 것을 고려할 수 있습니다.
- 새 랩은 최신 기본 이미지를 다운로드하지 않으면 실행되지 않습니다. 이로 인해 VM이 여러 버전의 대용량 기본 이미지(각각 > 500 MB)를 저장할 수 있습니다.
- 랩이 중지될 때 실행 중이던 프로세스의 아티팩트를 잃고 있었습니다 -- capinout 프로세스를 제대로 종료하지 않았습니다.
2018년 6월 27일
- Ubuntu systemd 이미지 지원 추가
- labtainer-student/bin에서 이전 SimLab.py 복사본 제거
- apt 및 yum 소스를 /var/tmp로 이동
- 평가에서 "boolean"과 "count_greater" 사용의 차이점 명확화
- start.config의 Add-HOST를 확장하여 네트워크의 모든 구성 요소 포함.
- 기존 컨테이너의 복사본을 기반으로 컨테이너를 추가하는 new_lab_setup.py 옵션 추가.
2018년 6월 21일
- root에 대한 DISPLAY 환경 설정
- svn status 출력의 빌드 종속성 처리 수정
- radius 랩 추가
- SimLab append의 버그 수정
- new_lab_setup.py로 파일 이름을 변경하기 위해 적절한 경우 svn 사용
2018년 6월 19일
- 여러 탭이 있는 터미널을 생성할 때 start.conf에 정의된 컨테이너 순서 유지
- 평가 구성 파일의 경로를 식별하기 위해 디자이너 매뉴얼 명확화.
- 강사에게 이메일 제공을 요청하는 프롬프트 제거
- 버전 번호 테스트 시 잘못된 오류 검사
- 평가 json에 랩 시작 및 재실행의 타임스탬프 포함
- 양방향 인증 및 인증서 생성을 포함하는 SSL 랩 추가.
2018년 6월 14일
- 매개변수화에 진단 추가, 일부 설치가 실패하는 이유 추적.
- 컨테이너가 이미 생성된 경우 매개변수화되었는지 확인하고, 그렇지 않으면 손상되거나 불완전한 컨테이너를 피하기 위해 중단.
- 프로그램 버전 번호를 svn HEAD를 사용하도록 수정
2018년 6월 15일
- xterm에 나타난 일반 텍스트 지침을 pdf 파일로 변환.
- 아직 가져오지 않은 이미지의 버전 처리 버그 수정.
- 생성되었지만 매개변수화되지 않은 컨테이너의 발생을 감지하고 사용자에게 "-r" 옵션으로 랩을 재시작하도록 요청.
- 디자이너 유틸리티 추가: rm_svn.py로 제거된 파일이 이미지 재빌드를 트리거하도록 함.
2018년 6월 13일
- Ubuntu 18 시스템에 xterm 설치
- 새 버전의 gnome-terminal 탭 처리의 손상 우회
2018년 6월 11일
- 이미지를 프레임워크와 비교하는 버전 확인 추가.
- 다양한 랩 매뉴얼 명확화
2018년 6월 2일
- Ubuntu 18에 설치할 때 docker-ce 대신 docker.io 사용
- capinout이 "sudo su" 모니터링 명령 뒤에 비권한 사용자 명령이 오면 충돌을 일으켰습니다.
- 라우팅 및 resolv.conf 설정을 fixlocal.sh 대신 /etc/rc.local로 이동하여 컨테이너의 시작/중지 간에 지속되도록 함.
2018년 5월 31일
- 줄 바꿈 없이 터미널에서 텍스트가 줄 바꿈되는 Docker 버그 우회.
- 파이프를 고려하도록 COMMAND_COUNT 확장
- 원격 서버로의 백업 및 전체 파티션 백업을 포함하는 새 버전의 backups 랩 생성.
- ssh-copy-id 유틸리티를 사용하도록 sshlab 지침 변경
- CentOS에서 ssh 로그인을 허용하기 위해 parameterize.sh에서 /run/nologin 파일 삭제
2018년 5월 30일
- 사용할 기본 이미지 식별을 허용하도록 new_lab_setup.py 확장
- 중앙 집중식 로깅을 포함하는 새 버전의 centos-log 생성.
- 평가 검증이 "time_not_during" 옵션을 허용하지 않았습니다.
- Docker 컨테이너에서 Labtainers를 관리하기 위한 Labtainer Master 통합 시작.
2018년 5월 25일
- 다양한 서비스에서 10초 대기 제거. xinetd 응답을 지연시켜 자동 테스트를 깨뜨렸습니다.
- snort 랩 채점을 수정하여 경보에 "CONFIDENTIAL"만 요구하도록 함. 랩에서 사용하지 않는 파일 제거.
- 랩이 중지될 때 프로그램이 실행 중이면 프로그램 완료 시간이 기록되지 않았습니다.
2018년 5월 21일
- 중복 목표를 제거하도록 retlibc 채점 수정, 자동 평가가 실패했습니다
- 개별 랩 및 랩 템플릿에서 mynotify.py 복사본 제거, lab_sys/sbin의 일부였지만 acl 랩을 위해 만들어진 수정 사항을 반영하도록 업데이트되지 않았습니다.
2018년 5월 18일
- segv 오류 메시지가 올바르게 보이도록 exec_wrap의 신호 메시지 마스킹.
- capinout이 때때로 stdout을 잃고 있었습니다, cmd 종료 시 명령 stdout 확인.
- 분할 오류 메시지를 잡기 위해 formatstring 채점 수정.
- 스크립트의 stdout을 입력하는 type_function 기능을 SimLab에 추가(formatstring simlab 참조).
- 단일/이중 따옴표 결합에 대한 SimLab 제한 제거.
- 주어진 제목의 창을 찾을 수 있을 때까지 일시 중지하는 window_wait 지시문을 SimLab에 추가.
- 물리적 세계 터미널의 제목을 상태를 반영하도록 변경하는 plc 랩 수정, 이는 테스트를 더 쉽게 만듭니다.
- bufoverflow 랩 매뉴얼 링크 수정.
2018년 5월 15일
- 회귀 테스트 및 랩 개발을 위해 랩의 사용자 수행을 시뮬레이션하는 SimLab 도구 사용에 대한 부록 추가.
- 선택된 네트워크 연결이 종료될 때까지 일시 중지하는 wait_net 함수를 SimLab에 추가.
- 여러 줄 일치에 FILE_REGEX를 사용하도록 acl 자동 평가 변경.
- xsite 랩에 대한 SimLab 테스트.
2018년 5월 11일
- home.tar에서 발견되는 파일의 강제 수집을 위한 "noskip" 파일 추가, Firefox places.sqlite 검색에 필요.
- 추출 전에 sqlite 데이터베이스를 write ahead buffer와 병합.
- symkeylab 랩 매뉴얼 수정
- symkeylab 및 pubkey에 대한 채점 추가
- simlab 도구 개선: include 지원, 창 이름 지정 수정.
2018년 5월 9일
- file-deletion 랩의 매개변수화 수정. 랩 매뉴얼의 오류 수정.
- 프로세스를 줄이고 PID 추적을 허용하기 위해 python 스크립트에서 shell=True 사용 대체
- backups, pass-crack 및 macs-hash 매뉴얼 정리.
2018년 5월 8일
- xterm 지침 터미널이 명령을 실행하기 전에 gnome-terminal이 docker 명령을 실행하는 것을 방지하기 위해 경쟁 조건 처리.
- 강사가 "-d"로 시작된 랩을 중지할 때 오류를 표시하지 않음.
- 랩의 의도를 더 잘 반영하도록 nmap-ssh 채점 변경.
- github의 olberger가 제안한 여러 문서 및 스크립트 수정.
2018년 5월 7일
- stdin 및 stdout을 캡처하기 위해 이전 capinout.sh 대신 C 기반 capinout 프로그램 사용. trunk/src-tool/capinout 참조. 모니터링되는 프로그램을 중단하기 위해 ctrl-C 사용 및 telnet 및 ssh에서 비밀번호 표시와 관련된 제한 제거.
- 별도로 제출된 보고서를 추출하고 누락된 제출을 요약하기 위한 saki bulk_download zip 처리 지원 포함.
- 사용자 제공 이메일이 인쇄 가능한 문자인지 확인하는 검사 추가.
- 채점 중 사용자 제공 이메일이 zip 파일 이름과 일치하지 않으면 결과 채점을 진행하지만 부정행위를 반영하는 노트를 테이블에 포함. 학생이 이메일 주소에 쓰레기를 입력한 경우 복구를 요구.
- 비밀번호에 대해 tcpdump 출력을 보지 않도록 telnetlab 채점 변경 -- capinout 수정으로 서버에 올바른 문자 단위 전송이 이루어집니다.
- install-docker.sh의 오타 수정 및 해당 스크립트에서 docker dns 설정을 변경하기 위해 sudo 사용.
2018년 4월 26일
- 랩을 시작하기 위해 "labtainer"를 사용하고 중지하기 위해 "stoplab"을 사용하도록 전환.
- labtainer 명령에 --version 옵션 추가.
- log_ts 및 log_range 결과 유형, time_not_during 목표 연산자 추가. 이러한 기능을 사용하도록 centos-log 및 sys-log 채점 개편.
- labsys.tar를 /tmp 대신 /var/tmp에 넣기, 때때로 확장 전에 삭제되었습니다
- VM 재부팅 후 root로 X 애플리케이션 실행 실패.
- CentOS 기반 랩에 "User Command" man 페이지 추가
- 학생으로부터 docs 파일 수집을 방해한 최근 버그 수정
- 학생별 결과 라인만 비교하도록 smoke-tests 수정, 공백 제거2018년 4월 20일
- denyhosts 서비스가 처음 시작에 실패하여, 시작을 student_startup.sh로 옮겼습니다.
- 모든 faux_init 서비스를 매개변수화 이후로 옮겼습니다 -- rsyslog가 컨테이너의 두 번째 부팅에서 시작에 실패하고 있었습니다. 2018년 4월 19일
- acl 랩이 트로이 목마 단계의 성능을 제대로 평가하지 못했습니다.
- 기본적으로 학생 문서를 수집합니다.
- denyhost 랩이 denyhosts(또는 tcp wrappers?)가 이제 iptables를 수정한다는 것을 반영하도록 변경되었습니다. 또한 denyhosts 서비스가 일부 경우에 시작에 실패하고 있었습니다.
- Labtainers를 업데이트할 때, 아카이브에 있는 것보다 최신인 파일을 덮어쓰지 마십시오 -- 학생 랩 보고서를 보존합니다.
2018년 4월 12일
- 랩 목표의 목적에 대한 문서를 추가하고, 강사가 랩을 시작할 때 강사에게 이를 표시합니다.
- 프로그램이 treataslocal에 있을 때 precheck 함수의 사용을 수정하고, capintout.sh에 전체 프로그램 경로를 전달합니다.
- instr_config 파일을 이미지 빌드 중이 아니라 런타임에 복사합니다.
- 자동 평가 디버깅에 대한 Designer Guide 섹션을 추가합니다.
- 랩 보고서 파일 이름의 잘못된 대소문자.
- 불필요한 chown 함수가 instructor.py를 때때로 충돌하게 만들었습니다.
- 랩의 자동 테스트 지원 (SimLab 및 smoketest 참조).
- testsets와 distrib를 trunk 아래로 이동
2018년 4월 5일
- "you've not use firefox in a while..." 메시지를 제거하도록 Firefox 프로필을 수정합니다.
- 레지스트리에서 불필요한 풀을 제거합니다 -- 대신 docker hub API를 통해 이미지 날짜를 가져옵니다.
2018년 3월 28일
- 시스템 파일에 "docker cp" 대신 명시적 tar를 사용합니다 (Docker는 링크를 따르지 않습니다.)
- backups 랩이 별도의 파일 시스템을 사용하도록 수정하고 매뉴얼을 업데이트합니다.
2018년 3월 26일
- 다중 사용자 모드 지원 (Lab Designer User Guide 참조).
- lab_bin 및 lab_sys 파일에 대한 빌드 의존성을 제거했습니다. 이들은 이제 랩의 매개변수화 중에 복사됩니다.
- capinout.sh를 /sbin으로 이동하여 root로 실행할 때 찾을 수 있도록 합니다.
2018년 3월 21일
- 동일한 컨테이너의 여러 인스턴스를 허용하기 위해 CLONE을 추가합니다. 예를 들어, 여러 동시 학생이 공유하는 랩에 사용됩니다.
- macvlan 및 CLONE의 예를 제공하도록 kali-test 랩을 조정합니다.
- capinout.sh 스크립트를 /sbin으로 복사하여 sudo su 후 root가 찾을 수 있도록 합니다.
2018년 3월 15일
- 외부 호스트와의 통신을 위한 macvlan 네트워크 지원
- Kali linux 베이스 및 Metasploitable 2 이미지 추가 (kali-test 참조)
2018년 3월 8일
- stop.py 사용 시 labname을 요구하지 않습니다.
- 잘못된 네트워크로 인한 오류를 잡고 사용자에게 수정 방법을 알려줍니다.
- NPS에서 로컬 apt 및 yum 저장소 사용 지원을 추가합니다.
2018년 2월 21일
- dmz-lab 추가
- "checklocal"을 "precheck"로 변경하여 명령 이전에 실행됨을 반영합니다.
- inotify 이벤트 보고를 precheck.sh 사용과 분리하고, inotify 이벤트 목록에 선택적 outputfile 이름을 포함할 수 있도록 합니다.
- bash 훅을 root 작업으로 확장하고, 해당 bash_history를 플러시합니다.
- start.config 필드의 매개변수화를 허용합니다. 예를 들어, 무작위 IP 주소에 대해
- systemctl 또는 /etc/init.d를 통해 시작된 서비스의 모니터링 지원
- 관심 있는 일부 구성 변경으로 구분된 범위로 타임스탬프된 로그 파일을 구성하기 위해 시간 구분자 한정자를 도입합니다 (dmz-lab 참조)
2018년 2월 5일
- results.config 파일의 부울 값이 이제 목표 값으로 처리됩니다.
- 아티팩트 결과를 식별하기 위한 정규 표현식 지원을 추가합니다.
- 대체 Docker 레지스트리 지원, 테스트를 위한 로컬 테스트 레지스트리 포함
- 랩 및 랩 매뉴얼에 대한 기타 수정
- capinout 모니터링 훅이 종료 시 자식 프로세스를 종료하지 않고 있었습니다.
- 아티팩트를 수집하기 전에 모니터링되는 프로세스를 종료합니다.
- labtainer.wireshark를 베이스라인 컨테이너로 추가하고, dockerfile을 정리합니다.
2018년 1월 30일
- snort 랩 추가
- 로그 파일 타임스탬프(예: syslog의 것)를 타임스탬프된 결과에 통합합니다.
- 중간 타임스탬프된 json 결과 파일에서 정의되지 않은 결과 값을 제거합니다.
- time_during 목표 평가 작업을 변경하여 타임스탬프를 결과 목표 값과 연관시킵니다.
2018년 1월 24일
- 탭 창 사용으로 인해 강사 측이 실패했으며, 큰따옴표를 사용합니다.
- 빌드 의존성을 결정할 때 _tar 디렉터리의 파일(.tar 제외)을 무시합니다.