テキストインターフェース処理の基本
Webアプリは基本的にテキストインターフェースを利用して構築します。HTML、JSON、SQL、XML、XPath/LDAPクエリ、HTTP、SMTP、これら全てテキストインターフェースです。 今日はインターフェースとテキストインターフェースの基本を紹介します。
情報セキュリティ教育の実験
情報セキュリティ教育で必要な物は既に判っています。基礎的なセキュリティ対策ではSANS TOP 25のMonster Mitigationsだと思います。 情報セキュリティに関わっている人で、入力と出力のセキュリティ対策の重要性を解ってない人は居ないはずです。問題なのは広く認知されていない状況にあります。そして効果的な方法はどのような方法であるか、を見つける…
情報セキュリティの概念・用語
用語の定義、概念レベルで認識の違いがあると、コミュニケーションはなかなか成り立ちません。情報エンジニアは次々に現れる新技術や日々の業務に追われ、情報セキュリティの概念について学ぶ機会はなかったと思います。一般の教育機関は勿論、情報セキュリティ教育・対策を専門で行う組織であっても目の前にある個々の脆弱性対策教育に追われ概念の解説を行えない状況でしょう。 この結…
インジェクション対策、基礎の基礎
インジェクション攻撃には様々な手法があります。メモリ管理をプログラマが行うC言語などではメモリにインジェクションするバッファローオーバーフロー/アンダーフロー、テキストベースのインターフェースではテキストインジェクション(JavaScriptインジェクション、SQLインジェクションなど)があります。 これらのインジェクション脆弱性はなぜ発生するのでしょうか?…
サニタイズは絶対的な悪か?
いつも堅苦しく「こうするほうが良い」とばかり書いているので、たまには「あまり良くない」と言われているセキュリティ対策も、有用かつ必要である例を紹介します。サニタイズの話です。 サニタイズ(Sanitize)とは消毒、汚れた物を綺麗にする事を意味します。汚れた物、つまり悪い物を除去・変換して綺麗にする処理がサニタイズ処理と言われています。悪い物を定義し排除する…
開発者は必修、CWE/SANS TOP 25の怪物的なセキュリティ対策
SANS TOP 25 の解説はもっと後で行うつもりでした。しかし、現在のアプリケーション開発者向け教育に対する疑念のエントリへの反響が大きいようなので書くことにしました。 やるべきセキュリティ対策には優先順位があります。効果が大きい対策から行うべきです。セキュリティ対策は全体的に行うべきものですが、最も効果的な対策を除いて対策を行うようでは全体的な対策など…
OSコマンドのエスケープ – シェルの仕様とコマンドの実装
OSコマンドインジェクションを防ぐための、OSコマンドのエスケープはSQLのエスケープに比べるとかなり難しいです。 難しくなる理由は多くの不定となる条件に依存する事にあります。
OSコマンドのエスケープ
プログラムからOSコマンドを実行する場合、エスケープ処理を行わないと任意コマンドが実行される危険性があります。 今回はOSコマンドのエスケープについてです。
そもそもエスケープとは何なのか?
まずエスケープ処理について全て書こう、ということでPHP Securityカテゴリで様々なエスケープ処理について書いてきました。しかし、「エスケープ処理とは何か?」を解説していなかったので解説します。 エスケープ処理は文字列処理の基本中の基本です。 「エスケープは要らない、知る必要もない」という意見を稀に聞きますが、プログラムに於ける文字列処理とその重要性を…
オレオレSQLセキュリティ教育は論理的に破綻している
ツイッターでの議論を見て「SQLエスケープを教える必要はない」とする原因は「教育の基本」と「セキュリティの基本」の理解不足が「根本的な原因」だと解ってきました。この事についてもエントリを書くかも知れませんが、今日は「オレオレSQLセキュリティ教育」、言い換えると「自分の環境に特化したSQLセキュリティ教育」について書きます。 このエントリは「貴方が普段言って…