yohgaki's blog

  • Facebook
  • X
  • ブートしなくなったLinuxの修復

    VMwareゲストのFedora 33が起動しなくってしまい直す事にしました。原因は今一つ判っていないのですが、ホストのFeodra 33のカーネルに外れがありシステムが連続してフリーズしたりことがあります。恐らくこれが原因でしょう。

    どうせテスト用なので再インストールでも良かったのですが、直せる物は直すということで直しました。

    (さらに…)
    2021年4月5日
  • PostgreSQL 8.2をインストール

    訳あってCentOS7にPostgreSQL 8.2をインストールしようとするとコンパイルは出来ても動作しませんでした。8.2はかなり古いPostgreSQLなので仕方ないですが、動作させることは可能でした。

    CentOS6ならPostgreSQL 8.2を普通にコンパイルできると思います。

    (さらに…)
    2021年3月26日
  • CSSのエスケープ方法

    プログラムからCSSファイルにデータを書き込む場合、エスケープしないと不正なCSSになってしまう場合があります。現在のブラウザはCSSでプログラムを実行する仕様が削除されているのでコード実行脆弱性の問題になりませんが、不正なCSSはセキュリティ問題(クリックジャック等)になる場合もあります。

    HTML内のCSSの場合、エスケープしないとJavaScriptの実行を許してしまいます。HTMLエスケープでJavaScript実行は防げますが、不正なCSSのインジェクションを防ぐにはCSSエスケープが必要です。適切に処理しないとCSSキーロガーを仕込まれて情報を盗まれたりします。

    (さらに…)
    2021年2月14日
  • JSONPathインジェクション

    JSONPathはCSSのセレクタやXPathのクエリのような形でJSON形式のデータを選択/クエリする仕様です。最近のRDBMSはJSONPathクエリをサポートしているので、SQLインジェクション対策の一種として必要となる場合もあります。

    JSONPathの説明はしないので仕様などはオンラインの評価環境で確認してください。

    https://jsonpath.com/

    JSONPathクエリは上記のような”意味を持つ文字”を使ってクエリを実行します。インジェクション攻撃は一文字でも意味がある文字があると攻撃される、と思って構わないです。JSONPathクエリもインジェクション攻撃が可能です。

    (さらに…)
    2020年8月3日
  • 特定の処理を行うデータを渡すURLの作り方

    Webアプリケーションを作っているとデータの完全性と機密性を保ちつつ「特定の処理を行うデータを渡すURL」を作りたくなる場合があります。

    例えば、特定のURLをクリックすると特定ユーザーの連絡先にユーザーを登録する、などです。

    (さらに…)
    2020年5月5日
  • gmailのメール送信のTLSエラーの修正

    gmailの仕様が変更され自己署名証明書が使えなくなりgmail設定の「アカウントとインポート」で設定したメールアドレスからの送信が使えなくなったようです。結構困っている人が多いようですが判ってしまえば直す方法はそれ程難しくありません。

    エラーメッセージで検索するとどうもこの4月くらいから仕様変更されているようです。qmailを使っているのでqmailでの修正方法です。postfixなどでもやる事はあまり変わりません。

    (さらに…)
    2020年4月19日
  • Gnome Shell クラッシュの直し方

    FedoraでGnomeを使っているのですが、幾つか前のFedoraメジャーバージョンアップ後からスクリーンロック後にGnome Shellがクラッシュするようになってしまいました。放っておけばそのうち直るだろう、と放置していたのですが直る気配がないので調べてみました。

    (さらに…)
    2019年4月23日
  • 入力バリデーションに「エスケープやフィルタリングが含まれる」とする驚くべき解説

    標準的な入力バリデーションに「エスケープやフィルタリングが含まれる」とする驚くべき解説があります。そのような入力バリデーションを定義した標準的なセキュリティガイドライン/規格は見た事がありません。標準的な入力バリデーションでは何をすべし、とされているのか紹介します。

    (さらに…)
    2019年2月17日
  • データ型とセキュアコーディング

    このブログではどのように”データ型”の概念とセキュアコーディングが関連しているのか、Webサーバーアプリを主体に説明します。

    セキュアコーディングの基本を理解している必要がありますが、難しくはないです。原則を知っているだけで十分です。セキュアコーディングの10原則は次の通りです。

    • 第1 入力をバリデーションする
    • 第2 コンパイラの警告に用心する
    • 第3 セキュリティポリシーの為に構成/設計する
    • 第4 簡易にする
    • 第5 デフォルトで拒否する
    • 第6 最小権限の原則を支持する
    • 第7 他のシステムに送信するデータを無害化する
    • 第8 縦深防御を実践する
    • 第9 効果的な品質保証テクニックを利用する
    • 第10 セキュアコーディング標準を採用する

    1番目の原則「入力をバリデーションする」がデータ型と関連します。

    (さらに…)
    2019年2月16日
  • おかしなCWE-20の読み解き方(CWE-20入門)

    徳丸さんが独自のCWE-20(≒入力バリデーション)解説を行っているので、CERT(1989年に米カーネギーメロン大学に設置された世界最古のコンピューターセキュリティ専門機関)が30年くらい前から提唱し、ISO 27000/NIST SP-800-171/PCI DSS等で要求されているCWE-20の解説を改めて書きます。

    CWE-20(入力バリデーション)がなぜ重要なのか?それはCERT/MITRE/ISOが入力バリデーションをどのように解説しているかを見れば解ります。いずれも最も重要/一番最初の対策としています。(※ MITREはCWEを管理する組織で、CWEの本家と言える組織です)

    徳丸さんのブログより前に、このブログでもCWE-20について以下のブログで既に書いています。CERT(≒米カーネギーメロン大学のコンピューターサイエンス学科)が提唱するセキュアコーディング/コンピューターサイエンスの基盤となる基礎概念の紹介では十分ではなかったかも知れません。

    https://blog.ohgaki.net/cwe-20-is-not-known-to-developers
    (さらに…)
    2019年2月15日
  • ソフトウェアに入力バリデーションは必要ない 〜 ただし条件付きで

    「ソフトウェアには入力バリデーションは必要ない」そんな事がある訳けないだろう?!いつも言っている事と真逆でしょ?!と思うでしょう。

    しかし、「入力バリデーションが必要ないソフトウェア(=コード)」は沢山あります、条件付きですが。

    (さらに…)
    2019年2月8日
  • セキュリティ機能の利用はソフトウェアセキュリティではない

    7PK(7つの悪質な領域 – CWE-700として定義されている業界標準のソフトウェアセキュリティ分類)では「セキュリティ機能はソフトウェアセキュリティではない」としています。明白なのは「他のソフトウェアやデバイスのセキュリティ機能によるセキュリティ」です。7PKでは例としてHTTPSを挙げています。

    HTTPSは必要なセキュリティ機能ですが、HTTPSの利用=ソフトウェアセキュリティ、ではありません。HTTPSを使って保護できる分野はありますが、HTTPSを使っても開発者が作っているソフトウェアのセキュリティを作る物ではないからです。

    結局の所、他の”モノ”に頼らず開発者が作っているソフトウェアの中でセキュリティを作らないとソフトウェアは安全になりません。7PKの「セキュリティ機能はソフトウェアセキュリティではない」とは、「ソフトウェアセキュリティはそのソフトウェアを開発している開発者が実現する」ということです。

    ※ 7PKはソフトウェアセキュリティの基礎概念の一つと考えられています。 (CWE-700) セキュリティ機能を使うこと自体はセキュリティ対策になります。しかし、セキュリティ機能を使う=ソフトウェアセキュリティ対策、にはなりません。「セキュリティ機能を使う」は「必要なセキュリティ対策」のサブセット(一部、それも極一部)でしかないからです。「セキュリティ機能を使う」=「必要なセキュリティ対策」、こういった誤解が度々あるので7PKでは「セキュリティ機能」の解説として態々明示していると思われます。一言でいうなら「ソフトウェアセキュリティは”その”ソフトウェアを作っている開発者の責任に於て作るモノ」です。「◯◯、△△、を使えばOKではない」です。

    (さらに…)
    2019年1月29日
  • 欧州の個人データ移転規制が日本は対象外となる件について

    2019/1/22の日経の記事で「欧州の個人データ移転規制、日本は対象外 枠組み23日発効」と報道されました。

    一部に誤解を招きかねない解説が見られます。「欧州の個人データ移転規制」が「日本は対象外」となるのですが、これは利便性が上るだけで日本企業に高額なGDPR制裁金が課されなくなる訳ではありません。移転規制がなくなり便利になりますが、制裁金が課されるリスクは高くなります。

    (さらに…)
    2019年1月24日
  • 7PK – APIの乱用とは?

    7PKとは「Seven pernicious kingdoms: a taxonomy of software security errors」の略でソフトウェアセキュリティ領域の分類の一つです。CWEのビューのCWE-700としても利用されています。CWE-700となっているので、ISO 27000などのセキュリティ標準で要求される「セキュアコーディング」の基礎知識として知っておくべき分類方法/概念です。

    • 1 Input validation and representation (入力バリデーションと表現)
    • 2 API abuse (APIの乱用/誤用)
    • 3 Security features (セキュリティ機能)
    • 4 Time and state (時間と状態)
    • 5 Errors (エラー)
    • 6 Code quality (コード品質)
    • 7 Encapsulation (カプセル化)
    • 追加 – Environment (環境)

    入力バリデーションの次に重要な領域である「APIの乱用/誤用」を紹介します。

    ※ 入力バリデーションが第一番目である理由は、入力データの妥当性が保証されていなとプログラムは絶対に正しく動作しないからです。不正な入力で動作しているように見えても、誤った出鱈目な結果を返しているだけです。プログラムが脆弱性なく正しく動作する為には入力バリデーションが欠かせません。

    (さらに…)
    2019年1月23日
  • 7PK – セキュリティソフトウェア ≠ ソフトウェアセキュリティ

    CWE-700としても知られる7PK(7つの悪質な領域/王国)のIEEE Explorerの論文解説では、「セキュリティ機能(Security features)」はソフトウェアセキュリティではない、としています。

    Software security isn’t security software. All the magic crypto fairy dust in the world won’t make your code secure, but it’s also true that you can drop the ball when it comes to essential security features. 

    ソフトウェアセキュリティはセキュリティソフトウェアではない。全ての魔法のような暗号などはあなたのソフトウェアを魔法の様に安全にはしない、不可欠なセキュリティ機能の場合では削除/省略することが不可能であることは事実だが。

    暗号を例に「HTTPSがソフトウェアをセキュアにはしない」としています。これは暗号だけには留まりません。

    ※ 7PKとはソフトウェアセキュリティ全体を包括する7つの脆弱性分類を定義する論文です。実際には7つの領域+1つ(環境)を定義しています。

    • 1 Input validation and representation (入力バリデーションと表現)
    • 2 API abuse (APIの乱用/誤用)
    • 3 Security features (セキュリティ機能)
    • 4 Time and state (時間と状態)
    • 5 Errors (エラー)
    • 6 Code quality (コード品質)
    • 7 Encapsulation (カプセル化)
    • 追加 – Environment (環境)
    (さらに…)
    2019年1月21日
←前のページ
1 2 3 4 … 97
次のページ→

yohgaki's blog

  • Facebook
  • X

Twenty Twenty-Five

Designed with WordPress

 

コメントを読み込み中…