「大紀元」も受けた、DNS水責め攻撃の対処方法の案とその後の議論

11
前へ 1 2 ・・ 5 次へ
t0r0 @t0r0_twit

-A INPUT -p udp -m string --hex-string "|0a65706f636874696d6573026a70|" --algo bm --from 41 --dport 53 -j DROP --toも指定したほうがよろし

2015-02-07 10:18:43
t0r0 @t0r0_twit

*.epochtimes.jpをブロックしたときの例ね。長くて張れないので省略してる部分があるけど重要なのはhex-stringの部分の開始文字列と--from 41の部分

2015-02-07 10:20:17
t0r0 @t0r0_twit

ただExAmpLe.cO.jPみたいにされるとすり抜けるので OUTPUT側でNS側へのセッション数制限も同時にかけるのが前提。

2015-02-07 10:22:01
t0r0 @t0r0_twit

あとIPTABLESでのブロックは必ずオーバーブロッキングするのでホワイトリストも必須。

2015-02-07 10:23:20
t0r0 @t0r0_twit

たとえば ns.exapmle.co.jpが存在してたとして *.example.co.jpをブロックすると当然引けなくなるので ns.example.co.jpを許可していかないといけない。

2015-02-07 10:24:30
t0r0 @t0r0_twit

結構運用コスト上がるのでコメントとかで削除しやすいようにしとかないとiptablesのお掃除が後で大変になるよん。 とはいってもiptables -nvLとかで攻撃が流れてこなくなるのわかるから RPZやゾーンぶち込むのに比べて楽

2015-02-07 10:27:27
t0r0 @t0r0_twit

いまのところ攻撃に大文字小文字をランダムに混ぜた問い合わせは来てないので概ね対応できるかな。 大文字小文字まぜまぜやられたらゾーン&RPZでやるしかないわーw

2015-02-07 10:34:17
t0r0 @t0r0_twit

OUTPUT側のセッション制限はNSのIPを把握しないといけないけど向こうのDNS死んでることおおいから手間かかるのねん。

2015-02-07 10:36:07
t0r0 @t0r0_twit

netstatあたりでOUTPUT詰まってるので類推できるけどあくまでも類推だからなぁ。

2015-02-07 10:41:42
t0r0 @t0r0_twit

あと、OUTPUTでの制限はこの前のvalue-domainみたいに共用DNSがやられるとあわわわ状態。 デフォルトだとそこで死ぬのでまずは@hdaisさんのパフォーマンス調整のスライドを参考に十分余裕を持った設定値にしないとねー。

2015-02-07 10:51:28
t0r0 @t0r0_twit

昔に実験したけどiptablesも行数多くなると結構CPU持っていくのでコア1個はiptablesに持っていかれることを前提でqps考えたほうがよかったかな?ちうても大手プロバイダじゃなきゃこないようなqpsでたから気にしなくてもいいとも思うけど。

2015-02-07 11:01:26
浸透いうな🍥 @tss_ontap

@otsuka752 あと権威サーバが応答しないと、今度はキャッシュサーバ側が辛くなるという問題ががが

2015-02-07 11:02:53
otsuka0752 @Dublin/Ireland 🇮🇪 @otsuka0752

@tss_ontap ですよね。今回は権威側だけで。大文字小文字混ざった時を考え中です。

2015-02-07 11:16:39
t0r0 @t0r0_twit

ホワイトリスト管理はRPZも同じで *.example.co.jpのブロックを書いてしまったら ns.exapmle.co.jpやhttp://t.co/SKndJS0DJnの許可を個別に記述が必要。 RPZのファイルも結構汚れるので削除しやすい方法入れないとキビシ

2015-02-07 11:17:45
浸透いうな🍥 @tss_ontap

@otsuka752 否定応答専用サーバかワイルドカード応答専用サーバにリダイレクトするとかどうでしょうね。

2015-02-07 11:19:42
t0r0 @t0r0_twit

ただね、水責め来たらキャッシュはいいけど権威はiptablesで止めてどうにかなる量じゃないからぐぐるに魂売るかあきらめるかの判断のほうがいいよw

2015-02-07 11:23:32
otsuka0752 @Dublin/Ireland 🇮🇪 @otsuka0752

@tss_ontap はい。あと*.www.example.jp は DROP できても、*.WwW.RaNdOm.Jp がすり抜けるのもつらいです。全パターンは...

2015-02-07 11:27:15
otsuka0752 @Dublin/Ireland 🇮🇪 @otsuka0752

@t0r0_twit ipset 使うと行数減らせるし、パフォーマンスも落ちにくいそうです。自分では試してないですが。 http://ipset .netfilter .org/

2015-02-07 12:13:52
t0r0 @t0r0_twit

キャッシュ側でやれる事はできる限り権威側に無意味な問い合わせを減らすかって所までなんだよなぁ。 iptablesの方法で穴があってもやればその分後ろに抜ける量が減るわけでやること自体は無意味じゃないし。

2015-02-07 12:31:40
t0r0 @t0r0_twit

さっきのhex-stringのなにがいいかというと--fromの部分を変更することで ????,examle.co.jpは許可するけど *????.example.co.jpはブロックすると表記できること。 これで少なくとも量のコントロールができる。

2015-02-07 13:01:42
(🍥) @hdais

DNS水責め攻撃が面倒なのは、xSPのDNSキャッシュサーバが直接牙をむいてくるので、ブロックがより困難(ブロックすると攻撃者の目的だったDoSを自ら成立させることになる)とこだなぁ。キャッシュサーバ側も堪らず当該ドメインのクエリをブロックするのでそれもDoSになっちゃう

2015-02-07 17:48:33
otsuka0752 @Dublin/Ireland 🇮🇪 @otsuka0752

bind の RPZ (Response Policy Zone) 機能はほとんどの場合 cache サーバで使う...みたいに書いてある。authoritative サーバの管理者は、世の cache の RPZ 対応を待つの? 狙われたら諦めるしかないの?

2015-02-09 17:58:28
otsuka0752 @Dublin/Ireland 🇮🇪 @otsuka0752

逆引きで水責めって、観測されてるんだろうか?

2015-02-09 18:07:09
やぎ(syagi) @linus404

@otsuka752 secconで森下さんの講演聴いてから気になって調べてるんですが、同じ結論に至り、気になって仕事がてにつきません

2015-02-09 18:08:52
前へ 1 2 ・・ 5 次へ