Labtainers: Dockerベースのサイバーラボフレームワーク
Labtainersには50以上のサイバーラボ演習と自分で構築するためのツールが含まれています。単一のVMアプライアンスをインポートするか、Linuxシステムにインストールすれば、学生はこれらのラボ演習や将来の演習のためにプロビジョニングや管理設定を行う必要がなくなります。
- Dockerコンテナによる一貫したラボ実行環境と自動プロビジョニング
- 性能が控えめなラップトップコンピュータでのマルチコンポーネントネットワークトポロジ
- 学生のラボ活動と進捗の自動評価
- 解答の共有を防ぐための個別化されたラボ演習
Labtainersは、学生のコンピュータにインストールされているLinuxディストリビューションやパッケージに関係なく、学生が自分のコンピュータ内で完全にラボを実行できる、制御された一貫した実行環境を提供します。Labtainersは当社の[VMアプライアンス][vm-appliancee]上、またはDockerがインストールされた任意のLinux上で動作します。また、LabtainersはクラウドベースのVMとしても利用可能で、例えば学生ガイドで説明されているようにAzure上で使用できます。
インストールと使用については学生ガイドを、学生の評価についてはインストラクターガイドを参照してください。ラボ演習の開発とカスタマイズはデザイナーガイドに記載されています。フレームワークの詳細については論文を参照してください。Labtainersのウェブサイトとダウンロード(LabtainersがプリインストールされたVMアプライアンスを含む)はhttps://nps.edu/web/c3o/labtainersにあります。
配布作成日: 01/06/2026 12:28
リビジョン: v1.4.4i
コミット: 4f868e24
ブランチ: master
コンテンツ
配布と使用
ディレクトリガイド
サポート
リリースノート
配布と使用
ライセンスおよび配布情報はdocs/license.mdファイルを参照してください。
ディレクトリガイド
-
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パッケージミラーリングのためのユーティリティスクリプト。テストや配布中に外部パッケージのプルを減らします。
サポート
GitHubのイシュー報告を使用するか、[email protected] までメールしてください。
https://my.nps.edu/web/c3o/support1 も参照してください。
リリースノート
標準のLabtainers配布には、新しいラボの開発に必要なファイルは含まれていません。それらについては、labtainer/trunk/setup_scriptsディレクトリから./update-designer.shを実行してください。
インストールスクリプトとupdate-designer.shスクリプトは環境変数を設定するため、Labtainersを初めて使用する前にログアウト/ログインするか、新しいbashシェルを起動することをお勧めします。
Jauary 6, 2026
- インデントに起因するインストールスクリプトに導入されたバグを修正。
December 30, 2025
- checkworkレポートの形式を縦型に変更; ヘッドレス用ビデオガイド; 便利なパス
October 15, 2025
- packet-introspectionラボを改訂し、maxmind geo locationデータベースへのリンクを更新、およびレガシーデータベースの使用に関する注意を追加。
April 24, 2025
- imoduleを修正し、プルリクエスト#96に従って不足しているディレクトリを適切に作成するようにしました。
November 22, 2024
- Google Cloud VMを交換。今回はコンテナ内のsystemdの障害による。
September 23, 2024
- Google Cloud VMを交換。間違ったDockerバージョンを使用していた。
September 10, 2024
July 26, 2024
- capinoutを修正し、grantpt clib関数を使用しないようにした。この関数はコンテナから実行するとクラッシュするようになった。
July 22, 2024
- Ubuntu22用のベースコンテナを追加し、それをサポートするためのフレームワークの変更。
July 5, 2024
- VMアプライアンスをUbuntu 24に移行
- docker pyhtonパッケージが壊れたpython httpライブラリを使用しているため、パッケージのダウングレードが必要。
- Ubuntuのpythonパッケージのロックダウンを回避するために仮想python環境を使用。
- コンテナとVMの間でsystemdを共有できるようにする起動パラメータを追加。
- アップデート時に壊れたtarユーティリティからのエラーメッセージをリダイレクト。
- バージョン18 VMのmscパッケージに関するUbuntuアップデートの破損(update-ubuntu.shを参照)
- docker-composeコマンドが壊れているため、"docker compose"を使用
- ヘッドレスlabtainersでソケットのパーミッションを強制。
- ヘッドレスLabtainersをUbuntu 24を使用するように更新
November 27, 2023
- Google Cloud Platformオプションを追加(ec2マシン上のubuntu22用)。
September 18, 2023
August 8, 2023
- DockerHubイメージのJSON形式の変更に対応。Keesに感謝!
April 17, 2023
- 最新のラボバージョンを強制使用(例:iptablesの代わりにiptables2)。タブ補完を最新のみ表示するように修正。(Issue #77)
- CyberCIEGEラボのインストールがX11の競合状態により失敗していた。(Issue #76)
- CyberCIEGEのreadmeに、収集したログを$HOMEディレクトリに保存するよう学生に指示する注意事項を追加。(Issue #75)
- Radiusラボのcheckworkが誤って"radiusd not running"と報告していた。prestopスクリプトが欠落していた。(Issue #74)
- LabeditがMACVLAN_EXTオプション使用時に開始設定ファイルを破損していた。(Issue #73)
February 1, 2023
- デフォルト以外のユーザーのBash履歴が保存されていませんでした。
January 26, 2023
- gcloud用のPowerShellスクリプトを修正し、選択されたゾーンを使用してVM名を修飾するようにしました。
January 4, 2023
- systemdを使用しているコンテナがUbuntu 22に含まれる新しいsystemdで失敗していた。
- google cloudスクリプトに--zoneパラメータを追加。値はset_defaultsスクリプトから取得。
December 21, 2022
- xforgeの結果基準を修正し、パス名を期待しないようにし、プロファイル編集にPOSTが発行されたかどうかのチェックを追加。また、攻撃者のHTTPサーバーがホームディレクトリから実行されるように修正。
December 19, 2022
- システムコールトレースを紹介するstraceラボを追加。
- /tmp/.X11-unixディレクトリに複数のデバイスがある場合、X11 DISPLAY値が正しくありませんでした。
- 引数なしでpython/bash/sh/etcを使用するとcapinoutがクラッシュしていました。
December 9, 2022
- Azure VM作成スクリプトを修正し、Azure Community Galleryの事前構築済みLabtainer VMイメージを使用するようにしました。
- クラウドVM上の端末が起動中または右クリック時に原因不明でクラッシュする。端末の開始/停止で対処を試みる。
December 5, 2022
- 成果物を収集する際、デフォルト以外のユーザーのディレクトリからの修正ファイル(例:bash履歴)を含めるようにしました。
- Web評価を変更し、新しい「他のユーザー」ファイルを表示するようにしました。
- 各コンテナの.local/binから成果物にファイルを含める。インストラクターがWeb評価を通じて利用できるようにすることを意図。
- ACLラボでは、結果に/shared_data/bob/funファイルを含め、インストラクターが参照できるようにしました。
- コマンドラインからの"sh"または"bash"の使用を捕捉し、特定のコマンド("time"や"sudo"と同様)の解析時にスキップするようにしました。
- tcpipラボでは、後続のラボセッション中にサーバーにSSH接続できませんでした。/run/sshdディレクトリが再作成されていませんでした。
November 16, 2022
- snortラボのSnortマニュアルへのパスを修正。
- ossecマニュアルのmanage_agentsへのパスを修正。
October 12, 2022
- Google Cloudのgnome-terminalコマンドからバックグラウンド演算子を削除。右クリックではまだクラッシュするが、newterm.shを実行した後は安定しているように見える。
October 10, 2022
- Google Cloudのnewterm.shを修正。ブートディスクを30Gに拡張。
September 20, 2022
- TCP/IPラボのユーザーIDとパスワードをラボマニュアルに記載。
August 30, 2022
- コンテナの.profileからDISPLAYを設定する際にX11ソケット名を使用。
August 9, 2022
- graderのprocessValueMax関数の名前を修正。Issue #63
August 4, 2022
- labeditプログラムが誤ったJDKで再ビルドされ、古いJREでlabeditを実行できなかった。
July 18, 2022
- IModules内でUbuntu20ベースのコンテナの作成が失敗していた。Issue #61。
March 23, 2022
- タップロックディレクトリへのパスを修正。ネットワークタップを使用するラボの失敗を引き起こしていた。
- plc-traffic netmonコンピュータを更新し、java環境で新しいgrassmarlinに必要なopenjfxを追加。
- chown -Rを避けることでラボの起動を高速化。Dockerでは非常に遅い。
- コンテナの/tmpディレクトリ内のX11リンクの削除を回避する別の試み。
- webtrackの訪問サイトのカウントを修正し、live-headersゴールを削除。そのツールはもう利用できない。
- ラボマニュアルのいくつかの手順を明確化。
March 2, 2022
- 新しいssh-tunnelラボを追加(GWDに感謝!)
- new_lab_setupで設定されたX11値を反映できなかったlabeditの不具合を修正。
- コンテナをパラメータ化しないオプションを追加。
February 23, 2022
- 新しいコンテナ追加後、labeditがstart.configを破損していた。
- 学生READ MEファイル内の学生ガイドへのパスが誤っていた。クラウド設定に応じて動的に変更。
- update-labtainer.shの拡張子が誤っていた。
- Mscガイドの機能強化。
- ghidraラボを更新し、Ghidraバージョン10.1.2を含むようにした。
February 15, 2022
- Azureクラウドサポートを学生ごとにプロビジョニングするように戻す。Azureはリソースの共有を推奨していない。
January 24, 2022
- Azureクラウドは、学生ごとにプロビジョニングする代わりに、Azure BLOBに保存されたイメージを使用するようになりました。
- Google Cloudサポートを追加。
January 19, 2022
- Azureクラウド上でのLabtainersを導入。使用方法の詳細は学生ガイドを参照。
January 3, 2022
- setuid-envラボを改訂し、より良い評価を追加。simlabテストとprintenv子プロセスでのsighup回避。
- 評価ゴールカウントディレクティブを修正し、falseの結果タグ値を除外。
- デバッグオプションで開始されたgraderでgradelab -aを使用する際、ラボ名を必要としないようにした。
- capinout(stdin/stdoutミラーリング)を改訂し、コマンドプロセス子プロセスの孤児化を処理。ドキュメントとエラーハンドリングを改善。
- ラボ初回実行時にプルされるdockerイメージのプログレスバー表示を追加。
- コンテナ初期化の進行状況に関するユーザーフィードバック。
- pcap-libラボに自動評価に必要なnotifyファイルが欠落していた。ラボマニュアルから余分な手順を削除。
November 23, 2021
- テストVMでUbuntuのポップアップエラーを無効化。
- 異なるDISPLAY変数形式の処理を修正。
October 22, 2021
- tcpipラボガイドを改訂し、SYNフラッド攻撃の成功は不可能であることを記載。自動評価を修正し、SimLabスクリプトを追加。
- 成果物ファイルの拡張子をzipからlabに変更し、GUIファイルマネージャを混乱させるためのプリアンブルを追加。学生がzipを開いて中身を提出していた。
- gradelabの-rオプションをデフォルトにし、graderの累積使用のための-cオプションを追加。
- refresh_mirrorを修正し、ローカルリリース日を参照することでDockerHubへの頻繁な問い合わせを回避。それぞれの問い合わせはイメージプルとしてカウントされ、現在それらを収益化しようとしている。
September 30, 2021
- bufoverflowラボガイドと採点を変更し、ASLRが有効な場合の成功を期待しないようにし、実行されたかどうかを評価。
- 学生が結果を持っていない場合のWeb graderのエラーハンドリング。
- 非推奨のラボが実行されたときに警告を表示。
- formatstringの採点を変更し、未使用の"_leaked_secret"説明を削除し、leaked_no_scanfの値を明確化。
- また、formatstringの採点を変更し、脆弱な実行ファイルに任意の名前を許可。
September 29, 2021
- Gradelabのエラーハンドリング、不良zipファイルによるクラッシュの発生を低減。
- stdout成果物ファイルを1MBに制限。
September 17, 2021
- GhidraラボガイドのIPアドレスが誤っていた。ソースから再作成されていなかった。
September 14, 2021
- SSLを使用したLDAPとMariadbのサンプルラボ。新しいラボのテンプレートとして意図。
- Mariadbログ形式の処理。
- CPU使用を制限したり、コンテナをCPUセットに固定するためのコンテナごとのパラメータを追加。
- Labpack作成がGUI(makepackui)で利用可能に。
- labtainer、labpack、gradelabコマンドのタブ補完。
- MPIを使用した新しい並列計算ラボ``parallel''。
August 3, 2021
- コンテナが別のコンテナのパラメータ化が完了するまでパラメータ化を遅延させるための"WAIT_FOR"設定オプションを追加。
- 結果解析におけるMariadbログ形式のサポート。
- MacおよびWindowsでのDocker Desktopの使用サポートを削除。その製品はサポートするには不安定すぎる。
- ユーザーが"which"などの組み込みbashコマンドを使用した場合のstderrメッセージを抑制。
- makepack/labpackプログラムのバグ修正。
July 19, 2021
- DNSプロトコルと設定を紹介するDNSラボを追加。
- VirtualBoxアプライアンスイメージを修正し、正しい更新スクリプトで起動するようにした。
- resolv.conf nameserverパラメータをlab_gw設定フィールドから分離し、独自の値として設定。
- ラボが開始される前に実行するとIModuleコマンドが失敗した。
July 5, 2021
- DISPLAY環境変数管理のエラーにより、Docker Desktop上のGUIアプリケーションが壊れた。
July 1, 2021
- ヘッドレスLabtainersのMacパッケージインストールをサポート。
- routing-basicsラボの自動評価がtreataslocalファイルの欠如により失敗。
- routing-basicsラボのタイポと誤ったアドレスを修正し、自動評価を修正。
- pcapanalysisの評価が失敗していた。
June 10, 2021
- すべてのラボマニュアルPDFがgithubリポジトリに含まれるようになりました。
- vpnlabとvpnlab2の説明をPDFラボマニュアルに変換。
May 25, 2021
- 各ラボに検索可能なキーワードを追加。使用方法は"labtainer -h"を参照。
- routing-basicsラボとラボマニュアルを拡張。
- routing-basics2ラボを削除。重複のため。
- 一部のコンテナでsudoが失敗。ホスト名がアンダースコアを削除するため、hostsファイルとの不一致が発生。コンテナ名からアンダースコアを除いたエントリをhostsファイルに追加して修正。
- ラボのコレクションをパッケージ化する新しいLabpack機能、およびLabpackを作成するmakepackツール。
- ubuntu20使用時の/sbinディレクトリのエラーチェック -- サイレントに致命的だった。
- 新しいnetwork-basicsラボ
May 5, 2021
- ユーザー/グループ管理を紹介する新しいusersラボを導入。
- centosコンテナのsyslogでApparmorホストメッセージを抑制。
April 28, 2021
- 新しいbase2イメージにマニュアルページが欠落していた。unminimizeを使用してベースイメージに復元。
- OSSECホストベースIDSラボを導入。
April 13, 2021
- CyberCIEGEラボが失敗。fixlocal経由でWineを起動する前にX11ソケットが再配置されていなかったため。
April 9, 2021
- 簡単なC++プログラムでGDBを使用するための新しいgdb-cppチュートリアルラボ。
- 浮動小数点例外により、stdin/stdoutミラーリングにexec_wrap.shが使用されていることが明らかになった。
April 7, 2021
- ldapラボがUbuntu 20に移行した際に失敗。問題はnscdのpwdキャッシュに起因。ldapをUbuntu 20に移行。
March 23, 2021
- RANDOMでのパラメータ化が上限を含んでいなかった。
- RANDOMにオプションのステップパラメータを追加。例:単語境界を確実にするため。
- db-accessラボ:データベースコンピュータにmysql-workbenchを追加。
- Cデータ構造の境界を超えたメモリ参照を示す新しいoverrunラボ。
- printf関数によるメモリ参照を紹介する新しいprintfラボ。
March 19, 2021
- gradelabがmakdirsエラーを無視。共有フォルダ上のWindows rmtreeの問題。
- gradelabが学生のzipファイル名のスペースを処理。
- gradelabがMoodleからのzipファイル名(ビルドダウンロードを含む)を処理。
March 12, 2021
- labedit UI:ベースイメージのリストから古いwiresharkイメージを削除。
- labedit UI:一部のフォントサイズを拡大。
- grader Webインターフェースが、マニュアル名が命名規則に従っていない場合にラボマニュアルを表示できなかった。
March 11, 2021
- labedit UIに新しいグローバルラボ設定パネルでレジストリ設定を追加。
March 10, 2021
- labedit UIの修正:ラボに構文エラーがある場合にビルドしない。
- labedit UIの"Lab running"インジケータを修正し、現在のラボを反映。
March 8, 2021
- HOST_HOME_XFERの使用を非推奨に。すべてのラボはlabtainer.configファイルに従ってディレクトリを使用。
- REGISTRYとBASE_REGISTRYのためのドキュメントコメントをstart.configに追加。
March 5, 2021
- 結果がない場合のgradelab Webインターフェースのエラーハンドリング。
- labeditにprecheckを追加。mscのバグ修正。
February 26, 2021
- dmz-exampleラボで、一部のコンポーネントのルーティングとdnsmasqのセットアップにエラーがあった。
February 18, 2021
- UIが理由なくファイル時刻を更新していたため、イメージを再ビルドしていた。
- UIコードをクリーンアップし、冗長なデータコピーを削除。
February 14, 2021
- UIにローカルビルドオプションを追加。
- centos6ベース用の空のfaux_initを作成。
February 11, 2021
- UIのファイル編集処理を修正。レイアウトを改訂し、未使用フィールドを削除。
- ubuntu20 base2ベース設定をssh2、network2、wireshark2とともに追加。
- 新しいwiresharkにより、黒/ノイズウィンドウの問題が解決。
- /tmp/.X11-unixを/var/tmpにマッピングし、リンクを作成。ubuntu20に必要(/tmpを削除していた?)であり、他の問題も修正する可能性がある。
February 4, 2021
- 結果成果物にSIZEオプションを追加。
- wireshark-introの評価とパラメータ化を簡素化し、PDFラボマニュアルを追加。
- パラメータリストの値を環境変数としてpregrade.shスクリプトに提供。
- graderでX11を有効化。
- update-designer.shをユーザーのPATHに配置。
January 19, 2021
- READMEの日付/リビジョンの管理を変更し、ソースリポジトリのファイルを更新。
- ラボの作成/編集のためのGUIを導入 -- labeditコマンドを参照。
December 21, 2020
- VirtualBox共有フォルダからzipファイルをコピーした場合、gradelab関数が失敗した。
- インストラクターガイドを更新し、ホストコンピュータ上の学生zipファイルの管理について説明。
December 4, 2020
- tarの配布をGitHubリリース成果物に移行。
- 個別のデザイナーtarファイルを廃止。gitリポジトリtarballを使用。
- 学生ラボ成果物分析のためのgrader Web機能のテスト。
- 完全なスモークテストからログをクリアし、removelabコマンドでgraderコンテナを削除。
December 1, 2020
- iptables2ラボの評価は、ランダムポートがnmapにとって"unknown"であることに依存していた。
- 同期ディレクトリを使用して、ラボ起動前にスモークテストが開始されるのを遅延。
- Lab designer UI要素の統合を開始。
October 13, 2020
- MacおよびWindows上のDocker Desktopで実行するためのヘッドレス設定。
- ヘッドレスサーバーサポート、クラウドデプロイ用のcloud-configファイル。
- ヘッドレス設定のテストサポート。
- 起動時にrc.localが実行されるまでmynotifyを待機させる。
- mynotifyサービスの出力を単一のタイムスタンプにマージする機能を改善。
- stopgradeスクリプトにPython3を使用。
- SimLabがシステムpsの代わりにdocker topを使用するようになりました。
September 26, 2020
- stoplabスクリプトをクリーンアップし、非ラボコンテナを無視するようにした。
- mysqlデータベースの制御された共有のためのdb-accessデータベースアクセス制御ラボを追加。
September 17, 2020
- macs-hashラボがX11設定のためにLeafpadを実行できなかった。
- Graderのログが誤ったログファイルにリダイレクトされていた。現在はinstructor.pyからのエラーをキャプチャ。
- エラーがある場合、instructor.logをgraderからホストのログディレクトリにコピー。
August 28, 2020
- インストールスクリプトを修正し、python3-pipを使用するようにし、壊れたスクリプト(getinfo.pyとpull-all.py)を修正。
- レジストリロジックが壊れており、テストシステムがテストレジストリを使用していなかった。開発ドキュメントを追加。
- OWASPベースのWebセキュリティラボ用にjuiceshopとowaspのベースファイルを追加。
- check_netsから不要なsudoを削除。
- 自動評価のためのCHECK_OKドキュメントディレクティブを追加。
- check_netsを変更し、指示された場合にiptablesとルーティングの問題を修正するようにした。
August 12, 2020
- prestopスクリプトにタイムアウトを追加。
- dmz-labにクイズとcheckworkを追加。
- -rオプションなしでdmz-labを再起動すると、ISPからのルーティングが壊れた。
- time_delim結果に複数のファイルを許可。August 6, 2020
- X11ソケットがない場合のエラーハンドリングのバグ
- クイズ問題内のカンマが解析エラーを引き起こす
- iptables2ラボにクイズとcheckworkを追加
July 28, 2020
- クイズサポートを追加 – これらは評価クイズではなく、ガイダンスクイズです。 デザイナーガイドを参照してください。
- checkworkコマンドで使用するための現在の状態評価を追加
July 21, 2020
- デザイナーのパスにtestsets/binを追加
- IModuleステップのためのデザイナーガイドの修正と説明
- ログエントリ上の正規表現を使用して時間範囲を定義するためのRANGE_REGEX結果タイプを追加
- ラボを開始する際にX11ソケットが必要な場合、その存在を確認する
- mysqlのベースイメージを追加
- 結果解析でmysqlログのタイムスタンプ形式を処理
June 15, 2020
- Birdオープンソースルーターを含む新しいベースイメージ
- bird-bgp Border Gateway Protocolラボを追加
- bird-ospf Open Shortest Path Firstルーティングプロトコルラボを追加
- DNS変更の処理を改善、一部のサイトで一部のコンテナからの外部アクセスがブロックされていた
- インストラクターガイドに、インターネットアクセスがない環境でLabtainersを使用するセクションを追加
May 21, 2020
- すべてのリポジトリをDocker Hubのlabtainersレジストリに移動
- start.configで定義されたマウントをサポートし、永続的なソフトウェアインストールを可能にする
- idaラボをIDAの永続的インストールを使用するように変更 – 新しい名前はida2
- DARPA Cyber Grand Challengeからの200以上の脆弱なサービスを探索するcgcラボを追加
- SimLabにtype_stringコマンドを追加
- NetFlowネットワークトラフィック分析を使用するためのnetflowラボを追加
- bufoverflowおよびformatstringラボの64ビット版を追加
April 9, 2020
- ワイルドカードをファイル選択に使用した場合、CONTAINSおよびFILE_REGX条件の評価に失敗する採点のバグ修正
- symlabラボでhexeditを使用するためのヒントを含める
- 設定ファイルで期待される回答を公開しないように、自動評価にhash_equal演算子とhash-goals.pyを追加
- pcap-libラボの自動評価
April 7, 2020
- ログは$LABTAINER_DIR/logsに移動されました
- Jenkinsを使用したリビルドとテストを可能にするためのその他のクリーンアップ(ビルド用の一意の一時ディレクトリの使用を含む)
- ビルドサポート関数をlabutilsからbuild.pyに移動
- PCAPライブラリベースのトラフィック分析プログラム開発のためのpcap-libラボを追加
March 13, 2020
- ラボ中に生成されたトラフィックをGrassMarlinで使用するためのplc-trafficラボを追加
- 選択したネットワークからPCAPを収集するための「tap」コンテナを追加する機能を導入
- コンテナへの外部アクセス、およびdummy_hcdを使用したUSBドライブのシミュレーションに関するGNS3ドキュメントの更新
- systemdを使用しようとせず、faux_initを使用するようにkaliテンプレートを変更
- 配布物(tarファイル)をbox.comに移動
- SimLabのnetstatの使用をDNSルックアップを行わないように変更
February 26, 2020
- labtainerコマンドでラボが見つからない場合、ユーザーにupdate-labtainer.shを実行するよう提案
- すべてのネットワークトラフィックを表示するネットワークタップコンポーネントの予備サポートを追加
- インターネットなしで使用されるVMを準備するためのラボイメージ取得スクリプト
- nmap-discoveryラボのユーザー名とパスワードを提供
February 18, 2020
- :0を想定する代わりに、ホスト(例:VM)からDISPLAY環境変数を継承
February 14, 2020
- Ghidraソフトウェアリバースエンジニアリング入門演習を追加
February 11, 2020
- GNS3環境内のコンテナへのリモートアクセスを説明するガイドを更新
- GNS3内の選択したコンポーネントとリンクを非表示
- webtrackラボガイドの図が表示されなかった;nmap-sshのタイプミス
February 6, 2020
- コンテナをリモート管理(例:ファイルのプッシュ)する機能を導入
- USBドライブの挿入をシミュレートするGNS3環境機能を追加
- Dockerビルドエラーの処理を改善
February 3, 2020
- metasploitラボで、被害者マシンでpostgresqlサービスが実行されていなかった
- IModuleマニュアルの内容をLab Designerガイドに統合
- IModuleサポートの追加
January 27, 2020
- IModules(インストラクター開発ラボ)の初期サポートを導入。 docs/imodules.pdfを参照。
- update-labtainer内の壊れたLABTAINER_DIR環境変数を修正
- ACLラボのaccounting.txtファイルのアクセスモードを修正(rw-r-rになっていた)。 fixlocal.shで明示的なchmodを使用
January 14, 2020
- フレームワークとgradelabをPython3に移植(既存のPython2ラボは変更しない)
- 後方互換性のあるrandom.seedオプションを使用
- 互換性のないrandintをハックして古い値を返す
- python3がないプラットフォーム(または、python 3.5.2を含む古いVMアプライアンスのようにrandom.seedの互換性を壊すもの)のためにpython2を引き続きサポート
- 必要に応じてpython2を選択するrebuild.pyのrebuildエイリアスを追加
- CentOSベースのラボのmanページが機能しなかった;ベース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ブランチを使用するようにソース管理手順を改訂
October 9, 2019
- dmz-labのdnsコンポーネントからdnsmasqを削除。 一部のインストールでbindが失敗する原因となっていた
October 8, 2019
- テストレジストリ設定の構文エラー;大きなファイルに関するラボデザイナー情報;bigexternal.txtファイルの取得
September 30, 2019
- DockerHubレジストリの取得が一部のユーザーで再び失敗。 jsonへのhtmlプレフィックスを無視
September 20, 2019
- onewayhashの評価では、学生が選択したファイルに対してhmac操作を許可する必要がある
September 5, 2019
- metasploitラボのリビルド、metasploit-frameworkにバグが発生。 また、ラボの"treataslocal"ファイルがsvnからの移動時に除外されていた。 metasploitラボマニュアルのタイプミスを修正
August 30, 2019
- コンテナディレクトリの存在確認を元に戻す、それらは常に存在するとは限らない
August 29, 2019
- GitHubまたはcurlの変更により、Docker Hubからのラボイメージのプルが失敗? cloudflareへのリダイレクトをキャッチ。 GNS3サポートの追加。 dmz-lab dnssecの修正
July 11, 2019
- CentOS6コンテナの自動評価、firefoxメモリ問題の修正、start.configファイル内の任意のDocker作成引数のサポート
June 6, 2019
- Centos6ベースの導入、ただし自動評価はまだサポートされていない
May 23, 2019
- フィールドセパレータのタイプミスにより、setuid-envの自動評価が失敗
May 8, 2019
May 2, 2019
- Aclラボのbobstuff.txtパーミッションの修正。 fixlocal.shで明示的なchmodを使用
- マニュアル内でstopと-rオプションの使用を明確にするために学生ガイドを改訂
March 9, 2019
- checkwork関数がコンテナを再利用していたため、学生が以前のラボ作業のアーティファクトを排除できなかった
- symkeyラボにBMP画像形式を説明する付録を追加
February 22, 2019
- vpnおよびvpn2ラボでhttpサーバーの起動に失敗。 再作成されるまでこれらのラボから自動評価を削除
January 7, 2019
- gdblessonの自動評価を少なくとも動作するように修正
January 27, 2019
- routing-basics2のラボマニュアルを修正し、内部Webサーバへの外部アクセスを有効にするためにルーティングを修正
December 29, 2018
- routing-basics2の修正、routing-basicsと同じ問題に加えて、ゲートウェイのresolv.confのIPアドレスが誤っていた
December 5, 2018
- routing-basicsラボの修正、ISPおよびゲートウェイコンポーネントでのDNS解決が壊れていた
November 14, 2018
- backups2のアーカイブマシンから/run/nologinを削除 – このnologin問題の一般的な解決策が必要
November, 5, 2018
- file-integrityラボのデフォルトaid.confを、ファイル変更時刻ではなくメタデータ変更を追跡するように変更
October 22, 2018
- macs-hashラボのverydodgy.com解決がラボ再起動で失敗
- notify_cb.shがない場合の通知機能の失敗
October 12, 2018
October 10, 2018
- パラメータ化されたファイルの強制収集
- centos-xtraベースラインにleafpadとghexを明示的に含め、依存イメージをリビルド
September 28, 2018
- ACLラボの共有ファイルのアクセスモードを修正
- pass-crackの質問を明確化
- ラボ開始より古いファイルを無視するようにアーティファクト収集を変更
- 量子コンピューティングアルゴリズムラボを追加
September 12, 2018
- setuid-envの採点構文エラーを修正
- iptables2のファイアウォールルール例の構文エラーを修正
- CentOSラボのリビルド、lamp派生の依存関係をlamp.xtrでwaitparamを使用するように変更し、httpdがそれが終了するのを待つように強制
September 7, 2018
- CyberCIEGEをラボとして追加
- read_pre.txtの情報表示はイメージのプル前に行われ、中止する機会を提供
September 5, 2018
- gradelab関数へのsakai一括ダウンロード処理の復元
- 未使用のインストラクタースクリプトを削除
September 4, 2018
- ネットワークインターフェースごとに複数のIPアドレスを許可
- Wineのベースイメージを追加
- GRFICS仮想ICSシミュレーションを追加
August 23, 2018
- GrassMarlinラボ(ICSネットワーク発見)を追加
August 23, 2018
- GrassMarlinラボ(ICSネットワーク発見)を追加(同上)
August 21, 2018
- AWS認証問題に関する別の修正(DockerHubはAWSを使用)
- new_lab_setup.pyをsvnではなくgitを使用するように修正
- plc-forensicsラボを基本ラボと発展ラボ(plc-forensics-adv)に分割
August 17, 2018
- gitおよびGitHubを公式リポジトリとして移行
August 15, 2018
- plc-forensicsラボの評価をより一般的に修正;ラボマニュアルをLabtainer上のwiresharkを反映するように改訂
August 15, 2018
- 学生がラボ作業の自動評価結果を表示できる"checkwork"コマンドを追加
- iptables2およびiptables-icsラボにiptablesパケットドロップのログ記録を含める
- goal.configからis_trueとis_falseの廃止されたインスタンスを削除
- "NOT foo"を処理するためにブール評価を修正、より多くのオペランドを期待していた
August 9, 2018
- results.configファイルでのパラメータ置換をサポート
- results.configにTIME_DELIM結果タイプを追加
- iptablesラボの再作業、隠されたnmapコマンドの削除、カスタムサービスの導入
August 7, 2018
- labtainer-studentディレクトリに学生ガイドへのリンクを追加
- VMデスクトップに学生ガイドへのリンクを追加
- シャットダウン時の長時間遅延を回避するためにiptables-icsを修正;回帰テストの修正
- 学生がVMブラウザを使用してアーティファクトzipファイルをインストラクターに転送することを提案するガイドの注記を追加
August 1, 2018
- 自動評価に汎用Dockerイメージを使用;ラボごとに"instructor"イメージを作成するのを停止
July 30, 2018
- fixlocal.shスクリプトがwaitparamを前提条件とするサービスを開始する場合、
フラグディレクトリを作成してwaitparam.serviceのブロックを解除する必要があることを文書化
- PLCアプリケーションファイアウォールとホワイトリスト演習のためのplc-appラボを追加
July 25, 2018
- goals処理にstring_contains演算子を追加
- 漏洩した秘密が常に表示された文字列の末尾にあるとは限らないことを考慮して、formatstringラボの評価を修正
July 24, 2018
- SSH Agentラボ(ssh-agent)を追加
July 20, 2018
- オフラインビルドをサポート、オプションですべてのイメージプルをスキップ
- Dockerfileテンプレートにapt/yumリポジトリ復元を復帰
- 認証エラーを回避するためにDockerレジストリblob取得からのリダイレクトURLを処理(curl --locationに依存しない)
July 12, 2018
- ラボシャットダウン前に選択したコンポーネントでデザイナー指定のスクリプトを実行できるprestop機能を追加
- sslラボのホスト命名を修正、自動評価が壊れていた
- dmz-labの初期状態を修正し、内部ネットワークからのDNS解決を許可
- FILE\REGEX処理がマルチライン検索を適切に処理していなかった
- 新しくリビルドされたイメージから派生したフレームワークバージョンが誤ったデフォルト値を持っていた
July 10, 2018
- LDAPラボを追加
- systemdベースのUbuntuイメージへの完全移行、未使用ファイルの削除
- lab_sys tarファイルを同時実行のためにコンテナごとのtmpディレクトリに移動
July 6, 2018
- すべてのUbuntuベースイメージがsystemdベースのバージョンに置き換えられました
- レジストリ内のLabtainerコンテナイメージはベースイメージIDでタグ付けされ、ベースイメージを反映するラベルが付けられています
- 特定のインストールは、それが持つベースイメージと一貫性のあるイメージをプルして使用します
- VMイメージを使用している場合、当社ウェブサイトの新しいVMイメージに置き換えることをお勧めします
- 新しいラボは新しいベースイメージをダウンロードしないと実行されません;その結果、VMに複数のバージョンの大きなベースイメージ(各500 MB以上)が保存される可能性があります
- ラボ停止時に実行中だったプロセスからのアーティファクトが失われていた – capinoutプロセスが適切に強制終了されていなかった
June 27, 2018
- Ubuntu systemdイメージのサポートを追加
- labtainer-student/binからSimLab.pyの古いコピーを削除
- aptおよびyumソースを/var/tmpに移動
- 評価での"boolean"と"count_greater"の使用の違いを明確化
- start.configのAdd-HOSTを拡張してネットワーク上のすべてのコンポーネントを含める
- new_lab_setup.pyに、既存のコンテナのコピーに基づいてコンテナを追加するオプションを追加
June 21, 2018
- rootのDISPLAY環境を設定
- svn status出力のビルド依存関係処理の修正
- radiusラボを追加
- SimLabのappendのバグを修正
- 適切な場合にsvnを使用して、new_lab_setup.pyでファイル名を変更
June 19, 2018
- 複数のタブを持つターミナルを作成する際にstart.confで定義されたコンテナの順序を保持
- 評価設定ファイルへのパスを特定するためにデザイナーマニュアルを明確化
- インストラクターにメールを提供するよう促すプロンプトを削除
- バージョン番号テスト時のエラーチェックの失敗
- 評価jsonにラボ開始とやり直しのタイムスタンプを含める
- 双方向認証と証明書作成を含むSSLラボを追加
June 14, 2018
- パラメータ化に診断を追加、一部のインストールでそれが失敗する理由を追跡
- コンテナが既に作成されている場合、パラメータ化されていることを確認、そうでなければ破損したまたは中途半端なコンテナを避けるために中止
- svn HEADを使用するようにプログラムバージョン番号を修正
June 15, 2018
- xtermに表示されていたプレーンテキストの指示をPDFファイルに変換
- まだプルされていないイメージのバージョン処理のバグを修正
- 作成されたがパラメータ化されていないコンテナの発生を検出し、ユーザーに"-r"オプションでラボを再起動するよう促す
- デザイナー用ユーティリティ:rm_svn.pyを追加して、削除されたファイルがイメージのリビルドをトリガーするようにする
June 13, 2018
- Ubuntu 18システムにxtermをインストール
- gnome-terminalタブ処理の新しいバージョンでの破損を回避
June 11, 2018
- イメージをフレームワークと比較するバージョンチェックを追加
- さまざまなラボマニュアルの明確化
June 2, 2018
- Ubuntu 18にインストールする場合、docker-ceの代わりにdocker.ioを使用
- capinoutが監視対象の"sudo su"コマンドの後に非昇格ユーザーコマンドが続くとクラッシュを引き起こした
- ルーティングとresolv.confの設定をfixlocal.shではなく/etc/rc.localに移動し、コンテナの開始/停止間で永続化
May 31, 2018
- ターミナルで改行なしでテキストが折り返されるDockerのバグを回避
- パイプを考慮するようにCOMMAND_COUNTを拡張
- リモートサーバーへのバックアップとパーティション全体のバックアップを含むbackupsラボの新しいバージョンを作成
- sshlabの指示をssh-copy-idユーティリティを使用するように変更
- CentOSでのsshログインを許可するためにparameterize.shから/run/nologinファイルを削除
May 30, 2018
- new_lab_setup.pyを拡張して、使用するベースイメージの識別を許可
- 集中ログ記録を含むcentos-logの新しいバージョンを作成
- 評価検証で"time_not_during"オプションが受け入れられていなかった
- DockerコンテナからLabtainersを管理するためのLabtainer Masterの統合を開始
May 25, 2018
- さまざまなサービスから10秒のスリープを削除。 xinetd応答を遅らせ、自動テストを壊していた
- snortラボの採点を修正し、アラームで"CONFIDENTIAL"のみを要求するように。 ラボから未使用ファイルを削除
- ラボ停止時にプログラムが実行中だった場合、プログラム終了時間が記録されていなかった
May 21, 2018
- retlibc採点を修正して重複目標を削除、自動評価が失敗していた
- 個々のラボとラボテンプレートからmynotify.pyのコピーを削除。 これはlab_sys/sbinの一部であったが、aclラボのために行われた修正を反映するように更新されていなかった
May 18, 2018
- exec_wrapからのシグナルメッセージをマスクし、segvエラーメッセージが正しく見えるようにする
- capinoutが時々stdoutを失っていたため、cmdの終了時にコマンドstdoutをチェック
- formatstringの採点を修正してセグメンテーションフォールトメッセージをキャッチ
- SimLabにtype_function機能を追加して、スクリプトのstdoutをタイプする(formatstring simlabを参照)
- SimLabでのシングル/ダブルクォート組み合わせの制限を削除
- SimLabにwindow_waitディレクティブを追加して、指定されたタイトルのウィンドウが見つかるまで一時停止
- plcラボを修正して、物理世界端末のタイトルをステータスを反映するように変更、これによりテストも容易になる
- bufoverflowラボマニュアルリンクを修正
May 15, 2018
- SimLabツールを使用して、回帰テストおよびラボ開発のためにラボのユーザー実行をシミュレートする付録を追加
- SimLabにwait_net関数を追加して、選択したネットワーク接続が終了するまで一時停止
- acl自動評価をマルチラインマッチングにFILE_REGEXを使用するように変更
- xsiteラボのSimLabテスト
May 11, 2018
- home.tarにあるファイルの収集を強制する"noskip"ファイルを追加、Firefoxのplaces.sqlite取得に必要
- 抽出前にライトアヘッドバッファとのsqliteデータベースをマージ
- symkeylabのラボマニュアルの修正
- symkeylabおよびpubkeyの採点追加
- simlabツールの改善:includeのサポート、ウィンドウ命名の修正
May 9, 2018
- file-deletionラボのパラメータ化の修正。 ラボマニュアルの誤りを修正
- Pythonスクリプトでのshell=Trueの使用を置き換え、プロセスを削減しPID追跡を可能に
- backups、pass-crack、macs-hashのマニュアルを整理
May 8, 2018
- gnome-terminalがxterm命令端末の前にdockerコマンドを実行するのを防ぐための競合状態を処理
- インストラクターが"-d"で開始したラボを停止してもエラーを表示しない
- nmap-sshの採点をラボの意図をより反映するように変更
- 複数のドキュメントとスクリプトの修正(olberger from github)
May 7, 2018
- 古いcapinout.shの代わりにCベースのcapinoutプログラムを使用してstdinとstdoutをキャプチャ。 trunk/src-tool/capinoutを参照。 監視対象プログラムを中断するためのctrl-Cの使用やtelnet/sshでのパスワード表示に関する制限を削除
- 個別に提出されたレポートを抽出し、不足している提出を要約するためのsakiのbulk_download zip処理のサポートを含める
- ユーザー提供のメールが印刷可能文字であることを確認するチェックを追加
- 採点時、ユーザー提供のメールがzipファイル名と一致しない場合、結果の採点を続行するが、cheatingを反映するメモを表に含める。 学生がメールアドレスにゴミを入力した場合の回復を要求
- telnetlabの採点を変更し、tcpdump出力でパスワードを見ないように – capinout修正により、サーバーへの一文字ずつの送信が正しくなる
- install-docker.shのタイプミスを修正し、そのスクリプトでsudoを使用してdocker dns設定を変更
April 26, 2018
- ラボを開始するために"labtainer"、停止するために"stoplab"を使用するように移行
- labtainerコマンドに--versionオプションを追加
- log_tsおよびlog_range結果タイプ、およびtime_not_duringゴール演算子を追加。 centos-logおよびsys-logの採点をこれらの機能を使用するように刷新
- labsys.tarを/tmpの代わりに/var/tmpに配置、時々展開前に削除されていた
- VM再起動後、Xアプリケーションをrootとして実行すると失敗
- CentOSベースのラボに"User Command" manページを追加
- 学生からのdocsファイル収集を妨げていた最近のバグを修正
- smoke-testsを変更して、学生固有の結果行のみを比較し、空白を除去2018年4月20日
- denyhostsサービスが初回起動に失敗するため、起動をstudent_startup.shに移動。
- すべてのfaux_initサービスをパラメータ化の後に移動 -- rsyslogがコンテナの2回目の起動時に起動に失敗していた。
2018年4月19日
- acl labがトロイの木馬ステップのパフォーマンスを適切に評価できなかった。
- デフォルトで学生のドキュメントを収集する。
- denyhost labは、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日
- Firefoxプロファイルを修正し、「しばらくFirefoxを使用していません...」メッセージを削除。
- 不要なレジストリからのプルを削除 -- 代わりにDocker Hub APIを介してイメージの日付を取得。
2018年3月28日
- システムファイルに対して明示的なtarを使用し、"docker cp" の代わりにする(Dockerはリンクを追跡しない)。
- backups labが別のファイルシステムを使用するように修正し、マニュアルを更新。
2018年3月26日
- マルチユーザーモードのサポート(Lab Designer User Guideを参照)。
- lab_binおよびlab_sysファイルへのビルド依存関係を削除。これらのファイルはラボのパラメータ化中にコピーされるようになった。
- capinout.shを/sbinに移動し、rootとして実行する際に見つかるようにする。
2018年3月21日
- CLONEを追加して、同じコンテナの複数インスタンスを許可する(例:複数の同時学生が共有するラボ用)。
- kali-testラボを調整して、macvlanとCLONEの例を提供する。
- 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イベントリストがオプションの出力ファイル名を含むことを許可。
- bashフックをroot操作に拡張し、そのbash_historyをフラッシュする。
- start.configフィールドのパラメータ化を許可(例:ランダムIPアドレスのため)。
- systemctlまたは/etc/init.dを介して開始されたサービスの監視をサポート。
- タイムスタンプ付きログファイルを、関心のある設定変更によって区切られた範囲に整理するための時間区切り修飾子を導入(dmz-labを参照)。
2018年2月5日
- results.configファイルからのブール値は、目標値として扱われるようになった。
- 成果物結果を識別するための正規表現サポートを追加。
- 代替Dockerレジストリのサポート(テスト用のローカルテストレジストリを含む)。
- ラボおよびラボマニュアルへのその他の修正。
- capinout監視フックは、終了時に子プロセスを強制終了していなかった。
- 成果物を収集する前に監視対象のプロセスを強制終了。
- ベースラインコンテナとしてlabtainer.wiresharkを追加し、dockerfilesを整理。
2018年1月30日
- snortラボを追加。
- ログファイルのタイムスタンプ(例:syslogsから)をタイムスタンプ付き結果に統合。
- 中間タイムスタンプ付きJSON結果ファイルから未定義の結果値を削除。
- タイムスタンプと結果の目標値を関連付けるようにtime_during目標評価操作を変更。
2018年1月24日
- タブ付きウィンドウの使用がインストラクター側の失敗を引き起こしたため、二重引用符を使用。
- ビルド依存関係の決定時に、_tarディレクトリ内のファイル(.tar以外)を無視。