サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
今年の「#文学」
july-diary.hatenablog.com
パスワード付き ZIP ファイルの脆弱性が、といった話が、話題になっていたようです。 2019年5月18〜19日のtwitterセキュリティクラスタ – twitterセキュリティネタまとめ どうやら、 通称: Traditional PKWARE Encryption の脆弱性の話らしい。 もともと、Traditional PKWARE Encryption は、内部状態の 96bit を総当たりすれば解けてしまうもので、これが実質的な鍵長になる。 96bit じゃ、今どきの暗号としては、圧倒的に短い。 ということは昔から指摘されていたけど、今回は、そこから、パスワードを生成することに成功したらしい。 のようです。 意外に、この「古い暗号化」を知らない人が多いみたいですが、私は、下記ページを読んだことがあったので、暗号化アルゴリズム自体が、古臭くてイケてない、という認識はありました。 暗
AWS で、マネージメントコンソールや API 等で AWS 上のリソースの操作を特定の IP アドレスからしか実行できないようにするために、IAM ポリシーの aws:SourceIp を使って制限する、というのは常套手段として知られていると思います。 AWS管理コンソールへのアクセスをIPアドレスで制限したい | Developers.IO このページの最後でも書かれていますが、この常套句の設定は CloudFormation を使ったスタックの生成、更新、削除といった時に問題になります。 AWS Identity and Access Management によるアクセスの制御 - AWS CloudFormation aws:SourceIp 条件を使用しないでください。AWS CloudFormation はリクエストの送信元 IP アドレスではなく、独自の IP アドレスを使用
昔、DNS ラウンドロビンが当てにならなくなってきたのは RFC 3484 の影響、という事を書きました。 IPv6 と RFC3484 - JULYの日記 この RFC は 6724 で更新されています。 RFC 6724 - Default Address Selection for Internet Protocol Version 6 (IPv6) この RFC は、割り当てられた複数のアドレスから、どのアドレスを使って相手との通信を行うか、というもので、それを実装すると、名前解決の結果がソートされ、結果、DNS ラウンドロビンを期待して複数の A レコードを設定している場合、片方にアクセスが寄ってしまう、という現象がありました*1。 RFC 3484、6724 自体は、IPv6 上でより近い経路になるアドレスを選択するためのもので、DNS ラウンドロビンの問題は、その結果の巻き添
IPv6 では、ルータが送信する RA(Router Advirtisement:ルータ広告)の情報に含まれるプレフィックスから、自動的にアドレスが決定される、という話は有名です。実際、個人向け IPv6 で、ご家庭用ブローバンドルータを使った時に、端末側に振られる IPv6 アドレスは、まさにこの仕組みによるものです。 前回、おうちサーバには、IPv4 のプライベートアドレスに該当する ULA を手動で、グローバルなアドレスに関しては RA を受信した上で自動構成する、としました。 同じ事は、クライアント側にも当てはまります。 グローバルなアドレスは、ルータが広告する RA によって自動構成アドレスが付与されます。サーバと同様に ULA を手動で設定する、という事も可能ですが、はっきり言って、128 bit のアドレスを手入力するのは拷問です。まぁ、一度設定すれば変える事はないかもしれま
我が家に IPv6 環境がやってきました。フレッツ光ネクストの回線にして、ISP 側に申し込んで、IPoE(いわゆるネイティブ方式)で IPv6 のインターネットにつながりました。 おそらく、多くの一般家庭であれば、今時のルータさえ用意すれば、特段、意識することなく、IPv6 につながる環境になると思います。おうちサーバがあっても、「自宅内は IPv4 で十分」と考えれば、何も問題はありません。 が、一応、北の大地で技術系サラリーマンの端くれとして生活の糧を得ている身としては、おうち LAN でも IPv6 を使わないでどうする、と、無駄な努力をするのでした(^^; IPv6 とは なんて話はどうでもよいですね。立派な専門家の方々がたくさん解説を書いています。 NAT が無い これも割と有名な話だと思います。そもそも、NAT によってグローバルアドレスを延命する、というアイデアが出る前に、
理論編(id:JULY:20111127)を書いてから、既に1年半も経ってしまいましたが*1、ようやく実践編です。 2台のホストは ホスト名 コピー元 master.example.com コピー先 slave.example.com とします。SSH は slave.example.com から master.example.com へ接続します。 rsync 用のユーザの作成 双方のホスト上で rsync 用のユーザを作ります。このユーザは普通にログインする必要が無いので、ログインシェルを /sbin/nologin にしておきます(後述しますが、とりあえずこの時点では、ログインシェルは /sbin/nologin としておきます)ホームディレクトリも必要ありません。 あとは基本的には任意ですが、多くのディストリビューションで 500 番以上の UID を一般ユーザに割り当てる習慣があ
OpenLDAP で userPassword アトリビュートにパスワード情報を保存する場合、推奨はソルト付き SHA(SSHA)とされていると思います。実際、CentOS Ver 6.3 上の OpenLDAP に付いてくる slappasswd コマンドは、オプションを指定しないデフォルトは、SSHA の形式を出力します。 しかし、高速な GPU が廉価に販売され、その GPU を駆使して並列計算をすると、ブルートフォースによる解析が、実用的な時間で成功するようになりました。 去年の 12 月に飛び込んできた、「NTLM ハッシュが 8 文字までのパスワードなら5時間版」*1は衝撃的で、私もそのことを日記に書きました*2。NTLM ハッシュは Unicode で表現されたパスワード文字列の MD4 ハッシュ値で、SHA-1 よりは出力されるハッシュ値の bit 長も短く、1つのハッシュ
大手サイトが Google Safe Browsing でブロックされたニュースがありました。 「毎日jp」など「不正なソフトウェアが存在する可能性」でGoogleからブロック - ITmedia NEWS 文中に Googleがブロックしている理由は不明だが、 と書かれていますが、診断画面をよく見ると、おそらくこんな理由だろう、というのが分かります。 毎日新聞を例に診断結果を見てみます。 現在のところ、このサイトは疑わしくないと認識されています。 と書かれています。これだと「じゃぁ、なんでブロックされているんだぁ?」になりますが、真ん中ぐらいに このサイトは 5 個のネットワーク(AS4694 (IDC), AS2516 (KDDI), AS17506 (UCOM) など)でホストされていたことが判明しました。 と書かれています。 この「AS」の後ろに突いた番号は、おそらく、ルーティング
長らく、バージョンアップが無かった milter-greylist ですが、10/11 に Ver. 4.4 がリリースされ*1、長い間、開発版扱いだった Ver 4.3 系に実装された機能が、リリース版となりました。 milter-greylist の Tarpit 機能は、milter-manager の開発に携わっている、株式会社クリアコードの須藤功平さんが作成したパッチで、Ver. 4.3.4 でマージされました*2。その機能が、リリース版で使えるようになった、ということで、実際に動作を確認してみました。 Tarpitting とは 語源は「tar pit」で、日本語に訳すと「タール抗」で、タール状の物が貯まっているようなところを指すようです。 spam 対策での Tarpitting は、送信相手に対して、わざとレスポンスを遅らせます。送信相手が普通のサーバであれば、分単位でレス
milter-greylist には他の spam 判定要素を組み合わせて、最終的に拒否するのか、許可するのか、Greylisting するのか、という判断をする。例えば、 GeoIP を使って、送信元の国によって判断。 SpamAssasinの結果を参考にして判断。 DNSBL の結果を参考にして判断。 SPF の結果を参考にして判断。 といったことが可能(ただし、コンパイル時に有効になっている必要あり)。 で、milter-greylist での SPF の使い方でおもしろい方法がある。 SPF のメリットとデメリット SPF は、エンベロープの差出人アドレスのドメイン部を使って、DNS の TXT レコードを取得し、そこに記述されている「うちのドメインの付いたメールは、ここから送信するよ」という情報を元に、正規のメールかどうかの判断材料とするもの。送信する側とすると、送ったメールを
DEFCON で、PPTP の認証方式として一番ポピュラーな MS-CHAPv2 をクラックするツールが登場した事が、大きな話題になりました。 DEFCON参加の専門家、「MS-CHAP v2」をクラックするツールを発表 - CNET Japan DEFCON というと、一介のエンジニアには遠い存在で、自分が理解できるような話はない、と思っていたのですが、この話は、思いの外、簡単な話でした。 わかりやすい解説が、英語のブログ記事ででています。 https://www.cloudcracker.com/blog/2012/07/29/cracking-ms-chap-v2/ 書いてある中身が分かると、「なんで誰も気がつかなかった?」と思えるほど、単純なことでした。 MS-CHAPv2 とは PPTP で最もよく使われる、チャレンジ・レスポンス型の認証方式で、PPTP 以外にも、無線 LAN
DNSBL は、IP アドレスを元に組み立てた FQDN に対して DNS を引くと、spam の発信源となっている場合には、何らかの A レコード(大抵は 127.0.0.x)を返す、というもの。例えば、IP アドレスが 192.168.1.1 だった時に spamhaus へ問い合わせる場合、 1.1.168.192.zen.spamhaus.orgという FQDN で問い合わせる。もし、spam の発信源として spamhaus に登録されていれば、127.0.0.10 といった結果が返ってくる*1。 どのようにして、IP アドレスを登録するかは、DNSBL を提供する側のポリシー次第だが、有名なところとしては、 spamhaus SpamCop RBL.JP といったところがある。 DNSBL にも False Positive の危険性はある。が、実際に spamhaus を使っ
サーバ間で rsync を使ったファイルの同期の課題を与えられた後輩が、あれこれ調べてたどり着いたサイトの内容を後ろから覗き込んだ時、思わず「イケてない。自分ならやらない」と言ってしまったことがありました。セキュリティに気を使って「ssh 経由で rsync」までは良いとして、sshd_config で PermitRootLogin を yes にするのは、個人的には「ありえない」と思いました。 以前に、自分で ssh + rsync を実際に動かした時に、どんな風に考えて、どのような事をやったのか、書いてみます。 同期の方向 rsync で同期する際、マスター側からプッシュするのか、バックアップ側からプルするのか、というがあります。基本的にはどっちでも良いと思いますが、仮にバックアップ側がダウンしている場合に、余分なエラーを発生させたくない、と思い、バックアップ側からプルする事にしまし
「たくさん、またせて、ごめんなさい」は、emacs 上で wnn を使うための Tamago の由来ですが、アップストリームとなる RHEL 6 が 2010 年 11 月 10 日リリースなので、実に8ヶ月遅れで CentOS 6 がリリースされました。 その間、CentOS の ML やフォーラムは荒れるは、プロジェクトの危機を伝えるものもあれば、そうでもないと言う者あり*1で、七転八倒の8ヶ月でしたが、ついにリリースになりました。 この間、Scientific Linux が CentOS の代替*2としてクローズアップされました。自分も試しに入れてみたのですが、標準のリポジトリがなんかいまいちな感じがしてました。ソース rpm はあるんだけど、該当するバイナリの rpm が見つからない事があり*3、メインのパッケージ以外は CentOS の方が上なのかなぁ、などと思いながら過ごして
以前、Rainbow Table の説明で、ソルトに関して id:JULY:20100515 Windows のパスワードの場合、「ソルト」と呼ばれる、パスワードに付加する乱数が無いので、同じパスワードから必ず同じハッシュ値が得られる、という側面もあります。UNIX 系 OS では「ソルト」が付加されるので、Rainbow Table が作りづらくなっています。 とサラッと流したのが、自分でも気になっていたのですが、エフセキュアブログの「ソルト付き SHA-1 は大丈夫か?」という話に言及*1したので、ソルトの効用に関して書いてみます。 ソルトとは 塩です。 というボケは置いといて、パスワードを保存する時に、何らかの「非可逆処理」を行った結果を保存しておく事は多いです。Windows での LM ハッシュや NTLM ハッシュ、UNIX 系であれば、古くは伝統的な「crypt」関数を使った
昔から、Proxy を通して自分の IP アドレスを隠すことが、「オレ、ちょっとカッコイイ」みたいな雰囲気があって、Proxy のことを「串」などと、隠語めいた呼び方をして悦に入る人を見かけましたが、今でも、そんな風に考える人が結構いるのに、ちょっと驚きました。 Mozilla Re-Mix: ボタン一つでIPを偽装してブラウジングを行うことができるFirefoxアドオン「Stealthy」 センセーショナルなタイトルで、ちょうど Winny が大流行したころに「悪用厳禁」と大きく書かれた本が平積みされていたのを思い出しますが、この Firefox のアドオンがやっていることは、単に Proxy を設定しているだけです。 記事に登場する Proxy 設定の画面でちょっと不思議なのは、なぜか SOCKS のプロキシとして、同じ IP、同じポート番号が指定されている点です。ちょっと実験してみた
SASL CRAM-MD5 のジレンマ SMTP-AUTH や POP3、IMAP で使われる、認証フレームワークの SASL。SASL という名前よりも「CRAM-MD5」といった、具体的な認証方式の方が有名かもしれません。 CRAM-MD5 や、POP3 専用の APOP といった認証方式は、平文のパスワードが保存されているのが前提で、 平文のパスワードを保存しておく。 平文のパスワードがネットワークを流れる。 のどっちかを選ぶ必要があります。で、「平文のパスワードがネットワークを流れる問題なら、SSL/TLS 化しちゃえば OK じゃん」ということで、 SSL/TLS 化した上で、平文の認証(PLAIN or LOGIN) というのが正解、とされます。Dovecot のデフォルトだと、LOGIN や PLAIN を使う場合には、SSL/TLS 化されている事が条件となっていて、「di
アップストリームとなる Redhat Enterpriese Linxu 6 がリリースされて、半年以上経っても一向にリリースされない、という時に、「もうだめかも...」と思わせるような記事が。 2011年5月17日 CentOS 6.0は本当にリリースされるのか?─メイン開発者の離脱が意味するメッセージ:Linux Daily Topics|gihyo.jp … 技術評論社 ただ、CentOS-devel に流れるメールや、Karanbir Singh の twitter を、この数ヶ月、斜め読みしていて感じたことと、上記記事の印象とはかなり違います。 そもそも、Dag Wieers の立場って CentOS がどういったチームになっているのかは良く分かりませんが、Dag Wieers と言えば、RHEL/CentOS 用に様々なパッケージを提供する RPMforge での活躍の方が印象
question:1299688445 を切っ掛けに、/etc/shadow ファイルのパスワードフィールドを調べてみたら、思いの外、複雑な処理をしているのが分かったので、実際にこの処理を追いかけてみました。 近頃の UNIX 系 OS の /etc/shadow のパスワードフィールドは、実際にはいくつかのハッシュ関数を選べる事になっています。 Crypt (Unix) - Wikipedia UNIX 系 OS には、crypt という C 言語用の関数が用意されていて、伝統的には DES を使った処理でパスワードフィールド用の文字列を生成していたのですが、この関数自体を拡張することで、MD5 や SHA-256、512 といったハッシュ関数を使う処理も出来るようになっています。どの方式を使っているかは、パスワードフィールドの文字列の先頭にある「$1$」といった部分で判断します。 先頭
question:1270750577 の回答で、Ophcrack で 4 分で解析できた結果をもって、LM ハッシュが保存されていなくても同じ、と誤解されそうな雰囲気があったので、ちょっと解説してみます。 LM ハッシュの計算方法 詳細な計算方法は下記のページにある、11 ステップの LM レスポンスの計算方法のうち、7 ステップ目までの計算で得られる値になります。 http://www.monyo.com/technical/samba/translation/ntlm.html#theLmResponse パスワード解析ソフトの処理内容 本来、パスワードから一方向関数で変換された値(ハッシュ値)から、直接、元のパスワードを計算する方法はありません。というか、計算出来ないから「一方向関数」な訳です。 ハッシュ値の計算手順や実装上の問題から、元のパスワードが計算しやすくなる、という事は無
Windows 用のパスワード解析ソフトというと、Ophcrack が有名です。CD ブートさえ出来れば、ほぼ自動的に解析してくれます。 ただ、Ophcrack の解析は、Rainbow Table に大きく依存しているところがあります。 前回(id:JULY:20100515)、脚注で Rainbow Table に付いて少し触れましたが、もう少し詳しく書いてみます。 Rainbow Table とは? Windows のログオンパスワードに限らず、パスワードをハッシュ値のような「元に戻せない値」に変換して保存することは、よくあります。ハッシュ値から元のパスワードを復元する計算方法はありませんが、だったら、あらかじめ「パスワード」と「ハッシュ値」の組み合わせをデータベース化してしまえば、後は検索するだけになります。このデータベースを Rainbow Table と言います。 例えば、パス
個人的には、PHP って、嫌いな言語じゃないんだけど、とかく宗教戦争に持ち込まれやすい。攻撃する側は、「言語としてなっとらん」みたいな主張が多くて、具体的にどこが? と思っていたんだけど、これほど面白い例は無い。 PHPの比較の素晴らしさ加減は正常 「16 進数の表記は整数に変換するけど、じゃぁ、8進数は」という辺りが傑作なのだが、この挙動、結構、奥が深かった。 PHPでは"0x0A"=="10"がtrue | 水無月ばけらのえび日記 上記ページを読むと、整数に変換するかどうかは、C のライブラリ関数である strtod に依存しているらしい。で、このページのコメントに書かれているように、その strtod 自体が、コンパイラがどの規格に準拠してコンパイルしたかによって、挙動が変わってしまう。C99 準拠してコンパイルすれば、16 進数の表記は整数に変換されるが、そうでなければ変換されない
モバイルでもDNSラウンドロビンはちゃんと動作しますか? PCであれば、だいたいのブラウザが対応していると聞きますが、モバイルはどうなんでしょうか? A、B、Cというサーバをラウンドロビンで動かした時に、Bが死んだとします。 その場合、PCはBに行かなくなると思いますが、携帯の場合はどうなんでしょうか? 携帯はキャリアのプロキシ?か何かを通っていそうなので、ちゃんと動くのかが気になります。 また、ラウンドロビンの弱点は何ですか? 今のところ気づいているのは、単に振り分けるだけだから1台に負荷が集中するかもしれないことくらいしかないです。 上の質問を見て、「あれっ、ラウンドロビンって、ブラウザのようなアプリケーションサイドで対応するものだっけ? gethostbyname 辺りで勝手にやっていて、アプリ側は渡された IP で繋ぐだけでは?」と思っていたら、それは、もう古い話らしい。 0000
残念でした - JULYの日記 どうも最近、ssh に対するブルートフォース・アタックがはやっているらしい。前に、1時間半ものの間、アタックされていいたのを書いたが、今度は 7/21 18:56:24(日本時間)から 23:48:24、約5時間に渡ってずーっと、ムダなアタックをしていました。たぶんツールは同じで、アタックに使う辞書が豊富になってきて、なんだろうけど、繰り返しますが、我が家の ssh サーバは公開鍵認証以外お断りなので、単なるログイン認証を繰り返しても、永遠に入れることはありませんので、あしからず。 ただ、こうも長時間にわたって続けられると、こいつのために帯域を取られているというのが癪に障る。別に、実害は無いんだけど、やはり気分が悪い。OpenSSH で認証に失敗した場合に、だんだん認証結果のレスポンスが遅くなるような仕組みがあれば、それを設定したいのだが、認証部分を PAM
このページを最初にブックマークしてみませんか?
『JULY’s diary』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く