初投稿

bata1125は、セキュリティについて勉強をしてはいるが結局一体何をしているかが分からないと言われる。 そして「今どんなことをしているの?」と、よく聞かれることがある。 そこで・・・・

  • 備忘録と題してこれから私がやっていることを何かについてを可視化する。
  • 自分へのメモみたいな形で自分が忘れた頃に思い出せるようにする。
  • ブログを書くことで自分の拙い文章を鍛える?

などなどの目的でこれからブログを始めていこうと思う。 どれだけ自分がアウトプットできるかわかりませんが頑張っていこうと思います。

CODE BLUE学生スタッフ2019参加記

10/28(月)~10/31(土)まで,CODE BLUEに学生スタッフとして参加しました。

f:id:bata1125:20191105234520j:plain

初めての学生スタッフとして参加させていただきましたので,備忘録的な意味でその時のことを書こうと思います。

※この参加記には個人的な感情等が含まれていること,また幼稚な文章が多く意味不明な文章が続いたりブログ自体が長くなっている可能性がありますがご了承ください。

目次

CODE BLUEについて

一言で情報セキュリティの国際会議のことです。

日本の方々は勿論ですが,海外の方々の講演を聞いたりCTFなどのイベントに参加することが出来ます。 参加するにはチケットの購入が必要です。

学生は無料チケットがあり無料で参加することが出来ますが...

無料チケットでは,有料講演を含まないビジターエリアのみ参加できる形になるので,
全講演を見ようとすると学生(無料チケット)としての参加ではなく一般参加者として参加しないといけません。

一般参加者として参加するのにはチケット代として約10万円程(実際金額は当日券13万円)かかります。

宿泊費や交通費を考慮するとさらに費用がかさみます。
学生だと出そうと思えば出せる金額ですが,流石に大金です...

codeblue.jp

学生スタッフについて

やる価値

  • 運営側のお手伝いをすることで自分の経験値を高められる。
  • 約10万円の価値がある講演を無料で聴講できる。
  • ネットワーキングパーティー(交流会)で企業の方やセキュリティについての勉強をしている学生と交流が図れる。(普段できないお話をすることができる。
  • 遠方から来る方は運営側から宿泊地の提供がある。

※ただし,交通費や交流会費用など一部の費用は自己負担です。

私自身が今回の学スタでかかった金額としては,新幹線(往復で約2万円)と食事代金や交流会費(約1万5千円ぐらい)で約3万5千円かかりました。 約一週間東京に滞在してこの金額なので安いなと感じました。

主な基本業務

  • 会場設営
  • マイク回し
  • 参加者の誘導
  • 配布物の準備
  • ドアキーパー
  • その他

などなど,運営側のお手伝いが基本業務になります。

応募について

応募は,TwitterFacebookで毎年夏ぐらいにあります。

応募理由であったり自分の自己PRなどが聞かれます。

私が応募した理由

CODE BLUEや学生スタッフの存在自体は昨年から知ってはいました。昨年度の学生スタッフの応募が始まった時に応募したいと思いましたが,個人的な事情により応募することすら叶いませんでした。また,CODEBLUE開催中の学スタの方々のTwitterを見ていて楽しそうなツイートばっかり流れていて羨ましいな,参加したかったなと悔しい思いをしました。 だから,来年の学生スタッフには絶対応募するぞと思いました。

そして7月に今年の応募が始まりました。

応募するに当たって当時,色々な悩みにより自分の存在価値が見いだすことができず応募しようかなと迷いました。ただ,受かれば自分の経験値や自分の存在価値を高めることができると考え,受かるかどうか分からないけど応募してみることにしました。

応募理由としてはだいたい上記のことと,学生スタッフとして運営側のお手伝いしながら無料で講演を聞いて自分の経験値を挙げたいこと。 また,他の学生の人と今以上に交流したいからと書きました。

応募した時期が始まった当初ぐらいだったため,採用発表までメンタルが少しやばい状態になっていました。

Day0_10/28

学生スタッフのオリエンテーションと学生スタッフ間の交流会でした。

学生スタッフの方は,どこかでみたことある方や知っている方などがいてTwitterオフ会状態でした。

交流会で最近話題になったものが出たのですが.....。

味がなんとも言えない感じでした....。

何人かの方はポテトみたいな味だという人がいましたが私自身のお口には会いませんでした...。

Day1_10/29

学生スタッフとしていました。役割としてスピーカに対して"あと何分"とカンペ出しをしたりQusition Time時にマイク回しをするようなことをしました。 基本的にカンペ出しとマイク回しをするとき以外は講演をずっと聞いていた形で自分が聞きたいメインの講演が基本的には1日目に集中していたのでしっかりと講演を聞くことができてよかったです。

印象に残った講演として,講演名「[U25]I KNOW WHAT YOU DID LAST NIGHT : Pwning The State-Of-The-Art the IoT Hub」という講演です。 簡単に説明するとIoT Hubに対して中間者攻撃やファームウェアに対して攻撃を仕掛けてハックしてしまうとIoT機器側のセキュリティを担保できても結局は色々できちゃうよというお話を聞きました。 demoとしてあらかじめIoT機器をハックしてそれを繋げたgooglehomeらしきものを使い,盗聴できるというもので面白いと思いました。

他の方が書いたレポートです(CODE BLUEでの講演レポートとして公開されていてます。

dev.classmethod.jp

↑他のSpeeakerの講演レポートも掲載されていますので是非見てみてください。

他にも印象に残った講演がありますが書きすぎると長くなっちゃうので割愛します。

Day2_10/30

参加者として参加していました。

最初に中学以来のはんだ付けをしました。

ハンダ付けなんですが, day1の時点で,day1の分,day2で使う分も含めて使い切り非常に人気のあるコーナーでした。

day2の朝,追加で準備した分が50個分ぐらいで自分の番が来た時に残り5個ぐらいになっていて,ぎりぎりハンダ付けすることができてよかったです。

これを首から下げることで,CODEBLUEに本格的に参加しているんだと実感しました。

その後,バンキングトロジャンや暗号通貨系の講演を聴講していました。

参考URL(レポート)

<バンキングトロジャン>

dev.classmethod.jp

<暗号通貨系>

dev.classmethod.jp

多少自分にとって難しい話でしたが,言っている内容的には理解することができて面白いお話を聞くことができてよかったです。

また,講演を聞いている傍で企業ブースで色々な企業の方とお喋りしました。 今現在,B3でもう少ししたら本格的に就活が始まってしまうので色々な企業の方とお喋りできてよかったです。

ネットワーキングパーティ

f:id:bata1125:20191105232109j:plain

立食形式のパーティで,午後立ち寄ることができなかった企業の方と技術面でお喋りしたり, 某企業の人事の人とお喋りすることができて非常に良い時間を過ごすことができました。

まとめ・感想

海外の人,他の学生の人,企業の方と交流できたりして,非常にたくさんの方々と交流することができて楽しむことができました。 また,強いエンジニアの方の講演を聞いたりして約一週間充実した日々を過ごすことができました。 ただ,講演自体は英語でなかなか理解することができなかったので英語が大事だという点,そして英語をしっかり勉強しないといけないなと実感しました。 だからこの機会を機に英語を頑張ろうと思います。

またセキュリティの知識面でもしっかりと勉強して知識を磨かないといけないことを実感しました。 まだまだセキュリティ初心者で知識面・技術面,共に何か持っているかというとそうではないです。 たくさんの方と交流することで良い影響を受け,強いエンジニアにしっかり近づきたいと思いました。 最近,色々な技術に手を出そうと思っているのでやる気のあるうちにしっかりと勉強していきたいと思います。

最後に今回の学生スタッフに自分を採用してくださってありがとうございます。 また,こんなコミュ障な私に,お喋りして私と交流してくださった学生スタッフのみなさん,ありがとうございます。

来年もまだ学生なのでまた学生スタッフに応募してみたいと思います。

f:id:bata1125:20191105235257j:plain

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

Dockerのいろは

Dockerについての備忘録。Dockerについての基礎的なお話。

Dockerについて

f:id:bata1125:20190606144923p:plain

  • Docker社が開発しているコンテナ型の仮想環境を作成・配布・実行が出来るプラットフォームのこと。

Docker公式

コンテナについて

f:id:bata1125:20190606152207p:plain
仮想マシンとコンテナ型の違い

  • VM:ハードウェアやOSに対して行うアクセス制御(ハイパーバイザ)が必要。
  • コンテナ:カーネル自身が実行されるコンテナと共有される。 ※常にコンテナとホストは同じカーネルを実行する。

Dockerの特徴

  • 単体でアプリケーションを動かすことが出来る。
  • Dockerを高速に起動したり終了したりすることが出来る。
  • 作成したファイルを容易に配布することが出来る。
  • 環境構築を容易に出来る。
  • VMで必要だったハイパーバイザが必要でない=それに伴うオーバーヘッドが発生しない。

ハニーポット構築日記

ハニーポットの初歩の初歩的なことを今回を書きます。 技術的な話(コマンドとか)は今回は、なしです。

ハニーポット とは

実際のシステムの様に見える囮となるシステム(擬似サーバ等)を構築し、それに対する攻撃を観測・記録すること。

ハニーポットの分類

サーバ型とクライアント型

  • サーバ型
    • 擬似サーバを置いて、攻撃者からのアクセスを待つ。
  • クライアント型
    • 不審なサイトにあえてアクセスしてマルウェアに自ら感染し動向を監視する。

環境

  • 高対話型
    • 実際の環境を模して構築する。
    • 本物と特定されにくい。
    • 下手すると、本当にサーバを乗っ取られるリスクを持っている。
  • 低対話型
    • ハニーポット用のソフトウェアを用いて仮想的な環境を構築して実現する。
    • 攻撃者にばれる可能性が一番高いが、構築は容易に出来る。
      • Dionaea
      • WOWHoneypot・・・・etc
  • 中対話型

    • 高対話型と低対話型と組み合わせたもの。
    • 仮想環境で動かすことで実現できる。
  • 高対話型サーバ、低対話型クライアント・・・などサーバとクライアント、環境を組み合わせてハニーポットを植えることができる。