ばぁど・うぉっちんぐ

Ruby、Drupal、セキュリティを頑張りたい。自由と春を求めて羽ばたく渡り鳥。

技術書典4に行ってきた - 久々にワクワクしたお話 -

技術書典4に行ってきた

どーも。ばぁどです。

先週の日曜日に開催された技術書典4に参加してきました。

初めてだったけどとても楽しめました。

買った本

f:id:UltraBirdTech:20180426203912j:plain

やればできる!子どもと育てるスマートスピーカー

スマートスピーカーに関する本です。

家ではすでに色々やっているんですよ。

声でツイートしたり、声でテレビつけたり、照明消せたりするやつ。

一通り遊びきったけど、またいじりたいなと思ったら読む本にしようと思いました。

しかし子どもがいる家庭なんて、何十年後のことやら・・・

子供に読んで伝えたい!お家で始めるプログラミングの授業

前から欲しかった本。

書店に並んでおらず、ネット注文しかないかなと思ったら技術書典で見つけました。

プログラミング授業興味あるんですよ。

ちゃっかり高校の情報の教員免許持っているので笑

あわよくば、女子校の情報科の教員とか憧れますよね←

プログラミング教育色々と勘違いされやすいのですが、

プログラマーを育てるんじゃないんですよ。

あくまでプログラミング的思考を育てようという取り組みなので。

この件はまた、改めてまとめようと思います。

試験に出ないSE用語

これ、素晴らしいなと思った本です。

一回作れば色々なイベントで使い回しが効く。

新しい言葉ができても、追加していけば良い。

内容も面白い。

素晴らしいの一言に尽きます。

ANALIZING MR.ROBOT -海外ドラマで学ぶハッカーの思考-

ハッカーという言葉に惹かれて購入。

情報処理安全確保支援士勉強していて、ネットワークに触れてからハッカーという言葉に魅力を感じるのですよ。

MR.ROBOTは会社の同期にオススメされたのでシーズン2まで見た。

amazone primeで配信しているのも嬉しいところ。

ただ、シーズン3はまだ見てないので回れ右。

GW中にでも英語の勉強がてら視聴します。

技術同人誌を書こう[アウトプットのススメ]

技術書典参加してみて、昔上司に言われた言葉を思い出しました。

「一人一人が技術書を出せるくらいの技術力を持てるのが理想」(もう数年前の言葉なので曖昧)。

思い出したら、頭の中で回転がマッハ。

書店に並べることはできないかもしれないが、

一旦、同人誌として書いてみようとチャレンジしてみたい!!

チャレンジすることは無駄ではない。

ちょうど技術書典で元会社の同期にも会ったので、誘って技術書同人誌出そうと盛り上がっております。

いつか、皆様の手元にも僕たちの同人誌を届けることができれば良いなーと思っています。

まとめ

技術書典とても楽しかったです。

運営の皆様お疲れ様でした。

Twitterでの整理番号読み上げとても助かりました。

また、技術同人誌を出すという新しい目標を見つけることができました。

良い刺激を与えてくれてありがとうございます。

来年は出展者側になっていたいなーーー!!

-ネットワーク知識の目覚め-セチャコン2018に参加してきました

どーも。ばぁどです。 セチャコン2018に参加してきました。

2017.seccon.jp

その中でも、一番興味深く参加させてもらったのが下記セッション。

「ネットワークハッキング~自由を手に入れよう!誰でもできるネットワークすり抜け術~」

とても素晴らしかったです。

主にネットワークのトンネリング技術に関してのセッションでした。

応用情報や情報処理安全確保支援士の試験勉強の中で、トンネリング技術は知識ベースでは知っていたけど実際にコマンド打って、体験できたのは良い経験でした。

その中で様々なツール(コマンド)を教えていただけたので、その内容をおさらいしておくための自分向けメモ。

利用した主なプロトコル

プロトコルは通信に関する規約の事です。

プロトコルにはいくつかの層があって、層ごとに規約がまとめられています。

TCP

ごく一般的にネットワークに繋ぐときに使われているトランスポート層プロトコル

TCP/IPとよく聴く単語として耳に残っているくらいにはメジャー。

コネクションやデータが届く順番、データの欠損があったら再送などの制御もしてくれている。

参考) e-words.jp

UDP

TCPと同じくトランスポート層プロトコル

TCPとは違い、厳密にコネクションの確立やデータが届く順番を制御しない。

データの抜けかけがある場合があるが、処理速度はこちらの方が上。

動画などの多少データが途切れたりしても、データを順調に送りたいときはこちらのプロトコルを使う。

参考) e-words.jp

ICMP

pingで使われる。程度の認識です。 疎通確認ですね。

実際に使用したツール

ping

疎通確認用のツール。

応答が返ってくれば、生きているという事。

$ ping google.com
PING google.com (172.217.26.110): 56 data bytes
64 bytes from 172.217.26.110: icmp_seq=0 ttl=55 time=15.283 ms
64 bytes from 172.217.26.110: icmp_seq=1 ttl=55 time=17.693 ms
64 bytes from 172.217.26.110: icmp_seq=2 ttl=55 time=14.587 ms

traceroute

パケットが通る経路を確認するためのツール。

pingで応答が返ってこなかったとき、どこまで経路が通っているかを確認できる。

nmap

ホストの調査ツール。

外部に公開しているポートを探索する。

tcpdump

なんか通信の内容を表示してくれる。

ネットワークの調査には欠かせない。

wget

指定したURLに存在するファイルをダウンロードする。

セッション内では、httpの通信が確立している時に使用できるか(port番号80が解放されているか)どうかを確認するために使用。

ssh

極め付けのssh

サーバー接続するときによく使っていたけどお前何者?的なコマンド。

ネットワークを介してログインできるコマンド。

今回のセッションの肝だと思った。

キーワードは、ssh ポートフォワーディング。

うまくまとまったサイトが載っていなかった。

気が向いたら、独自でまとめるかもです。

まとめ

知らない知識が多すぎる・・・

今回知れたのも氷山の一角なのだろう。

ここら辺の知識体系的に学びなおすためにはどうすれば良いのだろうか。

大学とかこのレベルまでの知識身に着けたかったなー。

今からだと大学院に入り直せば良いのかな。

Under-25のセキュリティイベントとかもあって、無知だった若い自分を恨みました。

26歳。まだ若いとは思っていたが、色々と年齢的な制約が・・・悔しい。

sechack365.nict.go.jp

何はともあれ、今回ネットワークを体験しながら学べたのは良い経験でした。

このワクワクは今までネットワーク技術に対して持っていた不安ではない。

今後も引き続き勉強せねば!!

自営ブログ「ばぁど・うぉっちんぐ」を閉鎖しました

昨年の8月10日から開設していた自営ブログ「ばぁど・うぉっちんぐ」を閉鎖しました。

f:id:UltraBirdTech:20180331161330p:plain

理由は下記3点。

  • Drupalの勉強教材としてあまり役立たなかった

Drupalの勉強として初めていたのですが、

本番で稼働していると一旦デザイン面が固まると、

それ以降開発することが少ないことが判明し、

勉強する材料として適切ではないと判断しました。

気軽に更新できる場として開設したばぁど・うぉっちんぐですが、

それによって、元から持っていたQiita、はてなブログの更新が止まりました。

ばぁどうぉっちんぐに統一していければ良かったのですが、

DrupalサイトのUI 改善がいまいち続かず、

最初からQiita、はてなブログの方が描きやすくていいじゃん!となってしまいました。

  • セキュリティアップデートが億劫になった

Drupalは年に数回、セキュリティアップデートがリリースされます。

先日もクリティカルな脆弱性がありました。 www.itmedia.co.jp

即時対応しなければいけなかったのですが・・・

いかんせん。面倒臭い・・・(こら

本当であれば自動化しておくべきなのですが、

やる気が向かず諦めました。

以上の理由で、ばぁどうぉっちんぐは閉鎖になります。

さらば、ばぁどうぉっちんぐ

f:id:UltraBirdTech:20180331161120p:plain f:id:UltraBirdTech:20180331161022p:plain

しかし、ばぁどうぉっちんぐは私に様々なことを教えてくれました。

  • ネットワークは常に攻撃にさらされているということ

案外、攻撃ってされているものだな

PHP脆弱性や、Drupal脆弱性を狙ったスクリプト攻撃を常に受けていることを確認しました。

これって実際に自分でブログ運営して、アクセスログとか確認しないと実感できないことですね。

開設時に会社の同期からの不正ログインの痕跡もあったのは懐かしい思い出。

※実際に攻撃を受けていた時のログ f:id:UltraBirdTech:20180331175553j:plain

  • サーバ知識とかついた

awsにサーバ建てて運営していました。

Drupalよりもaws周りの知識の方がついた気がします。

EC2、Route53など久々に触ったのですが、

やはりawsは便利ですね。

これから

ブログの題名であった「ばぁど・うぉっちんぐ」は本ブログのタイトルとして採用しました。

イベント参加レポートやポエム的なものは本ブログで気軽に記事投稿しようと思います。

また、プログラミングの知識はQiitaに投稿しようと思います。

色々ありますが、引き続きご支援、応援をよろしくお願いいたします。

Drupal について勉強した1年の成果

Drupalとは?

オープンソースで開発されているCMS(Contents Managements System)です。

公式サイト

www.drupal.org

特徴としては、セキュリティ性が高い、拡張性があるなどです。

ただ、その代わり学習コストが高いというデメリットはあるようです。

実力はすでに世界的に認められており、アメリカのホワイトハウスNASAなどはDrupalによって構築され、運用されています。

※2017年12月からホワイトハウスWordPressに変更したそうです・・・ www.publickey1.jp

オーストラリアの公的機関などはすべてDrupalで構築されているようです。

オーストラリア連邦政府 (英語) オーストラリア総督府 (英語) オーストラリア首相府 (英語) 開発言語はPHPフレームワークSymfonyです。

Drupalの盛り上がり Drupalオープンソースソフトウェアです。

GitHub

github.com

また、世界各国でコミュニティが活発に活動しています。 * Drupal Summit(Tokyo) * Drupal Summit(Pacific North West)

WordPressとの比較

CMSと銘打っているので、同じくシェア率が高いWordPressをと比較します。

一概に総合的にどちらが優れている、劣っているということはないと考えています。

シェアという面で見たら、圧倒的にWordPressの方が高いです。 f:id:UltraBirdTech:20180331150941p:plain

上記の結果からも、Webデザイン専門の企業に入ったとしても、WordPressの案件を任せれることが多いと思います。

なので書籍やWeb上での参考資料のヒット率などはWordPressの方が上ですね。

対して、Drupalは参考書籍などが圧倒的に少ない。

資料も英語がとても多いです。

日本人としては、英語の資料というところでハードル高く感じますよね(汗

ただ、Drupalは大型の案件にも対応することができるらしく、そういったところでWordPressとの差別化を行えると考えています。

実際に、日本の大手はDrupalをコアにして大規模なシステム開発を始めているようです。

Drupalを触ってみて感じたこと

プログラマとして抱いた違和感

1つ目はCMSを銘打っていること。

DrupalCMSと銘打っているものの、サーバー側の開発による拡張性、汎用性はすでにCMSの域を超えている印象です。

なので、勉強し始めた当初は全体像を把握しにくく、「Drupalはなんでもできるが故に何ができるのかがわからない」のような印象でした。

しかし勉強していくに従って、CMSではなく、高度なWebアプリケーション・フレームワークだと考えれば、スッと話が入ってくるようになりました。

2 つ目は、PHPsymfonyの機能がDrupalの機能と混同されているような記事が散見されることです。

Drupalは2015年にメジャーアップデートされ、メジャーバージョンが7 から8になりました。

今、最新とされているのはDrupal8です。

Drupal8から内部のロジックも大幅に変わったようで、プログラミング言語は変わらないのですが、PHPフレームワークであるSymfonyを基礎にして開発されたようです。

Symfonyにはいくつかの特徴があり、(割愛しますが)その中でもTwigというテンプレートエンジンが使用されています。

SymfonyはデフォルトでTwigを採用しているので、Controllerからの値渡しなどはTwigを利用していルはずです。

さて、ここでDrupal8リリース後に散見されたブログ記事が、Drupal8はTwigを採用したことで、より簡単にview側のロジックを描きやすくなったというものです。

そうじゃないでしょ!

Twigを採用しているのは、Symfonyであって、Drupalではないんではないでしょうか!!!

というね。すごい細かい違和感。

どうでもいっちゃどうでもいいんです。はい。

Drupalのつよみ

Drupalは高度なWebアプリケーションフレームワークという点は強いなと思います。

すでにある程度のデザインやデータの流れは決まっているので、基本的に決まった状態で開発すれば、ほとんどずれることなく開発することができるのではないでしょうか?

私自身、Webアプリケーションフレームワークを利用してRubyPHPを用いて開発しているのですが、オブジェクト指向やら、ファイルの置き場所やら、人によって考えが違ったり、リポジトリごとにルールがあったり面倒臭い。

Drupalならそれらを考えずに開発できるのではないでしょうか?

なんなら、数年前、Ruby on Railsというフレームワークが現れ、Webアプリ業界を席巻しました。

開発速度や、サーバー側のリソースなど時代の風も後押ししたこともあり流行し、他の言語にもRailsの思考を参考にしたフレームワークができるほどでしたね。

DrupalはそのRailsが引き起こしたブームをもう一度起こすような存在なのかなと思います。

なんならDrupalはWebアプリケーションフレームワークであるSymfonyの上に構築されているのですから、さらに一段上という概念が生まれたということですかね。

結果、CMSとして利用することも可能であれば、サーバー側のロジックを組み込みシステムのコアとして利用することも可能です。

来たる、IoT時代に備えてAPIサーバーとしての活躍も期待できるそうです。

学習コストは高い

初学者が勉強するのであれば一般的なWebの知識に加えて、PHPSymfony(Drupal8)、Drupalの知識が必要になってくるんですかね。

Drupal自体の操作の仕方も必要なので、学習コストは高い方だと思います。

特に難しいのが、PHPSymfonyDrupalの境目をどう区別する点ですかね。

また、初学者がDrupalに特化してしまうと、Drupalしかできないエンジニアになってしまうのでは?という心配をしてしまうこと。杞憂ですかね。

まとめ

うん。Drupal面白いんじゃないかな。

Drupalを勉強し始めてそろそろ1年。

プライベートで少しずつなので、まだ全然勉強は進んでいませんがこれからも引き続き本ブログを運営していきながら知見をためていきたいなと考えています。

足元では、開発環境も整っており、オリジナルのテンプレートを作成するなどもいいですね。

開発合宿 in 土善 ODDでGoogle HomeをIoTハック

※本記事は筆者の過去ブログからの移転記事です。

はじめに

2018年、1/6 - 1/8の3連休を利用して、開発合宿に行ってきました。

今回の私が設定したテーマは、下記二つ。

使用技術

Google Home

Google が提供しているAIスピーカー

Google の真骨頂であるググる機能だったり、天気、ニュースなどを調べることができる。

主にGoogle Assistant を利用して各サービスと連携しているので、

ほぼGoogle Assistant だと考えてもらって差し支えない。

IFTTT

数あるWebサービス同士を連携するサービス。

TwitterFacebook、Lineなど有名どころのサービスを200種類以上連携可能。

AIスピーカーである、Google Home、Alexaが出て注目を集めているサービス。

Google-home-notifier

Google Homeの便利なライブラリ。

node.jsで実装されており、足元に環境が整っていれば簡単に

Google Homeに色々とやらせることが可能。

何やりたかったの?

家にGoogle Homeがきた。

最初はすごいなーと思ったが実際はあまり利用しない。

今回の開発合宿で少しでもできることを増やしたかった。

布団から出ずに勤怠メール

Google Assistant × Gmail

声をかけたらGmailで送ってくれるやつ。

そもそも弊社は欠勤連絡は、電話というね。

使えねぇじゃん、これ。

Slackで全体連絡

Google Assistant × Slack

音声だけで、ご飯などの業務連絡を行うことができます。

操作はほぼIFTTT上で行えました。

順番決めアプリ

開発合宿恒例の順番決めアプリを新規に作成。

Google Home に次発表する人を喋らせたかった。

google-home-notifier を使用。

https://github.com/noelportugal/google-home-notifier

IFTTTだけでは、Google Homeにアウトプットをやらせるということが難しい。

google-home-notifierでサーバーを立ち上げる。

そのサーバに向かって、curlしてあげれば動く。

ローカルでサーバ立ち上げて、

Ruby scriptでpost のリクエストを送ることで実現しました。

https://github.com/UltraBirdTech/select_presenter

まとめ

Google Home思った以上に遊べます。

Google Homeから操作できるIoT家電増えればもっと楽しそう。

おまけ

ODD成果 - ビール 350ml × 5本 - ほろ酔い × 2本

お酒駆動開発。

本を読みながらとか、勉強しながらとかは無理だけど、

今回みたいに感覚的にいじれるものであれば、生産性も気にせずに開発できます。

楽しいので、皆さんも是非。

情報処理安全確保支援士合格しました!!合格体験記!!

はじめに

※本記事は筆者の過去ブログからの移転記事です。

H29秋季の情報処理安全確保支援士に合格しました!!

f:id:UltraBirdTech:20180321210300p:plain:w300

応援していただいた方々ありがとうございましたmm

情報処理安全確保支援士に合格するまでの振り返りを行います。

なんで受けたの?

主な理由は3つあります。

セキュリティがホットワードだから

1つ目は、セキュリティがこれからの時代ホットワードだと考えているからです。

基本情報、応用情報の午後問題でセキュリティの問題が必須になりました。

セキュリティマネジメントというセキュリティに関する資格も新設されました。

IPAがこれだけ押しています。

IT大手企業のセキュリティに対する取り組みも注目しており、

日立製作所富士通などが2020年を目処にセキュリティ人材を育成するという目標を立てています。 tech.nikkeibp.co.jp tech.nikkeibp.co.jp tech.nikkeibp.co.jp

これは・・・

本当に「セキュリティの分からないSEいらない!!」と言われる前に先手打っておかないと(恐怖)

といった感じです。

午前I免除期間だったから

2つ目は、午前I免除期間だったからです。

前々期の秋期に応用情報に合格しました。

このことから午前I免除期間中に上級資格に挑戦しておきたかったからです。

ライバル意識!!

3つ目は、会社の同期が上級資格受けると言っていたので、

それに対抗したかったからです(負けず嫌い)

勉強方法

参考書

情報処理教科書 情報処理安全確保支援士

www.shoeisha.co.jp 問題集を解いて間違ったところを調査するための辞書的な使い方をしました。

あとは、各攻撃手法に対しての対策などもまとまっており、大変参考になりました。

問題集

gihyo.jp

午後I、午後IIの対策に重宝しました。

午後問題の講評などを含めた回答はWeb上には少なく、

問題の解き方の視点や考え方などを学ばせていただきました。

参考サイトなど

www.sc-siken.com 毎回お世話になっておりますmm

一問一答はかなり埋めました。

その他アプリなど

適当にアプリを探しました。

通勤の電車時間など、本やノートを使用できない場所で重宝しました。

ネットワーク対策

個人的に苦手分野なので、本を読み漁りました。 www.nikkeibp.co.jp

良書。超おすすめ。

勉強時間

試験日の3ヶ月半前(7月の中旬)くらいから勉強を始めました。

7月 - 8月は、基礎固めを行いました。

セキュリティに関しては4月にセキュリティマネジメントを取得していたので、基礎は心配していませんでした。

しかし、ネットワーク部分が自分の弱点だと感じていたので、ネットワークの本は進んで読んでいました。

問題集などは、1ヶ月半前(9月上旬)に入ってからです。

午前問題は応用の知識 + αだったので午後問題を重点対策しました。

個人的なポイント

1. ネットワーク重要

午前IIの段階で、応用情報より一段階高いレベルの知識が求められます。

セキュリティとネットワークの親和性は高いので当然と言われれば当然・・・

IPアドレスやら、ルーターやら、HTTPのヘッダの中身とか。

うーん、苦手意識あったので不安材料の一つでした。

2. 脆弱性に対しては対策と事後作業を紐付ける

様々な脆弱性があるのですが、

その対策と事後作業は紐付けて記憶するのをお勧めします。

ここは個人的なポイントです。

3. 予想、ヤマをはる時はカテゴリで!!

試験が近くなって来ると、過去の試験問題の傾向などから予想やヤマをはりたくなるんですよね。

今回、私はIoTとランサムウェアが来るだろうなと予想して、なんとどちらも当たるという快挙を成し遂げました。

しかし・・・解けない・・・・

何故ならば、出て来る問題の大枠は確かにIoTやランサムウェアなどなのですが、

実際の小問はネットワークだとか、インシデント対応だったりするので、

あまり大枠の予想はあてになりません。

やはり、予想するならばネットワークやインシデント対応などのカテゴリでするのをお勧めします。

まとめ

情報処理安全確保支援士合格して嬉しい、嬉しい。

情報処理安全確保支援士として登録しようと思っています。

研修とかもしっかり受けて、来たるセキュリティの波に乗れるようにしたいです。

プログラマになって4年間、勉強するために読んだ本/買った本まとめ

社会人(プログラマ)になって4年が経とうとしている。

社会人1年目の時に、「プログラマはお金を払って未来に投資しろ」と先輩からアドバイスをもらったので、 その言葉を信じて勉強用のサーバーやら、本はお金をかけるようにしている。

そして今回、社会人になってどれくらい本を読んだかが気になったので家の本棚ひっくり返してみた。

集計結果

購入した本の冊数:37冊

本の金額合計:100,474 円

※部屋をひっくり返して出てきた本を集計

※資格対策本系は省きました( IPA資格、各種ベンダー資格の参考書・問題集など)

※数点プレゼントされた書籍もあり

技術系

Ruby

一番長くお付き合いさせてもらっている言語。

オブジェクト指向実践ガイド、メタプログラミングRubyも良書でした。

ルビィのぼうけんは、プログラム教育に興味あるので購入。

PHP

全てはDrupalのために。 PHP7.0を学べる本を探してます。 パーフェクトPHP改定はよ。。。

Java

サイン本欲しさに。

JavaScript

色々と必要だった。

その他の言語

CoffeeScriptRuby likeだから好き。 Swiftは挫折・・・

インフラ系

「Webエンジニアが知っておきたいインフラの基本 インフラの設計から構成、監視、チューニングまで」は、 Webエンジニアとしてとてもいい本でした良かった。

セキュリティ系

「安全なWebアプリケーションの作り方」は鉄板。 第2版も買うつもり。

プログラマとしての基礎知識系(内部の仕組み、HTTP系)

全部良かった。 応用情報を受けるときに、 各種専門知識足りないなと思ったら読み直したりもした。

その他

リーダブルコード良かった。 あとは好み。 ハッカーと画家は私の肌に合わなかった。 (とはいえ良書なので、どこかのタイミングで読破する)

一般教養系

入社一年目の教科書はとても良かった。 大学卒業する後輩には送りつけるようにしている(典型的な迷惑でうざいパターンの先輩)

まとめ

4年間でたくさん本買ったなー。

10万の大台超えてましたね。

周りの皆もこれくらいやっているはず。

まだまだ足りない。 日々精進。