
Haaukinsは、セキュリティ教育のための高いアクセシビリティと自動化を備えた仮想化プラットフォームです。3つの主要コンポーネント(Docker、Virtualbox、Golang)で構成され、コンポーネント間の通信とオーケストレーションはGoプログラミング言語を使用して管理されます。Haaukinsプラットフォームで何かを管理・デプロイするためにGo環境を採用する主な理由は、Goの容易な並行処理と並列処理メカニズムにあります。
私たちの主要な目的は、サイバーセキュリティにおけるフラッグキャプチャ(Capture The Flag)の概念を学びたいと願うすべての人を参加させることです。これはシステム上の脆弱性を見つける方法を学ぶための広く受け入れられたアプローチです。既存のプラットフォームとは異なり、Haaukinsは脆弱性の発見を目的として設計されたオペレーティングシステムを備えた独自の仮想化環境を提供します。
ローカル環境でデーモンを実行するには、以下の依存関係を別途インストールする必要があります。
クライアントを環境にインストールするための前提条件はありません。
注: Linuxは仮想化環境でも使用可能です。
インストール方法、関連リポジトリ、その他の詳細については、ドキュメントサイト(https://docs.haaukins.com)をご覧ください。
Haaukinsプラットフォームはバージョン1.6.4以降でgo modulesを使用しています。そのため、依存関係の管理は非常に簡単で、go mod downloadを実行するだけです。
$GOPATH/src/github.com/aau-network-security/haaukins/ディレクトリにいることを確認し、すべてのテストファイルを実行するには以下のコマンドを使用します。
go test -v --race ./...
Haaukinsプラットフォームはクライアントとデーモンの通信にgRPCを使用しています。そのため、プロトコルバッファの仕様(例:daemon/proto/daemon.proto)を更新した後、以下の手順で対応するGolangコードを生成します。
cd $GOPATH/src/github.com/aau-network-security/haaukins/daemon/
protoc -I proto/ proto/daemon.proto --go_out=plugins=grpc:proto
GoReleaserがリリースセクションを担当します。コミットにタグを付けてください。
Travisが自動的にサーバーにデプロイします。
注: デフォルトではスクリプトは~/.ssh/id_rsaキーを使用してGitHubにプッシュします。
この設定はHKN_RELEASE_PEMFILE環境変数で上書きできます。
既知の問題については、こちらをご確認ください。
Haaukinsはオープンソースプロジェクトであり、オープンソースプロジェクトの上に構築されています。ご興味があれば、ぜひコントリビューションをお待ちしています。
始めるには、コントリビューションガイドをご覧ください。
AAUはオープンソースコミュニティの力を信じており、組織やユーザーの方々にプラットフォームをテストしていただく機会を提供したいと考えています。ご自身のドメイン(当社が割り当てる)を取得されたい場合は、事前にご連絡ください。
Copyright (c) 2019-present, Haaukins