第46回「TBK UML入門」


春通り越して熱い夏になったと思ったら、冬逆戻りな寒暖差が体調と体力をがりがり削る中、皆様いかがおすごしでしょうか。

自分は真っ先に倒れました(汗
手洗いうがい、マスクつけてても風邪は引くので皆様気を付けてください。

はてさて、今回は『UML入門』をテーマに勉強会を開かせていただきました。
UMLはオブジェクト指向で書かれた統一デザリング言語です。
オブジェクト指向で物を考えたり、何か作るときにとっても役に立ちます。
最初はとっつきにくいですが、覚えるといろいろ応用が利くようになるので、
ぜひぜひこの機会に覚えてくださるとうれしいです。

今回の勉強会において、自分の問題点は以下がありました。
まず、発表時間が短かったこと。二時間しゃべり続ける気でやりましたが、ネタ切れしてしまいました。
例題等を出して、みんなにどんな図を描くか見る等すると、盛り上がりもありよかったかもと今は思います。
また、スライドの数が少ないのも問題点です。2時間という時間に対して、20枚程度は少なすぎました。
GW中風邪でダウンしていなければ…(泣

さて、悲しい言い訳はここまでにして、勉強会ではどれだけわかりやすく伝えるかを考えて話していたつもりでしたが、どこまで皆様に伝わりましたでしょうか。。
自分としては、全然伝わっていないのではないかと…。トーク力不足ですね。

次回はトーク力と実践を組み込んで、2時間を超えるボリュームのあるものをやりたいですね。
次回は『単体テストのツール』か「暗号化とは」および「IPv4の時代は終わった。これからはIPv6の時代だ」のいずれかをテーマに、今回の問題点を踏まえてやっていきたいと思います。

第45回 「ぼくのかんがえたさいきょうのかいはつかんきょう」


桜も散りゆき、徐々に本格的な春を感じますね。
お花見やりましたか?前歯折りましたか?

さて、第45回目の勉強会は「ぼくのかんがえたさいきょうのかいはつかんきょう」と題して、主に開発業務で使うであろうツールを紹介していき、Git、Markdownをちょっと掘り下げて紹介してみました。
周りではSVNを使っている方が多いのですが、ワタクシは主にGitばかりを使っていて、GithubなどのGitホスティングサービスに勉強会のソース管理等でかなりお世話になっていますので、社内でのGit普及を目指していこうかなと。
んで、Github等を使っているとMarkdownを扱う機会も多くなると思われるのでこの機会に紹介してみました。
Markdown自体を覚えると非常にメモの表現力も増しますし、仕様書としても使えるのでは無いかなとも考えています。まぁ、業務ではExcel方眼紙文化ですけどね。
Markdown => Excelっていうのが出来れば便利なんですけど(笑)

さてさてツールの紹介ですが、皆さんエディタって何使ってますか?
ワタクシ、プライベートではSublime TextからAtomに移行して、Atomをメインで使っているのですが、若干重さが気になっているので、VisualStudio Codeに変更しようかしらなんて考えています。
業務ではWindows環境ってこともあり、サクラエディタ使ってます。
サクラエディタってF10押すとSQLPlusでSQLが実行できるという謎の機能があるんですが、これがけっこう病みつきになるんですよw
最近のエディタは統合開発環境といっても良いくらいに機能が充実していて、プラグインを入れれば、それだけで完結してしまうくらいです。

技術的な話をすると、AtomやVSC等はElectronというWeb技術でクロスプラットフォームのデスクトップアプリが作成出来るエンジンで出来ています。
これはChromeのベースとなっているChromiumから出来ているんですが、最近のデスクトップアプリはこれで作られているのが多い印象です。
近いうちに勉強会で取り上げてみても面白いかもしれません。

ここで、ワタクシのおすすめツールを紹介。
知っている人は知っているかもしれませんがWindowsには標準でsnipping toolなるものが存在しています。ちょうどMacでよく使っていたSkitchっていう画面キャプチャツールがあるんですが、つい最近Windows版が廃止されちゃったみたいで、代替を探していたのですが、なんと標準にこんなツールが搭載されていようとは…。
領域選択出来るので、それまではprintscreenボタン押して全体を選択して、ペイントやExcelなんかに貼り付けて、トリムする。場合によってはトリムしたのをピクチャ保存するみたいな、とんでもない非効率なことをしていました。
んで、このツールの存在を知ったら、あの作業は何だったんだくらいに効率的に画面キャプチャ出来てます。
まぁ、商用ツール等には叶いませんが、業務で使うPCにはツールをなかなか入れられないって所も多いかと思いますが、Windows標準なんでこの辺は問題ありません。
ファイル名を指定して実行からsnipping toolを検索するもよし、windowsフォルダ->system32->snippingtool.exeでもよしです。
是非、皆さん使ってみてください。

ちょっと、デモがグダグダしてしまい、皆さんのこだわりツールを聞く機会が少なくなってしまいましたが…そもそも、ツールにこだわりが無いって方もちょこちょこ居たりしたので、かえって良かったのかもしれませんが。

これを機会にみなさんも色々なツールを使ってみて、自分に合うツールを見つけて、業務効率化をしてみてはいかがでしょうか?

では、おやすみなさいませ。

第44回 「TBK ハッカーズマニュアル #3」


春の訪れも聞こえ始めた今日この頃、皆様いかがお過ごしでしょうか?

まだ3月だと言うのにセキュリティ界隈では大口な話題がポンポンと出ていますね。
2月にはWordPressの過去最大級の脆弱性があり、150万のサイトに被害が出たとの報道もありました。
WordPressの脆弱性対策について

そして、最近ではJavaのWebフレームワークであるStruts2に重大な脆弱性が発覚し、都税納付サイト等が被害を受けているようです。
Apache Struts2 の脆弱性対策について(CVE-2017-5638)(S2-045)

さてさて、前置きが長くなりましたが、今回のお勉強会は久々のTBKハッカーズマニュアルシリーズ
ま、シリーズと名乗ってますが、イマイチ定着している感が無いので、頑張らないといけません。
でもね、セキュリティ系のサンプルやデモって環境作るのが、とっても難しいんですよ!
影響を限定的にしつつ、さもありなんな環境を作るのって!!

と、くだらない愚痴をこぼしてしまいましたが、今回のテーマは
「Webアプリケーションデバッグ」です。

アプリケーションを作る上でデバッギングは最重要な問題です。
Microsoft系ならVisual Studio、JavaならEclipseなど強力な統合開発環境があるのでデバッギングってやりやすいんですけど、Webアプリケーション、特にフロントサイドのJavaScriptのデバッギングってチョット前までは結構難しくて、functionの中にalertなんかを書いて変数のデバッグをしていた記憶があります。でも最近では、ブラウザの開発者ツールが充実していますので、コンソールに出力してって感じになって、いちいち画面に出力なんかはしないですよね。
業務でもブラウザの開発者ツールを使うのですが、同僚の使い方なんかを見ていると、開発者ツールをうまく使えていなかったり、そもそも存在すら知らなかったり等も見受けられたので、開発者ツールの使い方を紹介してみました。
各社ブラウザの開発者ツールですが、正直私も全部を使い切れていません。それくらい機能が豊富で、簡単なフロントサイドの開発はほとんどこれで賄えてしまうのでは無いでしょうか。
NodeJSの出現以降、JS界隈って大きく変わった印象ですね。
AJAXでJavaScriptが隆盛になって、NodeJSの出現でパッケージ管理等の仕組みが整ったことで、各フレームワークが乱立している感じです。
もう、ある意味JS界隈はカオスです(笑)
各社ブラウザがECMAScript6に完全対応してきたら、状況が落ち着いてくるのかな…なんて思ってはいますがどうでしょ。
各社ブラウザのES6対応状況
※ ちなみにECMAScriptはJavaScriptの標準のことで、狭義ではJavaScriptはMozilla系のスクリプト言語のコトです。ただし、JavaScriptという呼び名が一般化していますので、JavaScriptといえばECMAScriptを含んだ幅広い意味で使われる事が多いですね。

で、ここまで持ち上げたブラウザの開発者ツールですが、あくまでもブラウザ内部でのデバッグなのでブラウザ – サーバ間のデバッグには弱いです。
例えばFORMで入力した内容を書き換えたいやCookieを書き換えたいなどの欲求には対処出来ません。
まぁ、アドオンや機能拡張を使えばそれなりのことが出来たりしますが…

そこで必要なのがWebプロキシツールです。
今回の勉強会紹介したのは、FiddlerOWASP ZAPBurp Suiteの3つです。
これらはWebアプリケーションの脆弱性診断にも用いられるツールで、HTTPセッション情報が一覧で見れて、リクエストの詳細、レスポンスの詳細が見えて、一時的に通信を遮断できて、パラメータを書き換えられたりします。
中には、自動診断も出来るものもあります。
機能がありすぎて細かくは説明できませんでしたが、デモを通じて、色々と操作していっていただければ良いのかなと思う次第です。
ちなみに、FiddlerとBurp Suiteはメニュー等は英語表記でOWASP ZAPは日本語化対応されています。

続いては、過去のハッカーズマニュアルでも利用した自作脆弱性サイトへの攻撃デモを行いました。
今回はサイトをバージョンアップさせて、OSコマンドインジェクションやディレクトリトラバーサル等を追加してみました。
デモではFiddlerを使って、リクエストの書き換えなんかを行ってみながら、各種脆弱性を突いた攻撃を見てみましたが、ほーってくらいは思っていただけたのではないかと思っています。
デモ用サイトはGithubにあげていますので、実際に手を動かしてみて理解していただければ良いのかなと思います。
脆弱性サイト
脆弱性サイトは今回Dockerを使ってみたりしたため、Dockerのネットワーク周りでかなり悪戦苦闘しました。
直前に、脆弱性があるのがわかりきっているサイトのバグ修正とか意味のわからん作業をしたりもしましたが、勉強にはもってこいだと思いますので、皆さん是非ご利用してみてください。

何だか愚痴が多くなってしまった内容になってしまいましたが…
では、このへんで失礼致します。