From owner-announce-jp@jp.freebsd.org  Sun Dec 31 02:15:36 2000
Received: (from daemon@localhost)
	by castle.jp.freebsd.org (8.9.3+3.2W/8.7.3) id CAA26146;
	Sun, 31 Dec 2000 02:15:36 +0900 (JST)
	(envelope-from owner-announce-jp@jp.FreeBSD.org)
Message-Id: <200012301710.CAA02522@eos.ocn.ne.jp>
To: announce-jp@jp.FreeBSD.org
In-Reply-To: <20001229153214.D9C6937B400@hub.freebsd.org>
References: <20001229153214.D9C6937B400@hub.freebsd.org>
X-Mailer: Mew version 1.94.1 on Emacs 20.7 / Mule 4.0 (HANANOEN)
Mime-Version: 1.0
Content-Type: Text/Plain; charset=iso-2022-jp
Content-Transfer-Encoding: 7bit
Date: Sun, 31 Dec 2000 01:55:39 +0900
From: Hiroki Sato <hrs@eos.ocn.ne.jp>
X-Dispatcher: imput version 20000228(IM140)
X-ML-maintainer: owner-announce-jp@jp.FreeBSD.org
Precedence: list
X-Distribute: distribute version 2.1 (Alpha) patchlevel 24e+000315
X-Sequence: announce-jp 647
Subject: Re: ANNOUNCE: FreeBSD Security Advisory: FreeBSD-SA-00:77.procfs [REVISED]
Errors-To: owner-announce-jp@jp.freebsd.org
Sender: owner-announce-jp@jp.freebsd.org


FreeBSD $B%;%-%e%j%F%#4+9p(B $BF|K\8lHG(B
=============================================================================
FreeBSD-SA-00:77 (2000-12-29)
 * Several vulnerabilities in procfs [REVISED]
=============================================================================

 $B$3$N%a!<%k$O(B, announce-jp $B$KN.$l$?(B

  Subject: ANNOUNCE: FreeBSD Security Advisory: FreeBSD-SA-00:77.procfs [REVISED]
  From: FreeBSD Security Advisories <security-advisories@FreeBSD.org>
  Date: Fri, 29 Dec 2000 07:32:14 -0800 (PST)
  Message-Id: <20001229153214.D9C6937B400@hub.freebsd.org>
  X-Sequence: announce-jp 646

 $B$rF|K\8lLu$7$?$b$N$G$9(B. 

 $B86J8$O(B PGP $B=pL>$5$l$F$$$^$9$,(B, $B$3$NF|K\8lLu$O(B PGP $B=pL>$5$l$F$$$^$;$s(B. 
 $B=$@5%Q%C%AEy$NFbMF$,2~cb$5$l$F$$$J$$$3$H$r3NG'$9$k$?$a$K(B PGP $B=pL>$N(B
 $B%A%'%C%/$r9T$J$&$K$O(B, $B86J8$r;2>H$7$F$/$@$5$$(B. 

 $BF|K\8lLu$*$h$S(B, $B%_%i!<%5%$%HMxMQ$N>\:Y$K$D$$$F$O(B, $BJ8Kv$N!V(BA. FreeBSD
 $B%;%-%e%j%F%#4+9p(B $BF|K\8lHG$K$D$$$F!W$r$4Mw$/$@$5$$(B.


                                     [$BK]Lu<T(B: $B:4F#(B $B9-@8(B <hrs@jp.FreeBSD.org>]
--($B$3$3$+$i(B)

=============================================================================
FreeBSD-SA-00:77                                            Security Advisory
                                                                FreeBSD, Inc.

$B%H%T%C%/(B:       Several vulnerabilities in procfs [REVISED]

$BJ,N`(B:           core
$B%b%8%e!<%k(B:     procfs
$B9pCNF|(B:         2000-12-18
$B1F6AHO0O(B:       $B=$@5F|0JA0$N(B FreeBSD 4.x $B$*$h$S(B FreeBSD 3.x
$B2~D{F|(B:         2000-12-29
$B=$@5F|(B:         2000-12-16 (FreeBSD 4.2-STABLE)
                2000-12-18 (FreeBSD 3.5.1-STABLE)
$B%/%l%8%C%H(B:     Frank van Vliet <karin@root66.org>
                Joost Pol <nohican@niets.org> ($BLdBj(B #1, #2)
                Esa Etelavuori <eetelavu@cc.hut.fi> ($BLdBj(B #3)
FreeBSD $B$K8GM-$+(B:       NO

0.   $B2~D{MzNr(B - Revision History

v1.0  2000-12-18  $B=iHG8x3+(B
v1.1  2000-12-29  FreeBSD 3.x $B$bLdBj(B #1 ($B%m!<%+%k$N(B root $B8"8B$,C%$o$l$k(B
                  $B2DG=@-$N$"$k<eE@(B) $B$N1F6A$r<u$1$k$3$H$NCm5-(B, 3.x $B$X$N(B
                  $B=$@5%Q%C%A$N99?7(B, mount $B%3%^%s%I$K$"$C$?8m5-$N=$@5(B.


I.   $BGX7J(B - Background

procfs $B$H$O(B, $B%7%9%F%`$N%W%m%;%9%F!<%V%k$*$h$S(B, $B$=$l$K4XO"$9$k%G!<%?$X$N(B
$B%U%!%$%k%7%9%F%`%$%s%?!<%U%'%$%9$rDs6!$9$k(B, $B%W%m%;%9%U%!%$%k%7%9%F%`$G$9(B.


II.  $BLdBj$N>\:Y(B - Problem Description

procfs $B$N%3!<%I$K$O(B, $B0J2<$N$h$&$JLdBj$,8+$D$+$C$F$$$^$9(B.

1) /proc/<pid>/mem $B$*$h$S(B /proc/<pid>/ctl $B%U%!%$%k$KBP$9$k(B
$B%"%/%;%9@)8f%A%'%C%/$,==J,$K9T$J$o$l$F$$$^$;$s(B.  $B$=$N$?$a(B,
$B9b$$8"8B$r;}$?$J$$%m!<%+%k%f!<%6$,(B, $B%9!<%Q%f!<%68"8B$r(B
$BF@$k$3$H$,$G$-$^$9(B.  /proc/<pid>/mem $B$*$h$S(B /proc/<pid>/ctl $B%U%!%$%k$O(B
$B$=$l$>$l(B, $B%W%m%;%9$N%"%I%l%96u4V$X$N%"%/%;%9(B, $B%W%m%;%9$KBP$9$k(B
$B3F<o@)8fA`:n$N<jCJ$rDs6!$9$k$b$N$G$9(B.

$B967b$O(B, $B<!$N$h$&$J<j=g$G9T$J$o$l$^$9(B.  $B$^$:967b<T$O(B, $B;R%W%m%;%9$r(B
fork() $B$7$F?F%W%m%;%9$K;R%W%m%;%9$N%"%I%l%96u4V$r%^%C%T%s%0$9$k$3$H$,(B
$B$G$-$^$9(B.  $B$=$7$F<!$K(B, $B;R%W%m%;%9$G(B root $B%f!<%6(B, $B$b$7$/$OB>$N9b$$8"8B$r(B
$B;}$C$?%f!<%6$N8"8B$GF0:n$9$k%f!<%F%#%j%F%#$r(B exec() $B$7$^$9(B.
$B$3$N;~(B, $B?F%W%m%;%9$O9b$$8"8B$GF0:n$7$F$$$k;R%W%m%;%9$N%"%I%l%96u4V$K(B
$BBP$7$FIT@5$JFI$_=P$7(B/$B=q$-9~$_%"%/%;%98"8B$r;}$AB3$1$F$$$k$?$a(B,
$B$=$N9b$$8"8B$GG$0U$N%3!<%I$r<B9T$9$k$h$&(B, $B;R%W%m%;%9$N%"%I%l%96u4V$K(B
$BJQ99$r2C$($k$3$H$,2DG=$G$9(B.

2) $B$"$k%W%m%;%9$,(B, procfs $B%U%!%$%k%7%9%F%`$K$"$k<+J,<+?H$N(B
/proc/<pid>/mem $B%U%!%$%k$r(B mmap() $B$9$k$H(B, $B9b$$8"8B$r;}$?$J$$%m!<%+%k$N(B
$B%f!<%6$,(B, $B%m!<%+%k%^%7%s$KBP$7$F%5!<%S%9K832967b$r2C$($k$3$H$,$G$-$^$9(B.
$B$3$NA`:n$O4JC1$K%7%9%F%`$r%+!<%M%kFb$GL58B%k!<%W$K4Y$i$;(B, $B%7%9%F%`4IM}<T$,(B
$B%3%s%=!<%k$+$i<jF0$G:F5/F0$5$;$k$^$G%7%9%F%`$rDd;_$7$?$h$&$J>uBV$K(B
$B$7$F$7$^$$$^$9(B.

3) $B$=$N%^%7%s$G%9!<%Q%f!<%68"8B$r;}$D%f!<%6(B (jail(8) $B2>A[%^%7%sFb$G(B
root $B8"8B$r;}$D%f!<%6$r4^$`(B) $B$O(B, $B%+!<%M%k$KB8:_$9$k(B
$B%P%C%U%!%*!<%P%U%m!<LdBj$r0-MQ$7(B, $B%9!<%Q%f!<%68"8B$rI,MW$H$9$kA`:n$K(B
$B@_$1$i$l$F$$$k%"%/%;%9@)8f%A%'%C%/$r%P%$%Q%9$9$k$3$H$,$G$-$^$9(B.
$B$3$l$K$O(B jail $B4D6-$+$i!VH4$1=P$9!WA`:n(B (jail $B$O(B, $B%;%-%e%j%F%#$r(B
$B3NJ]$9$kL\E*$G%7%9%F%`$rJ,N%$9$k$?$a$N%D!<%k$H$7$FNI$/MxMQ$5$l$^$9(B) $B$d(B,
$B%7%9%F%`$r:F5/F0$9$k$3$H$J$/%;%-%e%"%l%Y%k(B (securelevel) $B$rDc2<$5$;$kA`:n(B,
KLD ($B%+!<%M%k%m!<%@%V%k%b%8%e!<%k(B) $B$NAH$_9~$_$,L58z2=$5$l$F$$$k4D6-$K(B
$B$*$$$F(B, $B?7$?$J(B ($B0-0U$r;}$C$F$$$k2DG=@-$N$"$k(B) $B%3!<%I$r%+!<%M%kFb$K(B
$BF3F~$9$k$h$&$JA`:n$,4^$^$l$^$9(B.


III. $B1F6AHO0O(B - Impact

1) $B<eE@$r;}$C$?(B FreeBSD $B%7%9%F%`$G(B procfs $B$,%^%&%s%H$5$l$F$$$k>l9g(B,
$B9b$$8"8B$r;}$?$J$$%m!<%+%k$N%f!<%6$O(B root $B8"8B$rF@$k$3$H$,2DG=$G$9(B.

2) $B<eE@$r;}$C$?(B FreeBSD $B%7%9%F%`$G(B procfs $B$,%^%&%s%H$5$l$F$$$k>l9g(B,
$B9b$$8"8B$r;}$?$J$$%m!<%+%k$N%f!<%6$O(B, $B%7%9%F%`$rDd;_$7$?$h$&$J>uBV$K(B
$B4Y$i$;$k$3$H$,2DG=$G$9(B.

3) $B<eE@$r;}$C$?(B FreeBSD $B%7%9%F%`$G(B, procfs $B$r%^%&%s%H$G$-$k$+(B,
$B$b$7$/$O$9$G$K%^%&%s%H$5$l$F$$$k%7%9%F%`$N%9!<%Q%f!<%6$O(B, $B5!G=$r(B
$B@)8B$9$k$?$a$K%+!<%M%kFb$K@_$1$i$l$?%"%/%;%9@)8f%A%'%C%/$r(B
$B%P%$%Q%9$9$k$3$H$,2DG=$G$9(B.  $B$3$l$K$O(B jail $B4D6-$rH4$1=P$9A`:n$d(B,
$B%;%-%e%"%l%Y%k$rDc2<$5$;$kA`:n(B, $B$"$k$$$O(B KLD $B$NAH$_9~$_$,(B
$BL58z2=$5$l$F$$$k%7%9%F%`$G(B, $B%+!<%M%k$K0-0U$N$"$k%3!<%I$rF3F~$9$k$h$&$J(B
$BA`:n$b4^$^$l$^$9(B.  $B$?$@$7BgItJ,$N%7%9%F%`$K$H$C$F(B, $B$3$N<eE@$O(B
$B$"$^$jBg$-$JLdBj$H$O$J$i$J$$$G$7$g$&(B.


IV.  $B2sHrJ}K!(B - Workaround

$BLdBj(B 1 $B$*$h$S(B 2 $B$r2sHr$9$k$K$O(B, $B0J2<$N<j=g$r(B root $B8"8B$G9T$J$$$^$9(B.

$B$^$:(B, umount(8) $B%3%^%s%I$r;H$C$F(B procfs $B%U%!%$%k%7%9%F%`$K$"$k(B
$B$9$Y$F$N%(%s%H%j$r%"%s%^%&%s%H$7$^$9(B.

# umount -f -a -t procfs

$B<!$K(B, /etc/fstab $B$K$"$k(B, $B<+F0E*$K%^%&%s%H$5$l$k(B procfs $B$N%(%s%H%j$r(B
$B$9$Y$FL58z$K$7$^$9(B.  $B6qBNE*$K$O(B, $B0J2<$N7A<0$G=q$+$l$?9T$r(B
$B:o=|$9$k$+(B, $B%3%a%s%H%"%&%H$7$F$/$@$5$$(B.

proc                    /proc           procfs  rw              0       0

linprocfs $B%U%!%$%k%7%9%F%`$O(B Linux $B%P%$%J%j$KBP$7$F(B
Linux procfs $B%U%!%$%k%7%9%F%`$r%(%_%e%l!<%H$7$?%$%s%?!<%U%'%$%9$r(B
$BDs6!$9$k$b$N$G$9$,(B, $B$3$A$i$K$O(B, $B$3$N4+9p$G=R$Y$i$l$F$$$kLdBj$K5/0x$7$?(B
$B%;%-%e%j%F%#>e$N<eE@$OB8:_$7$J$$$@$m$&$H9M$($i$l$F$$$^$9(B.
$B$7$?$,$C$F%"%s%^%&%s%H$9$kI,MW$O$"$j$^$;$s$,(B, Linux $B%P%$%J%j$N$J$+$K$O(B
procfs $B$H(B linprocfs $B$NN>J}$,B8:_$7$J$$$H@5>o$KF0:n$7$J$$$b$N$,(B
$B$"$k$3$H$KCm0U$9$kI,MW$,$"$j$^$9(B.

$BLdBj(B 3 $B$N2sHr$O%9!<%Q%f!<%6$,4X78$9$k$?$a(B, $B:#$^$G$N$b$N$h$j:$Fq$G$9$,(B,
$B0J2<$N<j=g$,BP:v$H$7$F==J,$G$"$k$H9M$($i$l$F$$$^$9(B.

* jail $B4D6-$+$i8+$($k$9$Y$F$N(B procfs $B%U%!%$%k%7%9%F%`$r%"%s%^%&%s%H$7(B,
  jail $B4D6-Fb$N(B root $B8"8B$rC%$o$l$k$3$H$,(B, $B%7%9%F%`A4BN$N6<0R$K(B
  $B$D$J$,$i$J$$$h$&$K$7$F$/$@$5$$(B.  jail $B4D6-Fb$N%f!<%6$O%U%!%$%k%7%9%F%`$r(B
  $B%^%&%s%H$9$k8"8B$r;}$C$F$$$J$$$?$a(B, jail $B4D6-Fb$G(B root $B8"8B$r(B
  $BC%$o$l$?$H$7$F$b(B, procfs $B%U%!%$%k%7%9%F%`$r;2>H$G$-$J$$>uBV$J$i$P(B
  $BLdBj$H$J$C$F$$$k%;%-%e%j%F%#>e$N<eE@$r0-MQ$9$k$3$H$O$G$-$^$;$s(B.

* $B$b$7%+!<%M%k%3%s%U%#%0%l!<%7%g%s%U%!%$%k$K(B "option PROCFS" $B$H$$$&9T$,(B
  $B4^$^$l$F$$$?$i(B, $B$=$l$r:o=|$7(B,
  http://www.freebsd.org/handbook/kernelconfig.html
  $B$K=q$+$l$F$$$k<j=g$K=>$C$F(B, $B?7$7$$%+!<%M%k$r9=C[$7$F$/$@$5$$(B.

  $B%+!<%M%k$,(B "option PROCFS" $B$"$j$G9=C[$5$l$F$$$k>l9g$O(B, root $B8"8B$r;}$C$?(B
  $B$9$Y$F$N%f!<%6$,(B procfs $B$r%^%&%s%H$G$-$k$?$a(B, $B7k2L$H$7$F(B
  $B%7%9%F%`$N%;%-%e%"%l%Y%k$K4X78$J$/(B, $BLdBj(B 3 $B$G=R$Y$i$l$F$$$k(B
  $B%;%-%e%j%F%#>e$N<eE@$r0-MQ$9$k$3$H$,2DG=$K$J$j$^$9(B.

  $B%+!<%M%k$,$3$N%*%W%7%g%s$r4^$s$G$$$J$$>l9g(B, procfs $B$r%^%&%s%H$7$h$&$H(B
  $B$9$k$H(B procfs.ko $B$H$$$&(B KLD $B%b%8%e!<%k$r%m!<%I$7$h$&$H$7$^$9(B.
  $B$7$+$7(B, $B%;%-%e%"%l%Y%k$,(B 0 $B$h$jBg$-$$>l9g$O(B, KLD $B%b%8%e!<%k$N(B
  $B%m!<%I$O6X;_$5$l$F$$$^$9(B.  $BLdBj$H$J$C$F$$$k%;%-%e%j%F%#>e$N<eE@$O(B
  (jail $B4D6-$K$J$$(B root $B%f!<%6$N>l9g$K$O(B) $B%;%-%e%"%l%Y%k$,(B 0 $B$h$j(B
  $BBg$-$$%7%9%F%`$G$N$_0UL#$r;}$D$?$a(B, $B<eE@$,LdBj$H$J$k$h$&$J>u67$G$O(B
  $B>o$K(B $B%;%-%e%"%l%Y%k$,(B 0 $B$h$jBg$-$$$H$$$&>r7o$,K~$?$5$l$F$$$^$9(B.
  $B$7$?$,$C$F(B, $B$=$N$h$&$J%7%9%F%`$K$*$$$F(B, $B$3$NLdBj$O<B:]$K(B
  $B%;%-%e%j%F%#>e$N<eE@$K$O$J$j$^$;$s(B. 

   [$BLuCm(B] $B$3$l$O(B, $B%;%-%e%"%l%Y%k$,(B 0 $B0J2<$N>l9g$K$O$=$b$=$b(B,
          $BLdBj(B 3 $B$G=R$Y$i$l$F$$$k$h$&$J%"%/%;%9@)8f%A%'%C%/$,(B
          $B9T$J$o$l$J$$$?$a$G$9(B.  $B%;%-%e%"%l%Y%k$N>\:Y$K$D$$$F$O(B,
          init(8) $B$r;2>H$7$F$/$@$5$$(B.

$B$?$@$7(B, procfs $B$r%"%s%^%&%s%H$9$kA`:n$O(B, $B%7%9%F%`$N1?MQ$K;Y>c$r$-$?$9(B
$B2DG=@-$,$"$k$3$H$KCm0U$7$F$/$@$5$$(B.  $B$?$H$($P(B, $B8E$$%P!<%8%g%s$N(B
FreeBSD $B$G$O(B ps(1) $B%3%^%s%I$N$$$/$D$+$N5!G=$,(B procfs $B$rI,MW$H$7$^$9$7(B,
gdb $B$N$h$&$J(B, $B%f!<%6%i%s%I$N%W%m%;%94V%G%P%C%,$bMxMQ$G$-$J$/$J$k$G$7$g$&(B.
$B%(%_%e%l!<%7%g%s5!G=$GF0:n$9$k(B Linux $B%P%$%J%j$r4^$`(B
$BB>$K%$%s%9%H!<%k$5$l$F$$$k%P%$%J%j$b(B, $B@5>o$KF0:n$9$k$?$a$K(B procfs $B$X$N(B
$B%"%/%;%9$rI,MW$H$9$k$+$bCN$l$^$;$s(B.


V.   $B2r7h:v(B - Solution

$B<eE@$r;}$C$?(B FreeBSD $B%7%9%F%`$r(B, $B=$@5F|0J9_$N(B 3.5.1-STABLE $B$b$7$/$O(B
4.2-STABLE $B$K(B $B%"%C%W%0%l!<%I$9$k$+(B, $B8=:_;HMQ$7$F$$$k%7%9%F%`$N(B
$B%=!<%9%3!<%I$K=$@5%Q%C%A$rE,MQ$7$F(B, $B%7%9%F%`$r:F9=C[$7$F$/$@$5$$(B.

$B8=:_;HMQ$7$F$$$k%7%9%F%`$K=$@5%Q%C%A$rE,MQ$9$k$K$O(B, $B0J2<$K<($9>l=j$+$i(B
$B3:Ev$9$k=$@5%Q%C%A$r%@%&%s%m!<%I$7(B, root $B8"8B$G0J2<$N%3%^%s%I$r<B9T$7$^$9(B.

[FreeBSD 3.5.1-RELEASE]

# fetch ftp://ftp.FreeBSD.org/pub/FreeBSD/CERT/patches/SA-00:77/procfs.3.5.1.patch.v1.1
# fetch ftp://ftp.FreeBSD.org/pub/FreeBSD/CERT/patches/SA-00:77/procfs.3.5.1.patch.v1.1.asc

PGP $B%f!<%F%#%j%F%#$r;H$C$F=pL>$r3NG'$7$F$/$@$5$$(B.

[FreeBSD 4.1-RELEASE $B$*$h$S(B FreeBSD 4.1.1-RELEASE]

# fetch ftp://ftp.FreeBSD.org/pub/FreeBSD/CERT/patches/SA-00:77/procfs.4.1.patch
# fetch ftp://ftp.FreeBSD.org/pub/FreeBSD/CERT/patches/SA-00:77/procfs.4.1.patch.asc

PGP $B%f!<%F%#%j%F%#$r;H$C$F=pL>$r3NG'$7$F$/$@$5$$(B.

[FreeBSD 4.2-RELEASE]

# fetch ftp://ftp.FreeBSD.org/pub/FreeBSD/CERT/patches/SA-00:77/procfs.4.2.patch
# fetch ftp://ftp.FreeBSD.org/pub/FreeBSD/CERT/patches/SA-00:77/procfs.4.2.patch.asc

PGP $B%f!<%F%#%j%F%#$r;H$C$F=pL>$r3NG'$7$F$/$@$5$$(B.

# cd /usr/src/sys
# patch -p < /path/to/patch

procfs $B$,%+!<%M%kFb$K@EE*$K%3%s%Q%$%k$5$l$F$$$k(B ($B$?$H$($P(B
$B%+!<%M%k%3%s%U%#%0%l!<%7%g%s%U%!%$%k$K(B 'option PROCFS' $B$H$$$&9T$,(B
$B4^$^$l$F$$$k(B) $B>l9g$K$O(B, http://www.freebsd.org/handbook/kernelconfig.html
$B$K=q$+$l$F$$$k<j=g$K=>$C$F%+!<%M%k$r:F9=C[$7$F%$%s%9%H!<%k$7(B,
$BJQ99$,H?1G$5$l$k$h$&$K(B, $B?7$7$$%+!<%M%k$r;H$C$F%7%9%F%`$r:F5/F0$7$^$9(B.

procfs $B$,(B KLD $B$K$h$C$FF0E*$K%m!<%I$5$l(B (kldstat $B%3%^%s%I$r;H$&$H(B KLD $B$,(B
$B%m!<%I$5$l$k$+$I$&$+$rD4$Y$k$3$H$,$G$-$^$9(B), $B$+$D%7%9%F%`$N%;%-%e%"%l%Y%k$,(B
0 $B0J2<$G$"$k>l9g$K$O(B, $B%7%9%F%`$r:F5/F0$9$k$3$H$J$/(B, $B%7%9%F%`$N2TF/Cf$K(B
$B=$@5%Q%C%A$rE,MQ$9$k$3$H$,2DG=$G$9(B.  $B$=$l$K$O%=!<%9$K=$@5%Q%C%A$rE,MQ$7$?8e(B,
$B0J2<$N<j=g$K=>$C$F$/$@$5$$(B.

# cd /usr/src/sys/modules/procfs
# make all install
# umount -f -a -t procfs
# kldunload procfs
# kldload procfs
# mount -a -t procfs


A.   FreeBSD $B%;%-%e%j%F%#4+9p(B $BF|K\8lHG$K$D$$$F(B

$BF|K\8lLu$O(B FreeBSD $BF|K\8l%I%-%e%a%s%F!<%7%g%s%W%m%8%'%/%H(B (doc-jp) $B$,(B
$B;29M$N$?$a$KDs6!$9$k$b$N$G$9(B.  $B2a5n$NF|K\8lHG%;%-%e%j%F%#4+9p$O(B

 http://www.FreeBSD.org/ja/security/

$B$K$^$H$a$i$l$F$$$^$9(B.  

$B$?$@$7(B, $BK]Lu<T$*$h$S(B doc-jp $B$O(B, $B$=$NFbMF$K$D$$$F$$$+$J$kJ]>Z$b(B
$B$$$?$7$^$;$s$N$G$4Cm0U$/$@$5$$(B.  $BF|K\8lLu$K$D$$$F$N$40U8+(B, $B$4MWK>(B,
$B$*Ld$$9g$o$;Ey$O(B doc-jp@jp.FreeBSD.org $B$^$G$*4j$$$7$^$9(B.

$B$3$N4+9p$NCf$G>R2p$5$l$F$$$k(B WWW $B%5%$%H(B http://www.FreeBSD.org/ $B$*$h$S(B
FTP $B%5%$%H(B ftp://ftp.FreeBSD.org/ $B$K$O(B, $BF|K\$N%_%i!<%5%$%H$,B8:_$7$^$9(B.
$B%M%C%H%o!<%/$N:.;($r4KOB$9$k$?$a(B, $B$^$:$O%_%i!<%5%$%H$NMxMQ$r(B
$B9MN8$9$k$h$&$*4j$$$7$^$9(B.

$BF|K\$N%_%i!<%5%$%H$rMxMQ$9$k$K$O(B,
http://www.FreeBSD.org/ $B$r(B http://www.jp.FreeBSD.org/www.freebsd.org/ $B$K(B,
ftp://ftp.FreeBSD.org/ $B$r(B ftp://ftp.jp.FreeBSD.org/ $B$K(B,
$B$=$l$>$lCV$-49$($F$/$@$5$$(B.

$BB>$NCO0h$r4^$`(B, $B%_%i!<%5%$%H$K4X$9$k>\:Y$O(B,

 http://www.FreeBSD.org/handbook/mirror.html ($B1QJ8(B)
 http://www.FreeBSD.org/ja/handbook/mirror.html ($BF|K\8lLu(B)

$B$K$^$H$a$i$l$F$$$^$9(B.

