Security
-
RBAC
Role-based access control #Security ロールごとに許可を定義する認可モデル これによりユーザーの部署異動等の際に即座に権限を変更できる
-
OIDC
-
脅威モデリング
#Security Threat Modeling アプリケーションに影響を与える脅威、攻撃、脆弱性、対策を特定する技術 モデリング手法として5つのステップを繰り返すよう紹介している Defining security requirements. Creating an application diagram. Identifying threats. Mitigating threats. Validating that threats have been mitigated. Microsoft Security Development Lifecycle Threat Modelling
-
TLS
Transport Layer Security #Network #Security #HTTP HTTPSへの対応に用いられる暗号化プロトコル ネットワーク通信時にTLSハンドシェイクによって鍵交換を行いセキュアな通信を行う
-
Basic認証
#Security HTTPプロトコルにおける認証方式 ユーザー名とパスワードをコロンで連結した文字列をBase64エンコードした結果を、Authorizationヘッダーに付与することでリクエストを行う
-
RSA
#Security 秘密鍵と公開鍵による暗号方式 署名に用いる際は公開鍵を用いて署名をした署名者のことを、秘密鍵によって署名付きトークンを検証できる RFC 8017 - PKCS #1: RSA Cryptography Specifications Version
-
Kubernetes Secret
-
HMAC
Hash-based Message Authentication Code #Security 共有秘密鍵と暗号化ハッシュ関数による暗号方式 共有の鍵を有するので両者ともに署名付きトークンを生成・検証できる
-
Bearerトークン
#Security トークンを保持するBearer(持参人)が誰であれ、そのトークンをリソースへのアクセスに使うことができる 平文の文字列でシークレットや署名は扱わず、セキュリティはTLSのようなトランスポート層での仕組みに任せている HTTP通信のAuthorizationヘッダーに付与するのを推奨されている RFC 6750 - The OAuth 2.0 Authorization Framework: Bearer Token Usage
-
レートリミット
#Security #API Architecture 以下のような目的でAPIの使用回数を制限する、制限を超過した時はHTTPの場合一般に429エラーを返す処理 STRIDEにあるようなDenial of Service(サービス拒否)からアプリケーションを保護する カスケード障害の可能性を制限する リソースの使用量を測定し従量課金に利用できる レートリミットの実装アルゴリズムには以下のようなものがある 固定ウインドウ(Fixed window) 固定期間内の制限 スライディングウインドウ(Sliding window) 直近の期間内の制限 トークンバケット方式(Token bucket) 総リクエスト数(トークンのバケツ)を定義しリクエストごとにトークンが利用される。バケツは定期的に充填される リーキーバケット方式(Leaky bucket) リクエストが処理される速度は固定で、バケツから溢れ出るリクエストを漏れ(リーキー)として扱う APIゲートウェイを利用している場合、ゲートウェイに配置するとよい
-
マスタリングAPIアーキテクチャ
-
ABAC
Attiribute-based access control #Security 従来のRBACに対し、リソースに割り当てられた属性(AWSではタグ)に基づいて許可を定義する認可モデル リクエスト元であるプリンシパルの属性がリソースの属性と一致した場合に操作を許可するポリシーを設計する ABAC 認証で属性に基づいてアクセス許可を定義する - AWS Identity and Access Management
-
適応度関数
Fitness Function #API Architecture システムの品質特性を数量化可能な指標で評価する、システムの目標を一貫して保証するためにビルドパイプラインに組み込まれる それぞれの特性は以下のようにカテゴライズされる コード品質(Code Quality) レジリエンス(Resiliency) オブザーバビリティ(Observability) パフォーマンス(Performance) コンプライアンス(Compliance) セキュリティ(Security) 運用操作性(Operability) Fitness function-driven development | Thoughtworks
-
STRIDE
#Security セキュリティ脆弱性をカテゴライズするような脅威モデリングでの方法論 Microsoft Threat Modeling ToolではSTRIDEを利用していくつかの自動分析を行うことができる STRIDEは以下の頭文字を取ったもの Spoofing(なりすまし) Tampering(改ざん) インジェクション攻撃 マスアサインメント攻撃 Repudiation(否認) Information Disclosure(情報漏洩) 過剰なデータ露出 不適切なインベントリ管理 Denial of Service(サービス拒否) Dos攻撃 Elevation of privilege(権限昇格) STRIDEモデル
-
Spire
#Functional Programming #Security Scala言語の数値型ライブラリ。汎用的で高速かつ高精度な数値と、効率的な数値コードシンタックスを提供する。 Spire Introduction to Spire Numeric Programming in Scala with Spire JOTB19 - Numeric Programming with Spire by Lars Hupel
-
OAuth徹底入門 セキュアな認可システムを適用するための原則と実践
-
OAuth2
#Security #API Architecture RFC6749によって定義された認可フレームワーク 主に以下の定義を利用する リソースオーナー(Resource Owner) 保護されたリソースへのアクセス許可を行うエンドユーザー リソースサーバー(Resource Server) 保護されたリソースを所有するサーバー、アクセストークンを受け取り検証する クライアント(Client) リソースオーナーによる認可の委譲先、アクセストークンを使ってリソースサーバーへリクエスト可能 認可サーバー(Authorization Server) リソースオーナーの認証・アクセス許可時に認可グランドを返却したのち、クライアントにアクセストークンを発行する 初回アクセストークン利用までのプロトコルの流れは以下 Protocol Flow リソースオーナーによるアクセス許可時に認可サーバーが返す認可グランドは、認可コードが利用されることが多い RFC 6749 - The OAuth 2.0 Authorization Framework
-
SHA
Secure Hash Algorithms #Security 電子署名の改竄防止等で最もよく利用されているハッシュ化アルゴリズム 異なる元データから同一のハッシュ値が生成される可能性が低いことを求められ、SHA-2, SHA-256 等の種類がある RFC 6234 - US Secure Hash Algorithms (SHA and SHA-based HMAC and HKDF)
-
Authorization to implement with Extensible Effect
#Security #Functional Programming Effによる認可実装の話
-
サービスメッシュ
#Network #Observability #Security #API Architecture マイクロサービスで行われるようなサービス間通信をルーティング、監視、保護する機能を提供する Kubernetesにおいてはクラスタ単位でサービスメッシュを構築する サービスメッシュはクラスタ内の全てのサービス間通信を制御するコントロールプレーンとコントロールプレーンで指定された作業が実行されるデータプレーン(サービス)の2つの基本要素を持つ。
-
JWT
JSON Web Token #Security トークン自体の情報(例: 期限)を自身で構造化して保持することで、共有データベースへ保持・検索をする必要がないトークン。トークンが自身の情報を持つことで外部からのトークン取り消しのような操作はできない JWTは.によって3つのセクションの文字列に分割できる(署名がない場合3つ目のセクションは空) それぞれのセクションの文字列は構造化されたJSONをBase64URLエンコードした結果となっている ヘッダー 1つ目のセクションはヘッダーとして以下のような構造を持つ { "typ": "JWT", "alg": "RSA256" } algで指定する署名アルゴリズムは3つ目の署名セクションの解読にて用いる ペイロード 2つ目のセクションはトークン自体のペイロードになる。ペイロードの中身はJSONであれば自由だが、JWTクレームと呼ばれる役割が明示・明示された項目群が存在する。 例として iss(発行者)、sub(対象者)、exp(有効期限)などがある 署名 3つ目のセクションはHMACやRSAのような署名アルゴリズムを使った結果が保持される RFC 7519 - JSON Web Token (JWT)
-
Introduction to safe programming with numeric library
数値ライブラリで始める安全なプログラミング #Functional Programming #Security Scala Matsuri 2024での自身の発表 Spireライブラリを用いて安全な数値計算を行うテクニックを紹介している
-
OWASP Top Ten
#Security OWASP Foundationが発表するセキュリティ専門家によるトップ10に含まれるべき脆弱性リスト 定期的に更新されるため最新を追うべき OWASP Top Ten | OWASP Foundation
-
OWASP
-
Google Cloud Certificate Manager
#Cloud Native #Security Google Cloudにおいて外部ロードバランシングで必要となるようなTLS証明書を管理する Certificate Manager の概要 | Google Cloud
-
Microsoft Threat Modeling Tool
#Security 脅威モデリングを行うためのツール群 Microsoft Threat Modeling Tool の概要 - Azure | Microsoft Learn