1
/
5

学内でAttack and diffence Pre大会を開いた話

Photo by Ariel on Unsplash

筆者について

オンプレよりのインフラエンジニア。現在はコンテナ技術に興味がありK8sを触ったりしています。

セキュリティの勉強は何からするべき?

情報セキュリティについての勉強はどこから始めるべきか少々戸惑う。しかし、よく考えてみれば自分が技術を学ぶ時にはやはり手を動かしながら理解を進めた。そのため、今回はCTFの中でも上級者向けであるAttack and difference形式の競技を開催する事とした。

Attack and diffenceってどうやって準備すんの!??

実は筆者自体もAttack and difference 形式はおろか、CTFに参加した事がほとんどない。Jeopardy形式を何回か興味本位でやった事があるくらいである。。。。

そこで一番最初にぶち当たった問題は「Attack and Diffence」の環境ってどうやって準備するの?だった。
実際にAttack and Diffenceっ形式の大会に出るのが手っ取り早いが近場でやってるものも無かった。
ということで、今回は自分のイメージで開催する事とした。
また、弊学の頭文字がTということで、TAaD(T〇〇 Attack and Diffence)という名前で、コンセプトは「初心者用Attack and Diffence」で開催する事とした。

TAaDについて

各チームの環境

VM 用途 個数 kali 競技者用VM チーム人数分 web 運用サーバー 1台

各チームに、競技用VM(環境内で実際に攻撃を行うVM)チームの人数分、webサーバー(これが脆弱性を持っている)を配布した。webサーバーは稼働している時間に応じてポイントが加算される。
ここで、なぜタイトルにPre大会とついたのかが分かる。今回はお試しで一回開催してみたかったので、運用するサーバーはwebのみとなっている。

競技の流れ

  1. 各チームには上記の環境が配布される。
  2. サーバーを運用している間はポイントが入り続ける。
  3. 競技者は相手のチームのwebサーバーへの攻撃をして、運用を止める事と、自分のサーバーに存在するwebサーバーの脆弱性を潰す事を目標とする

TaaD特別ルール

セキュリティをばりばりにやっている人からすると反感を食らう様なルールを設けた。
こういった競技では、サーバーへの侵入を醍醐味としているのが一般的であると思うが今回は最初から各チームはお互いのサーバーへバックドアを持っている構成となっている。そのため、競技前にバックドアを仕込む事前準備を行った。

事前準備

チーム1のwebサーバーには、チーム2、3のKaliのAuthorized_keyを登録

また、そのAuthorized_keysをそれぞれ好きな場所に好きな名前で配置

また、裏で好きな場所に置いたAuthorized_keysは、リネームして、.ssh/にリネームされて配置されるsystemdが動いている。

これによって、自分のwebに登録されているauthorized_keysを削除するまではバックドアが仕込まれている。

つまり、TAaDではゲーム開始時に相手のサーバーに侵入出来るようになっている。

トポロジー


開催結果

今回、本校の情報系研究室I研究室、K研究室、S研究室の3研究室からそれぞれ3人の合計9人で行った。

競技としては、K研究室がポイントを最も取った。しかし、最初からrootを取っている状態だと思った以上に攻撃の勢力が強い。せめて一般ユーザーにすべきだった。また、webの脆弱性自体ももう少し作り込むべきだったと課題が見えた。


本記事はqiitaにも投稿しております

https://qiita.com/engishoma/items/8fb6b421b68e6a0779ad