seccompとは?初心者にもわかる Linux のセキュリティ機能入門共起語・同意語・対義語も併せて解説!

  • このエントリーをはてなブックマークに追加
seccompとは?初心者にもわかる Linux のセキュリティ機能入門共起語・同意語・対義語も併せて解説!
この記事を書いた人

高岡智則

年齢:33歳 性別:男性 職業:Webディレクター(兼ライティング・SNS運用担当) 居住地:東京都杉並区・永福町の1LDKマンション 出身地:神奈川県川崎市 身長:176cm 体系:細身〜普通(最近ちょっとお腹が気になる) 血液型:A型 誕生日:1992年11月20日 最終学歴:明治大学・情報コミュニケーション学部卒 通勤:京王井の頭線で渋谷まで(通勤20分) 家族構成:一人暮らし、実家には両親と2歳下の妹 恋愛事情:独身。彼女は2年いない(本人は「忙しいだけ」と言い張る)


seccompとは何か

seccompとは Linux カーネル の機能の一つであり、アプリケーションが実行できる システムコール を制限することで不正な動作を抑えるセキュリティ技術です。日常的にはサーバーやコンテナの安全性を高めるために使われます。導入が比較的シンプルな点も魅力です。

この機能を使うと、万が一プログラムが悪意のある攻撃者に乗っ取られた場合でも、攻撃者がOSに命令を送る道を狭められます。結果として、被害を最小限に抑えられる可能性が高まります。

仕組みの基本

OSはアプリケーションからの要求を受け取り カーネル に処理を渡します。処理の中心となるのが システムコールという命令です。seccompはこの通り道を事前に決めて、アプリが呼べるシステムコールだけを許可し、それ以外の呼び出しを拒否します。これにより攻撃者が予期せぬ機能を使ってシステムを混乱させる機会を減らせます。

具体的にはセキュリティポリシーと呼ばれるルールセットを設定します。たとえばあるアプリはファイルの読み書きだけを許可し、他の機能は一切許可しないといった形です。

使い方のポイント

実務でよく使われるのは libseccomp というライブラリを介して設定を行う方法です。これにより システムコールの許可/拒否 をプログラム内で直接記述するのではなく、ポリシーとして分離して管理できます。

設定は起動時に適用することが多く、コンテナやサンドボックス環境では事前に作成した セキュリティプロファイル を適用します。これにより、脆弱性を突く試みがあっても、許可された範囲のみしか動作しなくなります。

実務での利用例

代表的な利用場面としては、コンテナ仮想化サンドボックス 環境でのセキュリティ強化があります。Docker や Kubernetes などの環境ではデフォルトでいくつかの seccomp プロファイル が用意されており、これを基に独自のルールを追加することが可能です。

導入のメリットは多いのですが、過度に厳しくするとアプリが必要とする機能が使えなくなる点には注意が必要です。事前に動作確認を十分に行い、段階的に適用していくのが良い方法です。

注意点とよくある誤解

セキュリティを強化する反面、設定を間違えると正しく動作しなくなるリスクがあります。テストを重ねること、特に実運用環境と同じ条件での検証が重要です。

また seccomp は万能薬ではなく、OS やアプリの設計次第で効果が変わります。組み合わせるセキュリティ対策と合わせて総合的に評価することが大切です。

まとめ

seccomp は Linux 環境でアプリの安全性を高める強力な道具です。システムコールの許可範囲を厳しく管理することで、万一の攻撃時にも被害を抑えられます。初心者でも libseccomp などのツールを活用すれば導入は難しくありません。まずは小さなポリシーから始め、段階的に適用範囲を広げていくと良いでしょう。

<th>利点
許可した動作だけを実行させることで 攻撃の影響を最小化
欠点/注意点設定を誤ると アプリが動かなくなる可能性がある
主な利用場面コンテナ 環境隔離 サンドボックスなど
関連ツールlibseccomp C ライブラリなど

seccompの同意語

seccomp
Linuxカーネルの機能で、プロセスが呼び出すシステムコールを事前に定義したフィルタで制限するセキュリティ機構。許可されていないシステムコールの実行をブロックします。
Secure Computing Mode
seccompの正式名称の英語表記。Linuxにおけるシステムコールのフィルタリング機能のモードの一つです。
seccomp-bpf
seccompの拡張モードで、BPF(Berkeley Packet Filter)を用いてシステムコールのフィルタを定義して適用する方式。柔軟なルール記述が特徴です。
システムコールフィルタ
システムコール(OSが提供する低レベルの呼び出し)を条件付きで許可・拒否する仕組み。seccompの中核となる機能です。
システムコール制限
特定のシステムコールの使用を禁止・制限する機能。サンドボックスを実現する手段のひとつです。
セキュアコンピューティングモード
Secure Computing Mode の日本語表記。seccompのモードの一つで、許可されるシステムコールを絞って動作を制限します。
seccompフィルタ
seccompで定義されるルールの集合。どのシステムコールを許可するかを決定します。
seccompフィルタリング
seccompを用いてシステムコールを実際に監視・拒否する処理のこと。フィルタを適用してサンドボックス化を実現します。
Linux Seccomp
Linuxカーネルに組み込まれているseccomp機能を指す英語表現。主に技術文書で使われます。
Syscallフィルタ
システムコール(Syscall)をフィルタする処理のこと。seccompの機能の要点を指します。

seccompの対義語・反対語

全面的な許可
seccompの対義語として、すべてのシステムコールを制限なく許可する状態。フィルタやポリシーが存在せず、自由にSyscallを実行できる状況を指します。
無制限
seccompが適用されていない、または制限が全くない状態。セキュリティ上の制約が欠如している状態です。
開放的ポリシー
セキュリティルールが緩く、外部からのリクエストや実行が広く許容される設定。seccompの厳格な運用とは反対です。
無防備
防御機能が欠如しており、セキュリティ対策がほとんどない状態。
フィルタなし
seccompの核となるフィルタ機構が存在しない、または機能していない状態。
緩いセキュリティポリシー
適用されるセキュリティルールが厳格でなく、許容範囲が広い設定。seccompの厳格さの対義語として使われます。
セキュリティなし
セキュリティ対策が全く機能していない、または無効化された状態。
全開許可モード
すべてのシステムコールを許可するモード。セキュリティリスクが高い状態を指します。

seccompの共起語

Linux カーネル
seccomp は Linux カーネルが提供する機能であり、ユーザー空間のプロセスが特定のシステムコールを実行できるかを制御します。
システムコール (syscall)
プログラムがカーネルに依頼する機能。seccomp ではこれらの呼び出しを許可・拒否します。
seccomp プロファイル
許可・拒否のルールを記述した設定ファイル。JSON形式が一般的で、どの syscall をどう扱うかを規定します。
seccomp-bpf
BPF(Berkeley Packet Filter)に基づく表現方式。より高度な条件でフィルタを定義できます。
libseccomp
seccomp の API を提供する C ライブラリ。多くの言語バインディングの基盤です。
Docker デフォルトの seccomp プロファイル
デフォルト設定として提供される seccomp プロファイル。コンテナで許可される syscall の初期制限を設定します。
コンテナセキュリティ
コンテナ環境でのセキュリティ強化の一環として seccomp が使われます。
コンテナ / コンテナ化
Docker や Kubernetes など、隔離された実行環境を提供する技術。seccomp はこれらのセキュリティ層の一つです。
Docker
代表的なコンテナ実行環境。seccomp プロファイルを適用して実行時の syscall を制限します。
Kubernetes
クラスタオーケストレーションツール。Pod 単位で seccomp プロファイルを設定することが可能です。
SCMP_ACT_ALLOW
許可されたシステムコールを実行できるようにする動作を指定します。
SCMP_ACT_ERRNO
許可されていない syscall が呼ばれた場合、エラー番号を返して実行を止めます。
SCMP_ACT_KILL
不正な syscall を検出するとプロセスを即座に終了します。
SCMP_ACT_TRAP
syscall 呼び出し時にトラップを発生させ、デバッグや監視に利用できます。
SCMP_ACT_LOG
拒否された syscall の情報をログに残します。
許可リスト(Allowlist)
許可対象の syscall を列挙し、それ以外をデフォルト拒否にする考え方です。
デフォルト拒否
未指定の syscall は拒否される設定。セキュリティの基本方針として用いられます。
seccomp-tools
プロファイルの解析・検証を行うツールセット。例としてプロファイルの検証や可視化に使われます。
seccomp JSON プロファイル
多くの場合 JSON 形式で規則を記述する seccomp プロファイルの表現形式。
BPF / Berkeley Packet Filter
seccomp-bpf の技術的背景。条件付きフィルタを表現するための基盤です。
go-seccomp / libseccomp-golang
Go 言語で seccomp を扱うためのライブラリ。libseccomp のゴ言語向けラッパー的存在。
セキュリティハードニング
全体的なセキュリティ強化の一環として seccomp の導入・調整が行われます。

seccompの関連用語

seccomp
Linuxカーネル機能の一つ。プロセスが呼べるシステムコールを制限して、悪意ある操作を防ぐサンドボックス機構です。
seccomp-bpf
seccompの実装の一つ。BPFという仮想マシン用言語で、どのシステムコールを許可・拒否するかを細かく定義します。
システムコール
アプリケーションがカーネルに依頼してOSの機能を使う命令。ファイル操作、ネットワーク、プロセス管理などを扱います。
システムコールフィルタリング
seccompなどで、どのシステムコールを許可・拒否するかのルールを決めること。
BPF(Berkeley Packet Filter)
もともとはネットワークパケットを素早く判定するための技術。seccomp-bpfはこのBPFを使ってフィルタを定義します。
サンドボックス
安全な実行環境。外部からの影響を抑えつつ、必要最小限の機能だけを提供します。
名前空間
プロセスが見るリソースを分離するLinuxの機能。PID空間、ネットワーク、マウントなどを独立させます。
コンテナ
アプリとその依存をひとつの単位として分離して実行する技術。seccompはコンテナのセキュリティ強化に用いられます。
Dockerのseccompプロファイル
Dockerなどで用意される、許可するシステムコールを決めるルールセット。デフォルトで安全性を高めます。
AppArmor
Linuxのセキュリティモジュールの一つ。プロセスのアクセスをプロファイルで制御します。
SELinux
セキュリティモジュールの一つ。ポリシーに基づく細かなアクセス制御を提供します。
LSM(Linux Security Modules)
Seccomp、AppArmor、SELinuxなどをまとめる総称。カーネル機能のセキュリティ制御を行います。
デフォルトアクション
ルールに一致しないシステムコールに対してとる初期動作。許可、拒否、ログなどを設定します。
no_new_privs
新しい権限獲得を防ぐフラグ。seccompと組み合わせて、権限昇格を抑制します。
キャパビリティ(Linuxの能力)
Linuxの機能を細分化した権限の集合。seccompの適用状況にも影響を与えることがあります。

seccompのおすすめ参考サイト


インターネット・コンピュータの人気記事

awstatsとは?初心者でもわかる使い方と基本解説共起語・同意語・対義語も併せて解説!
15155viws
bing・とは?初心者のための基本ガイド:検索エンジンの仕組みと使い方共起語・同意語・対義語も併せて解説!
2463viws
着信転送とは?初心者向けガイドで分かる使い方と設定のコツ共起語・同意語・対義語も併せて解説!
1101viws
差し込み印刷・とは?初心者でもすぐわかる使い方と仕組みガイド共起語・同意語・対義語も併せて解説!
1082viws
com端子・とは?初心者にも分かる基礎ガイド|シリアルポートの使い方と歴史を解説共起語・同意語・対義語も併せて解説!
968viws
充電アダプターとは何かを徹底解説|初心者でも分かる基本と選び方のコツ共起語・同意語・対義語も併せて解説!
926viws
7zファイル・とは?初心者でもわかる使い方と特徴を解説共起語・同意語・対義語も併せて解説!
888viws
全角文字とは?初心者向け解説|全角と半角の違いをやさしく学ぶ共起語・同意語・対義語も併せて解説!
870viws
pinロックとは?初心者が知っておくべき基本と使い方ガイド共起語・同意語・対義語も併せて解説!
819viws
リマインドメールとは?初心者にもわかる基本ガイドと使い方のコツ共起語・同意語・対義語も併せて解説!
816viws
none とは?初心者にもやさしく解説する意味と使い方ガイド共起語・同意語・対義語も併せて解説!
745viws
16進数カラーコード・とは?初心者でもつまずかない基礎と使い方ガイド共起語・同意語・対義語も併せて解説!
729viws
asp・とは?初心者向けに徹底解説する基本と使い方ガイド共起語・同意語・対義語も併せて解説!
634viws
xlsmとは?初心者でも分かるExcelのマクロ付きファイルの基本共起語・同意語・対義語も併せて解説!
629viws
ローカルポート・とは?初心者にも分かる基本と使い方ガイド共起語・同意語・対義語も併せて解説!
616viws
countifとは?初心者でもすぐ使える基本と応用ガイド共起語・同意語・対義語も併せて解説!
567viws
ワンタイムコード・とは?初心者でも分かる基本と使い方ガイド共起語・同意語・対義語も併せて解説!
554viws
csvダウンロードとは?初心者が今すぐ使える基本ガイド共起語・同意語・対義語も併せて解説!
527viws
sha256とは?初心者が知るべき暗号ハッシュの基礎と使い道共起語・同意語・対義語も併せて解説!
524viws
googleドキュメントとは?初心者が今日から使いこなす基本ガイド共起語・同意語・対義語も併せて解説!
492viws

新着記事

インターネット・コンピュータの関連記事