Calmery.me

みっかぼうずにならないようがんばる

HACKER TACKLEに参加してきました

今月の 10 日に福岡で開催された HACKER TACKLE に参加してきた.セミナータイプの勉強会で,コースが複数に分かれていたが事前にどれを聞くか考えて行ってなかった.次はちゃんと決めてから行こう.結局 H-LANE と K-LANE を行ったり来たりしていた.だいぶ時間が経ってしまっているが覚えていることだけまとめておく.

13:00 - 13:50 H-LANE Java9の話(仮)

きしだ なおきさんの「Java9の話(仮)」を聞いた.JShell やらモジュールシステムやら G1GC の話だったと思う.JShell はとても便利な気がする.というかすごい.補完やプロジェクトを開いたり,実行中の他のプロセスに接続できたりするらしい.これぞ本当の Java スクリプトだ.

モジュールシステムだが Project Jigsaw というなんだかとってもかっこいい名前.検索してみると Java9 Jigsaw やらでてきた.モジュール間の依存性の管理を行うらしい.従来は Jar だったがこれからはモジュール,モジュールをパッケージだけで使うこともできる.

G1GC とは...とは?GC には色々と種類がある.マークスイープ GC やコピー GC,世代別 GC などなど.なるほどよく分からない.Java9 からは G1GC がデフォルトの GC となったとかそんなことだったような気がする.

14:00 - 14:50 H-LANE スマートフォン体験を一歩先へ プログレッシブウェブアプリの作り方

次は Increments 株式会社の田中 洋一郎さんの「プログレッシブウェブアプリの作り方」というお話を聞いた.現在のスマートフォンの利用者の使用時間のうち 8 割はトップ 3 のアプリに費やされている.アプリの使用時間は平均なのか 1 時間 28 分という結果らしい.つまりネイティブアプリだとお気に入りのアプリ以外はほとんど触る時間がないということ.なるほど,自分も Twitter とかブラウザしか触っていない.そしてそれに対し Web は 21 分.要はネイティブアプリだとインストールも大変だしそもそも使われにくい.だが Web ならネイティブアプリのお気に入りアプリ以外の使用時間の 18 分よりも長いし使われる確率は高い(?)ということらしい.使われやすいかは疑問だがインストールが不要な点は利点だと思う.

そして最近,Web も進化してネイティブアプリに近づいてきた.HomeScreen や Splash,Fullscreen,Offline,Theme,Push などなど.今だと AndroidChrome では Manifest を利用している,Service Worker を使用している,HTTPS で提供されているとホーム画面に追加するかと自動で利用者に聞いてくれるらしい.すごい.

さらにポイントに近づいたら自動で Web ページを立ち上げてくれるフィジカルウェブなるものがある.アプリをインストールしてくださいではなく Web で提供する.サービスワーカーを利用しプッシュ通知を行う.Cache のコントロールも SW-Toolbox や SW-Precache なる便利なものがあるんだそう.

とにかく Web すごいからやってみようというお話だった,と思う.

15:00 - 15:50 K-LANE リレーショナルデータベースとの上手な付き合い方

日本オラクル株式会社の奥野 幹也さんの「リレーショナルデータベースとの上手な付き合い方」を聞いた.簡単に言えば,データモデルをわかっていない.トランザクションがわかってない.実装がわかってない.皆,適当に使っちゃってるから理論を理解して使おうねというお話だった.

そもそもなぜデータベースを使用するのか.開発や運用で楽をするために使用する.整理しておきたいし好きなときに取り出したい,自由に更新したい.じゃあ使うしかないよね.

ちなみにファイルでやると,構造が難しい.同時アクセスの際の排他的制御が難しい.マシンクラッシュしたら中身はどうなる.などなど.では表計算では,インデックス検索ができない.同時アクセスができない.トランザクションなどそんなものはない.UNION などできない.データベースは頑張ってるんだ.

ちなみにトランザクションとは,同時アクセスによる異常を防ぐ.矛盾が起きないような順番で命令を実行する.クラッシュしても COMMIT されていない分はもう一度実行してくれるクラッシュリカバリ.便利だ.

最近流行りの NoSQL についてもちょっと説明があった.トランザクションがなく,リレーショナルモデルではない,制約がなく,データの正しさの保証はない.全てアプリケーションから頑張ってねということらしい.おお,つらい.

リレーショナルモデルとは,データへのアクセス演算のデータモデル.メモがおかしい.ちゃんとメモしてない.正規化理論とは,更新によって起きる矛盾をデータベースによって防ぐ.同じデータがあると矛盾の原因になってしまう.なのでデータモデルが必要となる.じゃあ使おう.データを入れるだけでなく,取得して利用するために必要で,データモデルに沿った演算が必要だということ.ちょっと曖昧すぎるというか全然わかってないので勉強する.

あとはパフォーマンス.そもそも性能が必要.命令の無駄を省かなければならない.そのために実装を知り見積もりをする.時間がかかるクエリやアクセスが集中している部分を見る.不要なデータはないか.よりよくデータベースを利用するために,まずは理論を理解しようねということだった.

16:00 - 16:50 H-LANE Go言語の最新事情と並列処理についてのおさらい

次は GDG 中国の横山 隆司さんのお話を聞いた.Go 言語,新しくバージョン 1.7 がリリースされたがこのリリースに含まれる Vendoring support がいいらしい.パッケージのバージョンが固定できるそう.あと Static Single Assignment というものが導入された.またまた速くなったみたい.

その後は並列処理のお話.まあこのあたりは調べながらやった方がいい気がする.Go 言語,入門本だけ買って詰んである.そろそろやろう.Go 言語はいいぞというお話だった.

17:00 - 17:50 K-LANE いますぐ始めるCloud Foundry!

次は Pivotal の槙 俊明さんの「Cloud Foundry!」というお話を聞いた.Cloud Foundry とはオープンソースの PaaS ソフトウェアだそう.コマンド一つで Web アプリケーションのアップロードから起動,スケールの変更まで何でもできてしまう優れもの.Docker のようなものということ.ちなみに Docker のイメージもサポートしているとのこと.

基本は環境変数から接続情報を取得する.この形がスタンダードなのかも知れないが,自分はアプリケーションで個別に設定を作りたかったりたくなかったり.ちなみにアプリケーションにデータベースなどの外部サービスを追加することもマーケットというものがありコマンド一つで簡単に行えた.

実際に自分も Pivotal に登録してやってみた.かなり詰まったのだが最終的にはちゃんと動かすことができたので良かった.
f:id:calmery:20161003213947p:plain
助けていただいた.本当にありがとうございました...


使ったことがなかったしいい経験になった.

18:00 - 18:50 T_LANE アジャイル開発のテスト -自動化でしょうか。いいえ、戦略勝ちです。-

最後は kyon_mm さんのお話.うさ耳だー!と心の中で叫んだのは内緒.チームでの開発のお話だったけどちょっと待ってメモがない.

確か,今は自動化してテストすることが目的なのではなく,自動化することが目的となってしまっていて意味がない.自動化によって得られるメリットよりもデメリットの方が大きくなってしまっているというお話だった.テストの対象に大きな変更があったら自動化のテスト自体もまた作り直す.手間だし時間もかかってしまう.それよりはテスト自体を最小限に,不具合自体が出ないようにする.そのために二日に一回,作業進み具合など確認を行っているみたい.さらに,その確認自体に時間がかかってしまったら,なぜそこに時間がかかってしまったのかを考える.要は何かよからぬことが起こってしまったのであればその原因をちゃんとひとつひとつ潰していくことが大切ということなんだろうか.

懇親会

まあ,はい.色々話ができてよかったですがなぜマクドナルド?
f:id:calmery:20161003215106j:plain

まとめ

色々知ることができたし,実際に自分で使ってみたりということもできたのでよかったと思う.実際に役立てられるものも少なくなかった.来年も参加したい.

第15回セキュリティさくらに参加してきました

熊本情報セキュリティ勉強会,セキュリティさくらに参加してきました.今回は AWS の松本 照吾さんで「クラウド不安,とか言ってる場合じゃない最近のクラウドセキュリティ」というお話.
もう 10 日も経ってしまってますけど...

手書きのメモが汚すぎてどこまでが前半なのか,というか読めない.

前半

まずクラウドは不安なものなのか.
使ってない人は情報の漏洩が不安といい,使っている人はセキュリティが高くなるという.

米国の CIA の技術主任の方はクラウドの方がセキュアだよと言っているそう.なるほど.このギャップをどうやって埋めてきたのか.ちなみに現在のクラウドの流れは 19 世紀ごろの電気の普及と同じ流れだそう.

CAPEX(設備投資)モデルと OPEX(運用コスト)モデル.クラウドの評価として早く,簡単に安く.仮説,検証,フィードバックを繰り返す方がいい.利用者のニーズに応えられるサービスが強い.この辺りで PCIDSS というクレジットカード情報および取り引き情報を保護するための何かが出てきた.よくは覚えていない.

ここからはこれからの常識が変わってくるというお話.従来の機密,完全,可用というのはクラウドでも取り組まれてきている.さらに恩恵としてビッグデータ,分析,インテリジェンスが手に入る.また社内リソースを可視化できる.

セキュリティ,ROI(投資対効果)は求められるのか.セキュリティだけ分けて,取り出して考えることは難しい.変化への適応を追求し,最適なセキュリティへ.

リスクは常に変化する.脅威,脆弱性,情報資産.適応型セキュリティ.予測,防御,検知,対応.この繰り返し.

この変化適応度に応じてセキュリティの種類分けを行う.要は必要なものだけを追加する.セキュリティベストミックス.かっこいい.

後半

Netflix の例が紹介された.本番環境が落ちても次がすぐに立ち上がるらしい.

常時 SSL は必要かも.だがコストがかかり,個人に負荷がかかる.SEO の判断基準になっている.これを AWS は無料でやってくれる.わーい.運用している人はサービスのセキュリティ,証明書の管理をしたいわけではない.このような無駄を省くためのサービス.本来やるべきことに集中するためのセキュリティ.

AWS で採用されている.

  • Security By Design
    • 設計の各段階への要件の組み込み
  • DevSecOps
    • 開発,運用プロセスにセキュリティ評価を組み込む

見たほうがいいということだった.気がする.

ルールがサービスを殺してしまう.組織でサービスを試験利用してみるのもあり.大元で管理できるから利用者が許可いらずで素早く使える.

クラウドはテンプレート化されているのですぐに立ち上げることができる.リファレンスアーキテクチャをテンプレート化.最低限の要件を定義する.ガバナンスポリシーをスクリプト化.セキュリティ要件を満たす環境を自動化し維持する.

さっき出てきた DevSecOps について.個人ではなくチーム,コミュニティ.管理可能,反復可能.Security at scale.CI/CD プロセスの一部として.

クラウドがセキュリティにもたらす価値.

  • 今まで出来なかったことができるようになる
  • 変化や要求に応じる
  • 本当にやるべきことに集中出来る環境を作ること

よく分かっていないので調べた方がよさそう.

AWS すごいってことがよくわかった.自分も触ってみたい.第15回セキュリティさくらのまとめ - Togetterまとめ につぶやきがまとめられている.

LT

カスペルスキーの前田さん
SGR2016 – Security Groups Roundtable, 2016.9.23 | Web Application Security Forum - WASForum の宣伝ということで.行ってみたい.

政倉さん
開発入門者向けの脆弱性学習サイト「ビギクラ!」の紹介.
結果が簡単に見れるのでとてもよさそう.

CyberForce さん
パスワードの管理ソフト.マスターパスワードさえ強力であればパスワードの使い回しが減っていい.持っているアカウントの把握や同期もできて便利らしい.でもマスターパスワード絶対忘れる自信があるので自分には縁がないだろう.

李 充根さん
学校で事件.ネットワークの環境がとてもとてもまずい構成だった.ここぞとばかり TeslaCrypt によって暗号化される.セキュリティソフトは体験版のまま期限切れで動作しておらず.
GitHub に TeslaCrack というツールがあった.でも TeslaCrypt は普通 vvv という拡張子にするはずでは.なぜか mp3 になっている.調べてみたら TeslaCrypt3 という改良版だったらしい.TeslaCrack が使用していた脆弱性が修正されていて復号できない.なんとそこで TeslaCrypt の作者がマスターキーを公開.終わった.焼肉を勝ち取ったらしい.焼肉食べたい.

橘さん
CSIRTって知ってますか.知りませんでした.
セキュリティインシデントの受付,調査,対応を行っている.組織内にある CSIRT は組織内 CSIRT というらしい.小さなインシデントに対応,大きなインシデントを防ぐ.メールの例があった.開いたけど対策してたけど大丈夫でしたみたいなの.あらかじめ準備を行っておき何かあった時に冷静に対処する.

竹森さん
タイピングチューブの紹介.紹介といっていいのだろうか.タイピングチューブは動画,主に歌の歌詞に合わせてタイピングの練習をすることができるサービス.仮想キーボードがついたらしい.

前半,後半の間のスイーツタイム.最高でした.
f:id:calmery:20160810195636j:plain
f:id:calmery:20160810195638j:plain

懇親会は Grill de gyan で.
f:id:calmery:20160810195914j:plain
f:id:calmery:20160810195917j:plain
美味しかった.

レポジトリへのコミットの取り消し

【git】git pushを取り消す - tweeeetyのぶろぐ的めも を参考にした.

git commit を取り消すには git reset を使うらしい.

$ git log --oneline
67c6b27 Latest update
f5d997c Merge pull request #1
...
$ git reset --hard f5d997c
HEAD is now at f5d997c Merge pull request #1
$ git log --oneline
f5d997c Merge pull request #1
....

これで以前の状態の戻すことができた.

$ git push -f
warning: push.default is unset; its implicit value has changed in
Git 2.0 from 'matching' to 'simple'. To squelch this message
and maintain the traditional behavior, use:

  git config --global push.default matching

To squelch this message and adopt the new behavior now, use:

  git config --global push.default simple

When push.default is set to 'matching', git will push local branches
to the remote branches that already exist with the same name.

Since Git 2.0, Git defaults to the more conservative 'simple'
behavior, which only pushes the current branch to the corresponding
remote branch that 'git pull' uses to update the current branch.

See 'git help config' and search for 'push.default' for further information.
(the 'simple' mode was introduced in Git 1.7.11. Use the similar mode
'current' instead of 'simple' if you sometimes use older versions of Git)

Total 0 (delta 0), reused 0 (delta 0)
To https://github.com/hoge
 + 67c6b27...f5d997c master -> master (forced update)