<?xml version="1.0" ?>
<?xml-stylesheet href="" type="text/css"?>

<Channel xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
         xmlns:dc="http://purl.org/dc/elements/1.1/"
         xmlns="http://purl.org/net/rss1.1#"
         xmlns:p="http://purl.org/net/rss1.1/payload#"
         rdf:about="http://www.vnsecurity.net/Members/mrchuoi">

    <title>mrchuoi</title>
    <link>http://www.vnsecurity.net/Members/mrchuoi</link>

    

    <image rdf:parseType="Resource">
        <title>mrchuoi</title>
        <url>http://www.vnsecurity.net/logo.png</url>
    </image>

    <items rdf:parseType="Collection">
        
        <item rdf:about="http://www.vnsecurity.net/Members/mrchuoi/archive/2008/05/11/ksplice-va-nhan-khong-can-khoi-111ong-lai">
            <title>Ksplice: "vá" nhân không cần khởi động lại</title>
            <link>http://www.vnsecurity.net/Members/mrchuoi/archive/2008/05/11/ksplice-va-nhan-khong-can-khoi-111ong-lai</link>
            <description>Mặc dù các lập trình viên hệ thống nhân linux phản ứng rất tốt trong việc hỗ trợ khắc phục lỗi bảo mật.  Tuy nhiên quá trình "vá" nhân vẫn cần phải khởi động lại và đây là điểm "không hay" nếu có những dịch vụ đang trong quá trình xử lý quan trọng hoặc những dịch vụ không được phép ngừng.  Các nhà khoa học thuộc Viện Công nghệ Massachusetts đã có giải pháp cho vấn đề này</description>
            <p:payload xmlns="http://www.w3.org/1999/xhtml"
                       rdf:parseType="Literal"><p>
The kernel developers are generally quite good about responding to security
problems.  Once a vulnerability in the kernel has been found, a patch comes
out in short order; system administrators can then apply the patch (or get
a patched kernel from their distributor), reboot the system, and get on
with life knowing that the vulnerability has been fixed.  It is a system
which works pretty well.

</p>
<p>

One little problem remains, though: rebooting the system is a pain.  At a
minimum, it requires a few minutes of down time.  In many situations, that
down time cannot be tolerated.  Reboots also disrupt any ongoing work,
break existing network connections, and can cause the loss of results from
long-running processes.  And, most importantly of all, reboots prove
traumatic for a certain subset of Linux administrators who prize a long
uptime above almost all other things.  Administrators currently have to
choose between multi-year uptimes and security fixes; anything which frees
them from a dilemma of this magnitude can only be welcome.
</p><p>

That "anything" might just be a recently-<a href="http://lwn.net/Articles/279378/">announced</a> project called <a href="http://web.mit.edu/ksplice/">ksplice</a>.  With ksplice, system
administrators can have the best of both worlds: security fixes without
unsightly reboots.
</p><p>

An in-depth explanation of how ksplice works can be found in <a href="http://web.mit.edu/ksplice/doc/ksplice.pdf">this document [PDF]</a>.
In short, ksplice requires as input the source tree for the running kernel
and the security patch.  It will then build two kernels, one with the patch
and one without; the kernels are built with a special set of options which
makes it easy to figure out which functions change as a result of the
patch.  The two kernels will be compared, with the purpose of finding those
functions.  Changes can propagate further than one might expect, especially
if, for example, an inline function is modified.

</p><p>

Once a list of changed functions has been made, the updated code for those
functions is packaged into a kernel module and loaded
 into the system.  Then comes the tricky part: getting the
running kernel to start using the new code.  That requires patching the
running code, which is a risky thing to do.  Ksplice starts with a call to
stop_machine_run(), which dumps a high-priority thread onto each
processor, thus taking control of all processors in the system.  It then
examines all threads in the system to ensure that none of them are running
in the functions to be replaced; if so, trampoline jumps are patched into
the beginning of each replaced function (they "bounce" the call to the old
code into the replacement code) and life continues.  Otherwise
ksplice will back off and try again later.
</p><p>

This method imposes a number of limitations.  One is that only code changes
can be patched in with ksplice; patches which make changes to data
structures cannot be accommodated.  Another comes from the retry-based
approach to ensuring that no threads are running in the patched functions;
what happens if one of those functions is never free?  Kernel functions
like schedule(), sys_poll(), or sys_waitid() are
likely to always have processes running within them.  In cases like this,
ksplice will eventually give up and inform the user that the patch cannot
be done; it is simply not possible to make changes to those particular
functions.
</p><p>

These limitations mean that, out of 50 security patches examined by the
ksplice developers, eight could not be applied with ksplice.  So multi-year
uptimes are probably still incompatible with the application of all
security patches.  Even so, ksplice certainly has the potential to reduce
patch-related downtime considerably.  Chances are good that there will be a
fair amount of interest in ksplice in sites running high-uptime,
mission-critical systems.
</p><p>

There are few things in the way of an immediate merge of this code into the
mainline.  One is a matter of coding quality and can be fixed.  Then, there
is the matter of the lead developer <a href="http://lwn.net/Articles/280064/">being
unconvinced</a> that merging this code makes sense since it is,
essentially, a standalone feature.  Andi Kleen's <a href="http://lwn.net/Articles/280065/">response</a> made the (usual) reasons for merging
the code clear:
</p><p>
</p><div class="BigQuote">
	To be honest you weren't the first to come up with something like
	this (although you're the first to post to l-k as far as I
	know). But the usual problem of something that is kept out of tree
	is that it eventually bitrots and gets forgotten. The only sane way
	to make such extensions a generically usable linux feature is to
	merge them to mainline.
</div>
<p>
So, presumably, the code will eventually be proposed for a mainline merge.
But there is one other little difficulty <a href="http://lwn.net/Articles/280066/">pointed out</a> by Tomasz Chmielewski: 
Microsoft holds <a href="http://www.google.com/patents?id=cVyWAAAAEBAJ&amp;dq=hotpatching">a
patent</a> described this way:
</p><p>
</p><div class="BigQuote">
	A system and method for automatically updating software components
	on a running computer system without requiring any interruption of
	service. A software module is hotpatched by loading a patch into
	memory and modifying an instruction in the original module to jump
	to the patch.
</div>
<p>

Microsoft came up with this novel new technique in the distant past: 2002.
The posting immediately brought out a crowd of surprised graybeards who
distinctly remember using such techniques on their PDP-11 systems some
decades before Microsoft "invented" hot-patching.  The basic claim of the
patent would thus appear to be invalidated by some decades' worth of prior
art, but some of the dependent claims include features (such as capturing
all other processors on the system) which were unlikely to be useful on
PDP-11s.  
</p><p>
Given that the kernel developers are now well aware of this
patent, they must take it into account when deciding whether to accept this
code into the mainline.  It would not be surprising if they chose to avoid
baiting the Microsoft FUD machine in this way, even if they all agreed that
the patent lacked validity.  So a promising technology risks being left out
of the kernel as the result of a software patent which was filed at least
30 years too late.</p><br><p>(Source: <a href="http://lwn.net/Articles/280058/">http://lwn.net/Articles/280058/</a>)<br></p></p:payload>
            <dc:date>2008-05-11T14:05:45+00:00</dc:date>
            <dc:modified>2008/05/20 09:30:27.186 GMT+0</dc:modified>
            <dc:creator>mrchuoi</dc:creator>
            
            
            <dc:subject>System Security Management</dc:subject>
            
        </item>
        
        
        <item rdf:about="http://www.vnsecurity.net/Members/mrchuoi/archive/2008/05/08/cap-nhat-thong-tin-bao-mat">
            <title>Cập nhật thông tin bảo mật</title>
            <link>http://www.vnsecurity.net/Members/mrchuoi/archive/2008/05/08/cap-nhat-thong-tin-bao-mat</link>
            <description>Một số distro như Gentoo, RHEL, Slackware vừa mới thông báo về các bản "vá" lỗi bảo mật trong ngày hôm nay.</description>
            <p:payload xmlns="http://www.w3.org/1999/xhtml"
                       rdf:parseType="Literal"><p>
        <b>Gentoo</b> vừa cập nhật
<a href="http://lwn.net/Articles/281465/">x11</a> (nhiều lỗi),
<a href="http://lwn.net/Articles/281467/">egroupware</a> (nhiều lỗi) và
<a href="http://lwn.net/Articles/281468/">wireshark</a> (denial of service).
</p><p>
<b>Red Hat Enterprise Linux</b> vừa cập nhật
<a href="http://lwn.net/Articles/281469/">gpdf</a> (denial of service).
</p><p>
<b>Slackware</b> vừa cập nhật
<a href="http://lwn.net/Articles/281470/">php</a> (PATH_TRANSLATED tính toán sai) và
<a href="http://lwn.net/Articles/281471/">thunderbird</a> (nhiều lỗi).</p><p>(Nguồn: <a href="http://lwn.net/Articles/281473/">http://lwn.net/Articles/281473/</a>)<br>
        </p></p:payload>
            <dc:date>2008-05-08T18:09:06+00:00</dc:date>
            <dc:modified>2008/05/09 04:05:25.215 GMT+0</dc:modified>
            <dc:creator>mrchuoi</dc:creator>
            
            
            <dc:subject>Vulnerabilities</dc:subject>
            
        </item>
        
        
        <item rdf:about="http://www.vnsecurity.net/Members/mrchuoi/archive/2008/05/08/compromised-file-in-vietnamese-language-pack-for-firefox-2">
            <title>Compromised file in Vietnamese Language Pack for Firefox 2</title>
            <link>http://www.vnsecurity.net/Members/mrchuoi/archive/2008/05/08/compromised-file-in-vietnamese-language-pack-for-firefox-2</link>
            <description>The Vietnamese language pack for Firefox 2 contains inserted code to load remote content.</description>
            <p:payload xmlns="http://www.w3.org/1999/xhtml"
                       rdf:parseType="Literal"><p>This code is the result of a virus infection, but
does not contain the virus itself.  This usually results in the user
seeing unwanted ads, but may be used for more malicious actions.</p>
<p>Everyone who downloaded the <b>most recent Vietnamese language pack
since February 18, 2008 got an infected copy</b>.  While we cannot
determine the exact number of compromised downloads, there have been
<b>16,667 total downloads</b> of the Vietnamese language pack <b>since November
2007</b>, so we anticipate the impact on users to be limited.</p>
<p>Mozilla does virus scans at upload time but the virus scanner did
not catch this issue until several months after the upload.  We are
also adding after-the-fact scans of everything to address this sort of
case in the future.</p>
<p>A new language pack will be available shortly.  Until then,
<b>Vietnamese language pack users should disable this package</b> using the
add-ons dialog on the Tools menu.</p>
<p>More information is available in bugzilla:<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=432406"> https://bugzilla.mozilla.org/show_bug.cgi?id=432406 <br></a></p><p>(Source: <a href="http://blog.mozilla.com/security/2008/05/07/compromised-file-in-vietnamese-language-pack-for-firefox-2/">http://blog.mozilla.com/security/2008/05/07/compromised-file-in-vietnamese-language-pack-for-firefox-2/</a>)<br></p></p:payload>
            <dc:date>2008-05-08T03:35:11+00:00</dc:date>
            <dc:modified>2008/05/09 04:05:25.215 GMT+0</dc:modified>
            <dc:creator>mrchuoi</dc:creator>
            
            
            <dc:subject>Software exploitation</dc:subject>
            
            
            <dc:subject>Hostile Code</dc:subject>
            
            
            <dc:subject>Vulnerabilities</dc:subject>
            
        </item>
        
    </items>
</Channel>

