2017/06_ssmjp_special
2017/06 ssmjp Special すみだとささみにみちおさん
- 2017/06/04 @ Yahoo! LODGE
はじめまして
- ブログ一発目がこのエントリなのは、ブログ枠で参加したからです
- 何も見るものがないブログでごめんなさい、だんだん増やしていきます
さっそく内容
今回はすみだセキュリティさんと#ssmjpとの合同開催ということで、 運用の勉強会じゃなくセキュリティ勉強会な感じです。
前説
- すみだセキュリティお休みしてましたが、やる気スイッチが入ったら再開しますのでよろしくお願いします
- #ssmjp は Shimbashi Study Meeting の略でした(過去形
- 会場募集中です! 声かけてください!
- 「アウトプットしないのは知的な便秘」 エンジニアならアウトプットしていこう
- 特徴はちょうゆるい > でもこの間はサツバツとしてましたが基本ゆるいです
- LTの練習場として使ってください
- slackやってます! 公式からどうぞ → http://ssm.pkan.org/
inaz2さん
「use-after-freeについて(仮) Can we prevent use-after-free attack?」
- Pythonの方、ブログ: ももいろテクノロジー
- 僕自身はフリー素材じゃないのでやめてくれると助かります(誰を指して言っているんだ…
質問
- あなたはプログラマですか?
- C++ やりますか?
- use-after-free attack 聞いたこと有りますか?
-
コード書くときにどうやって防ぐかわかりますか?
- コンピュータがどのように動くのか?
- Abuseすんじゃねえぞ?
-
法律いっぱいあるからやめときなさい
- ダイナミックメモリアロケーション
-
malloc/free, new/delete, HeapAlloc/HeapFree
-
Heapってなにさ? 最初にがつっとメモリ確保して、あとでチャンクに分けて使うやり方
-
Use-after-free attacks チャンクをアロケートします、チャンクをFreeします(ダングリングポインタ)、同じサイズのデータをそのポインタ経由で変なデータ入れときます、すると変なコードが変なアドレス見に行って変なことできます、というのがこの攻撃
- Virtual function table virtual function 親クラスの下の子クラスを、親クラスとして扱いたい場合がある(ポリモーフィズムってこと)
これってどうやってメモリ内で扱われてるの? 生成したインスタンスがそれぞれの子クラスへのポインタ持ってるんやで。 その子クラスのポインタがサス先のアドレスを変な子クラスにすると面白いことになるんやで。
(ここでデモ、SL走った)
-
Windows10でも出来てしまう! (デモ、電卓が起動した)
-
これどういうときに問題なの? パーサやらインタプリタやら スクリプトエンジン カーネルやらドライバやら
こういうのにあるとかなりやばい
CWE-416 が対象の脆弱性ID
なんだ…?タブにポプみがあるぞ…?
- ゼロデイにも使われてる CVE-2014-1776
CVE-2017-0263
権限昇格とかできちゃうってさ…
-
ポプみwwww
-
これを防ぐにはどうするか C++11 でスマートポインタを使おうぜ(C++ガチ勢 →でも双方向リンクリスト使うときときとかすげえめんどい
freeしたらNULL入れようぜ →そりゃ分からんくなってるから大丈夫か。(この対処はスマートポインタより前だからもうobsolete
VC++ で /SDL でコンパイルすると勝手にNULL入れてくれたりするよ 8123h を勝手に入れるんだけど、これはMSのMagic Address
-
コピーされたポインタは片付かなくね? NULL突っ込んでてもそれらの回収は難しいよねー
-
GCC/Clang アドレスサニタイザ コンパイラが警告出してくれる!
-
全部のダングリングポインタを排除は難しい… Windows 8.1+: Control Flow Guard /guard:cf でenableされて、変なの入ってても飛ばないようにしてくれる でもこれデバッグビルドのときは /ZI とぶつかるから使えない
Linux gresecurity: RAP 関数の前に署名を置いといて、飛ぶ前に署名検知して検証しよう的な。互換性問題が出てきそう(2014年の話
Windows10: VTGuard vtableの下にガード入れといて、このガードを読んでから飛ぼうね、というやつ。
Windows10: MemGC GCでどうにかやっていこう、ダングリングポインタのときは放置して使わないようにする ChakraCoreがOSS化してるのでそれで読める!
- 運用の話 多層防御でやっていけばいい
強制アクセス制御(SELinuxとか)でやりましょう Androidには入ってるからいっぱい使われてるから!使おう!
分離 namespaces とかで権限分けよう
エンドポイントセキュリティ もうセキュリティソフトで見つけてもらおう
パッチ当てよう
- まとめ use-after-free attackについて話したよ バッファオーバーフローだけじゃなくこういうのいっぱいある
安全な言語機能を使う、オプションを有効にする、多層防御するとか色々あります MSVCだったら /guard:cf 有効にしようぜ
圧倒的当事者意識で考えよう 糞だ糞だ言う前に原因をよく考えてみよう
Q. togakushiさん 「コンパイラだけじゃだめ?」 A. Warningいっぱい出て外したい気持ちになるけど外すのダメ絶対
園田道夫さん@NICTナショナルサイバーセキュリティセンター長
「セキュリティの人材育成について」
-
一時間でおわるかなー 基調講演感isある
-
8万人不足=専門家が8万人不足? そうじゃない、現場で色々する人たちが足りない。 セキュリティの要素を持ってる人材を現場に入れる必要がある これはトレーニングでなんとかなるんじゃないか? おもったより深刻ではないのでは? それにしても何万人足りないのかはっきりしてほしい!
-
増えるとインパクトがあるけど足りてない人材 →予算をつけられる+セキュリティが分かる人材 経営のリスクとコストをマネジメント出来る人が必要
!! なんでここがどの分野も足りてないんだろう?どのエンジニアもここが足りてない気がする
- 必要なの?と言われる人材 →セキュリティの専門家 求人情報見てみました。2015年11月で485件、2017年6月で1088件 500〜1200とかある。結構高い。 みなさんどうですかひとつ
他の分野はどうか? SIで496万平均、ベンダで491万平均
- 足りてるんならこんなに転職しないでしょ! 毎月退職の挨拶読んでる気がする→相次ぐ大物退職
リクルートとLAC多くね?
-
増えたら超コスパいいけど足りてない人材 →セキュリティ教えられる先生 教えられるレベルの教育を受けてる人が1000人くらいしか卒業してない、これだと80年かかる
-
先生足りない 雑務多すぎ -> 河野太郎に頼むか・・・・
自己研鑽する時間がない
良いコンテンツがない
いい環境がない ソフトウェア買えるの? SIEMとか? NIRVANA?
サイバーレンジがない
Ignite 2016みたいなサイバーレンジの見本市がある 2億〜のシステムがあったりとかする こりゃ学校には入れられない…
-
セキュリティはスキルの変遷が激しすぎる 要塞化だ、IDSだ、セキュアコーディングだ、 暗号化だ、Webアプリだ…
-
先生を支援する セキュリティ・キャンプ SECCON SecHack365 情報危機管理コンテスト hardening CTF
こういうのは結構先生がやれてないことをカバーしてる
- セキュリティ・キャンプ 若者を育てよう、今年は府中だ、80人もいるぜ… 4泊5日セキュリティどっぷり 行き帰りの旅費、宿泊費、食費タダ 超一流の講師陣
倍率は4〜5倍 呼びたい学生が増えてて頼もしい
- キャンプのマーケティング 学校でやらないこと、できないことを狙う 体系的じゃないもの、広くないもの サイバーレンジ的な実現困難な要素を取り入れた演習
キャンプでしか出会えない人に会う 企業や何らかの冠がついたルートでは呼べない講師陣 全力でセキュリティを語り合える同年代
- アセンブラ読経
- 未知のファジング
- ロボットカー
-
過去の卒業生 いろんな大会で有償やら主宰やら
- CTFとは 旗取り 今はいっぱいある!
世界では70大会くらい。週一以上あることになる
各社で社内CTF
-
CTF、コンテストの長所 点数になるのがいい 技術的立ち位置の確認、(再)認識 Write Upによる復讐・予習効果 サイバーレンジ、演習環境の代替 実環境を使えるのは中々出来ない 楽しさの実感 競い合い、可視化、ショーアップ重要 企画運営がめっちゃ勉強になる 先生が勉強になるのと同じ 世界の強豪チームは運営してる
-
CTF、コンテストのマーケティング 学校にない刺激 リアルな学校にいない仲間、ライバル サイバー攻撃を試す場所 超高速リアルインシデントトリアージを試す場所
-
SECCON 7年目 完全「非」官製(スポンサー様ありがとう 2016年はIoTハッカソンとかあった 2万個の問題(1question/sec以上
バイナリかるた、アセンブラ短歌
新しい本がでるよ
-
SECCON beginners 「その技術を教えることが一番身につく」
-
攻殻CTF
-
サイバーコロッセオ オリンピックパラリンピックとのコラボ よく検討できてないけどイベントだけやっちゃった
-
CTFで勝つには Pwnとかexploitがすごいけど差がつきにくくなってきている CTFだとWebの出題が難しい 暗号は実時間でとけない コンピュータサイエンスの素地を必要とする問題で差をつける傾向が出始めている 勝つチームはそこが強い そこに応用力を求める →結局ちゃんと勉強していると勝てる(笑) 体系的じゃないものをやってるはずが、勝とうと思うと結局体系的に勉強してる方が勝てる
-
CTFのより良い使い方 CTFに特化したような問題は良問ではないという共通認識がある むしろ最近は、自動化や特徴モデルとして捉えることを前提とする問題が増えてきているし、そういう競技形態も出てきている 解析力を上げることで職人性や感覚を獲得し、自動化を促されることで研究やシステム開発に向かえるようになるのでは
-
SecHack365 1年間のイノベーション人材育成事業 アイデアを生み出すのに最適な環境を見つけていきたい (決して飲みたいとかそういうことではない!)
ユニークなゲスト、座学講座 発想法トレーニング、演習 24-365な遠隔環境 セキュリティの未解決課題についての議論、パッケージ化と展開 プロトタイプのCTFへの検証、展開
-
ハッカソンのマーケティング トランプ政権(笑) アメリカ頼みは安保的にも良くない アイディア不足、ベンチャー不足、良い研究の不足を解消したい アイデアを実装まで持っていきたい 研究と実装の隔絶 学校では取れないデータセットに触れさせたい 学校にはない実践的な指導、助言で研究や起業を目指す 外部連携のベースにしたい
-
NICTER 30万IPアドレスの観測網 日本だけではなく世界にも 2015年から2016年で攻撃が1IPあたりで倍になってる
-
STARDUST !! 防壁迷路だ
-
セキュリティをものづくりでなんとかしたい ものづくりしてる人はセキュリティ気にしないですよねー
人間に努力を強いるセキュリティとか止めようよ 良いもの作って悪い奴らの攻撃コストを爆上げしてやりたい 良い物作って防御側の労苦を激減させたい
良い物、発明のためには何が必要なのか
- 良い物、発明のために必要なもの セキュリティもものづくりもどっちもやれる人や、 橋渡しを出来る人をもっと増やしたい
職人制、データへの感性、感覚 セキュリティへの意欲 ものづくり意欲 仲間、ライバル 適切な現状認識 過剰に怖がらない、牧歌的でもない 真実を見る目 良いデータセット 良い研究環境
-
サイバーグランドチャレンジ AIvsAI, AIvs人間の時代
-
なぜAI対AIなのか 職人制、データへの感性を身につけた人間がその感覚を言語化できたら、システムを作ることが出来るはず 大量データを解析、取り込むためのノウハウが世界的に蓄積されてきている →めんどくさいことを自動化しようというのは自然な流れ (例えばソフトウェアを解析して脆弱性をふさぐとか)
-
AIはPPPに勝てるのか? ルールがAIをサポートしている 自動化と言ってもまだ端緒 とはいえ、SECCON決勝では数秒に1個の解析力になっていた(出題は1秒1個 食い尽くすには対象範囲が広すぎるし、特徴モデルも少なすぎる(だから発明が必要
-
社会的コストの節約とパフォーマンスの最大化 専門家になりえない(本来なる必要がない)組織構成員全員の根性論的な教育に未来永劫投資し続けるよりも、セキュリティ専門家に投資して、組織構成員への教育投資を敬遠してくれるシステムを作らせたほうが良い セキュリティを専門と売るわけではないが、IT関連のシステムをセキュアに開発できる、安全な構築運用が出来る人たちを排出し、彼rを新しい手口や攻撃手法から守るシステムや仕組みをセキュリティ専門家に投資して作らせたほうが良い
-
ないならつくっちゃえ! サイバーレンジを作ってる人たちはもういる。すでに作っちゃって使ってるところも そもそも無いって思えるか?なにかこういうものがあったらいいのにっていうものがるか? そういう感覚を得るためのキャンプ、SECCON、コンテスト そういう感覚を形にして具現化するためのSecHack365
!! 宣伝だー!
もっと開発して提案する人がいるんじゃね?
- 全部学校へのラブコール 先生を増やしたいし、先生を鍛える精度を作りたい 学校+旧人の転職(分野変え)+学生の専攻替え+非専門の人を鍛える。全体としてはそういう人材輩出帯域を確保できる仕組みにしていきたい
!! うーんでも、それだと大工が減るべよ。リアルに。
Q. 大人はどうしたら? A. あんまり大人に興味ないし…俺ばっかやらせんなと思うけど、、、たとえばサイバー演習とか、そういう運用の初期対応とかで
Q. 物作ってる側はそこまで手が回らない、人材は高い、どうしたら良いと思いますか? A. コンテストとかで脆弱性を見つけてもらえばいいんじゃね? イベント化するとみんなつついてくれて、コスパも良いと思う。
ozuma5119さん
「役に立ちそうで役に立たない、少しだけ役に立つSSL/TLSまわりの話」
- 豆知識集
第一部 証明書 みんなだいすきSSL証明書
- 証明書再入門 最近のブラウザ証明書見せないのでFirefox使う Yahooの証明書見るけど細かいことは怒られそうなので言えない Edgeは全然情報出してくれない リンククリックするとbingで検索される
Chromeはデバッグモード起動しないと見られなくなった
opensslコマンドで安心!
echo Q | でパイプしておくとconn張ってスグ切るから安心 |
- X509v3 ChromeとかはExtensionのSubject Alternative Nameしか見ない
CommonNameはもう無視される
-
SNI 同一IPアドレスで複数のhttpsサイトをデリバリするCDNでは必須 SSLでも、接続先FQDNは平文で送られる(注意) SNIはhttpsのVirtualHost的なモノ
-
証明書鑑賞CRLとOCSP CRL: 失効した証明書のリスト 現実的に、まともに対応してるブラウザはない
OCSP: その証明書が失効していないか、認証局がOCSPレスポンダを用意 CRLの配布エンドポイントはhttp…なんでや? →失効リストだからまあhttpsだったら分からんよね…
OCSPの配布エンドポイントもhttp →これも同じ理由
第二部 証明書先生、さようなら
-
SSl通信のおさらい ハンドシェイクのうち、Certificateは必須ではない! およそ一般的な事例ではない…ほんとに?
-
CipherSuiteの予備知識 RFCの名前としてちゃんとしていしてよ! OpenSSLさぼりすぎよ! 待望の-VオプションでOpenSSL名とRFCでIDで対応させることが可能
-
aNULL 認証なし(非推奨) Anonymous DHシリーズ 認証なしで鍵交換するCipherSuite 中間者攻撃が出来てしまう
ADHで繋いで見るぞ ほんとだ!証明書なしで鍵交換してる!
SSL/TLS通信では証明書を利用します→お前それサバンナでもおんなじこといえんの?
- SRP(非推奨、とっくにobsolete) パスワード認証!すげえ!
最初にパスワードファイルを作ったらできる!
パスフレーズ聞かれてる!画期的!
すげえ出来る…
天丼だ!
- PSK 事前共有鍵認証
16進数でPSK指定しないとハマるぞ!
また天丼だ!
-
TLS-PSK これは用途がある、IoTデバイス間で証明書使わない状態でやることもある Zabbixもある、TLS1.3でもResumption PSKがある
-
ZabbixのTLS-PSK うわーメニューがある
所感
これブログじゃなくて実況ですね…