12 ポイント 投稿者 mirseo 2025-09-11 | 34件のコメント | WhatsAppで共有

開発をしていると、セキュリティ上の理由で特定のサイトへの http/https は許可されていても、SSH や RDP は開放してもらえない環境があるので、
作ってみました。

NotionSSH というプロジェクトで、Notion に !(docker ps) のように入力すると、

そのページを監視しているマシン上で shell として実行し、結果を返すシンプルな Rust プログラムです。

まだ初期バージョンなので、バグが多いかもしれません。
ぜひ使ってみてください!

34件のコメント

 
mirseo 2025-10-05

返信が遅くなってしまい、申し訳ありません!
お恥ずかしい限りです。オープンソースを目的としてきちんと最初から開発したプロジェクトが注目されるのはうれしいことですが、個人のメールやそのほか複数の外部SNSなどであまりにも多くの指摘を受けて、怖くなってしまったのだと思います。

その結果、性急に3日間プロジェクトを非公開にしていました。私の軽率な判断でがっかりさせてしまい、本当に申し訳ありません。

今回のことは良い経験として受け止め、これからもオープンソースプロジェクトを改善していきます。ありがとうございます!!

 
seokzoo 2025-09-13

guacamole というリモートデスクトップゲートウェイもあります(https://guacamole.apache.org/)

 
mirseo 2025-10-05

返信が遅くなってしまい申し訳ありません!
以前使ったことがあったのですが、VNCの特性上速度が遅く、遅延の影響をかなり受けていました。
そのため、代わりになる新しい方法を考える中で作ることになりました。ありがとうございます!!

 
thinkpad 2025-09-12

2025 | RustベースのSSHブリッジ、NotionSSH (2.0) を開発 (https://github.com/mirseo/notionSSH) ← 未サポートで削除済み

と書かれていますね……。こちらに返信していただくか、ニュースを削除したほうがよさそうです。

 
mirseo 2025-10-05

ご返信が遅くなり申し訳ありません!
最近、セキュリティの問題について多くの指摘を受け、該当リポジトリの公開を継続すべきかどうか
深く悩む中で、事前の告知なく非公開に切り替えていました
私の軽率な判断でご失望させてしまい、本当に申し訳ありません。今後さらに成長する開発者になれるよう努めます。ありがとうございます。

現在のところ、追加開発の日程を調整しており、再び公開に切り替えました。ご意見ありがとうございます!!

 
crawler 2025-09-12

複数の開発者の方々がセキュリティやコツについて話してくださっていて、コメントも27件を超えている以上、この文章はもはや自分一人だけのものではないと思います...

とはいえ、投稿削除ボタンがあるなら本人の自由ではありますよね(笑)
自分では投稿したことがないので、削除できるのか気になります

 
mirseo 2025-10-05

返信が遅くなってしまい、申し訳ありません!
実は投稿の削除も検討していたのですが、削除ボタンが見つけられず、そのまま放置されていたようです……
申し訳ありません。
皆さんが意見をくださった以上、私の投稿ではあっても、ひとりであまりに性急に決めてしまったように思います。

それから、怖くもありました。コミュニティに触れ始めたばかりのところで、複数のプラットフォームやメールを通じて、このプロジェクトはセキュリティリスクが大きすぎると繰り返し指摘されていて……精神的にかなり動揺していました。申し訳ありません。

 
kaydash 2025-09-12

なぜリポジトリにアクセスできないのでしょうか

 
mirseo 2025-10-05

返信が遅くなってしまい、申し訳ありません!!
最近、セキュリティ上の問題について多くの指摘を受け、このリポジトリを公開し続けるべきかどうか真剣に悩むようになり、
事前のお知らせなく非公開に切り替えていました。
私の軽率な判断でご期待を裏切ってしまい、本当に申し訳ありません。今後はさらに成長する開発者になれるよう努めます。ありがとうございます。

 
cocofather 2025-09-12

22番ポートを開放できずにSSHが使えないのであれば、SSHポートの変更やCloudflare Tunnelを使う方法もあります。

 
mirseo 2025-09-12

その通りです!
ただ、私が作業している場所は ssh プロトコル自体がファイアウォールで遮断されているんです!
Cf tunnel と Tailscale も試してはみたのですが、規定違反になる可能性があると言われたので、安全に外部シェルを使っています :) (規定について問い合わせたところ、学校のセキュリティチームでは 80、443 の http/https のみがインバウンド/アウトバウンド承認とのことでした)

 
mirseo 2025-09-12

正確には承認は可能ではあるのですが、手続きが煩雑で関連規定も複雑なので、このような方式を作りました。

 
regentag 2025-09-12

私がセキュリティチームなら、これを知った瞬間に即座にブロックすると思います……
手順があり承認も可能なのに、それでも迂回するならなおさらです。

 
kunggom 2025-09-12

これはシャドーITと呼ばれています。

 
mirseo 2025-09-12

そうですね、そういうこともあり得ますね。
でも、これを作った目的は実際に使うためというより、「こんなものがあったらどうだろう」と思って作った部分のほうが大きいんです!

なので、サイドプロジェクトとして作ってみました!!

 
ifmkl 2025-09-11

厳密に言えばRCEですよね。かなり危険です。これはセキュリティのための検証がないということではないですか? サーバーで実行されるエージェントが、外部ページのコマンドを定期的に実行する仕組みですよね。その際、外部ページを検証なしで無条件に信頼することになります。Notion APIを使うとしても……うーん、危険ですね。

 
mirseo 2025-09-11

セキュリティ機能を追加しました!

  1. CA 検証 - 3 ステップ構成で、1. CA 証明書チェーンの検証、2. DoH DNS 検証(cf、google)、3. 証明書ピンニング(公開鍵検証)

  2. ACL を追加(ユーザーのメール権限アカウントごとのコマンド使用権限制御を追加 + チームベースの権限制御を追加)

  3. Allow にないコマンドはデフォルトでブロック

 
mirseo 2025-09-11

うーん……実際その通りです
今はまだ初期バージョンなので、今後のバージョンではアカウント名に基づいて実行をブロックする機能を追加しようと考えています
(NotionAPIで取得したアカウント名とシステム環境変数を使って、実行可能なアカウントを制限し、権限レイヤーを設けるつもりです!!)
セキュリティ強化が中心になりそうです!!

 
skageektp 2025-09-11

ちょっとよく理解できていないのでお聞きしたいのですが、

  1. コマンドを実行するリモートコンピュータが定期的に Notion を監視して読み取り、実行する仕組みなのでしょうか?
  2. もしそうだとすると、SSH とは関係のないプロジェクトなのでは…?
 
mirseo 2025-09-11

それ以外では、SSH自体が安全なシェルアクセスを目的としていると考えているので、この方式を使えばシェルアクセス自体は安全ですし、(サーバー - Notionサーバー - ユーザー)という構造なので SSH という名前を付けました!

 
mirseo 2025-09-11

うーん、そうですね。実はもともとは鍵交換ベースのプロジェクトだったのですが、開発過程で Notion Page を利用して読み取る方式に方向転換しました。
というのも、ユーザーに鍵交換を要求して認証する方式は、実装難易度の面でもそうですし、Notion に適していなかったからです。
(1.0 非公開の初期バージョン - このバージョンは鍵交換方式で Discord 向けだったのですが、不便で私自身が使わなくなってしまいました。パスワードの性質上、Notion で公開するのも少し難しかったです)
良いご意見ありがとうございます!プロジェクト名は今後変更することになるかもしれません。

 
beoks 2025-09-11

面白いプロジェクトですね。Notionを選ばれた理由はありますか?

 
mirseo 2025-09-11

はい! 実際、実務でNotionをよく使っていると聞いていましたし、私の場合はデータを載せて整理する用途で使っているので、Notionを選びました。
Discord、メール、Slackは、コードブロック対応の面でAPI利用やモニター環境では不便そうだと感じたため、Notionを使ったという理由もあります。

 
mirseo 2025-09-11

それ以外にも、実行結果の共有や、会社を起点に考えるとデザインチームなどのサポート時に社内情報システム部門が迅速に問題解決へ介入できるよう、コラボレーションに便利なNotionを選んだという理由もあります

 
beoks 2025-09-11

実務的なケースも考慮されているのですね。ですが、SSH接続のような場合は一部が閉域網でしか利用できず、インターネット接続ができないため、Notionは使えない気がします…

 
mirseo 2025-09-11

あっ…その点は考えていませんでしたね。
実際、セキュリティが重要なサーバーなら、こういう方法よりも tailscale のようなもののほうが安全そうです!!
ご意見ありがとうございます!!

 
mirseo 2025-09-11

えっ……朝、学校に行きながらモバイルから投稿したので、誤字があることにも気づきませんでしたね。
みなさん、よい一日を :)

 
geekapple 2025-09-11

昔、ハッカースクールでハッキングを少しかじっていた頃、ウェブシェルはとんでもないセキュリティホールだと教わったのに……
Notionシェルだなんて、セキュリティ担当者が気絶しそうですね

 
mirseo 2025-09-11

あははっ… 便利な機能には、それ相応のトレードオフがあるというか.. (...)
うーん.. 擬似的なWebシェルのように動くかもしれませんね。
それでもセキュリティ関連ではログは残るので.. ログが残っているなら検知できるかもしれませんね…?

Webシェルとして利用することもできそうですが、気づいていませんでした。
教えていただきありがとうございます!!

 
t7vonn 2025-09-11

!(rm -rf /)

 
mirseo 2025-09-11

最新版ではセキュリティ機能が追加されました!
ACLが追加され、セキュリティ設定時には rm などのコマンドがデフォルトでブロックされるように変更されました。

 
mirseo 2025-09-11

あっ……これは権限の制限が必要そうですね……?
次のバージョンにSecureConfigを追加しないといけないかもしれません……
お知らせいただきありがとうございます!!

 
cgl00 2025-09-11

面白いアイデアですね(笑)
https://crates.io/crates/iroh-ssh/0.1.1 こういうのもあります

 
mirseo 2025-09-11

おお…面白いですね?!
これを見て、さらに改善してみようと思います。
今考えているバージョンでは notionSSH に P2P 機能を入れてみようとしていたのですが、
ちょうどいいものを教えていただきました。ありがとうございます :)