情報科学若手の会冬の陣2019 に参加した

wakate.connpass.com

聞きながらとったメモなので聞き逃しや不完全な部分があるかも

本発表

Webフロントエンドを頑張りたい人と頑張りたくない人の為の話

  • 頑張りたくない人
  • 最小構成で楽するにはどうしたらいいか
  • 用語集
  • html/css/jsを生で書くのは?
    • ページ数が少ない、jsほぼいらない、IEサポート必要ない ならok
  • IEは最新の標準仕様に追従してない 対応すると依存ライブラリが増える
  • jquery 動いているサイトは山ほどある
    • DOM APIが進化してdom操作に不自由しなくなった virtual domもある
  • webpackとかは必須
    • 依存ライブラリが多くなる
    • parcel zero-configの思想で作られいて楽だが、細かいカスタマイズができない
    • rollup デフォルトではESModulesとか扱えない。ライブラリ開発使うのが良いと行っている人もいる
  • なんでこんなに複雑に?
    • 半分はIEのせい EOLがこない。サポートする必要がある
  • とりあえずやりたい人の為の最小構成用意した あとでgithub 小さいってどのくらい?
  • 頑張りたい人
    • スキップ
  • jsの可愛いところ

資料 https://arayaryoma.github.io/wakate2019w-slide/#/

実装して学ぶ Symbolic Backward Execution

  • シンボリック実行とは?
    • 数学でいうx,y,z的な変数的なやつ
    • if文があったら網羅的に実行できる
    • テストケースを網羅的に作れる
    • 他にも色々
  • FSE
    • スタンダード
    • エントリポイントから特定地点に向かって実行
  • BSEは逆
  • 最弱事前条件を計算すれば逆にできる
    • ある性質が過不足なく満たされる
  • 手動で計算してみる
    • smtソルバはz3
  • pythonで作ってみる

資料 https://speakerdeck.com/katc/shi-zhuang-sitexue-bu-symbolic-backward-execution-aceefce8-d25e-4db0-8ebb-d648bb2c41cd

Deepな異常検知技術の最新事情

  • chillstackという会社を企業しました
  • deepにも色々な手法がある。前回発表したのはCNNで二値分類
  • 今回はGAN

    • よく使われるのは生成機(G)の方。fake画像とか超解像とか
  • Gで生成できないデータがきた時に異常とする

  • G(z)とデータを比較するスコアがある
  • AnoGAN
    • 学習させたあと、異常か知りたいデータに一番似ているG(z)を作るzを探して、スコアを計算する
    • G(z) -> G(g(z))と変形してインクリメンタルに探索する めっちゃ時間かかる
  • EfficientGAN
    • 探索コストがほぼぜろに
    • データを潜在空間へ写像するEncoderを一緒に学習する
    • zを探索する必要なし

資料 https://speakerdeck.com/palloc/yi-chang-jian-zhi-falsezui-xin-shi-qing-togei-yu-falsehua

セキュリティキャンプとCコンパイラ自作の誘い

  • https://www.ipa.go.jp/jinzai/camp/index.html
  • 選択コースと集中コース
  • 講師(スペシャリスト)の人にすぐ聞ける
  • みんな熱意がある

  • Cコンパイラ

  • 他のものを知る足がかりになる
  • gccとか頑張れば理解できるようになるのではないかと思える
  • 実装方針
    • インクリメンタルに作る
    • 最初は小さく
  • アセンブラをいい感じ出力してるサイトがある
  • C言語は学部レベルでいける
  • ruiさんの資料見ながら進める

  • トップレベルの文法が辛い

  • 普通の変数宣言が辛い
    • 最近の言語はパーサに優しい
  • 文法が結構複雑
    • if(i=0,j=0) が合法
  • 楽しい

Webデバイスラッキング手法の紹介

  • webデバイス スマホとか
  • バイスラッキング
    • サーバ側が同じ人との通信であることを知りたい
    • 複数デバイスにまたがることもある
    • 広告とか調査とか
  • ユーザがコントロールできない手法だと問題になることがある
  • cookie
    • AppleはITPで制限かけてる
    • cookie sync パラメータを渡してリダイレクト時に引き渡し
  • ip address
    • 住所というよりビルのイメージ
    • NAT
    • webrtcを超える為の技術がある
  • hsts super cookie
    • httpアクセス時に次回はhttpsにしてねと記録させる(super cookie)。次回はhttpsになる
    • サブドイメンをたくさん用意して、http/httpsでアクセスしてくるかで0/1 データを記録できる
  • tcp timestamp
    • カウントするやつ
    • 更新間隔は定義されていない
    • tcp sequenceと組み合わせる
    • 間隔を開けた二つのtcpパケットを送るとtcp timestampの更新間隔がわかる
    • uptimeから決められることが多い?のでuptimeがわかるのでNATの先がわかる
    • linux 4.10 からコネクションごとにランダムになった
  • ssl session ticket
    • SSLを続きからできるようになる
    • SSLを復旧させてきたということは前に接続した人
  • ipv6

    • NTA不要になり、普通にidとして機能する
    • 割と普及してきた
  • アドテク業界では普通に使われている?

    • わかる人が見るとすぐわかるので使われない。炎上したことも

資料 https://speakerdeck.com/kurochan/webdebaisutoratukingushou-fa-falseshao-jie

Node-RED フロー 分散処理化による次世代の都市システム

  • スマートシティ
    • 年に関わるセンサデータを取得してフィードバック
  • ゴミ収集車にセンサ載せる
    • 都市の至るところに展開できる
    • 100Hzくらいで取得して、リアルタイムにデータ送信
    • 一日100台。三日くらいでほぼ全域がカバーできる
    • 超高性能ドライブレコーダ
    • ゴミの量をカウントしたり、道路の表示のかすれ/陥没/ひびを検知できる 自治体の人へ
  • たくさんのデバイスがあるので処理フローが複雑
    • 従来であればクラウド
    • できればエッジ側で処理したい
  • Node-Red
    • 分散環境に対応してない
    • 共同研究している人が分散対応させた
    • ディープラーニングもエッジでやりたいので、専用のノード作った

CTFと現実世界

  • CTFはコンビュータ総合格闘技
  • 賞金も結構もらえる
  • 企業主催の大会が増えている
    • 技術の吸収・キャッチアップ
    • リクルーティング
    • メリットがあると認知されてきた
  • ジャンル
    • pwnable, reversing, web, cryto
    • いずれも難易度が高くなっている。専門知識が必要
  • 非自明なものが難しい・面白い
    • セキュリティという分野自体がロジックパズルと相性良い
  • 最近はネタ切れ気味
    • OSSとか研究成果へ
  • OSSでの問題で想定していない解法が出てくる -> 0day攻撃に
  • バグハンティングと似ている部分もある

LT

キャリア選択のかんどころ

  • 技術に関してもT型人材、複数の柱を作る
  • 技術以外のソフトスキルも勉強しよう
  • マネジメントとか育成とか
  • ビジネス書も読もう

仕事の頑張り具合を記録して可視化する

  • 開いてるウインドウを記録する
  • もともと研究でやってた
    • プログラミング教育で困っている人を検知する
  • 社内リソースなので外部送信できない 自分で作る
  • cocoaとswiftで作った
  • 容量は一年で60Gくらい
  • だいたい仕事頑張ってる
  • http://haneuma0628.hatenablog.jp/entry/2018/12/21/000000

今年作るもの

  • イベント運営めんどい
  • タイムキープ周りを管理してくれるもの
  • 過去に似たようなものを作った クソアプリになった
  • ラズパイで作る
  • android things
    • kotlinでできる