Movable Type のセキュリティ対策、本当にできていますか?

そもそもバレるのはなぜなのか ここでは、攻撃者の観点に立って考えたときに、 Movable Type を使っていることがわかる理由を記載します。 そもそも URL がよく使われるものが多い( mt や movabletype 、 cgi-bin など) トラックバックやコメントなどの実行ディレクトリから把握されてしまう 同じドメイン上で運用されている事例が多い 「言われてみれば」ということが多いですが、構築するときには意外と安易に考えてしまいます。 Movable Type の安全性(セキュリティ)について | CMS プラットフォーム Movable Typeにも記載されていますが、「CMS と公開サイトのパスを分離可能」となっている通り、セキュアに構築するためには、 CMS と公開サイトを分離することで受けにくくなる、と公式サイトにも記載されています。(人によっては言い訳、と言われそうですが) どう対策するのか なぜ攻撃されるのか、バレるのか、ということはなんとなくわかったと思います。これらの前提から、どのように対策すべきなのかを考えたいと思います。 ただし、中には新規構築する場合のみ有効である内容もあるため、すべてがすべてかんたんにできる、というわけではないです。 URL をわかりにくくする Movable Type をインストールしているディレクトリ自体をわかりにくくすることは有効な対策ではないにしても、アクセスさせにくくするための手段としては有効です。 「大丈夫ですかね」と聞かれる多くのウェブサイトは、冒頭に挙げた文字列が使われていることが多いです。サーバ側の制約であったとしても、 Movable Type の URL の文字列を変更することによって、攻撃者から推測させにくくする、という効果はあると思います。 ただし、これは緩和策であり、有効的な対策ではないことはしっかり認識させておくことが大事です。 ドメインを分ける そもそも、 Movable Type を導入しているウェブサイトの下でなくても動くのであれば、ドメインなどを分けてしまうのもひとつ手だと思います。 これも有効的な対策かと言われると、微妙ですが、表から見えにくい、という意味では一定の効果があると思います。結果的には特定される可能性があるにしても、ランダムな文字列など工夫をおこなうことで、「わかりにくくする」ということはできると思います。 ただ、 URL をわかりにくくするよりかは対策できていますが、同様に有効な対策かと言われると微妙です。 Path を指定して IP アドレス制限や Basic 認証をかける Movable Type が長く開発されているシステムであるからこそ、 URL がよく使われるものが多かったりするため、 Movable Type が実行できるディレクトリに対して、 IP アドレス制限や Basic 認証といった、 Movable Type のシステムにアクセスする前段階での対策は非常に有効だと考えます。...

2021-12-22 · Masaki Osugi

「絵で見てわかるマイクロサービスの仕組み」を読んだ

はやりのマイクロサービスの仕組みについて図解で理解できる マイクロサービスやサーバレス、 Kubernetes などワードごとで知っていても、「どういうものなのか何となく分かるけど、イメージつかない」ことが多いです。この本では、以下の要素が掲載されていました。 マイクロサービスを構成するために必要な要素(コンテナ化など) 開発スタイルや最新の動向 コンテナ化などは Visual Studio Code を使っていると開発環境のコンテナ化などでもあるように、最近のトレンドのひとつであると感じます。ただ、運用はオンプレや仮想マシン上に構築が多いのではないでしょうか。 運用するにあたって、なぜそれらの技術が必要で、どのように運用するのが良いか、ということが一冊読めばある程度理解でき、かつ利用している技術のトピックが掲載され地得るので、これから構築する人にとっては良い本であると思いました。 利用している技術のトピックやメリット・デメリットも掲載されている ブログ記事などでもそうですが、その技術を採用することによるメリットは書いてあっても、デメリットが書いていないこともあり、結果的に「この技術を採用したけど、この部分問題だよね」となることがあります。この本では、ベンダーロックインや運用保守の観点からのことも書かれてあり、どのアーキテクチャを採用するにしても、どこを諦めるか、ということが判断しやすいと感じました。 開発手法やサービス・システム間連携はこれからの開発に通ずる この本では、マイクロサービス流に開発するために開発手法( GitOps や DevOps )やシステム間の連携をするためにどのような方法がベスト・プラクティスであるか、といったようなことも取り上げられていました。 しかし、新規サービスの場合はマイクロサービスで開発するよりも、従来の All in one なイメージで開発を行ったほうが良いパターンもあります。しかし、将来的にサービスの分割や共通化をすることを考えることもあるかと思いますが、今の不確実な世の中では仕様変更や見直しなども多く、結果としてそれが正しいとは言いにくい世の中です。 その中で、以下に手戻り少なく開発を行うための方策でやメリットが書かれています。また、それらと一緒にマイクロサービス化を行うことによって、結果的に時間の短縮や手戻り工数の削減などがわかりやすく図と一緒に解説されています。 これからの開発には必要なトピックがまとまっている これからの開発を行っていく上で、どのようなサービス(システム)にしていくのか、チームを作っていくのかを考えていく中で、ツール面ややり方など幅広くわかりやすい説明と図がセットで書かれており、システム開発をこれから始めよう、という人にも非常に向いていると思いました。 また、システム運用をしている人で、今のサービス運用方法であったり、リプレースをしたいという人が知るには良い本ではないかと思います。

2021-12-04 · Masaki Osugi

Let's Encrypt のルート証明書問題と対戦した

Let’s Encrypt のルート証明書が 10 月 1 日に変更になる(大本が失効する) 騒ぎに何故か巻き込まれたのですが、極稀に見る古い環境、あると思います。例えば昔ながらの CentOS 6 を使っている環境(昔の VPS ブームとかですかね…)とかが代表的な一例かと思います。 式年遷宮をしないといけないとわかっていても運用してしまっている例もあると思いますが、移転するまでの時間稼ぎを含めて対応する例が多いかと思うので、メモ程度に記載します。 ...

2021-10-04 · Masaki Osugi

オープンソースカンファレンス 2021 Online/Hiroshima を開催しました

今年のハイライト 全 6 トラック 30 セッションを実施した ※ 独自企画を含む 広島地域の独自規格としては学生 LT とキャリアセッションなどを執り行った オンライン開催に慣れてきたこともあるが、運営側はまだなれていないと感じる場面も OSC 広島の開催、 2 年目のオンライン OSC 広島を今年も開催しました。事務局から 「 2021 年はフルオンラインで執り行う 」 ということが発表されていたため、迷うことなくオンラインで実施しました。 オンライン開催である程度 OSC に関わっているメンバーが広島は若干多い(といっても数名ですが)こともあり、ある程度当日の進め方など含め、かなり余裕を持った状態でキックオフを含め開催しました。リアル開催でも半年前にはキックオフを開催しているため、実際問題リアルのときと同じ、なのですが。 ※ 昨年は 7 月に開催し、9 月に行うという超短期スケジュール オンライン開催を行いましたが、今年は中四国同時開催ということもあり、不慣れな場所もあったのかな、と思っています。若干レスが遅かったりという場面があったのは事実であると思います。ただ、オンライン勉強会は何度かやらないと慣れないこともありますが、当日、人数が把握できなかったりと飛んでいくことがほぼほぼなかったので、トータルで見たときには良かったと思っています。 独自企画はもう少し早めの決断が必要だった これは反省ですが、独自企画を締め切りドリブンで進めた結果、「ちょっと間に合わない」ということがわかったこともありました。 事務的にはこんな感じのスケジュールなのですが、 8 月 XX 日 企画書締め切り 8 月 YY 日 スケジュール公開 9 月 18 日 OSC 広島開催 これに間に合うように動いていたので、企画書締め切り前には企画の募集など含めたフォームなどはある程度作っていかないとマズいなぁ、と改めて思わされました。 こんなこと言っているけど、多分来年もやらかす自信があるので、プレフォーム的ななにか作ったほうがいいのかも、とか思ったりしています。(最大 ○ コマなどふんわりした状態で) 当日のノリが良かった OSC オンラインの運営は昨年行ってきていることもありますが、今年は打ち合わせをあまりせず、当日のノリで決めた部分がいくつかありました。 基本的に必要最低限の打ち合わせだけを行うようにしたこともありますが、結果として打ち合わせをしないことで裏で事前の回答合わせなどが出なかったので、最終的には良かったのではないかなぁと思っています。 コミュニケーションツールなどは多少の課題も 今年はコミュニケーションツールびっくりするほどあり、結果的に途中でどこに連絡したのかが、わからん、状態になりました。ちなみにメインは Slack なのですが、関係者に連絡が付きやすいツールを選んで使っていたらこんな事になっていました。 Slack Messenger Discord 普通にキツいというか、何を連絡したのかがよくわからない状態に。当然といえば当然なのですが、ある程度コミュニケーションツールは統一しておく必要があると色々と思わされていますが、ここでも思わされるとは…という結果になりました。 ただ、意思疎通をするには仕方ないので、このあたりを上手くまとめていくのも実行委員長とかリーダの仕事、なのかなぁと思ったりしました。 今年は流石にひとりでやりすぎた 色々とやりすぎたのもあるのですが、結局のところ、まとめたりと大変だったので、来年からは色々と振れるようにしたいと思っています。...

2021-09-26 · Masaki Osugi

ノートパソコンの電源アダプタを複数用意することから効率化を考えた

生産性向上のための環境整備2020 【PR】 Lenovo Advent Calendar 2020 13日目の記事を担当する @nasa114 です。 エンジニアの生産性といえば、キーボード!マウス!など色々と語りだすと酒を呑み交わすぐらい時間が経過しそうなこともありますが、今年に入って電源アダプタを複数用意し、環境を整えたら生産性が上がった(ような気がする)ので紹介したいと思います。 ...

2020-12-13 · Masaki Osugi

オープンソースカンファレンス 2020 Online/Hiroshimaを開催しました

OSC広島の開催をどうするか正直悩んだ 新型肺炎が流行している中、OSC広島の開催をどうすべきなのか、本当にすべきなのか、ということが非常に最初から最後まで悩んでいました。例年、(とくに)展示ブースが盛り上がっており、今では見ることのできないコンピュータや、近郊の学校から研究内容など様々なバラエティに富んだ展示がありました。 『OSC広島といえば展示がすごい』といわれるまでであり、直前までオフラインでの開催ができないか、ということを検討していました。しかし、広島のコミュニティの活動が少し下がっているなかで、(全国的に毎月開催されている)OSCをきっかけにオンラインでも広島の勉強会などが盛り上がっていくことができれば良いな、と思い開催することにしました。 オンラインならではのリハーサル、直前のトラブル 例年何かしらの接続機器のトラブルなどありましたが、事前に講師の方に時間を頂いてリハーサルを行うことでスムーズな運営ができたように思います。しかし、直前になり、『LTのドラがならない』ということがわかり、焦って準備しました。 結果的に、私がドラを鳴らす事になったのですが、普段使っているAnker PowerConfのマイクがうまく入力デバイスとして反応しない、マイクの入力が機械的な音声など最後まで機材の調整を行っていました。 また、当日は万全だと思っていた参加環境も、実行委員長ということもあり、全セッションを閲覧しようとすると、回線スピード不足やモニタ数が不足してしまいました。モニタに関しては物理PCを増やすことでなんとかなりましたが、回線スピードについては有線LANに切り替えて対応しました。配信面では問題なく映っていたように見えますが、来年セッション数が増えたりすることなども考えられる、ある程度余裕を持った構成にしておきたいと思いました。(とくにPC) とはいいつつも、オンライン開催の良さも知ることができた 今年は通常の開催と比べ、規模を若干縮小して行うことにしました。3セッションで開催しましたが、ほとんどセッションで通常の開催よりも数倍以上の参加数があり、結果としてよかったのではないかと思っています。 これは距離の壁や時間の壁(一部でもYou TubeやZoomから参加することができる)というものがなくなったことや、参加するハードルが低くなったからではないかなと思います。参加しながら作業することもできることもありますが、隙間時間でもスマートフォンから参加できることなど含め、主催側になって、オンラインの良さを知ることもできました。 しかし、聴講型のセッションはオンラインのほうが快適である事に対し、参加型のセッションを含め考えたときにはオフラインのほうが良いのではないか、ということもわかりました。これらはいいところ、悪いところ、と出てくるのは仕方ないことであると思われるため、どちらのほうが適しているのか、それらを融合させることが重要であるのかな、とも思いました。 最初に主催/スタッフ参加するオンライン勉強会はもっと小さくても良い 私は流れで3トラックあるような勉強会を主催しましたが、最初はもっとコンパクトでも良いと思いました。もちろん、このレベルを経験すると、『ある程度自分の環境にとってどの点に問題か』ということがわかります。しかし、基本的にそこまでは不要であることも事実であるため、もっとスモールな勉強会でもいいのかな、と思います。 アフターコロナになるにつれ、徐々にオフラインの勉強会なども開催されていくとは思いますが、私達自身、オンラインの勉強会にもなれていく必要があるとは思いました。同時に、リスクを考えつつ、色々とやっていく必要があるような気がします。

2020-10-10 · Masaki Osugi

SSHの認証に関するセキュリティ

今回の環境、背景 今回設定した環境は若干古いCentOS 6の環境です。なお、この先の具体的な内容はOSによって異なる箇所もあるため、詳細な情報を確認した上で行ってください。 CentOS 6 OpenSSH 5.3p1 今回はSSHの設定ファイルを触るのにSSH経由で行いましたが、別の方法で接続したほうが良いと思います。VPSサービスであればコンソールが提供されていると思うので、そちらから行うのがオススメです。 また、この環境に関して、ここでは記載していませんが、当初からSSH v1などは無効化済みの環境です。経緯としては機械的な脆弱性診断を行った結果、設定漏れなどが発覚した箇所を修正している感じなので、深くは調べていません。焼け石に水ではないですが、リプレース計画も出ているということもあり、基本は対症療法です。 やったこと 今回やったことは以下の2点です。 暗号化方式を見直し MACアルゴリズムの指定 暗号化方式の見直し まず、現状の設定を把握する必要があるため、設定ファイルである/etc/ssh/sshd_configを確認してどのようなデフォルト値が設定されるのかを確認します。Apacheなどであればほぼ書かれていることもあるため、見ていましたが標準では記載がされておらず。 色々と調べているうちに、manコマンドを利用して確認すれば良い、ということが発覚したため、man sshd_configで確認します。 開いた後は慣れ親しんでいる(だろうと思われる)Viのコマンドと同じような形なので、/Ciphersで検索を行います。今回の環境では以下のものがデフォルトで指定されているようでした。(抜粋) $ man sshd_config Ciphers Specifies the ciphers allowed for protocol version 2. Multiple ciphers must be comma-separated. The supported ciphers are “3des-cbc”, “aes128-cbc”, “aes192-cbc”, “aes256-cbc”, “aes128-ctr”, “aes192-ctr”, “aes256-ctr”, “arcfour128”, “arcfour256”, “arcfour”, “blowfish-cbc”, “[email protected]”, and “cast128-cbc”. The default is: aes128-ctr,aes192-ctr,aes256-ctr,arcfour256,arcfour128, aes128-cbc,3des-cbc,blowfish-cbc,cast128-cbc,aes192-cbc, aes256-cbc,arcfour,[email protected] ここから問題のあるSSHの暗号化方式を引き算して設定を実施。適当な箇所に追加しましたが、基本は一番下で問題ないと思います。 Ciphers aes128-ctr,aes192-ctr,aes256-ctr MACアルゴリズムの指定 暗号化方式同様、現状の設定には記載がされていなかったため、同様にmanコマンドで確認を実施。当初、脆弱性のエラー文で調べていたのですが、こっちは何もヒットせず…。(日本語) $ man sshd_config MACs Specifies the available MAC (message authentication code) algo- rithms....

2020-06-07 · Masaki Osugi

鶏油を作ってみたら思った以上に消費しない

鶏油は本当に消費しないのか 鶏油は料理を作る中でさまざまなものに利用できます。たとえば、オムレツやチャーハン。最初に鶏油をひき、その後に炒めたりすると、全体的にふわっと作ることができるので非常に美味しいです。 作り方はかんたんで、鶏油をカリッとするまでひたすら焼いていき、出てきた油を集めていくという繰り返しです。焼いたものはせんべいのようになるので、お酒のアテにもなるのでオススメです。 それ以上に鶏油を作る、という工程に意味がある 鶏油を作る工程は非常に単調かつ油が出るまでひたすら焼き続けるだけです。もちろん、ムダな時間を過ごすということもありますが、この工程を過ごしている中で無意識のうちにぼっとしていることが重要です。 普段から、私達は何かと頭を使うことが多いですが、どこかで休む必要があるとも思っています。そのための行動としてはもっとも良いのではないかと思っています。

2020-04-04 · Masaki Osugi

リモートワークをすすめる中で必要な環境と整え方

2020年3月、いわゆるホワイトカラーの職種の人達はなるべくリモートワークを行う状況になっています。もちろん、どうしてもオフィスに行って仕事を行う必要がある人も多くいると思います。私は自宅でも(コーディングなど自分が使うためのサービスを開発するために)同じようなことをしていますが、その上で溜まっているノウハウを公開します。 ...

2020-03-29 · Masaki Osugi

Hugoのアップデートで画像などのHTMLが無効化された

Hugo v0.60.0以降では標準でHTMLのレンダリングを無効化する機能が追加されました。意図しないコードを実行され、ユーザに出さないための対応だと思われます。 しかし、同時に他システムから移行したサイトの場合、HTMLタグが残っていることもあるためHTML出力を有効にする必要があります。少し戸惑ったので対応した内容をメモ。 ...

2020-02-11 · Masaki Osugi