読者です 読者をやめる 読者になる 読者になる

ポン酢ブログ(β)

The harder you work, the luckier you get. - Gary Player

セキュリティ・ミニキャンプ in 沖縄 2016 専門講座

この記事は群馬大学電子計算機研究会 IGGG Advent Calendar 2016 24日目の記事です.
世間はクリスマスイブですが,私は予定はありません.
こんにちは,atponsです.
今回はセキュリティ・ミニキャンプ in 沖縄 2016に縁がありチューターとして参加しました.
12月16日に一般講座が開催され,12月17日・18日には専門講座が開催されました.
一般講座の話は行程中に書いているのでごらんください.
旅程の都合で18日は途中で帰宅してしまいましたが,なるべく色々書いてみようと思います.

続きを読む

セキュリティ・ミニキャンプ in 沖縄 2016 0日目&1日目

この記事は群馬大学電子計算機研究会 IGGG Advent Calendar 2016 17日目の記事です.

f:id:atpons:20161217002834j:plain:w300

みなさんこんにちは,atponsです.
今回はセキュリティ・ミニキャンプ in 沖縄 2016に縁がありチューターとして参加しています.
12月16日に一般講座が開催され,12月17日・18日には専門講座が開催されます.

この記事では沖縄に来た話と,一般講座の話を少ししたいと思いますが,一般講座はほぼ満席に近くチューターの私はあまり聴講できなかったので内容薄めです.

終わってから再度まとめます!

0日目

f:id:atpons:20161217000808j:plain:w300
初飛行機でした.最高ですね.

f:id:atpons:20161217000835j:plain:w300
那覇空港でとりあえず沖縄そばを食べなくてはと思いググって空港食堂へ.
このときは沖縄そばとソーキそばの違いが分からず沖縄そばを注文しました.
ソーキは部位のことらしく,軟骨までいただけるらしいです.

おもろまちに宿泊し,那覇メインプレイスに行きとりあえず紅芋タルトを買って終了.

1日目

f:id:atpons:20161217001027j:plain:w300
セキュリティ・ミニキャンプ in 沖縄 2016 一般講座は,那覇市おもろまちにある内閣府那覇第二地方合同庁舎で行われました.

f:id:atpons:20161217001139j:plain:w300

開催内容はこちらをご覧いただくとして,とにかく盛況でした.100名を超えるのではないかという感じの方々が集まっていて沖縄もセキュリティの波が来ていると感じました.

拝聴した『ファジング動向とUSBを介した脅威の紹介』では,USB Killerの動画として以下の動画が紹介されていました.

USB Flash drive that destroys computers!

USB関連の脅威としてUSB Killer,BadUSB,不審なUSBメモリが最近は出てきていること,そして関連として偽装USB充電器も脅威として考えられるというのは大変興味深い話でした.

初空港の時に100VコンセントだけでなくUSBポートが充電用に設置されていたのを思い出しましたが,その裏にBadUSBであったりUSB HIDをエミュレートする何かを仕込むことで簡単に脅威になりうるというのは確かにあるかもと思いました.

その他にも映像出力などの標準で実装されている機能がリスクになりうるのはかなり危険だと考えさせられました.

まとめ

f:id:atpons:20161217002205j:plain:w300
沖縄の食文化の感想は「肉」です.とりあえず肉くっとけばどうにかなるの精神.
今日もジャッキというステーキをシメ(?)に食べました.
ラーメン食べるよりはあっさりしていて合理的なのかもしれません.

ということで明日からは専門講座が2日ありますので,そのレポートもできればと思っています.

今年のセキュリティ・ミニキャンプは終わりですが,来年2月に「セキュリティ・ミニキャンプ in 近畿 2017(京都)」が予定されています.興味のある方はぜひ見てみてください.

ディスプレイフィルタ - The Wireshark Wiki (日本語訳)

本記事は IGGG Advent Calendar 2016 10日目の記事です.
今回は WiresharkWiki を日本語訳します.今回は DisplayFilters - The Wireshark Wiki です.
環境は English を想定しています.

    • -

ディスプレイフィルタ

Wiresharkは一般的なパケットを表示やカラーリングルールのためにディスプレイフィルタを利用します.
ディスプレイフィルタの基本や文法についてはユーザーズガイドに記載されています.
もし特定のプロトコルに関するディスプレイフィルタを必要とする場合はプロトコルリファレンスをご覧ください.

ディスプレイフィルタはキャプチャフィルタではない:

キャプチャフィルタ(例:tcp port 80)は,ディスプレイフィルタ(例:tcp.port == 80)ではありません.
こちらもご覧ください: CaptureFilters#Capture_filter_is_not_a_display_filter

見本

SMTP(ポート25)とICMPトラフィックのみを表示する]

tcp.port eq 25 or icmp

LAN内(インターネットではない,ワークステーションとサーバの間)のトラフィックのみを表示する場合:

ip.src==192.168.0.0/16 and ip.dst==192.168.0.0/16

TCP バッファが一杯*1(ソースが宛先にデータの送信を停止する指示をしたとき):

tcp.window_size == 0 && tcp.flags.reset != 1

Windows 向けフィルタ -- Windows クライアントとデータベース間の通信をフィルタする

smb || nbns || dcerpc || nbss || dns

Sasser ワーム

ls_ads.opnum==0x09

8バイトのUDPヘッダを無視し,UDPペイロードの最初の任意の3バイト 0x81,0x60,0x03を含むパケットをフィルタする(16進数のみ,独自プロトコルに役に立つでしょう):

udp[8:3]==81:60:03

slice 機能はMACアドレスのOUIをフィルタすることにも役に立ちます.詳しくはEthernetページをご覧ください,これであなたは特定のデバイス製造元のみのパケットをフィルタすることができます(たとえばDELLマシンのみ):

eth.addr[0:3]==00:06:5B

これらはどのフィールドやプロトコルの中で検索するときに利用できます.

UDPヘッダもしくはペイロードに含まれる 0x81,0x60,0x03 を見つける:

udp contains 81:60:03

SIP Toヘッダに含まれる文字列"a1762"を見つける:

sip.To contains "a1762"

これらの記号には正規表現Perl正規表現文法に従います.(Wiresharkはlibpcreとビルドされている必要があります.)

HTTPリクエストの最後のURI文字列に含まれる"gl=se"をフィルタする:

http.request.uri matches "gl=se$"

ノート: $ はPCREの句読点で,文字列の最後と一致させます.この場合ではhttp.request.uriフィールドの最後です.

プロトコル(たとえばSIP)でフィルタし,不要なIPをフィルタする:

ip.src != xxx.xxx.xxx.xxx && ip.dst != xxx.xxx.xxx.xxx && sip

落とし穴

いくつかのフィルタフィールドは複数のプロトコルフィールドと矛盾してマッチします.
たとえば,"ip.addr"はIPヘッダに含まれるソースアドレスと宛先アドレスをフィルタします.
これは"tcp.port","udp.port","eth.addr"なども同じです.

ip.addr == 10.43.54.65

ip.src == 10.43.54.65 or ip.dst == 10.43.54.65

と同値です.

直感的にこれらにも当てはまるでしょう.もし私達が10.43.54.65からのトラフィックをフィルタしたいなら
以下の

ip.addr != 10.43.54.65

ip.src != 10.43.54.65 or ip.dst != 10.43.54.65

と同値です.
これは,「ソースIPv4アドレスが10.43.54.65からかつ宛先IPv4アドレスが10.43.54.65のトラフィックを除いたすべてのトラフィックをフィルタする」ということですが,これらは私達が望んでいないことです.

代わりに,私達がこう表現する必要があります.

! ( ip.addr == 10.43.54.65 )

! (ip.src == 10.43.54.65 or ip.dst == 10.43.54.65)

と同値です.

これは「ソースIPv4アドレスが10.43.54.65もしくは宛先IPv4アドレスが10.43.54.65のトラフィックを除いたすべてのトラフィックをフィルタする」ことで,私達が望んでいたことです.

例えば,トンネルされたプロトコルであなたが2つのIPv4もしくはIPv6レイヤーを分離もしくは2つのIPv4もしくはIPv6ヘッダを分離するためや,あなたが他の理由でフィールドに複数のインスタンスが必要になることがあります.(例: IPv6のネクストヘッダフィールド)

name op valueはnameフィールド,opは==や!=や<のような比較のオペレータで,valueは値です.
少なくとも1つの該当するnameフィールドがあり,同値(でない),少ない(などの)valueが存在することと意味は同じです.その逆は,少なくとも1つの該当するnameフィールドがなく,同値(でない),少ない(などの)valueが存在することと意味は同じです.無効,逆を表す簡単なオペレータは==と!=や<と>=で,あとは元の意味と確認するために無効の否定を確かめてください.

こちらも参照

CaptureFilters

外部リンク

Displaying HTTP traffic to debug Apache
Capture and display filter Cheat sheets

___
This article is under the GNU General Public License.

*1:筆者注: TCP ゼロウィンドウ

いたずらおもちゃ - The Wireshark Wiki (日本語訳)

本記事は 群馬大学電子計算機研究会 IGGG Advent Calendar 2016 3日目の記事です.
今回は WiresharkWiki を日本語訳します.初日は PracticalJokes - The Wireshark Wiki です.
環境は English を想定しています.

    • -

いたずらおもちゃ

Wireshark は多くの設定オプションを持ち,まったく予期しない挙動をするように設定することができます.誰も見ていない時にあなたが彼らのワークステーションにアクセスできるとき,以下の方法はかなりの混乱を招くことができるでしょう.

パケットを不可視にする

メニューから次を選択します: View → Coloring Rules,
以下のルールを作成します:
Name: (任意)
Filter string: frame
Foreground color: white
Background color: white

一番上のフィルタを確認してください.あなたは最終的にこのようなディスプレイの見た目になるでしょう:
f:id:atpons:20161201194658p:plain

パケットごとにディスプレイフィルタ "frame" に一致するためにパケットは不可視になります.
前面と背景を同じ色(白,黒,紫,ピンク)に設定するとパケットリストは見えなくなります.

プロトコルを不可視にする

メニューから Analyze → Enabled Protocols を選択し Disable All をクリックして保存します.
Wireshark は知っている各パケットを表示しますが,それほどのものではありません:
f:id:atpons:20161201194716p:plain

キャプチャを不可視にする

メニューから View を開き Packet List ,Packet Details,Packet Bytes のチェックを外します.
いつあなたのターゲットがファイルを開くかキャプチャを始めても,ステータスバーにあるカウンタを除いて何も表示されません.
f:id:atpons:20161201194736p:plain

変換で遊ぶ

もしターゲットのキャプチャファイルに予期できる IP アドレス(たとえば 192.168.1.x のような)が含まれていれば,あなたは hosts ファイルに面白いネットワークアドレス変換を加えることができます.
設定でネットワークアドレス変換が有効になっていることを確認してください.

次に彼らが Wireshark でかっこいい SIP ゲートウェイからすごい SIP フォンへのキャプチャを開いたとき,彼らにはサンタからルドルフへの会話に見えるでしょう.
f:id:atpons:20161201194751p:plain

___
This article is under the GNU General Public License.

スピード証明写真を Lightroom とデジイチで安く撮る方法


2014年あけましておめでとうございます。(遅い)
新入学新社会人のシーズンですが、みなさんは試験の時などの写真はどうしていますか?
以前、とある試験を受ける際に証明写真のあの機械を使ったのですが、なんと 700 円もしました!
なんかプリクラのチープ版でコスト削減感がハンパないのに、あんなにお金かかると落ち込みますね...。

ということで今回はある資格を受験するので、その際の証明写真を自分で撮ったというお話です。

今回はデジイチLightroom 5 を使った、証明写真の撮り方を書いてみたいと思います!お金がないので、100均の材料だけで、軽めに撮りました...。

必要なもの

Adobe Photoshop Lightroom 5

画像編集ソフトなら何でもありです。
縦横比などの情報は他のソフトにもそのまま使えると思います。

デジタルカメラ / デジタル一眼レフカメラ

今回は Canon EOS Kiss X6i を利用しました。
デジイチの場合、レンズはできるだけ近くに寄れるものが良いでしょう。今回は、SIGMA 標準ズームレンズ 17-50mm F2.8 EX DC OS HSM キヤノン用 APS-C専用 を利用しました。

・光沢の写真用紙(高いのが良い)

今回は、HP の光沢の写真用紙(Photosmart 買った時の試供品)を利用しました。10cm x 15cmのはがきサイズで、1 枚に約 4 枚の証明写真を作成できます。
ガチなら、各プリンタメーカーの高いのを使うことをおすすめします。

・三脚

立てば良いです。Lightroom の場合、傾き補正とかもあるのであまり気にしなくても、勝手にやってくれます...。

・白い模造紙


100 円ショップで売ってるアレです。今回は、厚口タイプの545mm x 788mmのものを利用しました。
影などが気になってしかたがないときは、もっといい感じでやってみてください。

【撮影編】

① 三脚を立てる!

三脚は、自分の身長の半分くらいまで立てれば多分余裕です。(座る場合)
立つのであれば、結構無理かもしれないです...。

② 壁に模造紙を貼る!

セロテープで壁に模造紙を貼ります。だいたい、自分の顔まで寄れればOKです。ベッドなどがあれば、そこに座って撮影することもできます。多分そのほうが楽です。
その際、バリアングル液晶とか、 EOS ユーザーであれば EOS Utilty を利用したライブビューで見ながら、カメラ側でどう写るかを確認しながら貼りましょう。セロテープが映り込んでも、 Lightroom で消せますのでそこら辺は気にしなくても良いと思います。

③ USB ケーブルでパソコンとカメラをつなぐ!

今回は Lightroom のテザー撮影機能を利用したので、 USB ケーブルでカメラを接続しましたが、自分が見れれば良いのでそこら辺は自由に。
もし、リモートレリーズなどがあればそちらでも可能です。それもない場合、セルフタイマーで行うのが吉です。

Lightroom のテザー撮影を起動する!


テザー撮影とは、 USB ケーブルで接続されたカメラをリモートでシャッターを切って、即転送してくれる超便利機能です。
しかし、ライブビュー機能が利用できないので、Canon製カメラを使用している場合、位置合わせ時は EOS Utility などを使うことをおすすめします。
Lightroom 5 を使用している場合、テザー撮影は Lightroom -> ファイル -> テザー撮影 で可能です。

⑤ シャッターを切りまくって確認する!


模造紙の位置などを確認しつつ、バンバン撮影 or ライブビューで確認して、模造紙と自分の位置をあわせて行きましょう!

⑥ 撮影開始!

Lightroom の人は撮影していけばどんどん保存されますし、 EOS Utility の人もプレビューにしっかりと出てきてくれていると思います。この調子で納得の行くまで撮影しましょう!

【現像編】


撮影が終わったら、しっかりと現像してあげましょう。
Lightroom 5 なら、円形フィルター + 明瞭度などのパラメータをイジるだけで大分顔の印象が変わると思います。

【印刷編】

① 縦横比・トリミングの設定

f:id:atpons:20140131221457p:plain
Lightroom の人は、縦横比は「切り抜きと角度補正」より調節可能です。
縦横比は、指定された”証明写真+0.1"くらいでちょうど良いと思います。
また、トリミングも適宜行いましょう。

② 用紙サイズの設定


プリントモジュールに行って、用紙を用意したものに変更します。今回ははがきサイズで説明していきます。
以下のように設定すれば、だいたいはOKだと思います。

③ 印刷

あとは印刷するだけです。印刷後、確認してからていねいに切り取ってください!

ということで、証明写真を 1 時間程度でとりあえず安く作る方法でした。備忘録。

自分の2013年

新年早々受験して落ちました。
引きずってません。普通高校で大学目指すスチューデントです。
上の記事だと変なこと書いてますけど、今考えると変だ。変。

  • 高校に入学しました

高校に進学しました。
もう1年目が終わろうとしてるけど、楽しいです。
その代わり生産性が低下したので、良くないことなので、2014年は頑張りたいです。(何かを)

  • 人生初の一眼レフカメラ買いました。

紆余曲折あったんですが、 Canon の EOS Kiss X6i を購入しました。
その後、 EF50mm なんかも購入して、まったり写真ライフです。
それなりに明るいレンズ、ほしい...(完全に沼)

  • 携帯電話会社を docomo にしました。

Xperia feat. HATSUNE MIKU SO-04E に MNP で購入しました。
正直 Xi サービスはクソです。 WiMAX 契約したい。

本当は書きたいこともっとあるんですけど、仕方ないや... (実は書くことないの?)

今年の総括

長かった。

最近の Sinatra で %2F がつらぽよかった話

こんにちは。というかもう4ヶ月前くらいなんだなあ、ブログ書いたの。

というわけで、今回は備忘録です。

以前自分向けに制作した Sinatra で少し書いたものがあるのですが、 Ruby 2.0.0 がリリースされる前くらい昔に書いたコードなので、久しぶりに起動したらエラーが出ました。

~/.rbenv/versions/2.0.0-p247/lib/ruby/gems/2.0.0/gems/sinatra-1.4.4/lib/sinatra/base.rb:1488:in `start_server': undefined method `run' for HTTP:Module (NoMethodError)
from ~/.rbenv/versions/2.0.0-p247/lib/ruby/gems/2.0.0/gems/sinatra-1.4.4/lib/sinatra/base.rb:1426:in `run!'
from ~/.rbenv/versions/2.0.0-p247/lib/ruby/gems/2.0.0/gems/sinatra-1.4.4/lib/sinatra/main.rb:25:in `block in '


このエラーは

set :server, 'webrick'

と入れたら解決しました。

問題はここからです。

自分の書いた適当コードには、
http://xxx/hoge/◯◯/△△と投げられるようにしているのですが、◯◯の中などにURLエンコードされたスラッシュ「%2F」(/)があると、自動的に / と解釈されて、エラーが生じてしまいます。

とりあえず今の段階で回避するには、

set :protection, :except => :path_traversal

を入れると良いみたいです、が。

なんかディレクトリトラバーサルの対策用の設定っぽいので無効とかにするとよくなさそうな、気が。

今度色々読んでみたいですね...。