mike-neckのブログ

Java or Groovy or Swift or Golang

セキュア・バイ・デザイン 10章

クラウドによるセキュリティの原則を説明。その構成要素についても解説している。

クラウド的考え方によるメリット

  • クラウドの提供する可能性(機能)を余すとこなく活用できる設計
    • 12 Factor App
    • Cloud Native
    • 3 つの R(後述)
  • 12 Factor App + PaaSでの稼働(伸縮性 elasticity) = Cloud Native

10.2 環境に格納された構成情報

  • アプリケーション可能のための構成情報の管理がセキュリティ的にも重要だが、場合によって複雑になる
    • 構成情報をコードに持たせると危険
      • コードにアクセスできるすべての人がアクセスできてしまう
      • 複数の環境にデプロイする必要が発生すると構成情報ファイル化する
    • 構成情報をファイルに記述すると危険
      • 監査証跡なしにファイルを読める
      • ファイルにアクセスできる人がすべてアクセスできる
      • コードを外部の開発者と共有するときに危険性に気づく
    • デプロイ環境に構成情報を配置するとリスクを移転できる
      • デプロイ環境から構成情報を取得するように変更することで、構成情報とコードが分離される
      • (+)問題はアプリケーションからインフラに移動し、アクセス制御、監査証跡の取得が容易になる
      • (-)開発者からインフラ関係者に問題が移動しただけになるため、暗号化などのさらなる仕組みが必要になる
      • (-)復号化の仕組みを入れるためにアプリケーションに複雑さが混入する。解決は 3 つの R

10.3 stateless アプリケーション

  • インスタンス数でスケールアップするため、可用性向上
  • メモリリーク・サーバー乗っ取り等の障害で破棄できるので完全性向上(?)
  • 同、可用性向上

10.4 ログをファイルに残す危険性

  • 相反する性質
    • システムの悪用につながる機密性の高い情報
    • アクセスをよくしたい利活用できる情報
  • ログファイルの問題
    • 機密性が低い/漏出を防ぐ手段が乏しい/漏出後の追跡が難しい
    • だれも編集してないことの保証が難しく完全性に乏しい
    • インスタンス破棄、ディスク容量の制限などで可用性が低い
  • ログのサービス化
    • ログをサーバーのインフラに依存させない
    • ログのカテゴリ化、ユーザーの分類によりアクセスを制御、アクセス履歴により監査証跡も取得 = 機密性の担保
    • ログの書き込みは信頼できるリソース(アプリケーション)に限定 = 完全性の担保
    • サービスのスケールによりインフラのリソース問題を解消 = 可用性

10.5 システム管理プロセス

  • bad
  • good
    • システム管理プロセスのシステム化

これ、クラウド関係ないんじゃ…

10.6 サービス検出と負荷分散

  • サーバーインスタンスが定期的に生成・破棄されるので必須の技術

10.7 エンタープライズセキュリティの 3 つの R

  • Rotate
    • パスワード等のシークレットを定期的に変更する
  • Repave
  • Repair
    • ソフトウェアが更新可能になったらすぐに更新

      従来のセキュリティとの違い

  • 従来
    • 変化を防ぐアプローチ
  • クラウド
    • 変化を促すアプローチ

セキュア・バイ・デザイン 2 章

読書会に参加するので、まとめておくだけ

  • 2.1 ビジネスルールの観点における完全性の問題
    • 不正なデータ入力によって損失が発生してた
    • 不正なデータに対するサブシステムの振る舞いが異なっている
  • 2.2 浅いモデリング
    • 最初にモデリングできたと思ったあとに深く考えることをやめたその場しのぎのモデリング
    • 冊数、IDなどを Int 等の抽象的な型で表現できていることで満足(暗黙的に表現した概念)
    • 型がドメインでどのように機能するのかは理解できてない
  • 2.3 深いモデリング
    • 概念の表現ではなく概念の理解に向かう
      • 下限・上限、許される文字など
    • 専用の型を用いる
  • まとめ
    • モデルの不完全性から不具合=セキュリティ上の欠陥が生じる

2021 年も終わりの近況

2021 年は何もできなかった。その多くはうつ病のためにやる気が無くなってたことが原因である。それは今も変わらない。

万年うつ病がひどくなったのは、仕事をさがしている間に何度か遭遇した突然連絡がとれなくなる企業のおかげである。

不採用にしたいんだが、企業が断ったことにしたくないのか、求職者から辞退の連絡を入れてもらえるようにダマを決め込んで急に連絡が取れなくなる。

このような企業のサービスは顧客の方を向いてなさそうで利用するのがこわいと思う。

今は、そんなうつ病機関中でもちょいちょい生存確認の連絡をくれた企業で働いている。

なお、契約の関係上個人事業主になっている。


読んだ本

全然読んでない。

最近になって少し心の余裕ができたので、次の本を読んだ。

今は次の本を読んでいる。初学者の人は増田さんの 『現場で役立つシステム設計の原則』 の次に読むと良いかもしれないが、用語として エリック・エヴァンス本 も読んでおいたほうがよい…のだが、そんなことしてたらいつまで経っても読み始められないので、読みたいと思った時に読むのが良いだろう。


体重

うつ病を生き残るのに大量に食ってたら太った。 83kg になってた。


プログラム

全然書いてない。

graalvm plugin の方も対応しなければ行けないのだが、うつ病でそれどころではない

graalvm-native-image-plugin の v1.4.0 をリリースしました

表記の通り、 Gradle プラグインの graalvm-native-image-plugin の v1.4.0 をリリースしました。

plugins.gradle.org

このリリースでは以下の機能が追加されました。

  • シェアードライブラリーをビルドする機能(Java11 以降のみ)
  • 上記の機能追加に伴う、 nativeImage#setMainClass(String) メソッドの非推奨化
続きを読む