多段SSH設定の落とし穴
多段SSHですべてのサーバに対して踏み台サーバを経由してアクセスしたかったので下記のように設定したらうまくいかなかった。
.ssh/config
Host fumidai HostName xxx.xxx.xxx.xxx User hiroma Host * User root Port 22 StrictHostKeyChecking no ProxyCommand ssh -q -W %h:%p fumidai
なぜうまくいかなかったかというと、 Host *
で指定してしまうと fumidai も 対象にはいってしまうから。
そのため下記のように設定を変更して fumidai へアクセスするときは ProxyCommand が実行されないように変更
.ssh/config
Host fumidai HostName xxx.xxx.xxx.xxx User hiroma ProxyCommand none #←追記 Host * User root Port 22 StrictHostKeyChecking no ProxyCommand ssh -q -W %h:%p fumidai
これで 無事すべてのサーバへSSHするときに fumidai を経由するように設定できた。 省エネで設定できてよかったよかった。
そうただこれをメモしたかっただけの記事
ゼロトラストネットワーク読書メモ第二章 信頼と信用の管理
信頼の委任
信頼の委任が重要。 この委任自動化システムがあることで運用者の負荷を下げる。 明示的な信頼を与えたシステムがさらに別システムに信頼(委任)することをトラストチェーン・運用者をトラストアンカーと呼ぶ
脅威モデル
脅威モデルとは、潜在的な攻撃者、攻撃者の能力とリソース、そして攻撃者の標的を洗い出す。
そしてシステムに対する脅威を提言するためのシステムとプロセスをリストアップすることが目標
多角的にリスク低減戦略をとるには3つの手法を取り入れることが理想
一般的な脅威モデルは以下。
- STRIDE
- DREAD
- PASTA
- Trike
- VAST
ゼロトラストの脅威モデルは FRC3552 インターネット脅威モデルが近しい
攻撃者ベースで順にリストすると
- スクリプトキディ
- 標的型攻撃者
- インサイダー脅威(権限を持たない・低い従業員や請負業者)
- 信頼されたインサイダー(強い権限を得ているシステムの管理者)
- 国家レベルのアクター(政府支援の攻撃者)
ゼロトラストでは敵対的なネットワークでよくみられる攻撃者にそなえることえある。4. までを対処することを想定としている
「ディスクに格納されたクレデンシャルなど認証と認可に用いられるじょうほうの安全性」を満たす。
エンドポイントも対象とするがディスクの完全な暗号化やエンドポイントのセキュリティについては追加ポリシーを企業ごとに定義すべし。
ゼロトラストで使用する認証
IP(user名)とパスワードでは不十分
X.509 規格を使用する (証明書)
ただし秘密鍵が正しくとも所有書が正しいとは限らないので
秘密鍵を複数使用しそれらの組み合わせによってアクセスを許可することがのぞましい。
その場合でも盗み出されることを考慮しクレデンシャルに有効期限を設けること(鍵とパスワード)を変更することをクレデンシャルのローテーション
公開鍵認証基盤
デジタル証明書によって認証されるエンティティは以下
- デバイス
- ユーザ
- アプリケーション
そしてプライベートPKIを使用することが推奨される パブリックはコストの面と突然証明書を無効化される危険がある
最小権限の原則
どのアクションにどの権限が必要かを理解することが大事最小限の権限のみ与えることで不正な操作を極力減らす。
また、気密性の高いアクションを実行する場合は権限を昇格するようにする(sudoのようなもの)
またアクセスの危険度によって認証のレベルを変更することが有用かもしれない。例えば 特定のユーザが通常の勤務時間外の新しい場所からアクセスしようとした場合は追加の要素に基づく認証が要求されるかもしれない
変化する信頼と信用
ポリシーの設定はシステム管理者が主導で行うことが多く
ボトルネックでありシステムの特権であるため乗っ取られるリスクが大きい
信用スコアを用いてポリシーの定義を行う。
信用スコアはアクター(ユーザやデバイス)のアクション(アクティビティデータ)をモニタリングと検証することで定義される。
定義されたものをまとめたエージェントという単位でポリシーと比較しリクエストを認可する。
では、新メンバーは信用スコアが低いので低い権限しか渡せないのか
などは別途考慮する必要がある(環境による)
コントロールプレーンとデータプレーン
コントロールプレーンで対象のリクエストがデータプレーンに与えるリスク計算を行う。そしてデータプレーンのポリシーを確認して信用スコアがどれだけ必要か特定
その後、コントロールプレーンはデータプレーンに特定のリクエストを許可するようにつうちするか設定を変更する。
また、コントロースプレーンとデータプレーンはPKIなどで暗号化した通信を行い、相互で権限昇格させることはできないようにする必要がある
またコントロールプレーンはデータプレーンを信頼するがそれは一時的なものでないといけない。
(証明書の有効期限やトークン)
ゼロトラストネットワーク読書メモ第一章 ゼロトラストの基礎
オライリーのゼロトラストネットワークを読んだのでメモとして残していこうと思います。
ゼロトラストネットワークとは何か
5つの基本原則
- ネットワークは常に安全ではないとみなされる
- ネットワーク上には外部及び内部の脅威が常に存在する
- ネットワークを信用できると判断するには、ローカルネットワークでは不十分である
- デバイス、ユーザ、ネットワークフローはひとつ残らず認証及び認可される
- ポリシーは動的であり、できるだけ多くの情報源に基づいて作成されなければならない。
従来のネットワークセキュリティ
従来のネットワークセキュリティは境界防御を多層で実施することによってセキュリティを高めていた。
DMZは一番リスクの高い層であり、この層で監視と制御を厳重に行うことで効率よく対応できていたと考えられる。
リスク
VPNは逆に認証が成立するとトンネリングされたネットワーク接続され パケットが転送される誰にも疑われない最高のバックアドアともとられてしまう。
ゼロトラストアーキテクチャ
ゼロトラストアーキテクチャは従来のネットワーク構成をひっくり返す。
そのためデバイスやユーザといったエンドポイントにアクセス制御を適用する必要がある。
アクセス制御個所の分散とゼロトラストの基本原則を合わせると図のようになる
下図参照
アクセス制御
コントロールプレーン データプレーン
保護されているリソースへのアクセスリクエストはコントロールプレーンに送信される。
コントロールプレーンではデバイスとユーザの両方が認証・認可されないといけないポリシーも適用する
コントロールプレーンがリクエスト許可すると送信ものクライアントからのトラフィックのみを受け入れるようにデータプレーンを動的に設定する。さらに暗号通信も設定する(1回限りのクレデンシャル、キーポート番号)
これらの制御は自動化されていないとサービスとして利用できないだろう。
ゼロトラストの構成
- ユーザ・アプリケーション認証
- デバイス認証
- 信用(信用スコアを計算)
上記の3項目がエージェントとなるそしてリクエストを認可するためにsエージェントに対してポリシーが適用される
⇒コントロールプレーンによってエンドポイントにポリシーが適用される。
⇒これはコントロールプレーンとは別のコンポーネント
また暗号化設定もここで適用する(こっちはコントロールプレーンで決定)
※サービス化するにあたりkントロールプレーンのイベントやアクションをすべてログに記録できないといけない。ネットワークトラフィックをフローごと、リクエストごとに監査証跡として出せないといけないからである。
暗号化のハッシュまたは、トラフィックの番号とかを見ることで
一意性を確認して認証と認可を与えることで
IPベースで認証/認可を与えない
プログラミング言語Go完全入門 chapter5 catコマンドをとりあえず書いた
GWの期間を利用して 「プログラミング言語Go完全入門」の期間限定公開のお知らせ - Mercari Engineering Blog の学習をしています。
チャプター5 【TRY】catコマンドを作ろう
で作成した駄コード。 こんな感じでよいのか? 何かもっとちゃんとしないといけない部分がある気がするけど。。
というか後でこれ、initとか使おう
package main import ( "bufio" "flag" "fmt" "os" // "path/filepath" ) func main() { var n bool flag.BoolVar(&n, "n", false, "number option") var i = 1 flag.Parse() args := flag.Args() for j := 0; j < len(args); j++ { fp, _ := os.Open(args[j]) scanner := bufio.NewScanner(fp) for ; scanner.Scan(); i++ { if n { fmt.Printf("%d", i) } fmt.Fprintln(os.Stdout, scanner.Text()) } if err := scanner.Err(); err != nil { fmt.Fprintln(os.Stderr, "読み込みに失敗しました:", err) } } }
アフターデジタル
初回の記事が技術関連ではないのですが
「アフターデジタル オフラインのない時代に生き残る」
を読了したのでその感想をば。
書評ではなく夏休みの読書感想文レベルなのでよろしくお願いします。
はじめに
この本を読むきっかけとなったのは私が所属している会社の代表が先日朝礼でとりあげていたためです。 私は現職にjoinしてまだ日が浅いのですが、中国事業に力を入れている代表がどういった思いでこの本を社員におすすめしているのか読んで確かめたくなったからです。
構成
「アフターデジタル」は以下の4章構成です。 個人的には、まえがき と あとがき から読めば要点がわかりやすいのかなと思っています。
- 第1章 知らずには生き残れない、デジタル化する世界の本質
- 第2章 アフターデジタル時代のOMO型ビジネス ~必要な視点変換~
- 第3章 アフターデジタル事例による思考訓練
- 第4章 アフターデジタルを見据えた日本式ビジネス変革
気になる単語
本中にでてきた単語でいくつか気になった単語をピックアップしました。
個人的な解釈なので間違っていたらすみません。
- ビフォアデジタル
⇒リアル(オフライン)が中心でデジタル(オンライン)は付加価値を提供してくれる世界 - アフターデジタル
⇒デジタル(オンライン)がリアル(オフライン)を包含しデジタルとリアルの主従関係が逆転した世界 - OMO(Online Merges with Offline)
⇒アフターデジタル時代の概念。オンラインとオフラインが融合し一体のものとして捉える。デジタル起点でのものの考え方 - O2O(Online to Offline)
⇒オンラインとオフラインのチャネルの切り替え、オンラインからオフラインへの顧客流入 - バリュージャーニー
⇒顧客との接点を絶えず保ち、よりよい顧客体験を企業が提供し続ける旅のコンシェルジュのようなビジネスモデル
感想
読み終わってまず感じたのはOMO型ビジネスが早く広がってほしいというユーザとしての意見と
企業の一員として考えた時にどう価値を提供し続けられるのかなという二軸でした。
とくに後者は本書を読みながらどんなビジネスモデルがあるかなとか現職ではどうすればいいのか考えながら読むのがとても楽しかったです。
またOMO型のビジネスモデルは分解していけば顧客体験・サブスクリプション・SaaS・シェアリングエコノミーといった少し前から話題になっているキーワードが随所に盛り込まれていてそのすべてを意識しないと、これからのビジネスは厳しくなるというメッセージなのかとも思いました。
エンジニアとして従事している身としてはAI/IoTに代表されるような最新技術もありますが、そういった技術を使うということが目的とならないように。エンドユーザにどのような価値を届けられるのか。
結局は人と人とのビジネスだ!というマインドを常に意識していきたいと感じました。
(昔から言われていることだと思いますが..)
ちなみに個人的には「平安グッドドクターアプリ」と「フーマー」使ってみたいです。
「平安グッドドクターアプリ」は普段私が生活の中で使用しているアプリなどを使用して時折感じる”自分がほしいものとすこしだけずれている”がなくなり、求めているサービスを提供してくれるんだろうなという期待を感じました。
「フーマー」は純粋に楽しそうですよね。
リテールテインメントという言葉で表されていましたが買い物に行った普段の小売店でワクワクする体験を得られるなんて最高です。
小さいお子さんがいる家庭では最強じゃないでしょうか。
さいごに
本書はとても読みやすく、読みながらいろいろと想像を巡らせることができてワクワクできました。
私のように経営層でない方でもいろいろと思うところはあるはずなので
読まれた方と感想を話し合ってみたいなぁなんて思ってます。
ありがとうございました。
- 作者: 藤井保文,尾原和啓
- 出版社/メーカー: 日経BP
- 発売日: 2019/03/23
- メディア: 単行本
- この商品を含むブログを見る
ブログはじめました
はじめましてひろま(@hiromaaa03)です。
ITインフラエンジニアしています。 このブログは技術的に気になったことをメインとして あと、読んだ本の感想なんかも書いていければと思いますのでよろしくお願いします。