並び順

ブックマーク数

期間指定

  • から
  • まで

1 - 40 件 / 115件

新着順 人気順

ptraceの検索結果1 - 40 件 / 115件

  • ptrace より 100 倍速いシステムコールフック作った - かーねるさんとか

    新しい高性能で汎用的なシステムコールフックの仕組みを作ってみました。 モチベーションとして、システムコールをフックしてユーザー空間でエミュレートしたくなったのですが、現状、性能と汎用性を両立する仕組みがなさそうだったので、新しい方法を考えました。 今回のシステムコールフックの仕組みは以下のような特徴があります。 ptrace より 100 倍以上高速 LD_PRELOAD や既存のバイナリ書き換えツールより確実 カーネルへの変更なし、かつカーネルモジュールを使わない プログラムのソースコード、プログラムの再コンパイル不要 eBPF でトレーシングをしているけれど、できれば制約が少ないユーザー空間でトレーシングツールを作りたい。もしくは、gVisor のようなサンドボックスを作りたいけれど、ptrace による性能劣化が大きいので、他の高速なシステムコールフックの仕組みが使いたい、というよう

      ptrace より 100 倍速いシステムコールフック作った - かーねるさんとか
    • Dockerでデバッグ対象のコンテナにツールを入れずにtcpdump/straceなどを使うワンライナー - Qiita

      はじめに Dockerであんなコンテナやこんなコンテナを動かしてると、なんかうまく動かなくて、デバッグのためにtcpdumpとかstraceなどのツールが使いたくなることが稀によくあります。 そんな時、デバッグ対象のコンテナ内にツールを一時的にインストールしちゃうというのが、まぁ簡単で分かりやすいんですが、デバッグ対象のコンテナを汚すのはできれば避けたいところです。 Dockerのコンテナの分離というのは、結局のところLinuxのリソースの名前空間の分離であるので、逆に同じ名前空間を共有すれば、デバッグ用に立てた隣のコンテナから、デバッグ対象のコンテナのネットワークやプロセスの状態を観察することも可能です。 また、docker buildはDockerfileを標準入力から受け取ることもできるので、ワンライナーにしてデバッグ用のコンテナをシュッと呼び出せるようにしてみました。 TL;DR

        Dockerでデバッグ対象のコンテナにツールを入れずにtcpdump/straceなどを使うワンライナー - Qiita
      • 「別プロセスの PHP が今何をしているか」を実況するプログラムを PHP で作った - Qiita

        0 fgets <internal>:-1 1 <main> <internal>:-1 0 fgets <internal>:-1 1 <main> <internal>:-1 0 fgets <internal>:-1 1 <main> <internal>:-1 ... 0 time_nanosleep <internal>:-1 1 PhpProfiler\Lib\Loop\LoopMiddleware\NanoSleepMiddleware::invoke /home/sji/work/php-profiler/src/Lib/Loop/LoopMiddleware/NanoSleepMiddleware.php:33 2 PhpProfiler\Lib\Loop\LoopMiddleware\KeyboardCancelMiddleware::invoke /home/sji/

          「別プロセスの PHP が今何をしているか」を実況するプログラムを PHP で作った - Qiita
        • デバッガと和解せよ

          2022/08/28 Kernel/VM探検隊online part5 (https://kernelvm.connpass.com/event/256248/) の @nullpo_head (https://twitter.com/nullpo_head) の発表資料です。 ptraceを使って対象コマンドの全子プロセスにattachしてDwarfを見つつデバッグしたいプロセスを探し、最終的には他のデバッガに処理を流すような不思議なデバッガ(?)を作ることで、zero configurationでvscodeでブレークポイントを打ったプロセスのデバッグを始めてくれる dbgee (https://github.com/nullpo-head/dbgee) という便利ツールを作ったときの話をしました。

            デバッガと和解せよ
          • How does the Linux Kernel start a Process

            ...and how to ptrace the entry point and m3ss w1th da stack. In this article, you will learn what happens inside the Linux Kernel when a process calls execve(), how the Kernel prepares the stack and how control is then passed to the userland process for execution. I had to learn this for the development of Zapper - a Linux tool to delete all command line options from any process (without needing r

              How does the Linux Kernel start a Process
            • VSCodeとDockerでMacにGolangの開発環境を作成する | DevelopersIO

              こんにちは、CX事業本部の夏目です。 Golangは最近人気の言語で手を出そうとは思っていたのですが、環境構築がいまいちよくわからなくてできてませんでした。 (goenvを使ってGolangをインストールするときGOPATHはどうしたらいいとかよくわからなかったのです) 今日はVisualCodeとDockerを使って、Golangの開発環境をMac上に作成しようと思います。 環境構築 事前準備 VSCodeとDockerをインストールします。 Visual Studio Code - Code Editing. Redefined Docker Desktop for Mac and Windows | Docker Version 2.0以上 拡張機能のインストール VSCodeのExtension "Remote-Containers"を使用して開発環境を作ろうと思います。 Micr

                VSCodeとDockerでMacにGolangの開発環境を作成する | DevelopersIO
              • 株式会社はてなを退職しました - プログラムモグモグ

                本日2021年9月30日が最終出社日でした。1か月間のお休みをいただき、11月から新しい職場で働きます。2015年4月に新卒入社して、Mackerelチームとブックマークチームに所属しました。約六年半、お世話になりました。どちらのプロダクトも携わることができて楽しかったです。 入社時はウェブサービスの実装について何も知らない状態でした。しかしMackerelチームの優秀な先輩と理解あるプロダクトオーナーとディレクターに支えられて、様々なことを学びながらサービスと共に成長できました。サーバーやフロントエンドを書いたり、機能を作ったり閉じたり、年の瀬の夜中に障害対応したり、ioドメインが壊れたり、Linuxカーネルのコードを読んだり、時系列DBをクラウド上で実装したり、競合との差別化を考えたり、お客様とサービスの強み弱みについて議論したりしながら、SaaSビジネスをやる上での色々なことを経験で

                  株式会社はてなを退職しました - プログラムモグモグ
                • ssh-agent のしくみ - eagletmt's blog

                  ssh-agent のように daemon として起動し秘密の情報を保持しつつ別プロセスと通信するようなプログラムを書きたくて、ssh-agent はどう実装しているのかざっくり調べた。 https://github.com/openssh/openssh-portable 通信方法 これは普通に ssh-agent を使っていてもすぐ気付くことだけど、ssh-agent は UNIX domain socket を使って通信している。 eval $(ssh-agent) のように実行すると SSH_AUTH_SOCK と SSH_AGENT_PID の2つの環境変数がセットされ、SSH_AUTH_SOCK は UNIX domain socket のパスを、SSH_AGENT_PID は daemon 化した ssh-agent の pid を指している。 SSH_AUTH_SOCK は

                    ssh-agent のしくみ - eagletmt's blog
                  • ぼくがかんがえたさいきょうのWasmビルド環境

                    TL;DR VS Code 前提になってしまいますが、VS Code Remote Containers 拡張最強です、という話。実際にどういう風に作れば良いかは参考リポジトリ作ったので見て下さい。 はじめに 背景ぼかしのような推論結果を使ってカメラ画像にフィルタを入れる処理を書くとき、今だと選択肢は大きく分けて 2 つあります。 tfjs を使う Wasm 経由で tflite やその他ライブラリを使う この記事では後者の Wasm を使う方に注目して、その開発環境について記載します。 先行例 w-okadaさんのリポジトリには複数の Wasm を使った事例が紹介されています。 例を挙げるとTFLite Wasm for Google Meet SegmentationやTFLite Wasm for ESPCNなどが Wasm です。 これらのビルド環境はどうなっているかというと、Do

                      ぼくがかんがえたさいきょうのWasmビルド環境
                    • act: GitHub Actions のワークフローをローカル環境で実行する - kakakakakku blog

                      GitHub Actions でワークフローを実行するときに git commit と git push を実行して GitHub Actions の実行を待つことがよくある.より迅速に実行して,結果を受け取るために「act」を使って GitHub Actions をローカル環境(コンテナ)で実行する仕組みを試してみた.便利だったので紹介しようと思う❗️ 当然ながら GitHub Actions を完全再現できてるわけではなく,最終的には GitHub Actions を使うことにはなるけど,特に開発中に頻繁にテストを実行できるのはメリットだと思う.うまく併用しながら開発体験を高めよう👌 github.com セットアップ macOS の場合は Homebrew を使って簡単にセットアップできる.他には Chocolatey (Windows) や Bash script も選べる.今回

                        act: GitHub Actions のワークフローをローカル環境で実行する - kakakakakku blog
                      • システムコールを速く漏れなくフックする方法 | IIJ Engineers Blog

                        ptrace、Syscall User Dispatch:カーネルが提供している ptrace や Syscall User Dispatch のような機能は、ユーザ空間でシステムコールのフックを実装するために利用できます。ですが、これらを利用すると、元のユーザ空間プログラム内部でのシステムコール呼び出しのコストが大きくなり、結果として、性能が大きく劣化してしまいます。(要件1を満たせない) eBPF :eBPF のようなカーネル内の関数へフックを適用できる仕組みもありますが、eBPF は XDP のような場合を除くと、基本的にカーネルの挙動を変更するためには利用できないため、カーネル機能をユーザ空間でエミュレートする、といった用途には適していません。(要件5を満たせない) ライブラリ関数の置き換え:標準ライブラリ(libc 等)は、沢山のシステムコールのラッパーライブラリ関数を実装してお

                          システムコールを速く漏れなくフックする方法 | IIJ Engineers Blog
                        • Linux perf Examples

                          Recent posts: 24 Mar 2024 » Linux Crisis Tools 17 Mar 2024 » The Return of the Frame Pointers 10 Mar 2024 » eBPF Documentary 28 Apr 2023 » eBPF Observability Tools Are Not Security Tools 01 Mar 2023 » USENIX SREcon APAC 2022: Computing Performance: What's on the Horizon 17 Feb 2023 » USENIX SREcon APAC 2023: CFP 02 May 2022 » Brendan@Intel.com 15 Apr 2022 » Netflix End of Series 1 09 Apr 2022 » Te

                          • コンテナエンジンの作り方 ~ さくらの夕べ ヤンジェネバトル ~ - Speaker Deck

                            Transcript コンテナエンジンの作り方
 さくらの夕べ ~ ヤンジェネバトル ~
 さくらインターネット 株式会社 技術本部 大西 和貴 (C) Copyright 1996-2016 SAKURA Internet Inc 2019/10/08 自己紹介
 2
 大西 和貴 (@_k_onishi_)
 
 
 2017年度新卒
 SVOPチーム(運用) → レンタルサーバチーム(開発)
 
 サービスのコントロールパネルやメールソフトの
 バックエンドやフロントエンドを担当( Go / Typescript )
 
 
 Tech: 
 Linux / Unix / Kernel / File System / 仮想化 / コンテナ
 エミュレータ / バイナリ
 
 Lang: 
 C / Assembly / Perl
 
 Blog:
 レガシーガジェット研究所 Dock

                              コンテナエンジンの作り方 ~ さくらの夕べ ヤンジェネバトル ~ - Speaker Deck
                            • Rustを写経する環境を作る

                              What's? 詳解Rustプログラミングを写経しています。 最初はIntelliJ IDEAで書いていたのですが、補完があまり効かないのでVS Codeに乗り換えました。 (IntelliJ IDEAで何がうまくいっていないのか調べられてないのですが...) ついでにとアレコレくっつけていったらゴツゴツしてきたのですが、なかなか快適なので紹介。 写経中のリポジトリはこちら。 https://github.com/watarukura/rust_in_action_study Required VS Code Docker devcontainer VS Codeのdevcontainerを使います。 moldを使ってみたかったのでFaster Rust Incremental Builds in Dockerを参考にしつつ、最新のv1.1を使えるように書き換えています。 (あんまりmol

                                Rustを写経する環境を作る
                              • VSCodeとDockerで作ったGolangの開発環境にLocalStackを追加して、AWSのテスト環境を整える | DevelopersIO

                                VSCodeとDockerで作ったGolangの開発環境にLocalStackを追加して、AWSのテスト環境を整える こんにちは、CX事業本部の夏目です。 先日、VSCodeのExtension Remote-Containersを使ってGolangの開発環境をDocker上に作りました。(リンク) 個人的な話ですが、AWSで使用するCLIツールをGolangで書いています。 そのため、AWS環境のMockとしてLocalStackを使い、テストを書きたいと思いました。 Remote-Containers ではdocker-composeを使って環境を作ることができるので、今回はLocalStackもGolangの開発用Containerと同時に立ち上げるようにしていきたいと思います。 環境構築 事前準備 Golangの環境は前回のブログで作ったものを流用したいと思います。 (compos

                                  VSCodeとDockerで作ったGolangの開発環境にLocalStackを追加して、AWSのテスト環境を整える | DevelopersIO
                                • Linux Hardening Guide | Madaidan's Insecurities

                                  Last edited: March 19th, 2022 Linux is not a secure operating system. However, there are steps you can take to improve it. This guide aims to explain how to harden Linux as much as possible for security and privacy. This guide attempts to be distribution-agnostic and is not tied to any specific one. DISCLAIMER: Do not attempt to apply anything in this article if you do not know exactly what you ar

                                  • How to debug C and C++ programs with rr | Red Hat Developer

                                    The common theme in many time-travel movies is to go back in time to find out what went wrong and fix it. Developers also have that desire to go back in time and find why the code broke and fix it. But, often, that crucial step where everything went wrong happened long ago, and the information is no longer available. The rr project lets programmers examine the entire life of a C or C++ program run

                                      How to debug C and C++ programs with rr | Red Hat Developer
                                    • Development Container CLI

                                      Register now for a full day of community, learning, and all things Visual Studio Code The dev container CLI May 18, 2022 by Brigit Murtaugh, @BrigitMurtaugh TL;DR A consistent environment anywhere with the dev container CLI The development container teams at Microsoft and GitHub are excited to release an open source command-line interface (CLI) as part of the new Development Containers Specificati

                                        Development Container CLI
                                      • Profiling Native Python Extensions

                                        One of the cool new features in py-spy is the ability to profile native Python extensions written in languages like C, C++ or Cython. Almost all other Python profilers[1] only show program activity that is in pure Python code, and native code will instead show up as spending time in the line of Python that calls the native function. Using native profiling tools like perf can get you a sense of wha

                                          Profiling Native Python Extensions
                                        • Netlinkと友達になろう - ネットワークは砕けない

                                          Netlinkを学び始めました。記録です。 今回はNetlink メッセージをコードで書く内容であったり、そのメッセージをキャプチャしてバイナリを読みながらNetlinkを理解する記事になります。 Netlinkとは? ユーザー空間とカーネル空間のやりとりを行う事が出来るLinux kernelのサブシステムです。 Netlinkは、socket通信を利用してユーザー側はカーネル空間との通信を行う事が出来るため通常のネットワークプログラミングと同じように、Netlinkに関する様々な要素を持ったヘッダーを付加し送信を行った後、recv関数といったソケットからメッセージを受け取る関数を使用する事でカーネル空間とユーザ空間の通信を実現しています。 linuxjm.osdn.jp ネットワーク経由でNetlinkを使用する主な要素としては以下が挙げられます。 経路テーブルに関する操作(例:追加,

                                            Netlinkと友達になろう - ネットワークは砕けない
                                          • インターンレポート: RootlessコンテナのTCP/IP高速化

                                            はじめまして、インターン生の松本直樹と申します。 この記事では、私がNTT研究所におけるインターン「コンテナランタイムの実装と評価」のインターン期間中に取り組んだ「bypass4netns」について紹介させていただきます。 自己紹介私は京都大学 情報学研究科に所属し、 普段は次世代型ホームネットワークと称してホームネットワークとSDNの融合や計算処理オフロードに関する研究に取り組んでいます。 コンテナ技術やその周辺のネットワーク技術に関しては普段から興味があったものの、 時間をかけて取り組む機会がありませんでした。 その折に、今回のインターンの募集を見つけ、実装を中心に触れることができる良い機会だと思い応募させていただきました。 インターン期間中はRootlessコンテナとネットワーク周りにどっぷりと浸ることができ、 非常に貴重な体験ができました。 はじめに: Rootless コンテナに

                                              インターンレポート: RootlessコンテナのTCP/IP高速化
                                            • Stable Diffusionをローカルマシンで実行する(VSCodeとDevcontainerを使用)

                                              最近流行りのテキストから画像を生成する機械学習モデルが一般公開されたとのことで、興味本位で触ってみました。ざっと書いちゃったので、後で見直すかも。 目的 GPUアクセラレーションを活かしつつコンテナ内でStable Diffusionのモデルを動かしたい。メインPCなのでLinuxじゃなくWindowsを使いたい。 前提条件 以下のスペックのPCで、本記事の内容を実行しました。 OS: Microsoft Windows 11 Pro CPU: AMD Ryzen7 3700X メモリ: 32GB ストレージ: 1TB GPU: nVidia Geforce RTX 3080(10GB) とりあえず、OSとGPUベンダーだけそろっていれば本記事の内容は実行できると思います。 ちなみに、Windows 10の場合はInsider版を使えばCUDA on WSL2が可能です。(つまり、本記事の

                                                Stable Diffusionをローカルマシンで実行する(VSCodeとDevcontainerを使用)
                                              • ptraceより100倍以上高速なエミュレートを実現 バイナリの書き換えでシステムコールをフックする

                                                Kernel/VM探検隊は、カーネルやVM、およびその他なんでもIT技術の話題ジャンルについて誰でも何でも発表してワイワイ盛り上がろうという会です。yasukata氏は、バイナリの書き換えで、システムコールをフックする「Zpoline」の仕組みについて紹介しました。 システムコールをフックしたくなった理由 yasukata氏(以下、yasukata):yasukataといいます。発表を始めます。 今回は、「Zpoline」という、バイナリを書き換えることでシステムコールをフックする仕組みを紹介します。ここではx84-64のCPUで動作するLinuxを想定しています。(スライドを示して)ソースコードはこちらにURLがあるので、よろしければ見てみてください。あとでスライドも公開するので、そちらも併せてご覧ください。 まず、なぜシステムコールをフックしたくなったのかですが、個人的にカーネルに実装

                                                  ptraceより100倍以上高速なエミュレートを実現 バイナリの書き換えでシステムコールをフックする
                                                • linux kernelでのFPU, MMX, SSEについて - 私のひらめき日記

                                                  linux kernelでのFPU, MMX, SSEについて 本記事では、linux kernel 2.6.11でのFPU(Float Point Unit)やMMX, SSEがどう設定、使用されているのかを確認する。FPU, MMX SSE命令を使用する際は、使用する際に意図的に#NM(Interrupt7: Device not available exception)を出し、各種フラグを切り替え(特にcr0.TS flagをOFFにして)、これらの命令を使えるようにしている。(後述の通り、Kernel Modeでは、kernel_fpu_begin, kernel_fpu_endにてフラグの切り替えをおこなっている1ため、この限りでない。) プログラミング言語の例外処理はパフォーマンスを落とすものとして一般に嫌われているが、ハードウェア(この場合x86)のレイヤでは、例外をあえて意

                                                    linux kernelでのFPU, MMX, SSEについて - 私のひらめき日記
                                                  • eBPFやLD_PRELOADを利用した共有ライブラリの関数フック - TIER IV Tech Blog

                                                    こんにちは、ティアフォーでパートタイムエンジニアをしている石川です。 本記事では、楽に「動的ライブラリ(及び実行バイナリ)の特定の関数をフックして何かしらの処理をする」手法について紹介していきます。 この記事は、同じくパートタイムエンジニアの西村さんによる作業の成果を元にして、石川が執筆したものです。ソースコードや図のいくつかも西村さんによる貢献です。 また、ティアフォーでは「自動運転の民主化」をともに実現していく、学生パートタイムエンジニアを常時募集しています。自動運転を実現するためには、Softwareに関してはOSからMiddlewareそしてApplicationに至るまで、Hardwareに関してはSensorからECUそして車両に至るまで異なるスキルを持つ様々な人々が不可欠です。もしご興味があれば以下のページからコンタクトいただければと思います。 https://tier4.j

                                                      eBPFやLD_PRELOADを利用した共有ライブラリの関数フック - TIER IV Tech Blog
                                                    • Diving into /proc/[pid]/mem

                                                      A few months ago, after reading about Cloudflare doubling its intern class size, I quickly dusted off my CV and applied for an internship. Long story short: now, a couple of months later, I found myself staring into Linux kernel code and adding a pretty cool feature to gVisor, a Linux container runtime. My internship was under the Emerging Technologies and Incubation group on a project involving g

                                                      • My First Kernel Module: A Debugging Nightmare

                                                        This is the story of the time I wrote some code, deployed it to production, and ended up bricking the server it was running on by frying the kernel. Beautiful rendition of me frying the kernel This post is about perils of concurrency and race conditions. My code was nearly correct, but ultimately, there were two major synchronization bugs that killed it. This is a really long post that gets into t

                                                        • 脆弱性診断用に非ルート化端末でも動作するCUIのメモリ改ざんツール「apk-medit」を作った話 - Akatsuki Hackers Lab | 株式会社アカツキ(Akatsuki Inc.)

                                                          こんにちは、セキュリティエンジニアの小竹 泰一(aka tkmru)です。 アカツキでは、Webアプリケーション、ゲームアプリに対する脆弱性診断や社内ネットワークに対するペネトレーションテスト、ツール開発/検証などを担当しています。 メモリ改ざんによるチートとは UI上に表示されている値を端末のメモリ上から検索し、見つけた値を改ざんすることでチートを行うことができる場合があります。 これはゲームのチート方法の中で最も簡単な方法で、脆弱性診断の際にも実際にメモリ上のデータを改ざんをすることでチートできるかどうか確認しています。 対策としては、XOR等を使ってメモリ上ではエンコードされた状態で値を保持し、UI上に表示されている値を検索されても見つからないようにする方法があります。 作ったツール apk-meditという脆弱性診断のためのAndroidアプリ向けメモリ改ざんツールを作成しました。

                                                            脆弱性診断用に非ルート化端末でも動作するCUIのメモリ改ざんツール「apk-medit」を作った話 - Akatsuki Hackers Lab | 株式会社アカツキ(Akatsuki Inc.)
                                                          • BeyondProd  |  Documentation  |  Google Cloud

                                                            Send feedback BeyondProd Stay organized with collections Save and categorize content based on your preferences. This content was last updated in May 2024, and represents the status quo as of the time it was written. Google's security policies and systems may change going forward, as we continually improve protection for our customers. This document describes how Google implements security in our i

                                                              BeyondProd  |  Documentation  |  Google Cloud
                                                            • bccとUSDTを使ってMySQL/PostgreSQLのクエリログを取得する

                                                              引越しをして落ち着き始めました。一人暮らしの頃の家電を replace する作業をしている。 よろしくおねがいします。 https://www.amazon.jp/hz/wishlist/ls/QH63MJIX20EA?ref_=wl_share USDT がどのように動作するのかについて調べ、USDT と eBPF(bcc) を使って様々なことができることを知ったのでメモがてら。 まずは USDT (User Statically-Defined Tracing) について簡単に述べる。 USDT はユーザースペースで動作しているアプリケーションに対し、オーバーヘッドを小さく簡単にデバッグを可能とするものだ。 これは DTrace で使われている技術で、元々は Solaris でカーネルに Probe と呼ばれるものを挿入し、Probe を通過した時点でユーザースペースの関数がコールバッ

                                                                bccとUSDTを使ってMySQL/PostgreSQLのクエリログを取得する
                                                              • magicpak: 静的リンクなしで小さなDockerイメージを作る - molecular coordinates

                                                                おはようございます!!!coord_eです、よろしくどうぞ。 実行に必要なファイルだけをうまく集めれば、静的リンクせずとも小さなDockerイメージを作ることができます。本記事では、その作業を自動で行ってくれるツール magicpak を作ったので、紹介します。 Dockerイメージ縮小オタク2(ツー) coordination.hatenablog.com ☝️前編です。実行に必要なファイルだけをうまく集めれば別に静的リンクしないでも小さなDockerイメージが作れるよねって話です。 本記事では、上の記事でやったこと(実行に必要なファイルを集める)を自動でやってくれるツール magicpak を紹介します*1。 magicpak: Build minimal docker images without static linking github.com magicpakは、対象の実行可能

                                                                  magicpak: 静的リンクなしで小さなDockerイメージを作る - molecular coordinates
                                                                • [アップデート]AWS Fargate プラットフォームバージョン1.4でできるようになったこと | DevelopersIO

                                                                  はじめに こんにちは、コンサル部の島川です。 2020/4/8 Fargateの新しいプラットフォームバージョン 1.4がリリースされました。てんこ盛りですが、今すぐ適用させたいそんな機能ばかりです! アップデート情報は基本的にここにまとまっていますが、こちらでも再度要点をまとめて更に適用する手順についてもご紹介いたします。 追加された新機能について FargateはECSとEKSで利用することができますが、今回のアップデートは主にECSにおけるアップデートになります。共通する部分もありますが、基本的にECSでの利用という点に注意してください。 FargateでElastic File System(EFS)が使えるようになりました ECS on EC2では既に使える機能でしたが、ECS on Fargateでも使えるようになりました!限られたディスク容量という課題をクリアすることができま

                                                                    [アップデート]AWS Fargate プラットフォームバージョン1.4でできるようになったこと | DevelopersIO
                                                                  • 第43回 Linuxカーネルのケーパビリティ[2] | gihyo.jp

                                                                    前回はプロセスに設定されているケーパビリティと、ファイルにあらかじめ設定しておくファイルケーパビリティについて説明しました。 今回はまず、execve(2) システムコールを使ってプログラムを実行する際にケーパビリティがどのように変化するのかを説明したあと、Ambientケーパビリティとケーパビリティバウンディングセットについて説明します。 プログラム実行時のケーパビリティ Linux上で実行されるプログラムは、fork(2)やclone(2)システムコールを使って親プロセスを複製して生成し、複製したあとにexecve(2)システムコールで目的のプログラムを実行します。 このexecve(2)でプログラムを実行する際に、カーネルは実行後のプロセスが持つケーパビリティを計算します。このときの計算は次のアルゴリズムが使われます。 P'(ambient) = (file is privilege

                                                                      第43回 Linuxカーネルのケーパビリティ[2] | gihyo.jp
                                                                    • Why strace doesn't work in Docker

                                                                      While editing the capabilities page of the how containers work zine, I found myself trying to explain why strace doesn’t work in a Docker container. The problem here is – if I run strace in a Docker container on my laptop, this happens: $ docker run -it ubuntu:18.04 /bin/bash $ # ... install strace ... root@e27f594da870:/# strace ls strace: ptrace(PTRACE_TRACEME, ...): Operation not permitted stra

                                                                      • 第582回 いろいろなディストリビューションでsnapとLXDを利用する | gihyo.jp

                                                                        snapはCanonicalとUbuntuコミュニティが開発・推進している「ユニバーサルパッケージ」です。いわゆるLinuxディストリビューションを問わずに利用できるパッケージフォーマットであり、強力な権限管理機能を備えています。今回はこのsnapを、Ubuntu以外のディストリビューションにインストールしつつ、コンテナ管理システムであるLXDのsnap版パッケージをインストールしてみましょう。 snapはいろいろなディストリビューションで利用可能 snapはCanonicalとUbuntuコミュニティが推進する「ユニバーサルパッケージ」です。依存するソフトウェアをすべてパッケージに含めることで、依存関係を気にせずあらゆるディストリビューションでインストール可能なバイナリパッケージとして利用できます。 まずはsnapを説明する上で出てくる用語を整理しておきましょう。ごたくはいいからインスト

                                                                          第582回 いろいろなディストリビューションでsnapとLXDを利用する | gihyo.jp
                                                                        • The SYZBOT CTF

                                                                          目次 第0章 概要 0.1 syzbot とは? 0.2 主な登場人物紹介? 0.3 自己紹介:熊猫の Linux との関わりについて 0.4 今日のお話「バグハンティング」 第1章 Linux カーネルについて 1.1 Linux カーネルの規模について 1.2 Linux カーネルの制約事項について 1.3 Linux カーネルのデバッグ支援機能について 第2章 カーネルメッセージを読めるようにするための試行錯誤について 2.1 printk() に求められているものとは? 2.2 複数行分のメッセージをバッファリングする試み(2017年4月~) 2.3 メッセージ本文中にコンテキスト情報を埋め込む試み(2018年4月~) 2.4 1行分のメッセージをバッファリングする試み(2018年6月~) 2.5 再び1行分のメッセージをバッファリングする試み(2018年9月~) 2.6 再挑戦(

                                                                          • The Difficulties of Tracking Running Processes on Linux

                                                                            Introduction Everyone knows how to track which processes run on Linux, but almost no-one tracks them accurately. In fact, all of the methods listed in this post have some deficiency or another. Lets define requirements: All processes should be logged including short-lived processes We should know the full executable path of every process that runs Within reason, we shouldn’t need to modify or reco

                                                                            • 超入門USDT - ローファイ日記

                                                                              Linuxアドベントカレンダー2020 8日目の記事です。前日はmomomo_rimotoさんの多段sshとchroot環境。そしていろいろなコマンドを使いたいでした。 qiita.com 今日はみんな大好きなeBPFにも関係して、特にUSDTという機能に関するお話をします。 USDT、それは USDT(User Statically-Defined Tracing) とは、要するに、ユーザランドにあるプログラムに対して、静的にトレースのための窓口(プローブ)を埋め込む仕組みです。トレースが無効の際はパフォーマンスが落ちないような工夫がされています。 詳細な説明は id:mrtc0 の記事の方がわかりやすいので、簡単な説明に留めますが... blog.ssrf.in カーネル側をトレースする際に、動的な関数などのプローブをkprobe、静的にカーネルに組み込まれたプローブをtracepoi

                                                                                超入門USDT - ローファイ日記
                                                                              • GitHub - a13xp0p0v/kernel-hardening-checker: A tool for checking the security hardening options of the Linux kernel

                                                                                $ ./bin/kernel-hardening-checker -c kernel_hardening_checker/config_files/distros/ubuntu-22.04.config -l /proc/cmdline -s kernel_hardening_checker/config_files/distros/example_sysctls.txt [+] Kconfig file to check: kernel_hardening_checker/config_files/distros/ubuntu-22.04.config [+] Kernel cmdline file to check: /proc/cmdline [+] Sysctl output file to check: kernel_hardening_checker/config_files/

                                                                                  GitHub - a13xp0p0v/kernel-hardening-checker: A tool for checking the security hardening options of the Linux kernel
                                                                                • Interactive map of Linux kernel

                                                                                  image/svg+xml Linux kernel map Constantine Shulyupin © 2007–2022 Constantine Shulyupin www.MakeLinux.net/kernel/map virtual logical electronics I/O memory CPU HI char devices HI subsystems address families sockets access protocols network interfaces networking Virtual File System block devices storage virtual memory memory access logical memory Page Allocator memory threads processes Scheduler int