いろんなまとめ

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

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

ゼロから始めるセキュリティ勉強会 第9回目

 

セキュリティ対策の検討ポイント @ytakahashi1228さん

実体験をベースに説明


理想
セキュリティ対策の検討ポイント

セキュリティ要件の洗い出し
脆弱性の洗い出し
セキュリティ脅威の洗い出しの評価
セキュリティ対策の方針決定
セキュリティ対策の実施

実際
実際は頓挫することが多かったかも。。。

対策以前にとにかく解析してほしい、とにかく対策してほしい!
→なにかが起こってからの対策が多い

・実施の進め方

ウイルス感染
 初動
  LANケーブルを抜く
  シャットダウンせずにそのまま問い合わせ
 
 とにかく解析
  セキュリティ対策ベンダへのフォレンジック調査
  端末調査(どう感染したか)、環境調査(どう広がったか)があるので、何を調査するかも相談しながら
  金額も調べとく(実際は結構高い)
  
 とにかく対策
  その事象にあった対策がベスト
  フォレンジック結果をもとに対策したいけど、、、待ってくれない(対外的な報告や業務の復旧のため)
  基本だけ抑えとくといい

  基本的な対策と設定の確認
   端末:アンチウィルスソフト、端末調査ソフト
   入口:ファイアウォール、IPS
   出口:サンドボックス
   教育:セキュリティ対策教育(結構見落としがち)
   運用:運用ルールの見直し
   
   上記の観点で確認していき、今回の観点で防げたか、今後も防げるのか
   これ以外にプラスアルファできるものはないか
   
 報告書にまとめる
  先ほどの観点でざっくりまとめる
  フォレンジックの結果をもとにまとめると精度が高い
  
  
まとめ
 どんな機能と効果があるかをまとめておくといい
 何かあったときの問い合わせ先をはっきりさせておく
 金額面も考慮

感想
 実体験に即した、一般的な観点とは違う切り口で新鮮でした。

 

セキュリティ用Linuxディストリビューションの紹介 @momomopasさん

KaliLinux
 Debianベース
 ぺネトレーション
 フォレンジック
 リバースエンジニアリング
 wifi
 
Parrot Security OS
 Debianベース
 フォレンジック
 暗号化ソフトウェア
 プライバシー保護
 プログラミング

Back Box
 Ubuntuベース
 ぺネトレーション
 フォレンジック
 Wifi

Pentoo
 Gentoo
 
Black Arch Linux
 Arch Linux
  Kaliよりツールが多い
  
SAURAI WEB TESTING FRAMEWORK
 Webアプリケーションテストに特化
 
Weak net Linux
 Debianベース
 KaliよりWifiツールがおおい
 
Matorix
 Debianベース
 
DEFT
 Ubuntuベース
 フォレンジック特化
 
CAINE
 Ubuntu
 フォレンジック特化
 
BugTraqs
 UbuntuDebianベース
 モバイルフォレンジックがKaliより多い
 
SANTOKU
 Lubuntu
 モバイルフォレンジック
 モバイルマルウェア
 モバイルセキュリティ 特化
 
REMnux
 Ubuntu
 マルウェア解析

 

感想

思った以上にいっぱいあった。
知らない世界がたくさんあったので、用途に合ったディストリビューションを選んでいきたい。

ペネトレーションテストってなんだろう? @horyさん


とあるWebアプリケーション屋さん

お客さんから脆弱性診断について聞かれることが、年々変化していっている。

 

4,5年前
脆弱性診断してますか?

webアプリ診断とプラットフォーム診断してますか?

第三者によるwebアプリ診断とプラットフォーム診断してますか?

ぺネトレーションテストしてますか?

webアプリのぺネトレーションテストとプラットフォームのぺネトレーションテストしてますか? ←今ここ

 

ぺネトレーションテストの意味するところを事業者に聞くと以下のような答えが、


通常パターン「ツールに加えて手動の診断を加えます。」
本気パターン「電話とかメールとか使ってあらゆる手段で試みてみます。」

 

→ぺネトレーションテストがどの範囲なのか事業者ごとにばらつきがある気がする。

 

聞いてくる側も実はふわっと聞いているんじゃなかろうか

見つかった脆弱性に優先順位とつけ、どれを対策するかを考えるのがぺネトレーションテストでは、、、

 

感想

ぺネトレーションテストに関しては、自分自身も定義づけがあいまいだと思う。。。

整理するいい機会になりました。

 

不審メールのダウンローダスクリプト解析について @hiroさん

不審メールの分類
最近のばらまきメールの傾向

zip、xlsxが添付されたメールが多い

2017年の6月くらいからxlsxが増えてきた。

 

ダウンローダは難読化されている。
解析するとダウンロード、ペイロードの場所を特定できるかもしれない。

 

自分で解析する場合の方法は3種類

  • 表層解析
  • 動的解析
  • 静的解析

動的解析する場合、マルウェアにAnti-Debugging機能がついていることがある。

Anti-Debugging
 仮想環境によるふるまいを検知すると動きを止める
 
 fakeSandBoxで検索

自前で解析するのが大変な場合、以下のような方法が考えられる。

  • 解析済みの情報を収集する(主にツイッター)
  • 解析サイトで解析(Hybrid Anarysys)

・・・いろんなばらまきメールの解析デモ・・・

 

ダウンローダ解析のまとめ
解析する場合は十分注意してやりましょう。

 

感想

マルウェア解析のノウハウが豊富で非常に面白かった。

自分も自前で解析できるレベルまでいきたい。

 

社内社外監査対応について @Ex1_asami9244

セキュリティ監査とは
 経営や業務の活動が適切におこなわれていることを法令や規則に照らし合わせて点検・評価すること
 
 監査を受けるメリット
  第三者に対しての信頼の獲得
  課題の明確化(どこを目指すのか)
  情報セキュリティマネジメントの確立(ステップの方向性がわかる)
  業界基準など適合性の評価(公官庁、金融関係は厳しい)
 

よくある企業の構成として、内部監査を行う部署と、リスクコンプライアンスの部署がある。


内部監査:内向けの部署
リスクコンプライアンス:外向けに発信する部署

 

監査ではどんなことを見るのか

ログの収集
 外部データログ
 webサイトアクセス制限のログ
 フォルダ・ファイルのアクセスログ


ファイル権限の管理
 SharePoint
 Exchange
 ファイルサーバ
 
各社ID管理
 Office365
 ActiveDirectory
 PCのアプリケーション ユーザID

 

感想
監査って、ざっくりしたイメージしかなかったけど、ある程度理解を深めることができたと思います。

フリーのWAFを使ってみた @tokoroten0813さん

WAF(Web Application Framework)とは

アプリケーションレイヤでチェックをかける
Ex)スクリプトタグが入っていたら、そのリクエストを切ってしまう。

WAF運用の注意点
 Webアプリケーションの脆弱性を埋めたうえでWAFを入れる
  WAF側での対応漏れがあったり、WAFにも脆弱性がある。。。
 
 不正な入力として認識してほしくないリクエストをとめちゃう(CMSとか)
 
実際遭遇した事例
 
 SQLインジェクション脆弱性があった
 httpだと、WAFが効いてデータを引っこ抜けなかったのに、HhttpsだとSQLインジェクションでデータ引っこ抜けた
 →SSLで暗号化されていてWAFがリクエストの中身を見ることができなかった
 

 よくある導入事例
  PCIDDSにWAF入れといてねって書いてあるから入れてみた。
  →その結果、HTTPSの対応忘れで意味ない場合がある
 
 WAFはお金がかかる
 「ModSecurity」がおすすめ
 ・無料
 ・Apatchモジュールで動作
 ・カスタム設定はもちろんOWASPおすすめ設定もできるよ!
 
 デメリット
 ・なにかあっても自分が悪い
 ・情報が少ない
 ・おすすめ設定だと、Webアプリの動作がおかしくなる可能性(IPAの資料が非常に参考になる)
 

まとめ
 WAFは水際対策というイメージをもつこと

 

脆弱性って何さ? @oba

 時間の関係上カット

 

参加した感想

 勉強会でLTをやる人が増えて、時間がカツカツだった!

 それだけ盛り上がってきているんだと思う。

 自分より技術力が高い方に負けないよう、モチベーションが上がった!

 

ゼロから始めるセキュリティ勉強会第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を続けていこうというモチベーションを上げることが出来ました。

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