DevWeeks 2020
Summer
完全リモートのウェブアプリケーション開発コンテスト
開催の目的
チームメンバー同士の親睦を深める
ウェブアプリケーション開発を体験する
情報セキュリティへの理解を深める
開発するもの
「ハッシュ値によるマルウェア判定ウェブアプリケーション」
ユーザーは自分のコンピュータに保存されている「マルウェアの疑いがあるファイル」を選択します。サーバーまたはクライアントがファイルのハッシュ値を計算し、結果をサーバー側のデータベースに保存されているハッシュ値と照合します。ユーザーはファイルがマルウェアかどうか確認することができます。マルウェアである場合は、その名称も知ることができます。
ユーザーがアプリケーションを利用するとき、認証を必要としません。
ユーザーは一度に一つのファイルのみを選択することができます。
管理者は、独自のウェブユーザーインターフェースを用いて新しいマルウェアの名称とハッシュ値をデータベースに登録することができます。また、登録されたマルウェアのレコードを削除したり修正したりすることもできます。さらに、判定履歴のレポートを閲覧することができます。
管理者がアプリケーションを利用するとき、認証を必要とします。
具体的には、最初から次の3つの実行形式ファイルをマルウェアとして判定してください。当然ながら、すべて無害なファイルです。また、実行することはできません。ダウンロードして利用してください。
ファイル名やファイルの更新日時が異なっても、ファイルの中身が同一であればハッシュ値は同じになります。つまり、一般にファイルのハッシュ値を計算する時には、ファイルの中身だけをハッシュ関数に渡しています。
背景
セキュリティ対策ソフトウェアがマルウェアを検出する方法の一つにハッシュ値の比較があり、コンペア法と呼ばれています。既知のマルウェアと同じハッシュ値をもつファイルが見つかれば、そのPCには当該マルウェアが存在すると判断できます。
3つの観点
正しいロジック
使いやすいデザイン
優れたプレゼンテーション
7月11日(土)
Kickoff
役割を分担する
必要な役割には次のようなものがあります。
フロントエンドエンジニア - HTML や CSS、JavaScript を駆使してデザインをコードに落とし込みます。
バックエンドエンジニア - Python や PHP を駆使してサーバー側の処理を実装します。
デザイナー - ウェブアプリケーションの見た目を考えます。ユーザビリティに配慮したデザインが求められます。
ウェブアプリケーション開発を学ぶ
Python & JavaScript を使って開発するならこのコース
PHP & JavaScript を使って開発するならこのコース
中間発表の準備
中間発表では、チームの課題や学びに加えて、high-fidelity prototype を共有してください。各チームの代表者に10分ずつ時間が割り当てられます。
7月17日(金)22時から
Interim Report
最終発表の準備
最終発表では制作したウェブアプリケーションのデモンストレーションを行ってください。工夫した点や苦労した点も共有しましょう。各チームに10分ずつ時間が割り当てられます。
7月31日(金)22時から
Final Report
🏅優秀賞🏅
受賞条件
最終発表を行うこと
制作物がすべての仕様を満たしていること
動作する状態で制作物がインターネットに公開されていること
制作物のソースコードが公開されていること
結果
該当なし
参加賞
受賞条件
最終発表を行うこと
制作物がテーマに沿っていること
結果
3チーム(13人)