並び順

ブックマーク数

期間指定

  • から
  • まで

1 - 18 件 / 18件

新着順 人気順

システムコールの検索結果1 - 18 件 / 18件

タグ検索の該当結果が少ないため、タイトル検索結果を表示しています。

システムコールに関するエントリは18件あります。 linuxシステムkernel などが関連タグです。 人気エントリには 『Linux システムコール 徹底入門』などがあります。
  • Linux システムコール 徹底入門

    Linux システムコールについて調べたことをまとめる。システムコールの仕組みを理解すると、 OS とアプリケーションがどのように連携して動いているのかを理解できるようになります。 システムコールは CPU に依存する処理が多いため、 x86_64 に絞ります。 検証環境]# cat /etc/redhat-release CentOS Linux release 8.0.1905 (Core) ]# uname -a Linux localhost.localdomain 4.18.0-80.11.2.el8_0.x86_64 #1 SMP Tue Sep 24 11:32:19 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux ]# cat /proc/cpuinfo | head processor : 0 vendor_id : GenuineInte

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

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

        ptrace より 100 倍速いシステムコールフック作った - かーねるさんとか
      • MicrosoftのLinux向け無料プロセス監視ツール「ProcMon」レビュー、システムコールごとの実行時間などを確認可能

        MicrosoftがWindows向けトラブルシューティングツール群「Windows Sysinternals」に含まれるプロセス監視ツール「Process Monitor(ProcMon)」をLinuxに移植します。このLinux版ProcMonはオープンソースソフトウェアとして公開され、さっそくプレビュー版がリリースされたので実際に使ってみました。 GitHub - microsoft/ProcMon-for-Linux: Procmon is a Linux reimagining of the classic Procmon tool from the Sysinternals suite of tools for Windows. Procmon provides a convenient and efficient way for Linux developers to tra

          MicrosoftのLinux向け無料プロセス監視ツール「ProcMon」レビュー、システムコールごとの実行時間などを確認可能
        • システムコールを速く漏れなくフックする方法 | IIJ Engineers Blog

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

            システムコールを速く漏れなくフックする方法 | IIJ Engineers Blog
          • APIとかABIとかシステムコールとか - 覚書

            はじめに 本記事はLinux環境における次のようなことをざっくり理解するための記事です。 Application Programming Interface(API)って何? Application Binary Interface(ABI)って何? システムコールとAPIとABIの関係って? それぞれ何がどう違うの? この手の情報はググればwikipediaやらにいろいろ情報が載ってるんですが、初心者が理解するには細かいことまで書かれすぎていて、かつ、それぞれの関係がわかりにくいです。なので、用語を逐一解説するのではなく、ありがちな質問のQAという形をとりました。人によって用語の意味の揺らぎがあったりするんですが、私の解釈ということで。あからさまに間違っていたら指摘していただけると嬉しいです。 これを書こうと思ったきっかけは、以前こんなtweetを見かけたことです。それから「そういえば最

              APIとかABIとかシステムコールとか - 覚書
            • Docker Compose で php-fpm が発行するシステムコールを見る - Shin x Blog

              php-fpm の挙動を確認するために発行されるシステムコールを簡単に確認できる Docker Compose 環境を作りました。 github.com システムコール strace-php-fpm strace オプション php-fpm が発行するシステムコール例 ini ファイルの探索 nginx からの FastCGI リクエスト PHP ファイルの読み込み さいごに 参考 システムコール システムコールは、php-fpm のようなユーザプログラムが、ファイル操作やネットワーク通信、プロセス制御のようなカーネルが提供する機能を利用する仕組みです。PHP コードは PHP(ここでは php-fpm)で実行する必要があるので、php-fpm が発行するシステムコールを確認することで php-fpm や PHP コードがどのように動作しているかを知る手掛かりになります。 システムコールを

                Docker Compose で php-fpm が発行するシステムコールを見る - Shin x Blog
              • ptraceより100倍以上高速なエミュレートを実現 バイナリの書き換えでシステムコールをフックする

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

                  ptraceより100倍以上高速なエミュレートを実現 バイナリの書き換えでシステムコールをフックする
                • APIとかABIとかシステムコールとか

                  はじめに 本記事はLinux環境における次のようなことをざっくり理解するための記事です。 Application Programming Interface(API)って何? Application Binary Interface(ABI)って何? システムコールとAPIとABIの関係って? それぞれ何がどう違うの? この手の情報はググればwikipediaやらにいろいろ情報が載ってるんですが、初心者が理解するには細かいことまで書かれすぎていて、かつ、それぞれの関係がわかりにくいです。なので、用語を逐一解説するのではなく、ありがちな質問のQAという形をとりました。人によって用語の意味の揺らぎがあったりするんですが、私の解釈ということで。あからさまに間違っていたら指摘していただけると嬉しいです。 これを書こうと思ったきっかけは、以前こんなtweetを見かけたことです。それから「そういえば最

                    APIとかABIとかシステムコールとか
                  • eBPFに入門して簡単なシステムコールロガーを実装した - zebian.log

                    セキュキャン2023でSysmonForLinuxを使った経験があり、プログラムの挙動ログを自作ロガーで取りたいなと思ったので、Go+ebpf-goで簡単なシステムコールロガーを実装した。eBPFもGoも初心者なのでコードが汚いのは御愛嬌。 コード全体 コードはここに書いた。記事作成時点のコードであって、最新版ではないので注意。 main.go package main import ( "bytes" _ "embed" "encoding/binary" "encoding/json" "fmt" "os" "os/signal" "syscall" "github.com/cilium/ebpf" "github.com/cilium/ebpf/link" "github.com/cilium/ebpf/ringbuf" "github.com/cilium/ebpf/rlimit"

                      eBPFに入門して簡単なシステムコールロガーを実装した - zebian.log
                    • ARM64でptraceより2000倍以上速いシステムコールフック作った - Blog posts by @retrage

                      元ネタ: https://yasukata.hatenablog.com/entry/2021/10/14/145642 せっかちな人向け ARM64向けの高速なシステムコールフックを作った マイクロベンチマークではptraceの2000倍以上、seccompの140倍程度高速 コードはこちら: https://github.com/retrage/svc-hook zpolineとは USENIX ATC 2023において、zpolineというx86/Linux向けの高速なシステムコールフックが提案された[1]。これは、binary rewritingで2バイトの命令である syscallやsysenterを同じ2バイト命令であるcallq *%raxに置き換えた上で0x0のアドレスにトランポリンを設置する、というものである。 同じような仕組みを他のアーキテクチャでも実現だろうか?という

                        ARM64でptraceより2000倍以上速いシステムコールフック作った - Blog posts by @retrage
                      • dlmopen を使ってシステムコールのフックをいい感じにプログラミングする - かーねるさんとか

                        前回の記事で紹介しました Zpoline というシステムコールフックの仕組みだと、バイナリ書き換え後の関数を、システムコールフックから呼び出してしまうと、デッドロックもしくは無限ループが発生することがあるという問題がありました。 結果として、システムコールフックの実装に標準ライブラリ内の機能、例えば、printf 等が使えなくてプログラミングがしにくくなっていました。 この問題は、dlmopen という機能を使うと解決できると教えて頂いて、実際に大分簡単にフック関数を実装できるようになったので、今回の記事では、具体的な Zpoline での利用方法について説明します。 以下の GitHub 上のリポジトリに置いてあるソースコードは dlmopen を利用できるように変更してありますので、よかったら是非試してみてください。 github.com dlmopen の前に dlopen とは?

                          dlmopen を使ってシステムコールのフックをいい感じにプログラミングする - かーねるさんとか
                        • システムコールトレーシング: 吸い込まれる標準入力を観察する - にゃみかんてっくろぐ

                          Linuxその2 Advent Calendar 2020 18 日目の記事です。 「スクリプト書いてたんですが、なぜか途中で止まるんです」と言われた。 止まっている様子(シンタックスハイライトが綺麗でないので画像で) 確かに yarn gen で止まっている。 yarn start も date も実行されていない。終了コードは 0 で、正常だ。 「ファイルとして実行してみて」と伝えた。 最後まで実行される様子 最後まで実行された。 雰囲気で「たぶん 標準入力が吸い込まれている」と雑返答をしてしまったが、ここでその正体を明らかにしておきたい。 1. strace でシステムコールを記録する 2. システムコールから挙動を観察する 2-1. ヒアドキュメントの書き出し 2-2. 標準入力をヒアドキュメントに差し替え 2-3. bash を実行 2-4. 標準入力を読み込み 2-5. dat

                            システムコールトレーシング: 吸い込まれる標準入力を観察する - にゃみかんてっくろぐ
                          • Docker と seccomp を組み合わせてシステムコールを制限する - kakakakakku blog

                            seccomp (Secure computing mode) はプロセスに対してシステムコールを制限する Linux kernel の機能で,今回は「Docker と seccomp」を組み合わせて試す.ドキュメントは以下にある. docs.docker.com seccomp デフォルトプロファイル まず,Docker はデフォルトで seccomp をサポートしている.Docker (Moby) の GitHub リポジトリにデフォルトプロファイル default.json がある.プロファイルは長く感じるけど,比較的簡単に読める.基本的に SCMP_ACT_ERRNO(拒否) となり,ホワイトリストとして列挙したシステムコールを SCMP_ACT_ALLOW(許可) としている. moby/default.json at master · moby/moby · GitHub 基本

                              Docker と seccomp を組み合わせてシステムコールを制限する - kakakakakku blog
                            • Falcoとaws-for-fluent-bitを使ってCloudWatchにEKSノード上の危険なシステムコール情報を収集する(Proxy環境) - YOMON8.NET

                              この記事はBeeX Advent Calendar 2020の12/12の記事です。 EKSのデータプレーンをどう選ぶか考えたとき、個人的にはFargateを積極的に使いたいところですが、まだ制限も多くて要件にフィットしない場合もあります。 そんな時に選択肢として挙がるManaged Node Groupですが、ReInvent2020でSpotインスタンスの利用できる機能が発表されたり、また使いやすくなったと感じています。 ここではそんな、Managed Node Groupで展開したEC2ノードのランタイムセキュリティをチェックする方法としてFalcoを使う手順を書いていきます。 概要としては以下の図の通りです。 Falcoは何か公式のドキュメントから引用します。 Falcoは実行時にカーネルからのLinuxシステムコールを解析し、強力なルールエンジンに対してストリームをアサートします

                                Falcoとaws-for-fluent-bitを使ってCloudWatchにEKSノード上の危険なシステムコール情報を収集する(Proxy環境) - YOMON8.NET
                              • インフラエンジニアにおススメのシステムコール、参考記事とどう役に立つか|けいじ

                                少し前の雑誌で恐縮ですが、今でもネットで手に入るWeb+DB PressのVol.120の特集「Webページが表示されるまで HTMLを運ぶプロトコルとシステムコールの裏側」がとてもいいので、紹介です。 WEB+DB PRESS Vol.120 https://www.amazon.co.jp/dp/B08Q764JKR/ref=cm_sw_r_tw_dp_0F5JA6ASV4K8YZTB3EJS インフラ分野でエキスパートになりたい人は、システムコールを学ぶべきと私は思うのですが、そのきっかけとして良い記事だと思います。 なお、サンプルがC言語で書かれているので、そこは「ふーん」と読み飛ばしてもいいと思います。 システムコールそのものの話は記事を読んでもらうとして、この記事で書かれている内容が実際の現場でどう使えるのか、私の経験を基に紹介してみたいと思います。仕組みを学ぶと例えばこんなこ

                                  インフラエンジニアにおススメのシステムコール、参考記事とどう役に立つか|けいじ
                                • Fadis on Twitter: "コンテナ型仮想化はホストとカーネルを共有している為1つの脆弱性がホストに通る攻撃に繋がりやすい。一方ハイパーバイザ型はオーバーヘッドが辛い。そこでgVisorは、コンテナ内からのシステムコールをカーネルではなくカーネルのふりをする… https://t.co/g376NhSqPq"

                                  コンテナ型仮想化はホストとカーネルを共有している為1つの脆弱性がホストに通る攻撃に繋がりやすい。一方ハイパーバイザ型はオーバーヘッドが辛い。そこでgVisorは、コンテナ内からのシステムコールをカーネルではなくカーネルのふりをする… https://t.co/g376NhSqPq

                                    Fadis on Twitter: "コンテナ型仮想化はホストとカーネルを共有している為1つの脆弱性がホストに通る攻撃に繋がりやすい。一方ハイパーバイザ型はオーバーヘッドが辛い。そこでgVisorは、コンテナ内からのシステムコールをカーネルではなくカーネルのふりをする… https://t.co/g376NhSqPq"
                                  • 【アップデート】ECS on Fargateでサイドカーからプロセス/システムコール監視が簡単にできるようになりました! | DevelopersIO

                                    はじめに CX事業本部の佐藤智樹です。最近のアップデートでECS on FargateでPIDの名前空間をタスク内のコンテナ間で共有できるようになりました!以下の記事にアップデート後の出来ることや嬉しい点が書かれています。 上記記事で紹介されているLinuxカーネルパラメータの設定に関しては、以下の記事でも解説されております。本記事はpidModeの方にフォーカスしてご紹介します。 このアップデートの何が嬉しいのか これまでは本機能がなかったのでサイドカー側から本体のコンテナのプロセスやシステムコールの取得が難しくかったです。代表的な商用製品だとサイドカーコンテナ上で証跡取得用のプロセスを動かし、サイドカーのボリュームを本体側でマウントして動かす必要がありました。なので、以前までは商用製品を利用しないと、本体側のコンテナをReadOnly状態で運用したとしても、不審なプロセスやシステムコー

                                      【アップデート】ECS on Fargateでサイドカーからプロセス/システムコール監視が簡単にできるようになりました! | DevelopersIO
                                    • Kubernetes と seccomp を組み合わせてシステムコールを制限する - kakakakakku blog

                                      前回の記事では seccomp (Secure computing mode) に入門するために「Docker と seccomp」を組み合わせて試した.docker run コマンドの --security-opt オプションを使って seccomp プロファイルを指定した. kakakakakku.hatenablog.com 今回は「Kubernetes と seccomp」を組み合わせて試す.設定や手順などは以下のドキュメントに詳しく載っている. kubernetes.io 検証環境 まず,kind を使って検証環境を構築する.以下の kind-config.yaml のように,ワーカーノードに seccomp プロファイルを置いたホスト側のディレクトリをマウントする(kubelet に読み込ませる).ドキュメントには ./profiles と書いてあるけど,今回は Docker

                                        Kubernetes と seccomp を組み合わせてシステムコールを制限する - kakakakakku blog
                                      1

                                      新着記事