眞鍋 Key Result(2/27~3/3) - careerbeat/dit-ehime GitHub Wiki

2/28

Key Result 1

if文

  • 条件によって処理を選択できる
if 条件式1
 then
   条件式1が真の場合の実行文1
 else
   条件式1が偽の場合の実行文2
 fi
if 条件式1
 then
   条件式1が真の場合の実行文1
 elif 条件式2
 then
   条件式2が真の場合の実行文1
 else
   条件式1と2がどちらも偽の場合の実行文3
 fi

for文

  • 繰り返して処理を実行できる
for 変数名 in 変数への代入値のリスト
 do
   実行文1
 done
  • 代入値のリストはseqコマンドでも生成できる

while文

  • 条件が真である間、繰り返して処理を実行できる
while 条件文
 do
   実行文
 done

Key Result 2

ファイル改ざん検知システム「AIDE」

  • オープンソースの改ざん・侵入検知システム
  • サーバホストのファイル改ざん・侵入検知の機能
  • RedHat系のOSであれば、外部レポジトリを用いることなく、オリジナルのパッケージが使える
  • 設定では、改ざん検知させたいディレクトリ・させたくないディレクトリを指定できる

主なコマンド

コマンド 意味
aide -i 監視対象のファイル・ディレクトリのデータベースファイル作成
mv -f /var/lib/aide/aide.db.new.gz /var/lib/aide/aide.db.gz 監視対象のファイル・ディレクトリのデータベースファイルの更新
aide -C 改ざん・侵入チェック

3/1

Key Result 1

SQL

  • RDB(リレーショナルデータベースを操作するための言語)
  • データをテーブル表に格納
  • 列(フィールド)と行(レコード)から構成

SQLの種類

  1. DDL:データ定義言語
    データベースやテーブルの作成

  2. DML:データ操作言語
    データの操作

  3. DCL:データ制御言語
    トランザクション(永続的なデータに対する不可分な一連の処理)の制御

DMLの種類

  1. SELECT:データベースからデータを抽出する
 SELECT 列名 FROM テーブル名 (検索条件);
 

検索条件を指定することもできる

  • WHERE:特定の条件を満たしたデータだけを取得する
  • ORDER BY:検索結果をソートして表示する
  • GROUP BY:データをグループ化し計算した上で抽出する
  1. INSERT:データベースにデータを追加する
 INSERT INTO テーブル名 (列名) VALUES (値);
 
  1. UPDATE:データベースのレコードを追加する
 UPDATE テーブル名 SET 列名=値 WHERE 条件式;
 
  1. DELETE:データベースのレコードを削除する
 DELETE FROM テーブル名 WHERE 条件式;
 
  1. JOIN:データをまとめて取得したい場合、複数のデータのテーブルを結合する
 SELECT aaa.name, bbb.branch FROM aaa INNER JOIN bbb ON aaa.branchid=bbb.branchid;
 「aaaテーブルとbbbテーブルを結合したテーブルから、name(元々はaaaのフィールド)とbranch(元々はbbbのフィールド)を取り出す
 

Key Result 2

  • サンドボックスは未知のマルウェア検知に有効である
  • 最新の研究では、マルウェアを使った標的型攻撃は全体の40%と言われている
  • 残りの60%は認証情報の窃取、ソーシャルエンジニアリング、脆弱性の悪用、内部犯行などである
  • さらに最近のマルウェアは、サンドボックスで実行されていることを感知し、検出を免れるように動作する
  • また、攻撃のスピードも格段に上がっており、ルウェア感染から管理者権限の奪取まで、わずか40分というケースもある
  • しかし、サンドボックス型の対策が標的型攻撃に対して完全に無効になったわけではない
  • 既存の対策を補完するにはどうすればよいか考えるために、インジケータ(攻撃を示唆する情報)を活用する
  • 日本のみにターゲットを絞った攻撃オペレーションを想定した対策(ローカルな視点での対策)

3/2

Key Result 1

X Window System(X11、X)

  • 多くのUNIXやLinuxで採用されているGUIの実現を可能にしたウィンドウシステム
  • クライアント・サーバ方式を採用
  • Xサーバ:キーボードからの入力処理やディスプレイへの出力処理等のハードウェアの管理
  • Xクライアント:Webブラウザやオフィスなどのアプリケーション

X.Orgの設定

  • 「X.Org」はフリーのX Windows Systemの主流
  • /etc/X11/xorg.confで設定を行う
セクション 説明
ServerLayout 入力・出力用デバイスの組み合わせとスクリーンの設定
Files フォント関連のパスの設定
Module Xサーバがロード予定のダイナミックモジュールの設定
InputDevice Xサーバに対する入力デバイス(キーボード等)の設定
Monitor システムにより使用されるモニタタイプの設定
Device システム用のビデオカードの設定
Screen ディスプレイの色深度と画面サイズの設定

X Window Systemのネットワーク経由での利用(リモートアクセス)

リモートアクセスを許可にするには、xhostコマンドでXクライアントがXサーバを利用できるように許可する

また、Xクライアントの処理結果を表示するために、remotepcの環境変数DISPLAYでXサーバを指定して環境変数の DISPLAYをエクスポートを設定する

Xサーバが起動するまでの流れ

  1. コンソールからstartxコマンドを実行

  2. xinitコマンド

  3. ~/.xinitrcがあれば実行
    なければ/etc/X11/xinit/xinitrcを実行

  4. /.xsessionを実行
    /.xsessionがなければ~/.Xclientsを実行
    ~/.Xclientsがなければ /etc/X11/xinit/Xclientsを実行

  5. KDEまたはGNOMEまたは他のウィンドウマネージャが起動

Xクライアントコマンド

コマンド 意味
showrgb X Window Systemで利用可能な色とRGB値の情報確認
xlsclients 実行中のXクライアントを表示
xwininfo コマンド実行後に指定したウィンドウのサイズ、位置、色深度の情報確認
xdpyinfo ディスプレイ情報の表示
xwininfo xdpyinfoコマンドで取得できる情報のイメージ

ディスプレイマネージャ

ランレベル5で起動した場合に、Xサーバを起動してGUIのログイン画面を表示するもの

[ディスプレイマネージャの種類]

種類 配置場所 説明
XDM /etc/X11/xdm XDMはX.Orgの標準
XDMは、X Display Managerの略
KDM /etc/X11/kdm KDMはKDEで利用される
KDMは、KDE Display Managerの略
GDM /etc/X11/gdm GDMはGNOMEで利用される
GDMは、Gnome Display Managerの略

ウィンドウマネージャ

ウィンドウの外観、アイコン、メニューなどを提供しユーザが設定できるようにしたもの

[ウィンドウマネージャの種類]

ウィンドウマネージャ 説明
Metacity Gnome標準のウィンドウマネージャ
Kwin KDE標準のウィンドウマネージャ
twm 必要最低限の機能だけを備えたウィンドウマネージャ
fvwm 仮想デスクトップ機能を備えたウィンドウマネージャ
enlightment 高機能でグラフィカルなウィンドウマネージャ

[統合デスクトップ環境] ウィンドウマネージャだけでなくアプリケーションまで含めて統一的な操作を提供するソフトウェア(現在の主流、GNOMEやKDEなど)

アクセシビリティ

  • 障害を持つユーザーを支援するための色々なソフトウェアが利用できる技術をAT(Assistive Technology)という
  • 上記の中で、入出力の補助機能全般をアクセシビリティと言う

[キーボードアクセシビリティ]

  • キーボードやマウス操作を障害を持つ利用者が利用しやすくする機能
アクセシビリティ 説明
スティッキーキー(順次入力キー) 同時に複数のキーを押せないユーザーのために、修飾キー(Shift、Alt、Ctrlキーなど)が押された後は、他のキー入力があるまで修飾キーが入力された状態にする機能(ラッチ)
スローキー 指に麻痺などがあるユーザのために、一定時間以上キーを押したもののみが入力確定する機能
リピートキー キーを押した指をすぐに離せないユーザのために、一定時間以上キーを押さなければ入力操作が繰り返されない機能
バウンスキー 指のけいれんなどで誤って連続してキー入力を行ってしまうユーザのために、一定時間内に複数入力された場合は無視する機能
トグルキー NumLock、CapsLock、Scrollキーを押して機能が有効になってLEDランプが点灯しても認識できないユーザのために、オン、オフの際にビープ音で知らせる機能
マウスキー マウスを利用することが困難なユーザのために、マウスの代わりに、テンキーを使用して、マウスポインタを移動させたり、クリック操作したりすることができる機能

[その他アクセシビリティ機能]

  • ハイコントラスト:視覚障害者のために、ディスプレイに表示されるコントラストを強調して見やすくする機能
  • スクリーンリーダー:視覚障害者のために、スクリーン上の文字を音声に変換して読み上げる機能 etc...

[アクセシビリティ機能を実現するソフトウェア]

  • emacspeak:emacsエディタに読み上げ機能を追加したスクリーンリーダーのソフトウェア
  • Orca:スクリーンリーダー、スクリーン拡大鏡などの機能が備わったソフトウェア
  • GOK(Gnome Onscreen Keyboard):スクリーンリーダーのソフトウェア

Key Result 2

SELinuxとは

  • セキュリティ強化を目的としたセキュアOS
  • ディストリビューションではない
  • Linuxカーネルの機能、LSM(Linux Security Module)のモジュールとして実装されている

各ディストリビューションにおけるSELinuxの状況

  • 上述した通り、SELinuxはメインラインのカーネルに組み込まれているため、各ディストリビューションで用意されている Kernelのバージョンに紐付いている
  • Ubuntuでは、デフォルトでSELinuxではなく「AppArmor」というセキュリティ技術が採用されている
    ※AppArmorはSELinuxよりカジュアルに扱えるセキュリティツールで、エンドユーザーでも比較的気軽に使える

SELinuxの開発状況

  • 根本部分を大きく変えるという変化はなく、原理部分に関しては引き続き同じ状態である ‐ ポリシの記述方法やテスト環境、応用範囲などSELinuxをさらに効果的に使おうとする部分に関する開発は活発に続いている

3/3

Key Result 1

ユーザーアカウント

  • Linuxのユーザーアカウント情報は/etc/passwdに下記の書式で保存される
ユーザ名:(暗号化された)パスワード:UID:GID:コメント:ホームディレクトリ:ログインシェル
  • パスワードにシャドウパスワードが設定されている場合、/etc/passwdにはxが記載されて、/etc/shadowファイルに暗号化された パスワードが記載される

  • UID:root → 0、システム管理用 → 1~99、一般ユーザ → 100以降

グループアカウント

  • Linuxのグループアカウント情報は/etc/groupファイルに下記の書式で記載されている
グループ名:グループパスワード:GID:ユーザーリスト

プライマリグループとサブグループ

  • ユーザーは複数のグループに所属できる
  • プライマリグループはユーザーにとって基本となるグループ(/etc/passwdのGIDフィールドに記載)
  • サブグループはプライマリグループ以外に参加しているグループ

ユーザーアカウントに関するコマンド

コマンド書式 概要
useradd [ オプション ] ユーザー名 ユーザーアカウントの作成
usermod [ オプション ] ユーザー名 既存のユーザーアカウントの変更
userdel [ オプション ] ユーザー名 既存のユーザーアカウントの削除
id [ユーザー名] ユーザがどのグループに所属しているのかを調べる
passwd [ オプション ] [ ユーザ名 ] ユーザーのログインパスワードの変更

グループアカウントに関するコマンド

コマンド書式 概要
groupadd [ オプション ] ユーザー名 グループアカウントの作成
groupmod [ オプション ] ユーザー名 既存のグループアカウントの変更
groupdel [ オプション ] ユーザー名 既存のグループアカウントの削除

Key Result 2

FTP/SCP/SFTPの違い

プロトコル 概要
FTP 自信のマシンから遠隔地にあるマシンにファイルを送信したり、その逆に遠隔地にあるマシンからファイルをコピーするためのプロトコル
SCP FTPで送受信するデータをSSHで暗号化するプロトコル
転送を中断すると再開できないが高速 
SFTP SCPと同じくFTPで送受信するデータをSSHで暗号化するプロトコル
転送を中断しても再開できるが低速

FTP/SCP/SFTPの使い分け

  • FTPは暗号化されていないため、重要な情報の転送には向いていない
  • SCPは暗号化されていてFTPより安全だが、あまりにも大きいサイズのファイルを不安定なネットワーク下で転送するのには向いていない
  • SFTPはSCPと同じく暗号化されていてFTPより安全で、速度は別としてネットワーク環境に対しては柔軟に対応できる
⚠️ **GitHub.com Fallback** ⚠️