現職においてMonolithアーキテクチャからMicroservicesアーキテクチャへの移行とその基盤の構築に関わって2年近くが経った.未だ道半ばであるがこれまでの経験や日々のインプットをもとにいろいろ書いておこうという気持ちになった.本記事ではそもそもMicroservicesアーキテクチャとは何かを整理し,なぜやるべきか?・なぜ避けるべきかを整理する. Microservices? Microservicesアーキテクチャとは「Single purpose,High cohesion,そしてLoosly Couploedなサービスを組み合わせてシステムを構築する」アーキテクチャ手法である.それぞれの原則をまとめると以下のようになる. Single purpose: 一つのことに集中しておりそれをうまくやること Loose coupling: サービスは依存するサービスについて最小限の
最近知ったんだけど、かなり便利くね?もしかして常識? http://ngrep.sourceforge.net/ http://www.atmarkit.co.jp/fsecurity/rensai/securitytips/027ngrep.html installにはlibpcapがいる。 http://downloads.sourceforge.net/libpcap/ もしくはepelリポジトリからyumでinstallする。 # yum install -y --enablerepo=epel ngrep 追記 今更知ったけど、ASCIIで表示するだけならtcpdump -s0 -A だけで良いので(ngrep -W byline とほぼ同じ?)、grep 的なことしないならtcpdump で十分な気がする。 man tcpdump -A Print each packet (m
Microsoft Azure、DNSの設定変更に失敗して全世界的にサービス障害。日本は十連休中だったのが不幸中の幸いか Microsoft Azureは、2019年5月2日午後7時43分から午後10時35分まで(日本時間 2019年5月3日午前4時43分から午前7時35分まで)の約3時間、DNSの名前解決に問題が発生。 ほぼ全世界的に、Microsoft AzureをはじめOffice 365/Microsoft 365やMicrosoft Dynamicsなど同社サービスに対する接続ができなくなるという大規模な障害を起こしました。 この大規模障害の原因は、同社サービス用のDNSのメンテナンス作業のミスが原因だったと発表されました(中間報告の段階では既存のDNSからAzure DNSへのマイグレーション作業に失敗したと報告されていました。現在の報告では計画メンテナンス作業での失敗だとされ
はじめに 昨年から DNS over TLS (DoT)、DNS over HTTPS (DoH) にまつわる動きが急速に活発になっています。 DoT は2016年に RFC7858 が出てしばらくは大きな動きはありませんでしたが、2017年11月にサービス開始した public DNS である Quad9 (9.9.9.9)、昨年4月開始の Cloudflare (1.1.1.1)が相次いで DoT に正式対応し、遅れて今年1月には Google Public DNS (8.8.8.8) も対応しました。クライアント側としては昨年8月リリースの Android 9 “Pie” が DoT に対応しています。 DoH は仕様の標準化より実装の方が先行しています。Cloudflare は DoT だけでなく DoH も昨年4月のサービス開始当初からサポートしています。Mozilla Fire
http.ListenAndServe() を使ったサーバーをプロダクションに投入していたのですが、海外からのアクセスが多くなったころにリソースリークが発覚しました。 ListenAndServeのドキュメント ListenAndServeのソースを見るとこうなっています。 func ListenAndServe(addr string, handler Handler) error { server := &Server{Addr: addr, Handler: handler} return server.ListenAndServe() } addr, handler 以外は http.Server のnil値がそのまま使われている事がわかります。この構造体にはいくつかのタイムアウト値がありまが、nil値で初期化されるとタイムアウトなしの状態になってしまいます。 Server型のドキ
Cerevoアドベントカレンダー2016、最終日です。といっても、どうやら大トリは弊社代表が年末までに昨年のネタの更新版を出すようなので、私はトリらしい何かとかでもなく、テックブログらしく技術ネタを書きたいと思います。 まつけんです。CTOをしています。今日はハードはほぼ関係ない、ソフトというかUDP/IP、TCP/IPな世界の話です。IPレイヤーより上でのお話です。 まず、NATと言われて動作を想像できる方どれくらいいるでしょうか。今や、ルータという名でNATが動作する機器は各家庭にほぼ設置されているのではないかと思いますし、携帯向けネットワークも昨今はLarge Scale NATもしくはCarrier Grade NATの導入という形でちょっと話題になったようにNATが導入されています。そんな世界では、グローバルIPが直接振られるのではなく、ルータやキャリア側でローカルIPからグロー
AWS EC2環境でのDNS Rebindingについて検証したので紹介します。 まずは、「前回までのおさらい」です。先日以下の記事でSSRF攻撃およびSSRF脆弱性について紹介しました。 SSRF(Server Side Request Forgery)徹底入門 この記事の中で、以下のように紹介しました。 ホスト名からIPアドレスを求める際にも以下の問題が発生します。 DNSサーバーが複数のIPアドレスを返す場合の処理の漏れ IPアドレスの表記の多様性(参考記事) IPアドレスチェックとHTTPリクエストのタイミングの差を悪用した攻撃(TOCTOU脆弱性) リクエスト先のWebサーバーが、攻撃対象サーバーにリダイレクトする 上記のTOCTOU(Time of check to time of use)問題は、DNSの名前解決の文脈ではDNS Rebindingとも呼ばれます。 DNS R
少し前のことになりますが、2015年12月1日にh.root-servers.net(H-Root)のIPv4/IPv6アドレスが変更されました。DNSが持っているヒントファイルを更新しなければならなくなったわけですが、なぜ更新しなければいけないか、結局理解できていなかったので調べてみました。 ヒントファイル DNSが持っているヒントファイル(named.root)をご存知でしょうか。ルートDNS13台の名前とIPが紐づけられているあのファイルです。DNSは、最上位のルートサーバから順に名前を聞いてまわる仕組み上、ルートサーバの情報だけはDNS自身が持ち合わせておかないと問い合わせをすることすらできません。だから、DNSサーバは世界に13あるルートDNSの情報をヒントファイル内に持ち合わせています。 named.root https://www.internic.net/domain/na
DNS による名前解決のオーバヘッドを解決するために DNS キャッシュサーバを導入しても、その上流や権威サーバに対して問合せが頻繁にある場合、応答の遅延が発生する状況があります。 DNS による名前解決がボトルネックとなっている環境のチューニングについて考えるとき、キャッシュサーバのキャッシュにあるレコードの TTL が切れる前にキャッシュサーバが自動的にレコードを更新してくれる機能があれば解決しそうです。 多くのプロバイダでフルリゾルバとして導入されている unbound には prefetch の機能があります。 prefetch という名前からして、キャッシュにあるレコードの TTL が切れる前に unbound 自ら自動的にレコードを更新してくれそうです。 prefetch: <yes or no> (1.4.2-) yesのときには、キャッシュを最新に保つために期限切れにする前
さくらのナレッジをご覧の皆様、こんにちは。 当社でバックボーンネットワークの設計や運用、対外接続の交渉などを担当しております山口と申します。 バックボーンネットワークの設計や品質向上の取り組みについて連載にてご紹介していきたいと思います。初回は 石狩・東京・大阪 の3エリア間の新ネットワークの導入についてお伝えします。 はじめに 2019年1月中旬に、当社バックボーンネットワークの東京~大阪間を200Gbps(100Gbps x2)に増速、今まで直接の接続が無かった大阪~石狩間の100Gbpsネットワークの新規構築を行いました。また、これにあわせて単純に回線の増強を行うだけでなく、東京・大阪・石狩の3エリア間の接続をMPLSを利用した新バックボーンネットワークへ切り替えました。 今までのエリア間ネットワークの問題点 当社では、石狩、東京、大阪の3エリアにあるデータセンターで様々なサービスを
なぜ今までのDNSでは問題があるのか インターネット上の通信の多くは、ブラウザを利用したウェブによるものです。 セキュリティ向上のため、GoogleやFireFoxといった大手ブラウザベンダーが平文通信であるHTTPから暗号通信であるHTTPSへの移行を推奨し、盗聴・改竄・なりすましといった問題を解決することが出来ます。 しかしながら、そのHTTPS通信をする前のDNSによるドメイン解決は暗号化されておらず盗聴でアクセスするホスト名を把握される、なりすましで偽の応答を返されるといった可能性があります。 それを防ぐための方法の1つが、DNS over HTTPSです。 DNS over HTTPSとは 今までDNSサーバ(フルリゾルバ)の(主に)UDPポート53番に対して行われていたDNSによる名前解決を、TCPポート443番に対するHTTPS(HTTP/2 over TLS)通信上で行うプ
SNI とは 一つのIPアドレスと一つのTCPポートで、複数のWebサイトをホスティングする技術の一つに、virtualhostがあります。 これは、HTTPリクエスト内で指定するドメイン名から、同じIPに対するアクセスをドメインごとに振り分ける機能です。 たとえば、以下のコマンドを実行すると、こんな出力がされます。 (ちなみに、vがリクエストヘッダの表示、 Iがボディの非表示のオプションです。) $ curl -v -I example.com * Trying xxxxx... * TCP_NODELAY set * Connected to example.com (xxxxx) port 80 (#0) > HEAD / HTTP/1.1 > Host: example.com > User-Agent: curl/7.62.0 > Accept: */* > …(省略) 真ん中の
補足 この記事は旧徳丸浩の日記からの転載です。元URL、アーカイブ、はてなブックマーク1、はてなブックマーク2。 備忘のため転載いたしますが、この記事は2007年11月26日に公開されたもので、当時の徳丸の考えを示すものを、基本的に内容を変更せずにそのまま転載するものです。 補足終わり 楽天テクノロジーカンファレンス2007にて、カーネギーメロン大学日本校の武田圭史先生の講演を聴講して、DNS Rebindingの説明がとても分かりやすかったので、ここに再現を試みる(文責は徳丸にある)。 DNS Rebindingとは DNS Rebindingは、DNSの返すIPアドレスを巧妙に変化させることにより、JavaScriptやJavaアプレットなどのsame origin policyを破り、インターネットからローカルネットワーク(通常外部からはアクセスできない)などに対してアクセスする手法
用語「DNS Rebinding」についてDNS Rebinding (でぃーえぬえす りばいんでぃんぐ)話題 : セキュリティ DNS の情報を再読込させることで「同ドメインだが IP アドレスが違う」という状況を作り出し、same originポリシーを破ろうとする攻撃手法。攻撃者は有効なドメイン名をもち、その DNS サーバを管理している必要があります。 たとえば、攻撃者が bakera.jp ドメインを管理していて、218.219.246.132 という IP アドレスを持っていたとします。そして、以下のようにしておきます。 攻撃者は、自身の管理するDNSに、bakera.jp → 218.219.246.132 という情報を登録しておく。このとき、TTLの値を非常に短いものにしておき、情報がキャッシュされないようにしておく。攻撃者は、スクリプトを含む罠のWebページを http:
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く