セキュリティミニキャンプin愛知参加記

10/5(土)に名古屋工業大学で開催された,セキュリティミニキャンプin愛知に参加してきました。 今回は,そのことについて書こうと思います。

目次

そもそもセキュリティミニキャンプis何?

情報セキュリティ人材育成の場で情報セキュリティについて学びたいという学生が集い,勉強をする場です。 講師陣は名前検索をかけるとすごいことをしている方々ばっかりで普段,自分たちではできないことを勉強できます。 また,セキュリティについて学びたい学生ばっかり集まってくるので,普段の友達同士ではできないレベルのお話をすることができ学生間との交流を深められる場です。

参加するには選考を通らないと参加することができません。

選考応募は公式HPからすることができます。

www.security-camp.or.jp

愛知での応募課題

  • 参加動機
  • 分散システムを情報セキュリティの観点から説明する
  • Pythonの使用経験,使用経験者はどんな物をPythonで作ったか
  • 機械学習のメリット・デメリットの説明

こんな感じの課題が出ました.

事前課題

午前の講義:VMのインストール(Ubuntu),ブロックチェーンDNSについて大まかなイメージを掴み自分なりに調べてくること。

午後の講義:VMのインストール(Ubuntu),機械学習について講師の方が書いた記事を読み理解すること。

読みまくって色々調べていくと,最初は理解できるのですが,だんだんと知らない単語ばっかり並んできてまだまだ自分の実力が全然だなと思うと同時に当日しっかり勉強して理解できたらいいなと思いました。

オープニング

セキュリティキャンプ全国大会の紹介と今回のキーワードの発表。

今回のキーワードはいつものごとく『つながる』でした!! 講義を機会にしてどんどん他のことにも興味を持ち,たくさんの技術に触れていくことが大事だというありがたいお話をいただきました。

今回でセキュリティミニキャンプの参加は,3回目ですがなかなかこれができずにいたので今回を機に変わろうと思います。

午前の講義

ブロックチューンから分散システムに関するセキュリテイの講義でした。

午前_前半

分散システムの基本的なお話を聞きました。

主な特徴として...

  • 冗長構成による障害の解消
  • 通信遅延時間の抑制
  • アクセス権の分散

などがある.

分散システムとしてGoogle DriveやDockerの紹介、Torの技術についての説明があり特にTorについては,自分が今興味を持っている内容でしたので,面白い内容でした。

Torの技術

複数のサーバを経由することで発信元を秘匿するものでプライバシーの保護で使われたりダークウェブサイトに参加するために使われることがある。

Torノードというノードを使い利用者を識別して複数のサーバに接続して利用するがたくさんのノードを経由する為に通信速度が遅くなる(通信速度を遅くしない為に分散システムの技術が使われている)

最後のTorノードから目的のサーバまでは暗号化されていないことに注意する!!

午前_中盤

メインのブロックチェーンのお話を聞きました。

主に...

  1. ブロックチェーンが何に使われているのか
  2. ブロックチェーンの核の部分
  3. ブロックチェーンを構成するもの
  4. ブロックチェーンを用いた取引の流れ

についてのお話を聞きました

1.ブロックチェーンが何に使われているのか

下火にはなっていますが,仮想通貨に使われている技術 なぜ下火になっているのかというと, 何よりも技術面での課題山積などがある。

2.ブロックチェーンの核の部分

主に四つの物から構成されている。

  1. ブロック・・・トランザクション(パソコンのお仕事の単位)を取りまとめたもの
  2. トランザクション・・・手続きやデータ
  3. ナンス・・・ブロックの正当性を確かめるもの(なりすましがないのかチェックする為に必要)
  4. 前のブロックのナンス

から構成されている。

3.ブロックチェーンを構成するもの

主に三つの物から構成されている.

  1. P2Pネットワーク・・・互いのノードを対等な立場で扱う為に提供する。
  2. 合意形成アルゴリズム・・・ブロックチェーン内でトランザクションの正当性を保持する為に必要。
  3. デジタル署名・・・合意形成アルゴリズムでの正当性を補完する為に必要。

からブロックチェーンの技術が作られている。

4.ブロックチェーンを用いた取引の流れ

  1. 各ノードは全ブロックを保持していて,ノード同士は対等に繋がっている。
  2. トランザクションを発行すると,全ノードへブロードキャストされトランザクションを共有する。
  3. トランザクション送信時にデジタル署名が格納されており,正当性が保証される。
  4. トランザクションがある程度溜まったらマイニングされる。(ブロックの生成)
  5. 前ブロックのハッシュを元にナンスを計算する。(ハッシュを計算する)
  6. ナンスを計算したノード(マイニング報酬をもらう)がブロック生成しブロードキャストする。

  7. トランザクションには,デジタル署名が付与され正当性が保持されている。

  8. ブロックが長くなるについて,改ざんが難しくなる。
    • 各ブロックは,前のブロックのハッシュ(ナンス)を使ってナンスを求めているから。
    • ブロックを作るには,それぞれ時間がかかるから長いブロックを作るのは難しい。(1ブロックを生成するのに10分掛かる)

という流れで取引が進められていく。

午前_終盤

いよいよハンズオンです。

色々な基礎知識をたくさん教えてもらえたのでハンズオンの時間自体は短かったですが,理解することができました。

ハンズオンについてですが,主にトランザクションの検証と合意形成アルゴリズムの実装をしました。 合意形成アルゴリズムとしてPowやPoSがありますが,Powの技術を実装しました。

トランザクションの検証

デジタル署名を使って正当性を検証するのですが

いきなりの「コードを書きましょう」的な感じになったので一瞬??状態になりましたが、最終的なコードを読んで動かしてみたら完全アルゴリズムを理解しました。

実装した内容として簡単に,デジタル署名の検証をするアルゴリズムを書くだけという感じでした。

PoWの実装

  • PoW(Proof of Works・・・ブロックを生成することによってトランザクションの正当性を確保する技術のこと。

実装内容について,ナンスにハッシュをかけて(二重にハッシュ関数がかかっている),採掘速度よりも小さい時に次のナンスになる。 キャンプ中は時間がなくて自分は実装することができませんでしたがお家に帰ってからゆっくりやってみてしっかり動くことを確認してから色々と遊びました。

午前_まとめ

上記の内容で午前の講義内容は終わりましたが,事前課題でわからなった部分が理解できたし自分が次に興味を持って取り組める分野が見つかったのでよかったです。

午後の講義

午後_前半

人工知能機械学習・深層学習

人工知能の中に機械学習がありそのまた中に深層学習の区分がある。

人工知能
  • 汎用型人工知能・・・異なる領域で多様で複雑な問題を解く。
  • 特化型人工知能・・・個別の領域に置いて知的に振る舞うこと。

人工知能(AI)に具体的な定義は今のところ,存在しない!!

機械学習

反復学習してデータパターンを定義する。

その上で,あらかじめ定められたタスクをクリアする為の行動を自己習得する。

深層学習

音声・画像・自然言語において圧倒的分類性能で分類する。

※人命に関する判断的根拠が足りないのは問題がある。

例えば医療において深層学習の未学習であったり過学習をした時に判断ミスをすることがある。

また今現在,隠れ病の時に深層学習時に発見することができない。

mantan-web.jp さらにAIから得られた病を診断された時に「え,本当にそれであってる?」と不安がる人もいる。

学習の種類

  • 教師あり学習・・・事前に答えとデータを提供しパターン化する。
  • 教師なし学習・・・データだけ与えられてある一定のアルゴリズムによってパターン化されたり特徴に紐づけて答えを導き出したりする。
  • 強化学習・・・試行錯誤することで一番良い行動を選択する。

アルゴリズムの種類

実務に使用する際は目的にあったアルゴリズムがあるのでそれを選択する必要がある。

午後_中盤

人工知能に関する脆弱性について

  1. オリジナル画像に微細な細工を施すことで別人として認識させる脆弱性.
  2. 物体を誤認識させる脆弱性.
  3. モデルを複製される脆弱性.

などなど色々な脆弱性を持ったモデルが存在している。

これらを悪用することで詐欺などに悪用される可能性がある。

脆弱性の参考URL↓

arXiv.org e-Print archive

午後_終盤

ハンズオン!!

既にあるモデルから,モデル(ロジスティック回帰)を複製して閾値を求めるようなことをしました。 パラメータ値を収集したりしてデータを集めてそこから連立方程式を解いてモデルを複製していくという感じの流れでハンズオンが進められました。 確率値の話であったり,ロジスティック関数のお話を途中でしていただき, やってることをさらりとされると全然理解できないですが,仕組みを知った上で色々いじっていたのでいじっていて面白いと思いました。

午後_まとめ

当然の話なんですが,確率などの数学の知識がやっぱり必要で数学はやっぱり大事なんだということを理解しました。 また,人工知能脆弱性でFake系の脆弱性は知ってはいたが,色々な脆弱性があるのを知りこんなにも次から次へと脆弱性を作り出せるんだと思いました。

全体のまとめ

f:id:bata1125:20191104131806j:plain

f:id:bata1125:20191007131150j:plain

今回でミニキャンプの参加は3回目で,初参加時はチューターの方にずっとサポートしてもらいました。 しかし,回を追うにつれてやっている内容をしっかり理解することができ実力的には少しづつではあるけれど成長したと実感できた。 ただいつも復習をしてそこで終わりなので次に繋げられるようにして色々な分野に手を出して色々な技術を身に付けたいと思う。 そして来年のセキュキャン全国大会に参加できるように頑張ろうと思う。