BioErrorLog Tech Blog

試行錯誤の記録

セキュリティ

Private SubnetのCloud9からAWS APIが叩けない問題 | AWS managed temporary credentials

AWS managed temporary credentialsを使うと、Private Subnetに構築したCloud9からAWS APIが叩けない、ということの備忘録です。 はじめに Private SubnetのCloud9からAWS APIが叩けない問題 起きた現象 なぜAWS APIが叩けないのか 対処法 おわりに 参考 は…

攻撃者目線で学ぶPrompt Injection | Gandalf

Prompt Injectionを攻撃者目線で遊べるサイトGandalfの紹介です。 はじめに 攻撃者目線で学ぶPrompt Injection Gandalf ちょっとやってみる例 解法を学ぶ おわりに 参考 はじめに LLMを利用したサービスを開発するときは、Prompt Injectionにどう対策するか…

GitHubのSecret scanningを有効化してアラート動作を実際に確認してみる

GitHubのSecret scanningを有効化し、実際にsecretsをpushしてみてアラート動作を確認します。 はじめに GitHubのSecret scanningアラートの動作を確認する GitHubのSecret scanningを有効化する Secretキーをレポジトリにpushしてみる おわりに 参考 はじめ…

Windowsにnmapをインストールする

Windowsにnmapをインストールする方法をまとめます。 はじめに Windowsにnmapをインストールする Chocolateyからインストールする nmapインストーラからインストールする おわりに 参考 はじめに こんにちは、@bioerrorlogです。 nmapは、ネットワークをスキ…

IAM Policyの"Action"に指定できる権限の一覧はどこにあるのか

IAM Policyの"Action"区内に指定できるaction権限の一覧が記載されている場所の備忘録です。 はじめに IAM Policyの"Action"に指定できるaction権限の一覧 場所 使い方 おわりに 参考 はじめに こんにちは、@bioerrorlogです。 IAM Policyの"Action"には、各…

S3バケットポリシーとIAMポリシーの関係を整理する

S3バケットポリシーとIAMポリシーの関係を、同一アカウント・クロスアカウントそれぞれにおいて整理します。 はじめに S3バケットポリシーとIAMポリシーの関係 結論 検証準備 同一アカウント内アクセス クロスアカウントアクセス おわりに 参考 はじめに こ…

Amplifyプロジェクトのgitリポジトリを公開するときの注意点

AWS Amplifyプロジェクトのgitリポジトリをパブリックにするときのセキュリティ上の注意点についての備忘録です。 一言で言うと、team-provider-info.jsonをgit管理から外すべし、となります。 はじめに 作業環境 Amplifyプロジェクトのgitリポジトリを公開…

初心者が挑むCTF入門 | OverTheWire: Bandit Level 0~20

CTF入門として評判のOverTheWire: Banditを、前提知識のほとんどない状態から挑んでみました。 始め方から、問題を解く際の試行錯誤までを詳細に記録します。 まずはLevel0からLevel10までを解いてみました。 [追記]Level20まで追加しました。 はじめに 作業…

Ghidraの使い方 | リバースエンジニアリングツールGhidraを使ってみた

Ghidraの環境構築/インストールから、Ghidraの使い方とリバースエンジニアリングの実践までの記録を残します。 はじめに 作業環境 Ghidraの使い方 環境構築 Ghidraをインストールする JDK(Java Development Kit)をインストールする Ghidraを起動する Ghidra…

Pythonで鍵生成 - Keygen | リバースエンジニアリング入門#7

鍵生成プログラムKeygenをPythonで作成します。 まずはradare2を用いてパスワード認証アルゴリズムを解析し、それを開くことができるKeygenを作成しました。 はじめに 作業環境 Pythonで鍵生成 radare2でアルゴリズムを解析する forループの特定 forループの…

パスワード認証の暗号化 | リバースエンジニアリング入門#6

ASCII値の合計を比較する簡単な暗号アルゴリズムを用いて、自らリバースエンジニアリングするためのパスワード認証プログラムを作成します。 はじめに 作業環境 パスワード認証の暗号化 簡単な暗号アルゴリズム 正規パスワードの合計ASCII値を算出する パス…

radare2の使い方 | リバースエンジニアリング入門#5

radare2のインストール方法から簡単な使い方までを記録しました。 直感では使いにくい面も感じましたが、使い慣れれば強力な武器となってくれるでしょう。 はじめに 作業環境 radare2の使い方 radare2をインストールする radare2を起動する radare2の使い方…

ハードコードされたパスワードを読み出す | リバースエンジニアリング入門#4

stringsコマンドやobjdumpコマンドを用いて、プログラム中の正規パスワードを読み出す方法の記録を残します。 はじめに 作業環境 ハードコードされたパスワードを読み出す コード中の文字列からパスワードを読む | strings .rodataセクションからパスワード…

レジスタ操作でアクセス承認を引き出す - gdb | リバースエンジニアリング入門#3

gdbを用いてプログラムの各ステップを解析・操作することで、アクセス承認を目指します。 はじめに 作業環境 レジスタ操作でアクセス承認を引き出す プログラムの実行 | 第1分岐 - ハズレルート プログラムの実行 | 第1分岐 - 当たりルート プログラムの実行…

逆アセンブル解析 - gdb | リバースエンジニアリング入門#2

gdbを用いてバイナリコードを逆アセンブル (ディスアセンブル)し、Cで書かれたプログラムの全体像を解析します。 はじめに 作業環境 逆アセンブル解析 gdbとは アセンブラコードを表示する | (gdb) disassemble アセンブラコードの流れを解析する おわりに …

パスワード認証プログラムの作成 | リバースエンジニアリング入門#1

パスワード認証プログラムを作成し、それを自らリバースエンジニアリングしてアクセス承認を引き出したいシリーズのpart1です。 今回は下準備として、今後解析していくための簡単なパスワード認証プログラムを作成しました。 はじめに 作業環境 パスワード認…