カテゴリーアーカイブ セキュリティ

著者:ym

Windows7 の有償延長サポート

来年2020年1月14日で Windows7 のサポートが終了しますが、有料でサポートを購入する事もできる様な情報が出てきました。

米マイクロソフトはこの方針を転換。ボリュームライセンス契約を結んでいるかどうかにかかわらず、あらゆる企業がWindows 7の延長サポートを購入できるようにすると発表しました

今回の発表で新たにWindows 7 ProfessionalとWindows 7 EnterpriseのESUが、マイクロソフトのクラウドソリューションパートナー経由で12月1日より購入可能になります。
Windows 7 ESUはデバイスごとに販売され、1年ごとに料金が値上がりしていく予定。

https://www.publickey1.jp/blog/19/windows_72023.html

どうしても Windows7 を安全に使い続ける必要がある場合は、ボリュームライセンスでなくてもこの有償サポートを購入する事で維持ができそうです。

ただし年々料金が上がっていく仕組みらしい。

  • この記事いいね! (0)
著者:杉浦

【PHP】ホモグラフ攻撃と踏み台にされないための対策

 ホモグラフ攻撃とは直訳で人間的図形攻撃です。具体的に何をするかというと、視覚的に似た別の文字を用いてユーザの想定と異なる動作を誘発させます。特に重要で代表的な例はURLにおける攻撃で次例です。

https://www.аррӏе.com/
https://www.apple.com/

 上の二つのURLは異なるURLです。上の側だけ英語小文字に似た文字でドメイン名を記述してあります。これでユーザを誤ったURLへ飛ばし、飛び先のページで実行されるコードに悪意あるコードを仕込むことによって本格的な攻撃をします。
 この攻撃はユーザの運用によって完璧に防ぐことは困難です。いちいち文字コードや言語情報をチェックしていたらとても耐えられない不便をこうむります。この点、ブラウザがいくらか対策してくれています。例えばGoogle Chromeはο(オミクロン)を使ったgoogle.comへのアクセスを次の様に止めてくれます。

 PHPはホモグラフ攻撃の対策(主に踏み台にされないため)としてホモグラフ攻撃用文字列を検出するためのクラスSpoofcheckerを持っています。これを使えば怪しげな投稿やメールアドレスの多くを弾けます。
PHP:Spoofchecker-マニュアル
 簡単な使い方は次です。

public function isSafe($value){
    $checker = new Spoofchecker();
    $checker->setRestrictionLevel(Spoofchecker::制限レベル);// PHPリファレンスに記述はない(!?)が実装されている
    $checker->setChecks(Spoofchecker::チェックルール);

    return !$checker->isSuspicious($value);// isSuspicious関数は疑わしい時にtrueを返す
}

 制限レベルはPHP:Spoofchecker-マニュアルの定義済み定数の内のASCIIからSINGLE_SCRIPT_RESTRICTIVEまで、チェックルールはSINGLE_SCRIPT_CONFUSABLE以下です。デフォルトレベルはHIGHLY_RESTRICTIVE、デフォルトルールはSINGLE_SCRIPTです。詳しい各ルールの説明ドキュメントはPHPリファレンス内に存在しません。
 雑に使ってもそれなりに役に立つのですが、せっかくなのでルールの詳細が知りたいです。C言語で構築されたPHPのSpoofcheckerの実装は次です。これを読めば多少わかります。
php-src/ext/intl/spoofchecker at 49a4e695845bf55e059e7f88e54b1111fe284223 · php/php-src
 このディレクトリの内部を読むとC言語のuspoof機能を使っていることがわかります。C言語のuspoof機能のリファレンスは次です。
ICU 64.2: uspoof.h File Reference
 両方を参照すると制限レベル、チェックルールの二段階設定であることがわかります。
 制限レベルはICU 64.2: uspoof.h File Reference#URestrictionLevelで説明されています。日本で使うサービスとしてはデフォルト制限レベルであるHIGHLY_RESTRICTIVEがふさわしいでしょう。HIGHLY_RESTRICTIVEは日本語セット、中国語セット、韓国語セットのいずれのセットの中に納まらない文字列を怪しい文字列として疑うレベルです。
 チェックルールはICU 64.2: uspoof.h File Reference#USpoofChecksで説明されています。制限レベルをそのまま適用するRESTRICTION_LEVELが扱いやすそうです。PHPのデフォルト設定はSINGLE_SCRIPTですが、SINGLE_SCRIPTは既に非推奨でRESTRICTION_LEVELに置き換えられます。
 リファレンスが不親切で実装まで調査しましたが単に次のように使えばよさそうです。

public function isSafe($value){
    $checker = new Spoofchecker();

    return !$checker->isSuspicious($value);// isSuspicious関数は疑わしい時にtrueを返す
}

ちなみに各制限、各ルールで最上部の例のapple.comが安全ならtrue,違うならfalseにする関数でテストしたところ次結果になりました。読みづらいのは申し訳ないですがコピペとか見ている画面のデザイン変更で対応していただきたいです。

SINGLE_SCRIPT_CONFUSABLE MIXED_SCRIPT_CONFUSABLE WHOLE_SCRIPT_CONFUSABLE ANY_CASE SINGLE_SCRIPT INVISIBLE CHAR_LIMIT
HIGHLY_RESTRICTIVE true true true true false true true
MODERATELY_RESTRICTIVE true true true true false true true
MINIMALLY_RESTRICTIVE true true true true true true true
UNRESTRICTIVE true true true true true true true
SINGLE_SCRIPT_RESTRICTIVE true true true true false true true
  • この記事いいね! (2)
著者:ym

AWS と鍵閉じ込め

今回のAWS障害の影響で、自転車の鍵が開かなくなって動けなくなったとツイートが有りました。

すでにAWSの報告も出ている様です。空調管理の障害の様ですね。

東京リージョン (AP-NORTHEAST-1) で発生した Amazon EC2 と Amazon EBS の事象概要
これらのインスタンスとボリュームの復旧には時間がかかり、一部につきましては基盤のハードウェアの障害によりリタイアが必要でした。

ちょっとこの「リタイヤ」が基になりますが。どういう意味だろうか、データ損失といういみなのかな。

他人任せるとこれです。AIも同じ部類かな。
大手サービス事業者側は、今回のAWS障害で別ゾーンや別リージョンとの冗長性も強化するのだとは思います。改善改善で良くなれば良いですが。
この程度であればなんとかなりますが、人の命に関わるところは自ら制御しないと行けないですね。

  • この記事いいね! (1)
著者:杉浦

【Vue】改行とv-htmlとXSS対策

 Vue.js上で文字列を展開したい時があります。例えばそれは誰かが投稿したコメントをコンポーネント上に表示する時です。こういった時コメントの改行が反映されていない場合、見栄えが悪くなります。改行を行う必要があります。
 HTML上の改行と言えばbrタグです。PHPにはnl2brという改行コードを改行タグに変換する組み込み関数があるぐらいです。
PHP: nl2br – Manual
 改行の実現でありがちで危険なアンチパターンはこのnl2br関数を用いたコメントをそのまま表示しようと考えるものです。Vue.jsにはv-htmlというディレクティブがあり、これを用いると普段かかっている安全装置のHTMLエスケープを外し、HTMLとしてパース、実行します。brタグとv-htmlを用いることで改行コードを改行タグに変換して表示できます。
 v-htmlはXSSをまあまあ容易に招く危険性を持ちます。まあまあ危険というのは単純な

<script>alert('XSS')</script>

ぐらいならVueの仕組み上実行されず済むからです。とはいえ

<EMBED SRC="data:image/svg+xml;base64,PHN2ZyB4bWxuczpzdmc9Imh0dH A6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv MjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hs aW5rIiB2ZXJzaW9uPSIxLjAiIHg9IjAiIHk9IjAiIHdpZHRoPSIxOTQiIGhlaWdodD0iMjAw IiBpZD0ieHNzIj48c2NyaXB0IHR5cGU9InRleHQvZWNtYXNjcmlwdCI+YWxlcnQoIlh TUyIpOzwvc2NyaXB0Pjwvc3ZnPg==" type="image/svg+xml" AllowScriptAccess="always"></EMBED>

の様な多少の変化球(scriptタグをbase64形式でエンコード、埋め込んだコード中でデコードして実行)であっさり破られるのでやはり危険です。

XSS 脆弱性を容易に引き起こすので、ウェブサイトで動的に任意のHTMLを描画することは、非常に危険です。信頼できるコンテンツにだけ HTML 展開を利用してください。ユーザーから提供されたコンテンツに対しては決して使用してはいけません。

テンプレート構文 — Vue.js

 これの対策は実現したい機能に関しての実装を生のHTMLに頼るのでなく個々の別手法を用いるのが一番でしょう。
 例えば改行に関してはCSSのwhite-space実現できます。white-spaceは要素内のホワイトスペースをどう扱うか決定するスタイルであり、ホワイトスペースの一種(少なくとも正規表現の\sグループでまとめられる)である改行文字の制御もこれでできます
white-space – CSS: カスケーディングスタイルシート | MDN
 上記リンクから引用した次の表の’改行を残す’スタイルを用いれば
と生のHTML実行を用いるまでもありません。

  改行 空白とタブ文字 テキストの折り返し 行末の空白
normal まとめる まとめる 折り返す 除去
nowrap まとめる まとめる 折り返さない 除去
pre 残す 残す 折り返さない 残す
pre-wrap 残す 残す 折り返す ぶら下げ
pre-line 残す まとめる 折り返す 除去
break-spaces 残す まとめる 折り返す 折り返す
  • この記事いいね! (0)
著者:ym

7payの乗っ取りからID連携での対策

Yahoo! ID 連携の方法で、なにか情報がでた様なので引用します。

▼脆弱性のある実装方法
フロントエンドのJavaScriptやiOS,Androidのネイティブアプリで ユーザー識別子(sub)を取得しサーバーサイドへ送信するような実装をしている場合、 ユーザー識別子を送信しログインできてしまうため、不正にログインされる可能性があります。
そのため、上記のような実装は推奨しておりません。

▼推奨する実装方法
フロントエンドのJavaScriptやiOS,Androidのネイティブアプリではユーザー識別子を直接取得するのではなく、 サーバーサイド・アプリケーションで利用されるフロー(Authorization Codeフロー)を用いて認可コードを連携し サーバーサイドでユーザー識別子などの属性情報を取得してください。

https://developer.yahoo.co.jp/changelog/2019-07-18-yconnect.html

7pay を使用していなかったのですが、ログインする際の認証に使用する場合のところだと思います。

最近SNSを使用した認証が増えているので、注意してた実装が必要そうです。

  • この記事いいね! (0)
著者:ym

ひかり電話・ホームゲートウェイ脆弱性

フレッツ光ネクスト回線で使用されているルータ「ホームゲートウェイ」に脆弱性がある様です。

http://ntt.setup/

この URL へ接続してみて管理画面でバージョン確認をして見てください。私のルータも型番的には対象でしたが、ファームウェアはすでに最新版に更新された状態でしたので、脆弱性はない状況でした。

フレッツ回線を使用している方は、いちどご確認を。

  • この記事いいね! (0)
著者:ym

FirefoxでサードパーティCookieブロック

Firefox の新しいバージョン 67.0.2 付近から、表示しているページ URL 以外の場所のコンテンツから Cookie を書き込まれる場合に、拒否される様になりました。

URL欄に、盾マークが表示されている場合はブロックされています。

実際にブロック状態にあるトラッキングを見てみると。

すべてブロック中ですね。クッキーのスコープを同じドメイン名内で書き込んでいれば、サブドメイン名は大丈夫っぽいですが、別ドメイン名はことごとくブロックされてますね。

サービス提供側は大変ですが、インタレストマッチできなくなって嬉しい限り。

  • この記事いいね! (0)
takahashi 著者:takahashi

ついにHUAWEIがGoogleにAndroid関連のサポート停止を言い渡される

今朝、衝撃のニュースが飛び込んできました。

Google、Huawei端末へのサービス提供を一部停止 既存端末には影響なし – ITMedia

アメリカでHuaweiの締め出しが決まってから様々な動きがありましたが、とうとう今後発売されるHuawei製端末へのGoogleによるAndroid向けの基本サービス群(Google Playや開発者サービス、GmailなどのGoogle謹製サービス)の提供が停止されることになったようです。

よくよく考えてみれば、Googleはアメリカに本社のある企業なのでこういった規制もあり得る話ではあったのですが、プラットフォームの提供元による名指しでの提供停止というのはなかなか聞いたことがなかったので、とても驚きました。

ちなみにMicrosoftもアメリカに本社を置く企業ですが、万が一Microsoftもこの流れに追従することになった場合、Huaweiに対するWindows OSの提供が停止することも考えられるため、もしそうなった場合は事実上Huaweiが自社製のPCを製造できなくなることになります。(Linuxディストリや独自のOSを積むのであれば別ですが…)

もっともHuaweiは”自給自足”をして対抗するとのことで、今後どのような対策を打ってくるのかは非常に興味深いです。

Google公式サービスへのアクセスがブロックされたとはいえ、Android自体はオープンソースのOSであり、今回の規制に影響されることなく引き続きソースの入手は可能なので、Amazon KindleのようにAndroidベースの独自のエコシステムを構築する可能性も十分考えられます。

とりあえず、現在販売されている端末までは今まで通りGoogleの公式サービスを受けることができるようなので、既にHuawei製スマホを購入したユーザーは、心配する必要はなさそうです。

  • この記事いいね! (0)
著者:ym

bind アップデート

bind の脆弱性情報が JPRS や JPCERT から出ていたので、アップデートを行いました。

長期のサポートバージョンを使用しているのですが、どうやら python を要求するようになったみたいで、./configure 実行時にエラーを吐き出しました。

ルーチン化した作業ではあるけど、つまずくと調査が必要になります。調査の結果としてはデフォルトが with-python に変わった様なので、without-python 指定でスルーしました。

–without-python

  • この記事いいね! (0)
asaba 著者:asaba

海外からのワンギリ詐欺が横行している話

つい最近のお話です。お正月が終わるころだったと思いますが、ゲームを終えて寝ようかなと布団をかぶろうとしたときに海外から電話が

ありました。こんな真夜中に、しかも数回かかってきていずれも二・三回で切れてものすごく不気味だったので

折り返す勇気も出なかったのですが、電話番号を登録し忘れた知人だったらいけないのでしかたなくかけてみることにしました。

出てみると先方は無言。なんか小声で呟いていたように聞こえましたが全く聞き取れず。秒で切りましたw

すると、同じような事例の方が何人か見つかりました。かかってくる国はまちまちで、

特に中国やフィリピンが多いなぁって感じました。自分のは675から始まっていたので恐らくパプアニューギニアからでしょうか。中古の

携帯でないのにどこで漏れたんや・・・。

 

 

いらいらしながら探ってみるとやはりいいものではありませんでした。電話主の正体はパプアニューギニアの通信会社と手を組んだブローカーです。

闇ブローカーといえば先月タイで捕まった日本人集団が記憶に新しいですが、そのような連中と一緒だと思って良さそうです。

パプアニューギニアへの通話料金は30秒ごとに249円です。彼らは友達の話や世間話でできるだけ通話料金を多く貰えるように話を長引かせ、かかった時間分の通話料を報酬として受け取るというからくりになっているみたいです。

この電話に出てしまったときの対処法ですが、万が一請求が来ても携帯会社に説明なりスルーなりすれば特に問題はないみたいです。

ちなみにどこで情報が漏れたかは分からず、webのアンケートフォームや携帯会社など諸説ありますが、ばれた所で電話番号だけでは

悪用はできないのでさほど気にすることもなさそうです・・・。

これを機に非通知などでかかってきた電話には最初は出ず、後から頭数字を検索して用心しようと思いました。

p.s.脱線してすみません。

  • この記事いいね! (0)