タグ

*programと*securityに関するsh19910711のブックマーク (63)

  • SharedArrayBuffer とクロスオリジン分離の問題への対処の記録

    Legalscape (リーガルスケープ) アドベントカレンダー 2021 の 12/20 (月) のエントリです。日のエントリは、Legalscape が遭遇した SharedArrayBuffer とクロスオリジン分離の問題についてお送りします。 「何もしていないのに Legalscape が壊れました」 それはある夏の暑い日のことでした。 あるお客様からのお問い合わせで「Legalscape が突然使えなくなったんですが…」というご連絡をいただいた我々は「あれ? 今日って何かプロダクション環境にデプロイしましたっけ? フロントエンドかな? それともバックエンドの API サーバかな?」などと Slack で会話しながら、どういう問題が発生しているのかを具体的に知るために調査に取り掛かりました。 このときの我々は何も知りませんでした。何もしていないのに Legalscape が壊れた

    SharedArrayBuffer とクロスオリジン分離の問題への対処の記録
    sh19910711
    sh19910711 2024/05/21
    "あるメンバーの環境では確かに問題が再現するが、他のメンバーの環境では再現しない / かの Chrome 92 で必須となった、SharedArrayBuffer 利用時のクロスオリジン分離 (cross-origin isolation) 有効化の影響" 2021
  • Slack経由でRAGにコードレビューを依頼するBotを作成 〜 AWS SAM編 - Qiita

    はじめに 前回の記事では、リーダブルコードの原則に従ったコードレビューを自動化できないものか・・と考えた結果、『RAGにリーダブルコードの原則を取り込ませてコードレビューをしてもらおう!!』という検証をしてみました。 検証環境の構築は AWSマネジメントコンソール を使用していましたが、今回は AWS SAM を使用して、より簡単に環境構築する方法の解説を行います。 使用するリポジトリは以下になります。 事前準備 リージョン切り替え 全ての手順は「東京リージョン」で実施することを前提としているため、AWSのマネジメントコンソールからリージョンを「東京」に変更してから手順を進めてください。 Cloud9 ローカルマシンの環境を汚さないために、Cloud9 を使用して環境構築を行います。Cloud9 には、今回の作業に必要な以下のツールが事前にインストールされているため、環境構築がスムーズに行

    Slack経由でRAGにコードレビューを依頼するBotを作成 〜 AWS SAM編 - Qiita
    sh19910711
    sh19910711 2024/05/09
    "リーダブルコードの原則を取り込ませてコードレビューをしてもらおう / Cloud9: AMTCで付与された一時クレデンシャルの権限では IAMロールやIAMポリシーに対するアクセス権限が制限"
  • 入力プロンプトを復元する技術 - Qiita

    株式会社ブレインパッドでデータサイエンティストをしている@fuyu_quantです。 この記事はBrainPad Advent Calender 2023 1日目の記事です。 ※記事シリーズは2もあります!! はじめに 今回はLanguage Model Inversionという論文が非常に面白かったので紹介をしたいと思います. 簡単に内容を説明すると LLMの出力をする際の確率分布が分かれば元のプロンプトを復元できる さらにLLMの出力のテキスト情報しかなくても元のプロンプトを復元できる ということについても言及しています. ※実行コードについては執筆途中です. 目次 0. LLMの出力 1. Language Model Inversionの解説 何をしたいか 当に入力プロンプトを予測できるか? 予測方法 結果 結論 2. Language Model Inversionを試す(コー

    入力プロンプトを復元する技術 - Qiita
    sh19910711
    sh19910711 2024/03/03
    vec2text / "Language Model Inversion: LLMの出力結果だけから,どうにかもとの入力プロンプトを復元できないか / モデルへ十分なアクセスができれば,モデルが出力する確率分布を再構築できる" arXiv:2311.13647 2023
  • 10年前に公開していたCGIプログラムで脆弱性が見つかりCVEに登録された話 - windyakinってなんて読む

    かつて「ぜろちゃんねるプラス」という2ちゃんねる型スレッドフロート掲示板システムの開発と公開をしていたことがある。 とはいえ開発をしていたというのは自身がまだ学生だった10年以上前の話であり、現代において Perl CGI のプログラムを保守・運用しようというのがなかなか厳しい話なので、ウェブサイト上では2015年ぐらいから開発の終了も明言していた。ただホスティング元のOSDN(当時はSourceForge.jpであった)が現在までサービスの提供を続けてくれていることと、すでに利用している人に向けたアーカイブを目的として、特に非公開化することもしていなかった結果、現代でも一部のコミュニティなどで使われるという謎の代物となっていた。 開発者への脆弱性の報告 そんなこんなで絶賛放置していたのだが、3月22日の10時頃、開発用の掲示板に「クロスサイトスクリプティングが行える脆弱性」があるという内

    10年前に公開していたCGIプログラムで脆弱性が見つかりCVEに登録された話 - windyakinってなんて読む
    sh19910711
    sh19910711 2024/02/02
    "特に非公開化することもしていなかった結果、現代でも一部のコミュニティなどで使われ / 自身の関わったプロダクトに CVE が採番されるのはなかなか複雑な気持ちではあるが、経験値としては悪くない" / 2022
  • AWS特化のCTFが超楽しかった!【Security-JAWS / writeup】

    先日、AWSセキュリティに関するコミュニティ「Security-JAWS」にて、AWS環境に特化したCTFが開催されました。 これが超超超楽しくて、学びにもなったとてもいいイベントだったので、少し時間が経ってしまいましたが、writeup兼ふりかえり記を残します。 ちなみに私はCTF初挑戦でAWSも入門書を1周したくらいの知識しかありません。しかし問題の構成がよく練られていたので、私のような初心者でも時間いっぱいじっくりと楽しむことができました(GPTを駆使しつつですが)。 CTFの環境構築に作問に、と、これを準備するのは相当大変だったと思うのですが・・・運営の方々には当に感謝です! 問題はTrivia、Warmup、Easy、Medium、Hardの5ランクに分かれていて、私はTrivia、Warmup、Easyランクの問題に挑戦しました。 緑色が正解した問題です TriviaはAW

    AWS特化のCTFが超楽しかった!【Security-JAWS / writeup】
    sh19910711
    sh19910711 2023/09/06
    ChatGPT、Base64なフラグに気がつくのか👀 / 現実世界でも度々問題になっている、S3バケットの設定不備によって情報が漏洩してしまうケースをモチーフにした問題"
  • Ruby フルタイムコミッタの仕事報告 2023年Q1 - ANDPAD Tech Blog

    こんにちは、hsbt です。前回のエントリで触れたウィッチャー3は一段落しましたが、気の迷いから原神を初めてしまい無限に時間が溶けています。RubyKaigi 2023 が近づいて来ているのにこれはまずい。 今日は前回の Ruby フルタイムコミッタになってからやったこと、の定期報告シリーズとして、2023年のQ1にフルタイムコミッタとして行った仕事の一部をご紹介します。 Ruby のリリースについてのご紹介 まず、今回の仕事内容に入る前に2023年2月18日に開催された福岡Rubyist会議03で発表した、Ruby のリリースにまつわる課題をまとめたスライドをご紹介します。 上記スライドでは、毎年、または不定期に行っている安定バージョンのリリース時に発生していた、発生している課題について原因と対策、対策の結果生まれた新たな課題のループについて解説をしています。今回は発表では深くは触れなか

    Ruby フルタイムコミッタの仕事報告 2023年Q1 - ANDPAD Tech Blog
    sh19910711
    sh19910711 2023/04/21
    "人間だれもがみな忙しいので、リリースできると良いね、というものはリリースされません / CVE: あくまでも識別子なので CVE が示す事象すべてが脆弱性かどうかは保証されてない"
  • AIモデルのsafetensors形式とは何者か?ckptと比較しつつ解説する

    1,そもそもckpt形式のモデルファイルはどのようにデータを保存していたのかsafetensors形式はckpt形式の様々な欠点の改善を目的として作られたデータ保存方法であり、HuggingFaceが主導しています。 そのため、safetensorsの利点を説明するにはまず従来のckptで何がアカンかったのか、ckptのデータ保存方法から読み解く必要があります。 .ckpt拡張子とpickleの関係画像生成AI関連のモデルでよく目にする.ckptという拡張子は、「pickle」というPythonのモジュールを用いて直列化して保存されたデータに用いられる拡張子です。 データを直列化(バイト列に変換する)ことを「pickle化」・「ピクル化」と呼びます。 逆に、バイト列からデータを復元することを「非pickle化」「非ピクル化」といいます。 pickleモジュールを使って、例えば以下のようなP

    sh19910711
    sh19910711 2023/03/05
    ".ckpt: 「pickle」というPythonのモジュールを用いて直列化して保存 / 悪意あるpickleオブジェクトを生成することが可能 / safetensors: HuggingFaceが主導 + 純粋なテンソル以上のものを保存できるが、カスタムコードは保存できない"
  • 今流行りの投機実行脆弱性の影響を一切受けないDOOM実装が公開される

    https://github.com/xoreaxeaxeax/movfuscator/tree/master/validation/doom このDOOMは条件分岐を一切使用していない。したがって今流行りの投機実行の脆弱性であるMeltdownやSpectreによる脆弱性は存在しない。 ちなみに、現代の性能のコンピューターで、1フレームの描画に7時間ほどかかるので、このDOOMで遊ぶには若干の忍耐力を要求される。しかし、脆弱性の完全な排除のためには若干のパフォーマンスの低下はやむを得ないところだろう。 このDOOM実装はオリジナルのDOOMのCコードに若干の変更を施して、M/o/Vfuscatorでコンパイルしたものだ。 https://github.com/xoreaxeaxeax/movfuscator M/o/Vfuscatorとは、IntelのMMUがチューリング完全であることを

    sh19910711
    sh19910711 2023/01/20
    2018 / "このDOOMは条件分岐を一切使用していない / 現代の性能のコンピューターで、1フレームの描画に7時間ほどかかるので、このDOOMで遊ぶには若干の忍耐力を要求される / M/o/Vfuscator: mov命令のみを使うC言語コンパイラー"
  • Parallels Plesk Panelの脆弱性と、/phppath/phpでどういう悪さがされるのか - ろば電子が詰まつてゐる

    最近、Apacheのアクセスログに、以下のような長いPOSTをされた形跡が残っている。結構な広範囲に来ているので、皆さんも見たことあるんじゃないでしょうか。 114.141.196.28 - - [01/Aug/2013:11:01:22 +0900] "POST /%70%68%70%70%61%74%68/%70%68%70?%2D%64+%61%6C%6C%6F%77%5F%75%72%6C%5F%69%6E%63%6C%75%64%65%3D%6F%6E+%2D%64+%73%61%66%65%5F%6D%6F%64%65%3D%6F%66%66+%2D%64+%73%75%68%6F%73%69%6E%2E%73%69%6D%75%6C%61%74%69%6F%6E%3D%6F%6E+%2D%64+%64%69%73%61%62%6C%65%5F%66%75%6E%63%74%6

    Parallels Plesk Panelの脆弱性と、/phppath/phpでどういう悪さがされるのか - ろば電子が詰まつてゐる
    sh19910711
    sh19910711 2022/11/20
    2013 / "変数名などが英語では無いことに気がつく。たとえばプロセスは$processo、サーバはserverではなく$servidor / ポート番号をどう書いているかで分かる。portのことを、スペイン語ではPuerto、ポルトガル語ではPortaと呼ぶ"
  • 個人gemにrubygems_mfa_requiredをつけた - くりにっき

    rubocop 1.23.0で Gemspec/RequireMFA が増えていたので rubygems_mfa_required の存在に偶然気づきました。 guides.rubygems.org gemリリース時のMFA *1 は元から設定していたんですが、gemspecに spec.metadata = { "rubygems_mfa_required" => "true" } # or spec.metadata["rubygems_mfa_required"] = "true" みたいのを書いておくことで *2 gemのリリースや削除でMFAが必須になってさらにセキュアになるので、この機会に手持ちのgemに軒並み rubygems_mfa_required をつけました。 github.com 多分3日がかりで40〜50個のgemに適用してリリースしたと思います *1: http

    個人gemにrubygems_mfa_requiredをつけた - くりにっき
    sh19910711
    sh19910711 2022/02/18
    "rubocop 1.23.0で Gemspec/RequireMFA が増えていたので rubygems_mfa_required の存在に偶然気づきました / gemspecにspec.metadata["rubygems_mfa_required"] = "true"みたいのを書いておくことで gemのリリースや削除でMFAが必須に"
  • colorsなどのnpmパッケージに悪意あるコードが含まれている問題について

    追記: 2022年1月11日 2:29 JSTにDoS脆弱性としてセキュリティアドバイザーが出されて、悪意あるバージョン(1.4.1や1.4.2)はnpmからunpublishされ、npmの最新は安全なバージョンである1.4.0へと変更されました。 Infinite loop causing Denial of Service in colors · GHSA-5rqg-jm4f-cqx7 · GitHub Advisory Database 2022-01-08 に colors というnpmパッケージにDoS攻撃のコードが含まれたバージョンが1.4.44-liberty-2として公開されました。 GitHub: https://github.com/Marak/colors.js npm: https://www.npmjs.com/package/colors 問題についてのIssu

    colorsなどのnpmパッケージに悪意あるコードが含まれている問題について
    sh19910711
    sh19910711 2022/01/10
    "npmでは2016年の通称leftpadという問題をきっかけに、publishしてから24時間以上経過したパッケージのunpublishは基本的にできません。そのため、colors.jsの1.4.0の内容が基本的に変わることはありません"
  • RustでOIDC Providerもどきを実装してテストスイートを通してみる

    この記事はMakuake Advent Calendar 2021 20日目の記事になります。 こんにちは。マクアケのRe-Architectureチームに所属しているY.Matsudaです(10月1日入社)。普段はMakuakeのサービス基盤の開発・運用を行っています。 今回はOIDCの実装についてのネタです。 OIDC(OpenID Connect)と言えばよく自社サービスに「Twitterでログイン」とかそういうのを組み込みたいときにClient(RP)側で使用することが多い技術ですね。 今日は、そんないつもお世話になっているOIDCのProvider側(TwitterとかFacebookとか・・・)の実装がどうなってるんだろうというところについて、実際にOIDC Provider(認可サーバー)もどきを作ってみることで理解してみようという記事になります。 なお、諸事情でRustで実

    RustでOIDC Providerもどきを実装してテストスイートを通してみる
    sh19910711
    sh19910711 2021/12/24
    "OIDC Provider(認可サーバー)もどきを作ってみる / RustでOIDC Providerの機能限定版を実装する(Authorization Code Flow) / OpenID Conformance Suite(テストスイート)のBasic OP profileを流してみる"
  • 構文木のあるものを文字列として扱わない - blog.8-p.info

    ちょっと前に、他のチームの書いたものをセキュリティ的な観点でレビューする、という仕事があった。「SQL インジェクションはありませんか?」みたいなチェックリストを片目に AWS SDK で DynamoDB にアクセスするようなコードをレビューするのは、なかなか隔世の感があった。 私は2000年代の後半から2010年台の頭にかけて、いわゆる Web プログラマ仕事をしていて、Perl から MySQLSQL を投げて結果を HTML に入れて返すようなものをよく書いていた。当時は SQL インジェクションとか XSS が、よくある脆弱性として語られていた。 この感じ、パブリッククラウドの SQL じゃないデータベースを使っている人々や、最終的には SQL になるけど基的には OR マッパーを使っている人々、ReactHTML を作っているような人々には伝わらないんじゃないかと

    sh19910711
    sh19910711 2021/10/06
    "当時は SQL インジェクションとか XSS がよくある脆弱性として語られていた / 諸悪の根源は構造があって構文木のあるような言語 (SQL や HTML) をその構造を理解してない低レベルな抽象 (文字列) で扱っていることにある"
  • WireGuardとOpenID Connectの連携をGoで実装してみた

    社内勉強会で発表した資料です https://github.com/kurochan/oidc-wireguard-vpn/

    WireGuardとOpenID Connectの連携をGoで実装してみた
    sh19910711
    sh19910711 2021/08/20
    便利そう👀 / WireGuard + OpenID Connect + google/nftables / "WireGuard: 次世代耐乱用性カーネルネットワークトンネル by Json Donenfeld"
  • Punditから考えるDRYな権限管理の設計方針 - Qiita

    TL;DR Web applicationを書いてると,たいてい業務ロジック実装のための分岐処理でコードが汚くなり,また色々な場所に同様な処理のコピペが発生する 権限管理用ライブラリであるPunditを使って業務ロジックにおける分岐処理を1箇所にまとめるときれいに整理できるケースがある 複雑なUser Roleベースの権限管理をするときはcancancanなどを使うべきで,目的に応じた使い分けが大事 書いていないこと Punditの詳しい使い方(コードベースが非常にシンプルでdocも充実しているので自分で読んだ方が早い) 他の権限管理ライブラリの使い方(筆者より優秀なエンジニアが書いた記事が沢山あるのでググった方がいい) 前置き Web applicationがある程度大きくなった時に生じる2大問題 ビジネスロジックの条件分岐でコードが汚れる問題 以下のようなビジネスロジックを実装するため

    Punditから考えるDRYな権限管理の設計方針 - Qiita
  • RubyでFirebaseのidトークンを認証に使ってみる - Qiita

    記事はFirebase Advent Calendar 201611日目の記事です。 さていきなりですが、アプリケーションからFirebaseにログインすると、そのユーザー用のIDトークンが発行されますよね。 このトークンは内部的にFirebaseの各種リソースにアクセスするときに利用されるだけでなく、公式のSDKを利用することでサーバーサイドでの認証に使うことが可能です。 手続きとしてはシンプルで、各SDKが用意してある検証用メソッドにトークンを渡すと、検証が成功した際にはトークンをデコードした情報が受け取れるようになっています。 ここからuidや認証に使用したプロバイダ情報を取得することができて便利。 しかし、Rubyのような公式SDKがない言語で認証を行おうとすると、トークンの検証を自分でする必要が出てきて面倒なのですが、最近それに向き合う必要性がでてきました。 で、実際にどう向き

    RubyでFirebaseのidトークンを認証に使ってみる - Qiita
  • Perl5におけるコンテキストの扱いによる脆弱性について - アリ

    The Perl Jam - Exploiting a 20 Year-old Vulnerability より Perlを普段から書いている人にとっては常識ではあるが、そうではない人のために書いておく。 リストと配列 Perlにおける「リスト」とは何かというのを確認しておく。まず、Perlにはコンテキストという他のプログラミング言語にはない概念があり、単数(スカラー)と複数(リスト)を区別する。 # 配列 my @a = ('a', 'b', 'c'); # リストコンテキスト # 配列をリストコンテキストで評価 print @a; #=> abc # リストをリストコンテキストで評価 print ('a', 'b', 'c'); #=> abc # スカラーコンテキスト # 配列の要素はスカラー print $a[0]; #=> a # 配列をスカラーコンテキストで評価 print s

    Perl5におけるコンテキストの扱いによる脆弱性について - アリ
  • OAuth 2.0 の勉強のために認可サーバーを自作する - Qiita

    逆に、RFC 6749 以外で定義されている認可フローをサポートする場合、新たに別のエンドポイントの実装が必要になることがあります。例えば CIBA(Client Initiated Backchannel Authentication)ではバックチャネル認証エンドポイント(backchannel authentication endpoint)、デバイスフロー(RFC 8628)ではデバイス認可エンドポイント(device authorization endpoint)の実装が求められます。 この記事では、認可エンドポイントとトークンエンドポイントを実装します。サポートする認可フローは認可コードフローのみ、サポートするクライアント・タイプはパブリックのみとします。 2. 注意点 下記の理由、および書かれていないその他の理由により、実装は商用利用には適していません。 セキュリティー上必須

    OAuth 2.0 の勉強のために認可サーバーを自作する - Qiita
  • RubyやRubyのOSSの脆弱性を見つけた話 - ooooooo_qの日記

    この記事はRuby Advent Calendar 2018 - Qiitaの23日目です。 今年はRubyやOSSの脆弱性をいろいろ探していたので、その感想を。 Ruby (Cruby) Tmpでのディレクトリトラバーサル DirでのNUL文字の扱いの問題 UNIX ドメインソケットでのNUL文字 Ruby 2.6での挙動変更 Dir[]でのNUL文字について Rubygems rubygems 65534倍効率的なブルートフォース minitarでのKernel.open*2 geminabox Discourse Heroku Rails pgでのNUL文字 Active StorageでのXSS 報奨金 感想 Rubyに詳しくなった 脆弱性としての判定 自分が使うものを安全にする まずはRubyから Ruby (Cruby) techlife.cookpad.com 昨年公開された

    RubyやRubyのOSSの脆弱性を見つけた話 - ooooooo_qの日記
  • Exploiting Electron RCE in Exodus wallet

    electron - Build cross platform desktop apps with JavaScript, HTML, and CSS Basically, the code checks command line arguments against a blacklist. Based on that, it can be assumed that it is possible to inject command line arguments via URI handler. Electron based applications are basically bunch of Javascript and HTML files rendered by Chromium for front-end and nodejs for back-end. And Chromium

    Exploiting Electron RCE in Exodus wallet