Главная » Все файлы » Просмотр файлов из архивов » PDF-файлы » 2005. Programming Languages Security - A Survey

2005. Programming Languages Security - A Survey, страница 6

PDF-файл 2005. Programming Languages Security - A Survey, страница 6 Конструирование компиляторов (53037): Статья - 7 семестр2005. Programming Languages Security - A Survey: Конструирование компиляторов - PDF, страница 6 (53037) - СтудИзба2019-09-18СтудИзба

Описание файла

PDF-файл из архива "2005. Programming Languages Security - A Survey", который расположен в категории "". Всё это находится в предмете "конструирование компиляторов" из 7 семестр, которые можно найти в файловом архиве МГУ им. Ломоносова. Не смотря на прямую связь этого архива с МГУ им. Ломоносова, его также можно найти и в других разделах. .

Просмотр PDF-файла онлайн

Текст 6 страницы из PDF

In subsequent runs,the modifications are checked and newly documented assumptions disseminated. This process is continued until Splint issues no warnings.Splint is compiler independent and is available as sourcecode and binary executables for several platforms (includingLinux x86, FreeBSD, OS/2, Solaris, Win32) and can be freelydistributed and modified under the GNU General PublicLicense.Analysis of semantically commented codeThis class of static analyzers exploit semantic commentsin source code and libraries to determine assumptions andintents being made in the code.

Semantic comments follow adefinitive syntax and provide extra information that is usefulin determining programmer intentions. For example, programmers would annotate a pointer with /*@notnull@*/to indicate that the pointer’s value cannot be NULL at thatprogram point. The convenience of this approach is that itallows efficient scanning of the source code for assumptionviolations.4.1.2Analysis of code lacking semantic commentsThese analyzers attempt to verify if code is safe by constructing an execution model at every program point or bycondensing the program to a constraint system.

By tracingthe different execution flows and actions, they are able todemonstrate if particular conjectures always withstand.ITS4It’s the Software Stupid! Security Scanner [42] is acommand-line tool for statically scanning C and C++ sourcecode for possible security susceptibilities. ITS4 scrutinizessource code for function calls that are likely to be perilous,such as strcpy.

It does lexical analysis on the source codeby breaking it up into a stream of tokens and then examiningthe resultant token stream against a vulnerability database thatcontains a list of unsafe and misused functions [91].At startup, the vulnerability database is read from a text file– the contents of which are stored in memory while the toolis in use.

Vulnerabilities can be added, deleted and modifiedfrom the database.ITS4 also guards against TOCTOU file-based race conditions.For each case, ITS4 generates a report that includes a briefdescription of the problem and suggestions on how to overcome it. Possibly vulnerable functions that are identified arefurther analyzed to determine the severity level they should bereported with.For example, strcpy(buf, "\n") will be reportedwith the lowest severity as the second argument is a fixedstring which does not pose much of a threat. ITS4 works adequately fast to provide real-time feedback to programmerswhile coding.ITS4 can be customized for specific applications using itsconfigurable command-line options which are useful for focusing on specific functions while suppressing others.SplintSecure Programming Lint [86] (successor to LCLint) is atool for statically analyzing C source code for security vulnerabilities and coding flaws.

It can efficiently detect a broadrange of implementation errors by exploiting annotations thatdescribe assumptions made about a type, variable or functioninterface.Splint’s checks include type mismatches, unreachablecode, buffer overflows, NULL and dangling pointer dereferences etc. Better checking results can be obtained by puttingmore effort into annotating programs [87].Known vulnerable functions in the standard library are annotated with conditions that must be met before and after thefunction is called.For example, strcpy() is annotated as follows:/*@requires maxSet(s1) >= maxRead(s2) @*//*@ensures maxRead(s1) == maxRead(s2) @*/The requires clause signals that the buffer s1 must belarge enough to hold string s2. The ensures clause signalsthat maxRead of s1 after the call is equal to maxRead ofs2.Splint allows suppression of error messages in code regionscommented with /*@ignore@*/ and /*@end@*/.Format string vulnerabilities are detected usingtaintedness attributes.

These attributes record whetheror not a char * came from a possibly untrustworthy sourceand are useful in preventing several security vulnerabilities.11It is freely available for non-commercial use on Unix andWindows platforms.platforms. The current release of BOON is provided on an“as is” basis and is only a research prototype that is known tohave limitations and probable bugs. It is unsupported and itsuse may require skillfulness and diligence.RATSRough Auditing Tool for Security [73] is an open sourcetool that supports five popular programming languages: C,C++, Perl, PHP and Python. It scans source code looking forknown insecure function calls and can detect errors such asbuffer overflows and race conditions in file accesses, such asthe TOCTOU problem.As can be inferred from the name, RATS performs only arough analysis of source code.

It does not find all errors andmay also report false positives.RATS scans each file specified on the command line, andproduces a report (text, HTML or XML) when scanning iscomplete. Vulnerabilities reported depend on the data contained in the vulnerability database(s) used, and the warninglevel in effect. Filenames and line numbers of vulnerability occurrence are reported along with a short description ofthe vulnerability, severity and recommended actions. Simpleanalysis to eliminate reporting conditions that are evidentlynot problems are also performed.RATS is free software and is released under the GNUPublic License (GPL). It was developed for Unix and hasbeen ported to Windows as well.PreventCoverity’s Prevent [70] is a sophisticated static analysistool, that helps make new and legacy source code more stableand secure. It employs a dataflow analysis engine to detectflaws in C and C++ code. It spawned from Stanford University’s xgcc/Metal research [58].Prevent automates the process of scanning, reporting andtracking for security vulnerabilities, and covers various categories of software defects, such as [97]:• Run-time crash causing defects: including NULL pointerreferences, use after free and double frees.• Poor performance: including memory leaks, file handleleaks, database connection leaks and misuse of API’s.• Incorrect program behavior: including uninitialized variables and invalid use of negative values.• Security vulnerabilities: including buffer overflows, integer overflows and format string vulnerabilities.The analysis engine models at compile-time, the outcomesthat the operations in the source code could have at run-time.Simulation is done for each program path using a finite statemachine.

The analysis engine has a core set of softwarechecks incorporated into it, but can also be customized forspecific security requirements.The analysis is carried out by searching individual linesof code in isolation for syntactic anomalies, as well as acrosscomplex code processes and functions. This helps in presenting a complete view of each event that led to a vulnerability.It has a low false positive rate of about 20%.It provides summarized details of potential risks, via emailor web graphical user interface, including defect volume, location, dispersion and severity. It also has a “Defect Manager”with “CodeBrowser” that can be used to navigate the code toview and fix the bugs.Prevent automatically integrates into a variety of build environments and requires no changes to the code or the buildprocesses.

It supports several platforms (including Linux,HPUX, FreeBSD, NetBSD, Windows, Mac OS X, SolarisSparc, Solaris x86 ) and several compilers (including GCC,G++, Sun CC, MS Visual Studio, Intel Compiler for C/C++).It currently works with various open source projects, including FreeBSD, MySQL and Mozilla.Prevent is an enterprise tool, and its price is based on thetotal code size to be analyzed. However, it offers a free codeBOONBuffer Overrun detectiON [7] is a static analyzer for detecting buffer overflows in C code. It treats strings as abstractdatatypes (so as to recognize natural abstraction boundariesthat are obscured by the C string library) and models stringsbuffers using a pair of integers: the number of bytes allocatedfor the string (its allocated size), and the number of bytes currently in use (its length ) [94].

The buffer overflow problem isin effect reduced to an integer range analysis problem.The integer ranges are used to define a constraint language,and all string operations are modeled based on what they do tothe allocated size (alloc(s)) and length (len(s)) of thestring. The program is then parsed, and for every statementa set of integer range constraints is developed. The safetyproperty to be checked is:for all strings s, len(s) ≤ alloc(s)Next, the constraint system is solved and matched to detectinconsistencies, which are reported as possible overflows. Theprogrammer then needs to manually check the source codeand see whether they are real overflows or not.The tool generates a considerable number of false positivesdue to a trade off of precision for scalability. There are alsosome restrictions when analyzing pointer operations and nosupport for format string vulnerability detection.BOON is available under the BSD license for Unix12audit to certify and prove its capabilities.Prexis/Engine is the source code analysis and security vulnerability knowledge-base core.

Свежие статьи
Популярно сейчас
Зачем заказывать выполнение своего задания, если оно уже было выполнено много много раз? Его можно просто купить или даже скачать бесплатно на СтудИзбе. Найдите нужный учебный материал у нас!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Нашёл ошибку?
Или хочешь предложить что-то улучшить на этой странице? Напиши об этом и получи бонус!
Бонус рассчитывается индивидуально в каждом случае и может быть в виде баллов или бесплатной услуги от студизбы.
Предложить исправление
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
5076
Авторов
на СтудИзбе
455
Средний доход
с одного платного файла
Обучение Подробнее