Skip to content

dig-workshop/ai-generated-app

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

AI 生成アプリ

このアプリは次のプロンプトから生成されました:

「PDFファイルをアップロードして、後でダウンロードできるウェブアプリを作成してください。」

このアプリには、いくつかの重大な脆弱性(例:簡単に悪用できるパストラバーサル脆弱性)が含まれています。

アプリの実行方法

  1. このリポジトリをクローンし、お好みのIDEで開いてください。
  2. npm install コマンドを実行してアプリをビルドします。
  3. npm run start コマンドでアプリを実行し、http://localhost:3000 にアクセスしてください。

パストラバーサル脆弱性の悪用方法

このリポジトリには、以下の手順で悪用できるパストラバーサル脆弱性が含まれています:

  1. Snyk Code スキャンを実行し、パストラバーサルの脆弱性の情報と修正アドバイスを確認します。
  2. アプリを実行して、http://localhost:3000 を開きます。
  3. 以下のようなURLを作成します:
    http://localhost:3000/download/..%2F.env
    ここで ..%2F は「../(1つ上の階層へ移動)」を意味します。
  4. このURLをブラウザに貼り付けてアクセスします。
    この手法により、攻撃者はサーバー上の任意のファイルにアクセスできてしまいます(例:ソースコードや設定ファイル)。

デモの進め方(例)

  1. 「PDFファイルをアップロードして、後でダウンロードできるウェブアプリを作成してください」というプロンプトを使ってアプリを AI で生成したことを説明します。
  2. AI によって生成された以下のファイルについて紹介します:
    • index.ts(バックエンドコード)
    • public/index.html(フロントエンド)
    • tests/server.test.ts(ユニットテスト)
  3. 単なるコードではなく、実際に動くアプリが生成されたことを強調します。
    npm run start を実行して、アプリが動作することを確認します。
  4. http://localhost:3000 にアクセスし、cd ~/Desktop && touch demo.pdf で空のPDFを作成してアップロードします。
    アップロードが /uploads フォルダに保存されたことを示し、表示された ID をコピーして /download/<id> にアクセスし、ダウンロードできることを示します。
  5. 次のような“ひっかけ質問”をします:「アプリも動くし、ユニットテストも通ってるっぽい。もう本番環境にデプロイしていいよね?」
    もちろんダメです。Snyk を使って脆弱性をスキャンする必要があります!
  6. index.ts ファイルの脆弱性を確認し、特にパストラバーサルの警告を開いて内容を読みます:
    「攻撃者が '../' を使って任意のファイルにアクセスできてしまう」という説明を確認します。
  7. その脆弱性が深刻であることを実際に実演して示します(前述のURLを使って任意ファイルにアクセス)。
  8. DeepCode AI を使ってその脆弱性を修正します。
    たとえば「/uploads ディレクトリ以外へのアクセスが試みられた場合にエラーメッセージを表示する」という修正(例:修正案3)が良いでしょう。
  9. CTRL+C でサーバーを停止し、再度 npm run start でアプリを再起動します。
  10. ブラウザで先ほどの悪用URLをリロードしてみます。
    → 今度は任意ファイルにアクセスできないはずです!
  11. 最後に次のようにまとめます:
    「Snyk を使えば、開発者は簡単に脆弱性を検出して修正できることが分かりました!」

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors