Re: Coding Practice [was Re: Serious OpenSSL vulnerability]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 04/10/2014 04:02 PM, Rahul Sundaram wrote:
> Hi
>
>
> On Thu, Apr 10, 2014 at 3:19 AM, Ian Malone wrote:
>
>     .
>     This bug was pretty bad, but the kind of mistakes that lead to
>     overflows and over-reads tend to be from not keeping track of the data
>     properly and will cause other problems anyway, memory protection
>     doesn't help with those.
>
>
> In a managed language, it isn't typically possible to read past the
> end of an array without it resulting in obvious errors.  So while it
> isn't a silver bullet, it could have helped significantly here to
> notice the problem and correct the relevant related code. 
> Unfortunately C continues to dominate as a popular systems programming
> language and these types of errors remain a frequent problem largely
> because language level support for higher level abstractions remain
> extremely weak.  The fact that a major piece of extremely security
> critical code received almost no support from commercial vendors for a
> detailed audit for security flaws also remains a problem.
>
The cost of a "managed language" is that it affects performance. There
are essentially 2 phases in language. The first is static. The language
is compiled, and the compiler attempts to prevent buffer overflows or
reading past the end of an array. FORTRAN has had this for over 50
years. The second is dynamic or during run time. Some languages have
this (mostly interpretive languages). There is code that exists for C
that also can prevent this. But, OpenSSL, and libc, and other run-time
libraries on Linux and Unix and even DLLs in that other OS need to
consider performance, or the lack of. But, I maintain that virtually any
language suitable for use in run-time libraries can be subverted. But if
we go lower, there are even bugs in the chips. Remember the Intel
floating point bug a few years ago.

But, since our underlying libraries are written in C and are going to be
that way for a bunch of years, we should start using, or mandating the
use of tools such as Valgrind and Rational Purify as a method of testing
the code. These help the programmer locate potential latent bugs. Not
sure about Valgrind, but Purify takes libraries into account.

-- 
Jerry Feldman <gaf@xxxxxxx>
Boston Linux and Unix
PGP key id:3BC1EB90 
PGP Key fingerprint: 49E2 C52A FC5A A31F 8D66  C0AF 7CEA 30FC 3BC1 EB90


Attachment: signature.asc
Description: OpenPGP digital signature

-- 
users mailing list
users@xxxxxxxxxxxxxxxxxxxxxxx
To unsubscribe or change subscription options:
https://admin.fedoraproject.org/mailman/listinfo/users
Fedora Code of Conduct: http://fedoraproject.org/code-of-conduct
Guidelines: http://fedoraproject.org/wiki/Mailing_list_guidelines
Have a question? Ask away: http://ask.fedoraproject.org
[Index of Archives]     [Older Fedora Users]     [Fedora Announce]     [Fedora Package Announce]     [EPEL Announce]     [EPEL Devel]     [Fedora Magazine]     [Fedora Summer Coding]     [Fedora Laptop]     [Fedora Cloud]     [Fedora Advisory Board]     [Fedora Education]     [Fedora Security]     [Fedora Scitech]     [Fedora Robotics]     [Fedora Infrastructure]     [Fedora Websites]     [Anaconda Devel]     [Fedora Devel Java]     [Fedora Desktop]     [Fedora Fonts]     [Fedora Marketing]     [Fedora Management Tools]     [Fedora Mentors]     [Fedora Package Review]     [Fedora R Devel]     [Fedora PHP Devel]     [Kickstart]     [Fedora Music]     [Fedora Packaging]     [Fedora SELinux]     [Fedora Legal]     [Fedora Kernel]     [Fedora OCaml]     [Coolkey]     [Virtualization Tools]     [ET Management Tools]     [Yum Users]     [Yosemite News]     [Gnome Users]     [KDE Users]     [Fedora Art]     [Fedora Docs]     [Fedora Sparc]     [Libvirt Users]     [Fedora ARM]

  Powered by Linux