SQLインジェクション対策 総”習”編 – 第五回関西DB勉強会

第五回 関西DB勉強会でお話しさせて頂いた SQLインジェクション対策 総”習”編 の公開用資料をSlideShareにアップロードしました。私のセッションを気に入って頂けた方が多かったようで何よりです。

関西DB勉強会、面白かったです。久々にお会いできた方もいました。超満員でもう少しで入りきれないほどでした。また参加できれば、と思っています。

PDFはこちらからダウンロードできます。

 

勉強会で使ったスライドは、面白おかしく柔らかい(?)スライドでした。あまり公開用には向いていません。実際に勉強会で使った資料が欲しい方はFacebookかメールで連絡してください。個別にお送りします。

第一回 中国地方DB勉強会の資料

第一回 中国地方DB勉強会の講師として参加させて頂きました。

MySQLも使っていますが奥野さんの発表は普段気にしていなかったことも多く、とても参考になりました。

私の資料もSlideShareにアップロードしました。

データベースセキュリティ

http://www.slideshare.net/yohgaki/ss-25042247

 PostgreSQL 9.3

http://www.slideshare.net/yohgaki/postgre-sql-93

岡山Ruby会議02のプレゼンテーション資料「Rials4 Security」

岡山Ruby会議02が先週末の土曜日にありました。私は「Rails 4 セキュリティ」をテーマに講演させていただきました。

プレゼン資料だけでは分かりづらいと思いますが、参考までに公開します。

Rails4Security.pdf

追記:肝心なところで記述漏れがあり、誤解もあったので解説を追加しています。こちらも合わせてご覧ください。

http://blog.ohgaki.net/rails4

“岡山Ruby会議02のプレゼンテーション資料「Rials4 Security」” の続きを読む

Webノウハウシェア2013のスライド

5月24日(金)に開催されたWeb担当者向けのセミナーの「Webノウハウシェア2013」にBOSS-CON JAPANのPHP Security AlianceのCTOとして講演してきました。その講演のスライドです。


http://www.slideshare.net/yohgaki/boss-conphp

Javascriptを利用した内部ネットワークのスキャンが可能である事は良く知られていると思います。ここ数年セキュリティ研究者は更に企業ネットワーク内の奥深くに侵入する手法を研究しています。

企業内のシステムはインターネットに公開するシステムに比べると甘いセキュリティ対策が採用される事が多いですが、インターネットと同様のセキュリティ対策を行わないと思わぬリスクが発生します。特にSSRFの脅威は広範囲に渡ります。正しく理解しておく必要があります。

追記:PHPユーザに取って重要な事の1つを紹介しておきます。

PHP-FPMを利用する場合、php_admin_value, php_admin_flagでphp.iniを設定する方が良いでしょう。手元のFedora18のNginx+PHP-FPMでPoCをそのまま実行した所、エラーになって攻撃は成功しませんでしたが、php.iniの設定をリモートから変更できるとする情報もあります。

追記:ブログアプリ変更でリンクが無くなっていたので、SlideShareの方に公開しました。

OSC愛媛2012の資料 – PHP5.4とはどんなPHPなのか?

OSC愛媛2012の「PHP5.4とはどんなPHPなのか?」の資料を公開します。ポイントは以下の通り。

  • PHP 5.4は基本的にはベターPHP5.3
  • 互換性問題もあるが、一般に致命的な問題はない
  • 全般にPHP5.4は速い
  • 移行を考えている方は早い方が良い(使える期間が長くなる)
  • ディストリビューションのPHPを使う、という選択もある(RHEL6 PHP5.3, Ubuntu LTS PHP5.4?)

プラットフォームの選択には様々な事情がありますが、Traitsはコードを効率良く再利用するには便利な機能です。さっと移行してしまうのも良いでしょう。

ところで、Traitsの例としてアクセサの実装例を紹介しています。

https://gist.github.com/1379592

しかし、次のPHPではC#風のアクセサ文法がサポートされる可能性があります。

https://wiki.php.net/rfc/propertygetsetsyntax

こちらの方が色々便利です。利用する場合は、このような文法が実装される可能性があることを理解した上で使うと良いと思います。

第一回 岡山PHP勉強会のスライド

昨日は第一回の岡山PHP勉強会お疲れ様でした。参加枠を何度か拡大しても60名の満席でした。初回ということでプログラマ目線からのセキュリティ対策の基本を解説させていただきました。セキュリティってわかりづらい、何をすれば良いのかわからない、という声はよく耳にします。短い時間でしたが考え方の基本は概ね説明できたと思います。

重要なことは口頭で説明したので資料だけみてもよくわからないとは思いますが、勉強会の資料を公開します。なにかございましたらツイッターなどで問い合わせて下さい。ツイッターには岡山PHP勉強会のハッシュタグ (#okaphp) を付けると他の方にも分かりやすいと思います。

次回の岡山PHP勉強会は2月だそうです。

追記:Integrityの訳はネットを検索してきた訳語の「統合性」を使っていましたが、違和感があったので調べてみました。JISでは「完全性」と訳されているので正しい用語に修正しておきました。

広島オープンセミナー 11/28(土曜)

広島で中四国で行われている地域コミュニティが合同で行っているオープンセミナーが11/28(土曜)開催されます。

http://www.postgresql.jp/events/5e835cf630aa30fc30f330bb30df30ca30fc-1/view

ご都合が良い方は是非参加ください。

 

 

来る11月28日(土)に(株)SRA西日本会議室(Pルーム)にて
JPUG中国支部主催のオープンセミナーを開催します。
今回はオープンラボ岡山の協力を得、RubyやAndroidの話題も盛り込んでいます。
また、東京から桑村潤氏、石井達夫氏にお越しいただきますので、
興味のある方は是非ご参加ください。

セミナー、懇親会に参加を希望される方は、人数把握のため、三谷(mitani@sraw.co.jp)までメールでお申し込みください。

1.日時:2009年11月28日(土)13時から17時
(開場受付 12:30〜、懇親会 18:00-20:00)
2.場所:(株)SRA西日本 会議室(Pルーム)
広島市南区稲荷町 2-16 広島稲荷町第一生命ビル 10F
http://www.sraw.co.jp/map_hiroshima.html
3.定員:30名
4.会費:無料(懇親会は別途費用)
5.プログラム
13:00-13:25 三谷さん:PostgreSQLのClustering最新動向
13:30-13:55 吉田さん:RubyとPostgreSQLの全文検索 
14:00-14:25 英吉さん:Android Marketの理想と現実
14:30-14:55 大垣さん:SQLインジェクション
15:00-15:50 桑村さん:PL/Proxy,PgBouncerの紹介
16:00-16:50 石井さん:pgpool-II最新情報

 

 

OSC Tokyo – 今更聞けないSQLインジェクションの現実と対策

明日のOSC東京Fallでは「SQLインジェクション”ゼロ”のPostgreSQL利用法 – 今更聞けないSQLインジェク ションの現実と対策」と題したセッションを日本PostgreSQLユーザ会の講師として話をさせて頂きます。

SQLインジェクションはとうの昔に枯れた話題と思われていますが、古くても今の問題です。何年か前、日本PostgreSQLユーザ会のセミナーで手作業でのブラインドSQLインジェクションのデモをした事がありますが今回はツールを使ったデモもあります。書いている間に当初作ろうと思っていたプレゼンとは異なる物なってしまいました。多少紹介から期待する内容とは異なっているかも知れません。既にSQLインジェクションについては十分知っている方でも、それなりに(?)楽しめる内容になっていると思います。おかげ様で満員だそうですが、飛び込みでも少しは入れるのかな?

45分なのに60枚もスライドがある上、デモもあります。かなりハイペースで話すことになります。ネットで直ぐに見つかるような基本的な事はあまり書かなかったのですが、無いようで書くとSQLインジェクションについて色々在る物です。多少スライドは飛ばす事になります。

ほぼ同じ内容でOSC高知でも話をさせて頂く予定です。
来たくても来れなかった方は是非高知でお会いしましょう。

「オープンセミナー2009@徳島」 開催のお知らせ

恒例の「オープンセミナー2009@徳島」が10/3(土曜)に開催されます。毎年パワーアップしている無料セミナーです。徳島近郊の方は是非ご参加ください。転載自由です。興味がある方へお知らせ、転送頂けると助かります。

追記:懇親会費が変更されました!4000円→4500円です。ご注意ください。

“「オープンセミナー2009@徳島」 開催のお知らせ” の続きを読む

Drupal勉強会とその時の資料

Linux Foundationは全面的にDrupalと呼ばれるCMSに移行したそうです。日本のLinux Foundationも当然、Drupalに移行しています。そこでLinux Foundationの小薗井さんから一度講師をして欲しい、と頼まれていました。PHPカンファレンスにいったので、その次の日の日曜日、9月6日の勉強会に参加してきました。

外国人の方が多い、と聞いていたのですが本当に外国人の方の割合が多かった。20名弱(?)ほどのうち4名くらい(?)は外国人の方、日本人の方(?)でも帰国したばかりで日本語がたどたどしいと言われている方もいました。とてもインターナショナルな感じで学生のころを思い出しました。

ユーザ会のURL: http://groups.drupal.org/japan

勉強会の様子は次のような感じです。

その時に使った資料を公開します。

テーマはPHPを使った安全なWebプログラミングの概要です。

http://www.es-i.jp/files/Secure-PHP-Programming.pdf

かなり古い資料をリフレッシュさせたのですが、時代の流れを感じました。昔は「まあ、いいか」と判断していた部分も今でもは「絶対ダメ」になっていたりしました。とは言っても「Webアプリセキュリティ対策入門」はこれより新しく書いたもなので今でも十分通用します。ちょうど良い時期に出版したといえるのかも知れません。

資料にタイポや概要の説明であっても分かり辛い点と思える箇所などありましたら、ぜひ教えて下さい。

DrupalなどのCMSは興味の対象外だったのですが、NetCommonsといい個人的にはブーム(遅すぎ?)になっています。ToDoリストにやりたいことが山積みです…

デブサミ200 優秀スピーカー賞

今年のデブサミにはパネルディスカッションのパネラーの一人として参加していたのですが、そのセッションが優秀スピーカー賞に選ばれました。

デブサミらしく(?)表彰状はGoogle Docsで送られてきました。

優秀スピーカー賞

パネルディスカッションを仕切った竹迫さんの戦略勝ち、という方が良いと思います。何はともあれ表彰して頂けてありがたいです。パネラの皆さん、またどこかでご一緒しましょう。

JPUG北海道 RUBY札幌 合同セミナーの資料

2月16日に札幌で行われたJPUG北海道 RUBY札幌 合同セミナーの資料です。

http://blog.ohgaki.net/media/users/yohgaki/PostgreSQL-Performance.pdf

セミナーの際には風邪の為、声がでず、非常に聞き辛かったと思います。聞きにお越しいただいた方には申し訳ないです。

fsync=falseなのでかなり速い事は理解していただけたと思います。(かなりのスピートダウンですがfsync=trueでも速いです)セッションをデータベースで管理した場合などにfsync=falseで運用しても問題ないでしょう。しかし、絶対にデータベース上のデータの不整合は困る場合にはfsync=trueに設定しなければなりません。

とは言ってもfsync=falseの速さは捨てがたいと言う方はUPSを利用すると良いでしょう。UPSを付ければリスクはかなり低減できるので、リスクとメリットのトレードオフで選択すれば良いと思います。

UPSを使っても防げないデータの不整合

  • カーネルがクラッシュした場合
  • HDDのケーブルが抜けたなど、物理的問題の場合
  • 電源が壊れた場合(これも物理的な問題ですが、2重化すればかなりリスク低減可能)
  • HDDの冗長化を行っていない場合(RAID組まずにデータ保護の為にUPS使っても….ですが念のため)

等が考えられます。

HDDの冗長化を行っていないサイトのデータベースであれば、fsync=falseが困る訳も無いでしょう。このような場合はfsync=falseでどんどん使ってよいでしょう。

fsync=falseはデータベースサーバ全体の設定なので結局は「ショッピングサイトなどでどんな場合でも受注済みデータが無くなると困る」のような要求があるとfsync=falseで運用できないのでは、とご意見も頂きました。このような場合でもログを別の方法で残す、例えば、メールで送信してしまう、別ディスクにジャーナルとして書き込む、など方法でデータ保存の方法を冗長化していればfsync=falseでも困らないサイトは少なくないと思います。そうは言っても、困る物は困る場合はfsync=trueで利用すると良いでしょう。

データベースに拘らずデータの冗長化を考えると、fsync=falseは強力な武器になります。

# PostgreSQL 8.3ならsynchronous_commit=offに設定してリスク
# を軽減する事も可能です。ところで、別ディスクにジャーナル
# として保存する場合はDBよりも先にジャーナルファイルに書き
# 込み、fsyncを忘れない様に注意してください。
# メール送信する場合はリモートのメールサーバが受け取った後
# にDBに書き込むように注意してください。つまりローカルのメー
# ルキューにいれるのみだとジャーナルのように使えない場合が
# あります。qmailならinjectが正常に終了すればOKだとは思い
# ますがメールシステムによっては高い信頼性を期待できない場合
# もあります。

オープンセミナー2006@四国

今日はサンポート高松で13時からPostgreSQL、インターネット、セキュリティ、オープンソースに関するセミナーがあります。

セミナーの詳細はこちら

http://www.postgresql.jp/ug/shikoku/conf/20060422/index.html

懇親会の当日受付もしています。
ご都合の良い方は是非お越し下さい。