セキュリティ雑記

情報系の勉強メモてきなものを残していきます

機械学習始めました

こんにちは。

今回は、今後の方針に追加予定の機械学習に関して書こうと思います。

 

現在は機械学習とかディープラーニングとか、AIとかなんやらってのがトレンドになっていますよね。

特に、マルウェア解析とかインシデントレスポンス関連の製品(EDR:Endpoint Detection And Response)でも、「機械学習を利用した~」なんて言葉を使った宣伝が非常に多いです(本当に機械学習が使われているかは別としてw)

 

というわけで、私もそこらへん気になってきたので勉強会なり自分で勉強しています。

 

勉強会については以下のものに参加しました。

「第24回北海道情報セキュリティ勉強会

secpolo.connpass.com

 

北海道でおそらく一番活発に活動していらっしゃるセキュリティ勉強会です。

講師の方も毎度豪華なのですが、今回はトレンドマイクロの方でした。

話の内容はどちらも面白く、加唐さんのほうでは標的型攻撃について、ウクライナなどで行われたインフラに対するサイバー攻撃などについてとても興味深い話をきけました。

また、マルウェア解析方面では知らない人はいない新井さんの講義では、マルウェアの自動分類にチャレンジするという形で、機械学習を使っていろいろ試してみようということでした。

 

で、ちょっとこのあたりから機械学習について興味を持ち始めたので、まずは環境を整えるところの説明をば。

環境設定

上の講義でもやったものをそのまま使っております。

アプリケーションとしては、「Anaconda Navigator」を使用しています。

https://docs.continuum.io/anaconda/navigator/

これをインストールすると、自動的にpythonもインストールされます。

主に、Pythonを使っていろいろやっていきますので、まとめていろいろ入れてくれるのは結構ありがたいです。

また、実際にソースコードを書いて実行させるときも、Anaconda Navigator内にある「jupyter notebook」を使ってやっていきます。

このjupyter notebookは結構高性能なので、私は頻繁に使っています。

 

私が参考にしている書籍

で、環境を整えるのと並行して、どんな本をベースとしていくかで結構悩みました。

私のスペックは以下の感じです。

  • 文系大学卒で数学にはあまり抵抗はない(趣味でいろいろ数学を勉強中)
  • 行列式はほとんど勉強していない。確率は統計学金融工学である程度勉強
  • プログラミング(C, Python, C#)に関してはある程度できる
  • 仕事はセキュリティ系

そんな中で私が選択した本がこちら

Pythonによる機械学習入門」

https://www.amazon.co.jp/Python%E3%81%AB%E3%82%88%E3%82%8B%E6%A9%9F%E6%A2%B0%E5%AD%A6%E7%BF%92%E5%85%A5%E9%96%80-%E6%A0%AA%E5%BC%8F%E4%BC%9A%E7%A4%BE%E3%82%B7%E3%82%B9%E3%83%86%E3%83%A0%E8%A8%88%E7%94%BB%E7%A0%94%E7%A9%B6%E6%89%80-ebook/dp/B01N7TP7GJ

 

今のところ方針としては、基礎づくりを第一として

  • 機械学習って何?という点をまず理解
  • どういったデータが必要なのかなど、考え方をある程度身につける
  • 必要となるライブラリとかおおざっぱに把握

という感じです。

いきなり数学がちがちとか、細かいところまでやると途中でとん挫しそうなので、まずはおおざっぱに。

今後少しずつ勉強のまとめとかやっていこうと思います。

書いていく記事予定

ほとんど放置気味でしたが、時間を割いて記録を残していきたいと思います。

 

一応、各内容についてですが、

フォレンジックwindows, Linux

マルウェア解析(動的、静的、サンドボックス関連)

・その他CTF関連(ツールの使い方やCTFのwriteupなど)

 

メインとしてはフォレンジックが中心になるかなと。

マルウェア解析については、デバッガの使い方等も載せていこうと思います。

名目は自分の勉強メモですが、それが皆さんの役に立てばいいなと思っています。

ksnctf14 john writeup

初めてwriteupを書きます。よろしくお願いします。

 

ksnctf 14 john

 

文字通りのjohn the ripperを使って解く問題だと思います。

最初はとりあえず表示されているものをそのままコピペしてjohnにかけましたがなんかだめぽ(時間がかかりすぎる)なので、中断。もう一度テキストを見直すと

 

user99に気になる文字列が・・・・・

 

書かれているファイルをwgetで取ってきてそれを使ってjohnにかけます。

 

 

<コマンド>

john -wordlist=とってきたファイル名 解析対象ファイル

<オプション> 

-wordlist=XXXX:辞書を指定して、辞書の中の単語に合うかをチェックする

 

 

解析中も「どのユーザーのパスワードがわかったか」は表示されるのですが、わかったユーザーのものから順に表示していくという風になります。

解析対象ファイルの上から順に知りたい場合には、解析終了後に

<コマンド>

john --show 解析対象ファイル

 

とするとちゃんと並べ変えられた状態で表示されます。

そして、これを見るともう解けたも同然ですね。

 

 

john-the-ripperはSANS NETWARSの時に知って、それからあまり使う機会というのがなくなかなか基本的な操作を知る機会がなかったのですが、今回の問題で初歩的な使い方は理解できたのでよかったです!

また頑張って問題解いてwriteup書けるように頑張りたいですね。

 

 

はじめました。

結構情報セキュリティに関して情報を発信している方々がはてなブログをつかっているので便乗させていただきますw

 

とりあえず、この後迫っているsecconに向けていろいろ勉強しようともいます。