はじめに
こんにちは、株式会社シーエー・アドバンス技術統括本部の宮里です。
普段は業務でWebアプリケーションやAndroid,iOSアプリなどの脆弱性診断を行っています。
今回はWebアプリケーションの脆弱性クイズアプリを簡単に作ってみましたので紹介します。
脆弱性とは
脆弱性とは、OSやソフトウェア、プログラムの不具合や設計上のミスが原因となって発生する悪用できるバグを指します。
詳しい解説はこちらが参考になると思うので、興味がある方はぜひ見てみてください。
https://www.soumu.go.jp/main_sosiki/joho_tsusin/security/basic/risk/11.html
作った経緯
個人的に趣味でUnityを触る機会があったので、アドベントカレンダーをきっかけに普段の業務の紹介に繋がるような簡単なアプリを作ってみようと思ったのがきっかけでした。
スクリプトはC#で書いています。
クイズについて
今回は、以下の脆弱性についてのクイズを用意しました。
- クロスサイトスクリプティング(XSS)
- クロスサイト・リクエストフォージェリ(CSRF)
- SQLインジェクション
- メールヘッダ・インジェクション
- アクセス制御の不備
「アクセス制御の不備」に関しては、パッとイメージつきにくいかもしれませんが、ぜひアプリをインストールして確認してみてください!!
誰が、どういう操作を行う事ができるのが適切か を考えるとヒントになると思います!
また、今回はiOSには対応しておらずAndroidアプリのみになりインストールの手順は省略します。
アプリの作成について
Unityを利用してアプリを作成する際にスクリプトをいくつか書きました。
初めての経験でUnityならではの部分もあって楽しく作成することが出来ました。
Unity側で用意したオブジェクトをスクリプト上で取得したり、変更したりする場合、スクリプト上で変数を定義した後にUI上からドラッグ&ドロップで当てはめる必要があったり、
(答えが載っちゃってますかね?気のせいですよ)
正解音、不正解音は著作権フリーの素材から探したりして普段と違う作業をしている感じが新鮮でした。
今回はこちらから利用させていただきました。
https://soundeffect-lab.info/
画面の崩壊もしっかり経験しました(端末によって線がずれてしまう)
ゲームとしての作りこみ
今回、もっと出来たなと思う所は以下の点でした。
- 4択の回答が毎回同じ並びなのでランダムに出来たら良かった
- 画面が味気ない
- 結果を表示する時、点数を最後に出すなどのアニメーションを作れたら良かった
世の中のゲームを作る人達は気を遣ってゲームを作っているんだなと感じる事が出来て面白かったです!
最後に
apkはこちらにあります、良かったら遊んでみてください~
https://github.com/miyazato1014/quiz/releases/tag/apk