Open2

CTF・Reverse engineering学習メモ

SL91994SL91994

BinaryExploitationの学習中に、Canaryという聞いたことの無い単語があったのでメモしておきます。

StackCanaryとは?

StackCanaryとは、BufferOverFlowからソフトウェアを保護するための、スタック破壊保護(Stack Smashing Protector)技術の1つで、プログラム実行時にカナリアと呼ばれるランダムな値が生成され、メモリ内部に挿入されます。
BufferOverFlowにより割り当てされたBufferを超えた書き込みが行われると、カナリアの値が変化し、プログラムがその差分を見ることでOverFlowを検知し、プログラムの悪用を防ぐ。

似たような技術で下記もあるみたいです。

カナリアトークン(CanaryToken)とは?

別名 HoneyTokenとも呼ばれ、通常アクセスできないURLや罠となるカナリアトークンを対象システム内に設置することで攻撃者がアクセスしてしまった場合に、不審なアクセスを検知し管理者に通知してくれます。

カナリアトークンの悪用例

一部の攻撃者は、カナリアトークンサービスをマルウェアやランサムウェアの運用に悪用しています。
ランサムウェア攻撃のケースでは、ランサムウェア運用者はプログラム内にカナリアトークンを埋め込むことで、被害者のシステムが暗号化されたことを素早く検知し、復号鍵情報を取得することができます。

参考記事1. canary token
参考記事2. stack canary

SL91994SL91994

OWASP Juice Shop on Parrot VM

Webアプリの脆弱性学習のために、VirtualBox上のParrot OSにDockerを使用して、
OWASP Juice Shopを構築した際のメモ

zsh
username@parrot% sudo apt update

username@parrot% sudo apt-get install docker.io
~~~~~~~~~
Scanning application launchers
Removing duplicate launchers or broken launchers
Launchers are updated

username@parrot% docker -v
Docker version 20.10.24

username@parrot% docker pull bkimminich/juice-shop
Using default tag: latest
latest: Pulling from bkimminich/juice-shop
Status: Downloaded newer image for bkimminich/juice-shop:latest
docker.io/bkimminich/juice-shop:latest

username@parrot% docker run --rm -p 3000:3000 bkimminich/juice-shop
info: All dependencies in ./package.json are satisfied (OK)
info: Detected Node.js version v20.10.0 (OK)
info: Detected OS linux (OK)
info: Detected CPU x64 (OK)
info: Configuration default validated (OK)
info: Entity models 19 of 19 are initialized (OK)
info: Required file server.js is present (OK)
info: Required file index.html is present (OK)
info: Required file main.js is present (OK)
info: Required file polyfills.js is present (OK)
info: Required file runtime.js is present (OK)
info: Required file styles.css is present (OK)
info: Required file vendor.js is present (OK)
info: Port 3000 is available (OK)
info: Chatbot training data botDefaultTrainingData.json validated (OK)
info: Domain https://www.alchemy.com/ is reachable (OK)
info: Server listening on port 3000

「docker」という名前のパッケージがすでに存在するため、
「docker.io」という名称でインストールするみたいです。

localhost:3000にアクセスすると、無事にOWASP Juice Shopを立ち上げることに成功しました。
以前Windowsで立ち上げた時より、とてもスムーズで簡単に起動できました!