いろんなまとめ

IT技術系のことを気が向くままに書いていきます。勉強会の感想とか

ゼロから始めるセキュリティ勉強会第8回に参加してきました!

 

2017年7月24日にゼロから始めるセキュリティ入門に参加してきました。

私自身も「SQLインジェクション With B〜そこの君、油断してないか!?」という題材でLTやってきました。

サブタイトルは友人の進めもあり、つけたもので特に理由なんてなかったりする。

 

では、発表の内容をまとめていきます。

 

#内部犯行の歴史 ytakahashi1228


イメージはスパイ

 情報漏えいを中心とした事例を年代ごとに追っていく

・内部犯行の歴史
・内部犯行の対策・まとめ

2000年
 エンターテイメント系:266人の個人情報が漏えい
ネットショップ経由で漏れたんじゃないか→内部犯行の可能性

2004年
 通信系
 452万人の個人情報の漏えい
 個人情報が保存されていたフォルダには社員誰でもアクセスできた

2006年
 自治体の個人情報の漏えい、精密機器メーカーの協力会社
 400万件くらいの情報
 協力会社がコピー、一部Webに公開

2010年
 端末を紛失による被害
 10万件の氏名と生年月日が漏えい
 社員帰宅時の端末の紛失 飲んだら持つな

2011年
 製造業での漏えい
 1憶261万3000件の情報漏えい
 不正アクセスによる漏えい

2014年
 教育系
 スマートデバイスを利用した情報漏えい事件
 最大2070万件
 協力会社員の不正データ持ち出し

2015年
 社内のオペレーションミスによる漏えい
 広告系
 3.7万件、年収750万円以上の人の情報漏えい
 メール誤送信

 サービス系
 3200万件の電話番号などの情報が漏えい
 インパクトチームによる不正アクセス、政府系やドメインも、、、

対応策・まとめ
 漏えいの規模が大きくなっている
 社内はざるのことが多い
  ・データ持ち出し、ミスで簡単に漏えい
  ・社内通信お暗号化も必要かも
 会社は社員を大事に
  ・報復活動
  ・協力会社でも風通し良く
プライベートなやり取りは必ず自分でデバイス

 

感想:個人的に会社は社員を大事にってところに大きく賛同。

   内部犯行のほとんどは報復ってのもうなずけるしね。

#セキュリティの学び方 momomopas


 心構え
 勉強法
 情報収集

 心構え
  セキュリティにアンテナを張る
  (英語を学ぶ)

 勉強法
  書籍:情報セキュリティの基礎知識、実践サイバーセキュリティモニタリング
  ネット:絵とか図があるのが一番、ググる。英語で調べた方が新しい
  実機:VMWare, ViurtualBox 仮想化ソフト

 情報収集
  ツイッター
  個人ブログ
  セキュリティベンダのホワイトペーパー

  SecurityNext:インシデント情報
  IPA

  GoogleAlert:自分の興味のあることを登録すると、ブログや記事をまとめてメールで通知してくれる
  IFTTT 
  セキュリティクラスタまとめ
  piyolog

  udemy 動画で勉強できる

CYMRARY:無料でできるサイト ただし英語

youtubeでKaliLinuxとか調べるとデモ動画が出てくる
脆弱性情報データベース

 

感想:個人的にCYMRARYは利用してみたいなぁと。

   こういう勉強法さらしてくれるのはうれしい。

   (やっぱpiyologは偉大だった。)

#ノンセキュリティエンジニアによるセキュリティ obaさん


用語が多すぎ。。。
最初に覚えること
 ニュースで話題になっていること+業務に必要なこと+絶対に覚えなければいいけないこと

そのうえでセキュリティ上の対策を

 用語、理論を入れて、実践する → 用語、理論を入れて、実践するの繰り返し

 

感想:用語が多いのは同意。でも、攻撃や仕組みを理解すると用語も覚えられるから、興味のあるやつから見てくってのが個人的におすすめかも

 

#S2-045(struts2脆弱性デモ) tokoroten0813

 

Apatch Struts2とは
 Webアプリケーションフレームワーク

 Struts1にはない「OGNL(Object-Graph Navigation Language)」という機能が悪さする
 Content-Typeにごにょごにょいれる

Jakalta MultiPart parserという構文解析に問題があってやられてしまった。

 

話したかった理由
 攻撃スピードが速かった
 3/6に3/8に攻撃が成功していた。
 この速さに今後どのように対応していくか

現場からの意見でのサイト停止はむずかしいかな、、、と
上司に相談するとめんどくさい、被害予想、検証etc... 個人的にやりたくない
  (更新しても、すごい検証等めんどくさい)
きっとWAFベンダがやってくれるだろう。。。

  脆弱性公開 → 攻撃 → 被害 みたいなサイクルが早くなってくるだろう

  CSIRTとか必要になってくるだろう
  現場はデスマになるだろうなぁ。。。

  日本の会社は、技術を知らない人が上に立つことがあるから、今後は上の人にも技術が必要だよなー

 

感想:Strutsのデモは初めて見た!

   PoCとかできるだけ自分で手を動かして検証していかないとなー

#HTTPプロトコルについて ~使ってみよう開発者ツール hiroさん


 マイニャンバーカード交付!

 セキュリティはどこから勉強したらよいか
 HTTPの理解から始めてみよう!

 HTTPプロトコルの概要
  Getでサーバにリクエストを送り、レスポンスでサーバからのデータを取得

  HTTPのプロトコルレイヤ どのレイヤでどのような事象が起きているか想像できると理解しやすい

  BurpSuiteとかOWASPZAPとかで見るのがいいけど、、、
  会社のPCだと管理者権限がなくインストールできない、、、

  そうだ!ブラウザ標準の開発者ツールを使おう!
  HTTPのmethod

  GET:アドレスバーに表示される。Proxyログ、HTTPログに見える
  POST:アドレスバーに表示されない。Proxyログ、HTTPログで見えない

  HTTP検索エンジン FreshEngine

 HTTPリクエストヘッダ
  User-AgentとRefererから漏れる情報
   ipとかどのページから来たかとか、Webブラウザの情報、OSの情報
   使用している言語とか
   web広告とかはここを見て出す広告を決めてる

 レスポンスヘッダ 
  Last-Modifiedと If-Modified-Since
Last-Modified:最後に更新した日時
If-Modified-Since:変わってたら送って!
変わってなかったら。。。 304:Not Modified

ステートレスとCookie
 状態を保持しない
 次のページに遷移した際、前の情報を保持する必要がある
  → Set-Cookie Cookie Referer

Cookieを読めば認証情報を盗める

 

物事をレイヤに置き換えると理解しやすいかも

 

感想:知らない情報がいろいろあった。

   もう知ってると思ってたけど、開発者ツールも奥が深いなぁと思いました。

 

8月にもまた開催されるそうです。

次はどんな話が出るかとワクワクしています。

それと同時に自分のアウトプットの場として利用していきたいですね。

Python入門者の集い#5に参加してきました!

 

渋谷ヒカリエ17階(レバレジーズ本社)でPython入門者の集い#5が開催されました。

仕事帰りに参加してきました!

 

LT発表者が11人と非常に大人数でした。

 

LTの内容をメモ程度残したものをポチポチ書いていきます。

#pythonと出会ったインフラエンジニアの話

python-mini-hackathonに参加
pythonの本を書いたらしい。
「スラスラわかるPython」という本

 

プログラムを触ってこなかったインフラエンジニアがpythonを触ろうと思った理由

プログラマ希望だったけど、プログラムが触れない部署にいた
Perlを触っていたけど、挫折

Pythonはわかりやすいらしい

3日前に自分の書いたコードを読んで意味が分かって「イケる」と思った。

pyhackに参加したことがすごくよかった

コミュニティーとのかかわり

いいサイクル
勉強会で学ぶ→仕事で使う→それにかかわる仕事が舞い込む→勉強会のネタがはかどる

人との関わり
思わぬ出会いがあり、可能性が広がる
楽しいことは継続しやすい

#わたしとpythonとの付き合い方


PyConJP2017 Pythonista
プログラミングってなんだっけ

 

プログラミングの外側から見る

アナログ信号を変換しコンピュータが解釈できる構造を作っていく作業

データとコードは文脈が違うだけ
バッファオーバーランの原因にも

 

プログラミングはデータを作る。。。(?)

 

プログラミングを内側を見る

気づきを得るため
プログラミングはプログラムを作ること
データをプログラムに昇華する。

 

ほんとの答えは心の中

 

Pythonである必要あるの?

pythonは道具
使える場面があるなら使う。使い続ける

Django

道具にもよいもの悪いものがある。

 

エモい話(?)でした。

#営業職のプログラミング初心者がpythonと格闘した

新社会人 4ヵ月目
バレージ 7月7日浴衣出勤デーがある。

「レバレージ」という文言の入ったツイートを取得するプログラムを作るよう上司から言われた。

 

ライブラリ シラネ状態

 

いろんな人の助けを借りて何とか完成した。

 

よかったこと
自分っで作ったものが動く楽しさを知れた。
エラー解消が快感に

何がわからないのかわからない ← あるある

 

#プログラミング初心者がPythonで日本語を話す

新社会人4か月目
初めてのLT

ぺちぱー

会社で10%ルール → 10%は好きな開発ができる
SlackBotに日本語しゃべらせたい

 

機械学習チックなことをしている

2階マルコフ連鎖
形態素解析

 

形態素解析機:Janome

見よう見まねで作ってみてみたらうまく動いた!

今後はpythonらしいコードを書きたい

 

#PythonでTkinterを使ってみる


PythonGUIで作れる!

今やりたいことと一致してるから、興味ある。

使ってみたい。

 

#新人インフラエンジニアとPython


シェルスクリプトよりも適した道具を使いましょう

python2.7で開発
シェルスクリプトでできないことが見つからない→Python...なに使うの?

 

ログ自動取得化プログラムを作成

 

使いどころを見極める。

・ササッと作るものはシェルスクリプト
・なんども使うものはPythonで作る

 

Pythonに慣れてサーバサイド開発にすり寄っていきたい。

 

#お客さん滞在時間を計測するシステムを作ってみた

PepperはPythonで開発ができる

テーマを元にハックする

ロボットと人間が実現する働き方革命
お客さんお滞在時間に応じてひと声かけるペッパーを開発

wioNode搭載座布団で滞在時間を図る。

 

結論
すげえ

というか知らない単語が多かった。

 

時間の関係上、途中で帰ってしまいましたが非常にPythonの勉強をするモチベーションアップにつながりました。

 

もっともっと勉強して、自分もLTに参加したいですね。

CTF for Beginners in 長野 Write up

 

CTF for Beginners in 長野 CTF Write up

2017/05/27(土) 株式会社電算にてCTF for Beginersが開催され、参加してきました!

もっとも驚いたのは、運営のほとんどの方が学生だったこと。

院試を控えていたり、卒論発表を控えながらも準備をしてくださったそうです。

 

圧倒的感謝!

 

さて、本題。

CTFのWriteupを思い出せる限り書いていきます。

 

1.練習問題

問題を開くとフラグが表示され、送ればOK。

まぁ、接続確認って感じです。

 

2.てけいさん for ビギナーズ

100問の簡単な計算を行います。

間違えるとカウントが0に戻るので大変でした。

解説で即興のプログラミングできるか確認する問題だったとのこと。

確かにてけいさんで2000問とか来たらやってらんないですね。

3.for100

もらったパケットをwiresharkで開くとこんな感じ

f:id:Neko_no_me:20170530233417p:plain

 

何となしにhttpでフィルタリングしてみる。

なんか「flag(n).html」がいっぱいある。。。

f:id:Neko_no_me:20170530233218p:plain

一つ一つのTCPStreamを確認するとフラグが取れる。

f:id:Neko_no_me:20170530233221p:plain

 

4.for200

与えられたパケットwiresharkで開いて「http」でフィルタリングすると、「hidden.zip」とかいう怪しいファイルを発見。

Export Objectsでzipファイルを取得してみる。

f:id:Neko_no_me:20170530235111p:plain

unzipしてみるけど、zipファイルが壊れているとのこと。

f:id:Neko_no_me:20170530235118p:plain

 

、、、結論から言うと解けませんでした。

CTF後の解説によると、このzipファイルにパスワードがかかっており、そのパスワードを探すらしいです。

zipファイルの取得の仕方を間違えたのかもしれないので、この後いろいろ試してみようと思う。

5.for300

与えられたzipをunzipしようとするとエラーが出るので、binwalkで展開してみる。

展開すると「0.zip」、「3.bin」の二つのファイルが展開される。

stringsコマンドで3.binを見てみると「sercret.docx」という怪しいファイルが見える。。。

f:id:Neko_no_me:20170531000728p:plain

ここから先がどうにもできず、フラグを取れませんでした。

 

6.bin100

与えられたファイルを実行してみると、フラグは取れないよーと言われた。

f:id:Neko_no_me:20170531001101p:plain

とりあえずstringsコマンドで見てみる。

そしたら、あっさりフラグが見つかりました。

f:id:Neko_no_me:20170531001105p:plain

7.bin200

 Flagは「ctf4b{<Stage1>_<Stage2>}」とのこと。

まぁ、アセンブリを呼んできましょう。

f:id:Neko_no_me:20170531001453p:plain

、、、だけなんですが、勉強不足もあり正解のフラグが取得できませんでした。

 

8.bin200_2

与えられたファイルを実行しても、fileコマンドで確認してもなかなか糸口が見つけられませんでした。

資料を確認してやり直してみます。

f:id:Neko_no_me:20170531002434p:plain

9.bin300

与えられたファイルを実行してみると、Flagの入力を求められます。

しかし、時間がなかったためこの問題はほとんど手付かずでした。。。

f:id:Neko_no_me:20170531002735p:plain

10.web100

どんな問題だったか忘れてしまいましたが、解けました。

11.web200

これもどんな問題だったか忘れてしましたが、解けました。

12.web300

ディレクトリトラバーサルとSQLInjectionの合わせ技。

ディレクトリトラバーサルでlogin.phpの中身を見るところまではできたのですが、インジェクションがうまくいきませんでした。

最終的にSQLInjectionを行うSql文は以下の通り、、、だった気がする。

 

「SELECT username, password FROM users WHERE username= ('{$_GET["username"]}') AND password = ('{$_GET["password"]}')」

 

「()」があるのでつじつまが合うようにしてあげればOK。

 

まとめ

以上が自分ができたところまでのWriteupになります。

 

非常に充実した時間を過ごすことが出来ました。

今後もCTFを続けていこうというモチベーションを上げることが出来ました。

最後に、運営の皆様お疲れさまでした!