Содержание к диссертации
Введение
1. Постановка задачи 14
2. Обзор работ и классификация 16
2.1 Лексический анализ 21
2.2 Синтаксический анализ 23
2.3 Использование спецификаторов типов 25
2.4 Анализ потока данных 27
3. Используемые понятия и методы 37
3.1 Абстрактный объект памяти (АОП) 37
3.2 Модельный целочисленный тип 40
3.3 Атрибуты АОП 41
3.4 Полурешетка контекстов 46
4. Общая схема методики поиска уязвимостеи 51
4.1 Впутрипроцедурный анализ 53
4ЛЛ Представление функции 53
4.1.2 Анализ циклов 59
4.1.3 Компактное представление потока данных 60
4Л.4 Алгоритм работы с представлением потока данных 62
4.1.5 Вычисление контекстов инструкций 66
4Л.6 Инструкции увеличения счетчика в цикле 67
4Л.7 Условные переходы 68
4.1.8 Прямые вызовы функций 69
4.1.9 Вызовы функций по указателю 69
4Л.10 Остальные инструкции 69
4Л.11 Входной и выходной контексты функции 70
4.2 Межпроцедурный анализ 70
4.2.1 Общий межпроцедурный алгоритм 71
4.2.2 Стратегия обхода графа вызовов 72
4.2.3 Анализ вершины графа вызовов 75
4.2.4 Интерфейс для внутринроцедурного анализа 76
4.3 Обнаружение уязвимостеи на основе вычисленных атрибутов 77
4.4 Реализация уточнения уязвимостеи и обнаружения их источников 78
5. Реализация методов , 86
6. Экспериментальные результаты 90
Заключение л 92
Список литературы 94
- Синтаксический анализ
- Модельный целочисленный тип
- Компактное представление потока данных
- Общий межпроцедурный алгоритм
Введение к работе
Проблема социального приспособления сопровождает человечество на всем пути исторического развития. Периоды экономических кризисов, общественно-политических потрясений, стихийных бедствий существенно осложняют социальную адаптацию человека.
Падение уровня жизни большинства населения, девальвация правовых и нравственных норм, неуверенность в завтрашнем дне - все эти следствия неразумного, а порой преступного реформирования экономико-политической системы России в 90-е годы - привели к снижению адаптационных возможностей многих категорий граждан страны.
Значительно расширился круг лиц, дезадаптированных в социальном плане. Об этом убедительно свидетельствует рост безработицы алкоголизма, наркомании и токсикомании, преступности. Показатель рождаемости уменьшился вдвое, смертность возросла на 30%1. Все это свидетельствует об истощении адаптационных возможностей населения.
Нарастает недовольство масс и растет политическая активность (в забастовках в 1998 году участвовало 531 тыс. человек) Люди, потерпев фиаско в приспособлении к новому социально-экономическому укладу, пытаются использовать более агрессивные способы адаптации. Целые категории граждан - учителя, врачи, пенсионеры и другие - еще недавно вполне успешно приспосабливающиеся в условиях социалистического уклада общественной жизни, сегодня испытывают значительные адаптивные затруднения.
Российская Федерация в 1998 году. Статистический ежегодник. М., 1999. с.345. 2 Дворжецкий И.Н. Россия на рубеже веков.// Альтернативы. 1999. с. 17.
Дети-инвалиды являются одной из самых проблемных, с точки зрения социальной адаптации, групп. Во времена кризисов всегда более всего страдают дети. А приспособительные возможности детей-инвалидов снижены в связи с недостатком их физического и психического здоровья, ограниченностью социального опыта, а зачастую, неблагоприятной семейно-экономической ситуацией.
Число детей-инвалидов, по данным ЮНЕСКО,3 во всем мире и в России, в том числе, составляет около 3% детской популяции. Продолжающееся ухудшение экологической обстановки, уменьшение медико-социальных возможностей Российского общества позволяет предположить, что тенденция к росту детской инвалидности сохранится в ближайшие годы.
Поэтому значение проблемы эффективного социального приспособления детей-инвалидов будет расти.
Проблема социальной адаптации детей-инвалидов и их семей имеет социальное, экономическое, политическое и морально-этическое значение.
Решение данной проблемы позволит сократить затраты общественного труда на обслуживание детей-инвалидов и повысить производительность труда членов их семей. Интегрированное обучение и воспитание детей-инвалидов вместе со здоровыми удешевит их образование за счет сокращения доли специального обучения и высоко затратного домашнего обучения. Повышение качества жизни детей-инвалидов, включение их в деятельность, соответствующую возрасту, снизит количество психосоматических заболеваний и невротических реакций у этой категории детей, что позволит существенно сократить затраты на их лечение. В перспективе, социально адаптивные юноши и девушки-инвалиды с большей вероятностью смогут получить
3 Д.Вернер. Реабилитация детей-инвалидов.(пер. с нем.) М., 1994, с. 12.
профессию, соответствующую их возможностям и потребностям общества и включиться в процесс созидания.
Безусловно, решение проблем эффективного приспособления детей-инвалидов не только расширит базу социальной политики и позволит применить высвобождаемые средства в пользу других нуждающихся категорий населения, но и усилит гуманистические тенденции в обществе. Сближение мира инвалидов и здоровых породит большее понимание, сочувствие и уважение к людям, которые, несмотря на серьезный недуг, смогли успешно приспособиться к жизни и восстановить свою социальную ценность.
Российская Федерация присоединилась к большинству международных документов по проблемам инвалидности. Однако, реально, инвалиды в России лишены многих возможностей - начиная от неприспособленности к их нуждам архитектурной среды и транспорта и кончая фактическим неравенством прав в области получения образования и профессиональной самореализации. Решение проблем адаптации инвалидов существенно повысит авторитет нашей страны в мировом сообществе.
Однако, хотя, в последние годы, в связи с особой актуальностью, эта проблема стала популярной в Российской и зарубежной социологии, но серьезных фундаментальных трудов в этой области немного. Литературу по данному вопросу можно условно разделить на три категории.
Наибольшую группу работ составляют труды российских и зарубежных ученых, посвященные общим проблемам адаптации человека. Это книги Г.Селье " Очерки об адаптационном синдроме", "Стресс без дистресса", Ф.Меерсона "Адаптация, стресс и его профилактика", В.Казначеева - "Адаптация человека и среда", К.Дубровского - "Адаптация человека в норме и патологии", труды Т.Мерабишвили, А.Г.Московкиной и других авторов. Проблема адаптации
человека в этих книгах рассматривается с позиций, находящихся на границе социологии и психофизиологии.
В указанных трудах раскрывается психофизиологический механизм адаптации человека, обосновывается многообразие факторов, определяющих успех социального приспособления. Г.Селье и Ф.Меерсон выдвигают противоречащие друг другу гипотезы относительно сущности адаптивных способностей личности.
Проблемы адаптивного поведения человека в экстремальных условиях изучаются в работах Б.М.Коган "Стресс и адаптация", "Стресс и его патогенетические механизмы".
Соотношению нормального и отклоняющегося в адаптивном поведении личности посвящена книга А.Г.Московкиной " Проблемы социальной адаптации и социальной защиты лиц с недостатками генотипа".
В. Казначеев сосредоточил свое внимание на изучении характера протекания адаптивного процесса. Ему принадлежит первенство в создании типологии адаптивного поведения человека.
Следует отметить, что все труды этой группы грешат некоторым биологизаторским подходом. Это понятно - их авторы, психологи и физиологи, рассматривают проблемы адаптации человека в социуме походя, решая более близкие им с профессиональной точки зрения вопросы. Рассматривая человека, прежде всего, как биологическую, а затем уже как социальную систему.
Собственно социологический подход демонстрируют У.Томас и Ф.Знанецкий в работе "Польский крестьянин в Европе и Америке". В книге приводятся обширные эмпирические данные полученные путем анализа документов (писем). Именно на их основе авторы разработали основы адаптационной теории личности, изучили типологию и формы социального приспособления.
Д.Дьюи в работе "Психология и педагогика развития" впервые подверг социологическому анализу адаптивные способности детей, и поставил вопрос о путях их совершенствования. Однако следует отметить, что при рассмотрении сущности процесса социальной адаптации, названные авторы находились под влиянием бихевиористских идей, и рассматривали адаптивное поведение человека, в значительной степени, по аналогии с реакциями животных.
Т.Парсонс в работе "Структура социального действия" впервые применил к анализу процесса социальной адаптации структурно-функциональный подход, что позволило ему точнее описать типологию адаптивного поведения, связав ее с понятием "стиль жизни".
В книге А.Тоффлера "Футурошок" подробно разрабатывается понятие и сущность социальной дезадаптации.
В то время, как американских социологов интересовали общие проблемы социальной адаптации личности, в российской социологии наибольшее развитие получила тема адаптивного приспособления к конкретным условиям социальной среды. Так, в трудах П.М.Керженцева и М.С. Лебединского затрагивались вопросы адаптации личности в условиях сложного производственного процесса. Проблемы адаптивного поведения человека в урбанизированной среде касались Л.Паперныи и Б.Смулевич.
Особенно много публикаций было в категории, которую можно условно назвать "адаптация личности в ситуациях смены социальной роли". Это работы, посвященные адаптации лиц, вышедших на пенсию -к новому укладу жизни,4 адаптации малышей - к яслям и детскому саду, 5 первоклассников - к школьному обучению, б студентов - к
Шитов К.Н. Социальная активность пожилых людей в СССР. М, 1981. 5 Социальная адаптация детей в дошкольных учреждениях./ Под ред. Р.В. Тонковой-Ямпольской /, М., 1980.
вузовской системе образования,7 молодоженов - к браку, молодых
специалистов - к профессиональной деятельности 8 и другие. В этих
трудах затрагиваются проблемы адаптивного поведения в норме и
патологии, рассматривается влияние различных факторов, таких как
возраст, состояние здоровья, морально-волевые качества
адаптирующегося на успешность процесса социальной адаптации. Подчеркивается значение преемственности, подготовки к новой социальной роли, приводятся различные по объему эмпирические данные, даются рекомендации.
В следующую группу можно объединить литературу, которая посвящена общим проблемам социальной адаптации инвалидов. Это труды Добровольской Т.А., Шабалиной Н.Б., Дементьевой Н.Ф., Петраковой Г.И., Каткова И.П., Кузнецова В.В., Айшервуд М.М., Каллент Х.Ю. В работах затрагиваются вопросы влияния социально-политических, социально-экономических и социально-психологических факторов на течение адаптивного процесса, а также проблемы адаптации инвалидов к трудовой деятельности и социальному общению.
И, наконец, еще одна категория - работы, посвященные непосредственно адаптации детей-инвалидов. Основы этого направления заложены венгерским педагогом А.Пето, который обосновал и апробировал систему "кондуктивной" (от англ. " conduct" - помогать, вести) помощи детям, страдающим ДЦП. В работе "Кондуктивная педагогика" А.Пето подчеркивал роль формирования у ребенка-инвалида устойчивой мотивации к саморазвитию и самосовершенствованию. Другая идея А.Пето - ведущая роль матери в процессе социальной адаптации ребенка-инвалида получила дальнейшее развитие в работах
6 Баркан А.И. Типы адаптации первоклассников. - Педиатрия, 1983, с.40-44.
7 Годник СМ. Преемственность систем школьного и вузовского образования.
Воронеж, 1986.
М. Раттера "Помощь трудным детям", Д.Вернера "Реабилитация детей-инвалидов", А.Р.Маллера "Педагог и семья ребенка-инвалида".
В России проблемы воспитания, развития и социального приспособления детей с недостатками развития изучал Л.С.Выготский. Именно он впервые отметил связь физического дефекта с социальной недостаточностью "физический недостаток неизбежно порождает как бы некий социальный вывих". 9Под его руководством получила гуманистическое развитие российская дефектология, основанная на подлинном знании психологии больного ребенка.
Проблемы социо-культурной и социально-педагогической адаптации ребенка, вынужденного постоянно лечиться, рассматриваются в книгах Н.Дубровского "Жемчужина России ", Е.Коган "Лечебная педагогика в детском санатории".
Особое внимание уделяется в современной литературе проблемам семьи ребенка-инвалида, как основного реабилитационного пространства и фактора, определяющего о многих случаев успешность социальной адаптации. Это работы Е.Камсюк, Л.Грачева, Р.В.Тонковой-Ямпольскои и других.
Конкретные методики медико-социальной и психолого-педагогической реабилитации детей-инвалидов разрабатываются и регулярно публикуются рамках федеральной программы "Дети-инвалиды". Современные идеи и новейшие технологии по социальному приспособлению детей-инвалидов и их семей нашли свое отражение в материалах научно-практических конференций. 10
Однако, сегодня многие аспекты проблемы социальной адаптации личности детей-инвалидов остаются неразработанными. Это
Голубев Т.М. Начало пути. М., 1979.
9 Л.Выготский. Избранные сочинения в 2-х томах т. 1, с.99.
10 Реабилитация детей с ограниченными возможностями в РФ. Дубна. 1992.
вопросы оценки адашивных возможностей человека и перспектив их совершенствования, динамика и фазы процесса социальной дезадаптации. До сих пор нет ясности в вопросе о том, за счет какого конкретного механизма происходит социальное приспособление. Среди источников, повествующих о проблемах интефированного обучения здоровых детей и детей-инвалидов, есть лишь зарубежные.
Проблема социальной адаптации детей-инвалидов сегодня - широкое поле для исследований. Эмпирические данные по этой категории населения фрагментарны. Опросов самих детей и подростков с ограниченными возможностями практически не проводилось. Нет ни одной серьезной работы о типологии адаптивного поведения детей-инвалидов, не описано научно обоснованных методик оценки их адаптивных возможностей. Нет достаточных сведений об особенностях динамики адаптации ребенка-инвалида в обществе здоровых сверстников.
Особый интерес и практическую ценность, на наш взгляд, представляет разработка теории и методики социального управления адаптивным процессом детей-инвалидов, так как эффективное управление способно не только обеспечить реализацию адаптивных потребностей данной группы населения, но и принести значимую социально-экономическую выгоду.
Основная гипотеза исследования - предположение о том, что социальная адаптация детей-инвалидов является многофакторным и динамическим процессом, результат которого зависит как от социетальных факторов, так и от микросреды. Особую роль играет адаптивный потенциал ребенка, наращивание и укрепление которого имеет свою специфику (преодоление комплекса социальной недостаточности) и управление которым является решающим фактором.
Гипотезы следствия:
Социальная адаптация ребенка-инвалида имеет свои специфические особенности.
На процесс социальной адаптации детей-инвалидов воздействует общая социальная обстановка в семье, в регионе, в стране.
На процесс социальной адаптации детей-инвалидов воздействует общая социальная обстановка в семье, в регионе, в стране в целом. При этом эффективность управления адаптивным процессом зависит от того, как комплексно учитываются факторы различного уровня.
Ребенок-инвалид обладает определенным адаптивным потенциалом. Эффективность управления зависит от того, способствует ли деятельность системы управления повышению адаптивного потенциала.
Цель исследования состоит в том, чтобы на основе социологической теории адаптации, анализа и обобщения российской и зарубежной практики изучить динамику, объективные и субъективные ресурсы социальной адаптации детей-инвалидов, а также выявить резервы совершенствования управления процессом социальной адаптации детей-инвалидов с целью повышения его эффективности. Соответственно, задачами исследования являются:
обосновать специфику детской инвалидности как социальной проблемы,
выявить особенности социальной адаптации детей-инвалидов;
разработать методику комплексной оценки их адаптивных возможностей;
выявить взаимозависимость адаптивности ребенка с некоторыми биологическими и социальными факторами.
рассмотрев отечественный и зарубежный опыт, научно обосновать и экспериментально проверить методику микро-управления адаптивным процессом;
разработать рекомендации по совершенствованию управления процессом социальной адаптации детей-инвалидов на макро-уровне.
Предметом исследования являются динамика и потенциал социальной адаптации детей-инвалидов, а также проблемы оптимального социального управления адаптивным процессом.
Основной объект исследования - дети-инвалиды, посещающие Воронежский областной Центр реабилитации «Парус Надежды». В качестве объекта использованы правовые документы России, зарубежных стран и мирового сообщества, программы социальной адаптации ряда Российских и зарубежных реабилитационных Центров. Использовались материалы государственной и ведомственной статистики.
Большую часть эмпирической базы работы составили материалы
Воронежского областного Центра реабилитации детей и подростков с
ограниченными возможностями "Парус Надежды". Генеральная
совокупность - состоящие на учете в названном Центре 6985 детей в возрасте от 0 до 18 лет, из них 3893 - дети-инвалиды, и 3982 - дети с ослабленным здоровьем, инвалидности не имеющие. Выборочная совокупность формировалась в два этапа: сначала, методом случайной выборки составлен массив из 500 детей (номера чьих социальных паспортов, соответствовали данным таблицы случайных чисел), а затем были определены 141 ребенок-инвалид и 141 ребенок с ослабленным здоровьем - методом парной выборки (по полу, возрасту, характеру инвалидности).Отклонение выборочной совокупности от генеральной по названным параметрам составило от 3,71 до 4, 67%.
Методологию исследования определили следующие принципы:
социальной детерминации адаптивного процесса;
комплексной многофакторности адаптации;
психо-физиологической специфики адаптации детей-инвалидов;
фазовой динамики адаптивного процесса;
принцип типологизации;
трактовки социальной адаптации детей-инвалидов как процесса преодоления комплекса социальной недостаточности и включения в жизнедеятельность.
Теоретической основой исследования являются труды отечественных и зарубежных социологов - теория социальной адаптации личности У.Томаса и Ф.Незнанского, теория адаптационного синдрома Г.Селье, концепция "социальных затруднений" Н.С.Степашова, концепция адаптивного поведения в детском возрасте Н.Е.Миронова.
В работе использованы отечественные и зарубежные теории социально-педагогической и социально-психологической коррекции социального поведения. Это уже упоминавшаяся система кондуктивнои педагогики А.Пето, концепция воспитания и развития аномального ребенка Л.Выготского, педагогическая система А.С.Макаренко, система активизации адаптивных и познавательных возможностей личности А.Казанского, методика коллективной творческой деятельности И.П.Иванова, теория социальной педагогики. Использовались также демократические концепции правовой защиты детей и социальных гарантий их развития, изложенные в таких документах как Декларация прав ребенка, Декларация прав инвалидов, Руководство по обеспечению равных прав инвалидов, федеральные программы "Дети России", "Одаренные дети", "Дети-инвалиды". На основе интеграции наиболее позитивных моментов названных теорий строилась данная работа.
Работа выполнена с позиций диалектико-материалистического метода познания изучаемой проблемы, с использованием абстрактно-логического, монографического методов, а также методов статистической обработки данных: группировки, дисперсионного, корреляционного и регрессионного видов анализа.
В ходе исследования применялись методы опроса родителей (интервью и закрытого анкетирования). Сначала проводился пилотажный опрос 30 респондентов с целью уточнения формулировок вопросов анкеты. После чего были опрошены родители всех детей, составляющих выборочную совокупность. Респондентам предлагалось ответить на вопросы о тяжести социального приспособления ребенка, об отношении к нему сверстников. Также нас интересовало мнение родителей по поводу причин адаптивных затруднений их ребенка, перспектив развития его адаптивных способностей и его общих социальных перспективах (см. Приложение 1). Анализ данных анкет позволил провести параллель между характером адаптации ребенка и некоторыми социально-психологическими установками родителей.
С целью выявления динамики адаптивного процесса детей-
инвалидов использовался метод наблюдения. Наблюдение осуществлялось
специально проинструктированными педагогами. Результаты
фиксировались в протоколе. (Приложение 2). В отношении каждого ребенка наблюдение велось на протяжении трех недель (курс реабилитации в реабилитационном Центре). Когда ребенок возвращался на повторный курс, ведение протокола продолжалось, что позволяло делать выводы не только о динамике адаптации, но и об устойчивости адаптивного эффекта.
Для уточнения списка применяемых в наблюдении показателей, применялся метод экспертной оценки. В качестве экспертов выступали: профессор ВГМА, доктор медицинских наук А.Ф.Неретина, доцент ВГУ, кандидат педагогических наук И.Ф.Бережная, заслуженный врач РФ, директор ОЦРДП "Парус надежды" Н.В. Иванникова, народный учитель РФ, председатель Воронежского отделения детского Фонда М.И.Картавцева, директор Воронежского муниципального центра социальной адаптации подростков В.И.Коробкин. Показатели, названные
четырьмя из пяти опрошенных были использованы для оценки динамики адаптивного поведения.
Наблюдение позволило выявить фазы процесса социальной адаптации детей-инвалидов, особенности его протекания по сравнению с детьми, инвалидности не имеющих. День, когда все вышеназванные показатели приходили в норму признавался нами за День адаптации. Длительность и характер периода от дня поступления в Центр до дня адаптации позволила нам провести группирование детей по тяжести адаптивного процесса, и соответственно сделать предположение об их адаптивных возможностях.
С целью уточнения этого предположения нами проводился опрос родителей этих детей. Родителей просили оценить в баллах поведение ребенка (по тем же показателям) в незнакомой и знакомой обстановке. Полученные данные позволили сравнить наши наблюдения и многолетние наблюдения родителей.
С целью получения сведений о семейно-бытовых условиях жизни ребенка, его образовании, состоянии здоровья и т. п. нами использовался метод анализа документов. Анализу подвергались социальные паспорта детей-инвалидов, составленные специалистами по социальной работе. Данные о состоянии физического и психического здоровья детей были получены путем анализа "историй развития ребенка" , оформленных врачами и психологами.
С целью количественно конкретного анализа адаптивных возможностей ребенка использовалась авторская методика, подробно описанная в главе 2, параграф 1.
Изучению также подверглись, имеющиеся в нашем распоряжении 22 различные программы реабилитации и социальной адаптации детей-инвалидов. Это документы, разработанные как государственными учреждениями (комитетами социальной защиты, комитетами по
образованию), так и общественными объединениями (Детский Фонд, Детский орден Милосердия, Ассоциации родителей детей-инвалидов). При анализе программ, нас, в первую очередь, интересовали их цели, задачи, контингент детей, который планировалось охватить, характер реабилитационных мероприятий и кто их осуществляет, принципы финансирования.
В процессе изучения проблемы управления адаптацией детей-инвалидов на микро-уровне, нами была разработана программа развития адаптивных возможностей ребенка в условиях реабилитационного Центра "Социальное закаливание". Для оценки ее эффективности в период с сентября 1997 по сентябрь 1998 года на базе ОЦРДП "Парус Надежды" проводился педагогический эксперимент. Две группы детей, одинакового возраста - 11 лет, сформированные по принципу парной выборки, с отклонением от генеральной совокупности по основным параметрам (пол, характер инвалидности) на 3,2 и 3,7%, по 20 человек в каждой, наблюдались в течение трех недель. Одна из групп занималась по программе "Социальное закаливание", другая группа (контрольная) -проходила традиционный курс реабилитации. Повторные курсы социального закаливания (три раза в год) позволили оценить устойчивость достигаемых результатов в развитии адаптивных возможностей ребенка. Ход и результаты эксперимента подробно изложены в главе 2, параграф 2. Новизна исследования состоит в следующем:
выявлена специфика проблемы детской инвалидности в современной России;
обоснована необходимость более глубокого изучения особенностей микро-уровня адаптации детей-инвалидов для решения проблем управления адаптивным процессом на макро-уровне;
изучено адаптивное поведение детей-инвалидов различного пола, возраста, состояния здоровья, различного социального статуса;
разработаны предложения по измерению адаптивного потенциала детей-инвалидов в целях оптимизации управления адаптивным процессом;
разработана и апробирована методика социального закаливания детей-инвалидов в условиях реабилитационного Центра;
предложены рекомендации по совершенствованию управления процессом социальной адаптации детей-инвалидов на макро-уровне.
На защиту выносятся следующие положения:
Социальная масштабность и острота проблемы детской инвалидности в современной России возрастает. Это обусловлено кризисным состоянием общества, снижением уровня и качества жизни большей части населения, несовершенством социальной политики государства, недостаточной развитостью управленческих адаптивных структур, адекватных жизненным потребностям и психо-физиологическим особенностям детей-инвалидов.
Социальная адаптация детей-инвалидов представляет собой специфический процесс преодоления социо-психо-физиологической недостаточности и формирования необходимых социальных качеств для развития и полноценного включения личности в жизнедеятельность современного социума.
Социальная адаптация - это многофакторный и динамический процесс, управление которым предполагает оптимизацию факторов разного уровня: стщетальных, специфических для микросреды, личностных, а также медицинских, психолого-педагогических, социокультурных.
Каждый ребенок-инвалид имеет свой (личностный и микросредовой) адаптивный потенциал, наращивание и укрепление которого является доминантой управления социально-адаптивным
процессом на микро-уровне. Адаптивный потенциал является мерой способности ребенка-инвалида к преодолению недуга и формированию себя как социально-полноценной личности. Эта мера не является константной. Она может наращиваться и ослабевать в зависимости от условий жизни, структур общения и степени эффективности управления адаптивным процессом. В диссертации предложена методика измерения адаптивного потенциала детей-инвалидов.
Одним из важнейших факторов и этапов развития достаточного адаптивного потенциала ребенка-инвалида является социальное закаливание, то есть закрепление и упрочение в личности ребенка-инвалида уверенности в своих социальных возможностях, выработка необходимых качеств для достижения жизненных целей в общении, труде, в познании, в современных структурах человеческих отношений и деятельности. В диссертации предлагается авторская методика адаптивного социального закаливания, которая на протяжении трех лет разрабатывалась и апробировалась в Воронежском областном Центре реабилитации «Парус Надежды».
В работе, на основе обобщения отечественного опыта и опыта некоторых зарубежных стран, сформулированы предложения по совершенствованию социальной политики государства по проблемам детской инвалидности с целью повышения эффективности процесса социальной адаптации. Повышение гуманитарной культуры по отношению к детям-инвалидам - одна из существующих проблем демократизации и гуманизации российского общества и государства. Должна быть сформирована действенная целевая и ресурсно обеспеченная общероссийская программа социальной адаптации детей-инвалидов.
Практическая значимость работы состоит в том, что содержащиеся в ней теоретические и методические рекомендации позволяют совершенствовать управление адаптивным процессом детей-инвалидов в направлении, обеспечивающем оптимальную реализацию адаптивных возможностей и потребностей ребенка и его семьи и восстановление его социальной ценности в будущем, с учетом изменяющихся финансовых возможностей семьи и общества.
Основные положения исследования докладывались на Всероссийской научно-методической конференции «Реабилитация детей с ОВ в системе социальной защиты» (Воронеж 1998), на семинарах Всероссийской школы социальных работников (октябрь 1998, декабрь 1998, апрель 1999, июнь 1999 - г. Воронеж), опубликованы в четырех статьях.
Результаты научных исследований прошли экспериментальную проверку на базе ОЦРДП «Парус Надежды» (Воронеж), и получили положительную оценку специалистов Воронежского областного института повышения квалификации работников образования, областного Детского Фонда, кафедры педагогики Воронежского госуниверситета.
Синтаксический анализ
В отличие от алгоритмов лексического анализа, с помощью алгоритмов синтаксического анализа проводится разбор синтаксиса программы в соответствии со стандартами языка программирования, и программа представляется в виде абстрактного синтаксического дерева.
Более высокоуровневое представление программы позволяет улучшить качество производимого анализа и уменьшить количество пропускаемых уязвимостей и ложных предупреждений, поскольку на синтаксическом уровне появляются первые существенные сведения о семантике программы. Например, средства лексического анализа выдают ошибку даже в том случае, если имя пользовательской переменной совпадает с именем функции, занесенной в список опасных шаблонов (ложное предупреждение на строке 21 для инструмента FIowFindcr), На синтаксическом же уровне различие между именем функции и переменной проявляется при построении синтаксического дерева. Кроме того, синтаксический разбор для таких языков, как Си и C++ предполагает разбор всех макросов, чего в принципе не происходит на лексическом уровне. За счет «разворачивания» всех макросов программы возможно появление уязвимостей, которые не могли быть обнаружены при лексическом анализе.
Несмотря на более высокоуровневое представление программы принцип обнаружения уязвимостей, лежащий в основе алгоритмов синтаксического анализа не сильно отличается от используемого при лексическом анализе. Обычно в алгоритме содержится база потенциально опасных и уязвимых синтаксических конструкций языка программирования, например Си. Такой подход позволяет по сравнению с только лексическим анализом предотвратить выдачу лишь самых примитивных типов ложных предупреждений. Так, например, для ошибки форматной строки помечаются в качестве уязвимых не все вызовы функции семейства printf /scanf а лишь те, в которых в качестве форматной строки используется неконстантная переменная.
Инструмент Pscan[17] выполняет синтаксический анализ текста программы и предназначен для поиска уязвимостей типа форматная строка в программах на языке Си. Pscan определяет места вызовов функций семейства printf /scanf и исследует аргументы вызываемой функции, В случае если параметр - форматная строка является не константой, то диагностируется предупреждение о возможной уязвимости. Таким образом, все вызовы с неконстантным параметром признаются уязвимостями вне зависимости от содержимого константной строки, что приводит к большому количеству ложных предупреждений. Список опасных функций задай в инструменте статически и не может быть изменен.
На тестовом примере Pscan показал закономерный результат, отметив возможную уязвимость Фі и не выдав ложного предупреждения на строке 45, как это сделал инструмент лексического анализа ITS4,
Во многих языках программирования существуют спецификаторы типов. Например, в языке Си к таким спецификаторам относятся const, register и т.д. Идея подхода, основанного на спецификации типов данных, заключается в расширении языка программирования дополнительными спецификаторами типов, которые позволят указывать на некоторые свойства описываемых данных. Так, например, в работе Шанкара[18] для языка Си вводятся дополнительно спецификаторы tainted и untainted. В таком случае, строка, описывающая входную точку программы main, может выглядеть следующим образом; int main (int argc, tainted char argv), спецификатор tainted в данном случае означает, что данные, являющиеся входными параметрами командной строки данной программы, берутся из непроверенного источника, и никаких предположений о содержимом этих входных строк нет. Собственно анализ программы заключается в распространении введенных спецификаторов по синтаксическому дереву программы при помощи специальных правил наследования типов, Например, в случае копирования строки из массива argv спецификатор tainted будет приписан и к целевой строке копирования. Спецификатор untainted наоборот, означает, что специфицируемые данные проверены и безопасны. Появление спецификатора untainted для входных данных возможно, например, после осуществления проверки этих входных данных на содержащиеся в них запрещенные символы, из-за которых изначально данные были специфицированы как tainted.
Модельный целочисленный тип
Модельный тип для целых чисел используется для оценки значений целочисленных атрибутов абстрактных объектов памяти в ходе анализа. В дальнейшем мы будем обозначать модельный целочисленный тип как M_Integsr. Значение переменной модельного типа представляется следующим образом: {а, Ь), где а Ь. В этом случае переменная может принимать любое целочисленное значение на отрезке от а до Ь. При этом а может принимать специальное значение "-изо", a b - "+ хЛ Если а = Ь, то значение переменной в данной точке программы может быть вычислено точно. Поскольку в реальных вычислениях значение бесконечности недостижимо, то при анализе программ значениям "-со" и "+со" будут соответствовать минимальная и максимальная целочисленные константы для целых типов данных (обычно, четырехбайтовое целое со знаком). Специальное значение (+оо, -со), представляющее собой пустое множество допустимых значений.
Над значениями типа M_lnteger определяются все стандартные операции над целыми числами, которые присутствуют в языке Си, Если результатом операции является множество непересекающихся отрезков, то результирующим будет минимальный отрезок, включающий в себя все непересекающиеся отрезки. Например, операция сложения двух чисел типа M_Integer определяется так, как показано в таблице L
Кроме арифметических операций, над значениями модельного типа, вводится специальная операция слияния [}, которая выполняется в точках слияния потока управлення из нескольких возможных путей для нахождения возможных значений целочисленного атрибута.
Если вдоль одного пути атрибут мог иметь значения из отрезка (llf hi), а вдоль другого - из отрезка (І2/ h2), то операция слияния возвращает ограничивающий отрезок - минимальный отрезок, содержащий оба отрезка-аргумента: Оь h1)\)(i2/ h2) = (min(/lf l2)f max(hlf h2)) Очевидно, что Ґ/І,ЛІМ+«, -co) = Oi, hi). 3.3 Атрибуты АОП Абстрактный объект памяти ассоциирован с рядом атрибутов, отражающих свойства объекта, для которого создан АОП.
Атрибуты АОП, необходимые для поиска уязвимостей представляются в виде кортежа: name, size, overlap, aset, Len, value, input Рассмотрим атрибуты АОП более подробно:
name - уникальная строка-"имя" АОП. Если абстрактный объект памяти соответствует некоторой переменной, то этот атрибут выглядит как имя переменной : питЬег , где number - некоторый уникальный идентификатор. Если же АОП соответствует неименованному объекту: массиву, как набору элементов, динамическому объекту или константной строке инициализации, то ей присваивается специальное название ":ARRAY: number ", w:HEAP: number " или ":STACK: number " соответственно. Этот атрибут используется для однозначной идентификации АОП,
size - имеет тип M_Integer. Это размер, занимаемый АОП в байтах- Размер вычисляется при создании АОП по известному размеру стандартных типов и, для массивов - количеству элементов, для записей - суммарному размеру полей, для объединений -максимальному размеру поля, для динамически выделяемых объектов -параметрам функций выделения памяти. В последнем случае размер АОП может измениться в ходе анализа, например, по результатам более точной оценки значений параметров функций семейства malloc {). Тем не менее, размер АОП остается одним и тем же для всех анализируемых точек программы для каждого целевого объекта.
overlap - представляет собой множество пар { (AMLi, Of fseti) Ь Такой тип данных в дальнейшем будет называться AMLSet. AML представляет собой тот АОП, целевой объект которого может перекрываться при размещении в памяти с некоторым смещением Offseti типа M_Integer с целевым объектом АОП, которому принадлежит данный атрибут- Этот атрибут, как было отмечено выше, используется для описания того, как размещаются в памяти подобъекты объекта агрегатного типа, в частности, поля записей и объединений. При создании АОП для переменной, имеющей тип записи, во множество overlap для этого АОП заносятся пары AMLOffset=(AML, Offset), для которых абстрактный объект памяти AML соответствует некоторому полю этой записи, а смещение Offset - смещению этого поля в записи. Если же АОП создается для переменной типа объединение, то во всех парах из множества overlap смещения будут равны нулю. Как и размер АОП, этот атрибут также может уточняться при последующих итерациях анализа, так как создание «вложенных» объектов может происходить при динамическом «ленивом» создании объектов агрегатных типов. Тем не менее, данный атрибут будет статическим, поскольку структура вложенных АОП описывается структурой типов программы, t aset - множество AMLSet, содержащее АОП, на которые может указывать данный АОП с некоторым смещением Offset типа M_Integer (так называемое points-io множество для данного АОП). Это основной атрибут, используемый при анализе указателей и несущий в себе информацию о том, па какие объекты может указывать данный. Факт наличия возможности указания не только па начало объекта, но и на ячейку внутри объекта позволяет использовать данный атрибут для более точного анализа указателей, вплоть до анализа с учетом адресной арифметики. Атрибут aset представим в виде ( (AMLi, Offsett) Ь
len - длина строки, которая содержится в данном АОП, Этот атрибут имеет тип M_lnteger и используется при обработке строковых переменных и функций работы со строками. Его наличие обусловлено тем, что операции работы со строками в языке Си являются одним из основных источников уязвимостей защиты. Назначение его состоит в том, чтобы хранить возможный диапазон значений длины строки, которая может содержаться в целевом для данного АОП объекте.
value - значение, хранящееся в данном АОП, Этот атрибут также имеет тип M_Integer и используется для переменных целых типов. Вычисление значений целочисленных переменных необходимо для возможно более точной оценки индексов массивов при обнаружении уязвимости переполнения буфера
Компактное представление потока данных
Пусть для графа потока управления Е_1п(1) - множество ребер, входящих в вершину J, E_Out(I) - множество ребер, исходящих из вершины 1, Для каждого ребра V графа потока управления определен контекст C(v) Каждой вершине / графа потока управления соответствует преобразование потока данных FIOWj, использующееся при статическом анализе для вычисления контекстов выходных ребер: C{w) = Flows( [J C{v)tw)t WGE_Out(I) Пусть для каждой вершины I выделено некоторое входящее ребро Р(1) и заданы следующие операции над контекстами: ААВ - содержит кортежи из контекста А для таких АОП name: Апате Впзте, т.сэто изменения В по сравнению с А. AVB - содержит вес кортежи из В и кортежи из А, АОП которых не присутствуют в В, т.е. это контекст А с добавленными изменениями из В. Тогда при фиксированных контекстах после применения преобразования FIoWj для каждого исходящего ребра weE_Out(I) множество: A{w) = C(w)AC{P(I)) определяет изменение контекста при прохождении через инструкцию в вершине /. При этом очевидно, что C(w) = C(P(I))VA(w), поскольку множество АОП в обоих контекстах С(Р(1)) и С(w) одинаково.
Принцип компактного представления основан на том, что каждая инструкция программы изменяет лишь небольшую часть значения контекста, так что размер множество A(w) существенно меньше размера множества С(Р(1)). Поэтому для увеличения производительности (за счет избежания копирования значений неизменяемых АОП при анализе каждой инструкции) и снижения объема требуемой памяти (за счет избежания хранения копий значений неиспользуемых в данной инструкции АОП) было применено следующее представление контекстов.
Пусть отношение Р(1) определяет дерево наследования контекстов, покрывающее граф потока управления, так что Р(1) - непосредственный предок вершины / в этом дереве. Компактным представлением контекста C(v) являются множество A(v)t удовлетворяющее равенству С(у) = C(P(/))W\(v). При этом в каждый момент времени значение контекста C(v)=Cr(v) может быть вычислено для любого ребра V, исходящего из вершины J, при помощи рекурсивного соотношения Ct(v) = Ct(P(I))VA(v), сад = од где VQ - входное ребро функции, исходящее из вершины Entry графа потока управления.
Компактность представления достигается за счет того, что само значение C(v) процессе анализа программы не сохраняется.
Так как инструкции требуется получать значения АОП в контексте входящего ребра, а рекурсивное вычисление контекста каждый раз при обращении занимает много времени, во время анализа строятся временные контексты. Временный контекст Ct(v) ребра графа потока управления V равен контексту этого ребра C(v) и представляется в виде хэш-таблицы отображения из АОП в значения АОП, так что доступ к временному контексту происходит эффективно.
Временный контекст исходящего ребра инструкции получается из временного контекста входящего ребра применением изменений: Ct{v) = Ct{P{I))VA{v) Изменения сохраняются в исходящем ребре графа потока управления. При этом измененный временный контекст переносится с входящего ребра на исходящее ребро. При анализе любой вершины графа потока управления создаются временные контексты всех исходящих ребер. Эта процедура требует копирования временного контекста только для инструкций ветвления, доля которых в анализируемых программах достаточно невелика,
Внутрипроцедурный анализ функции выполняется при помощи нескольких обходов графа потока управления, при этом на каждом обходе каждая инструкция посещается один раз. Перед выполнением внутрипроцедурного анализа временные контексты на ребрах графа потока управления отсутствуют для экономии памяти. Перед началом каждого обхода входящему ребру функции Vo (являющемуся корневым ребром дерева наследования контекстов) сопоставляется временный контекст, равный контексту входа в функцию, Ct(Vo) =C(VQ).
Общий межпроцедурный алгоритм
На первом этапе строится направленный граф вызовов, в котором вершинами являются функции из анализируемого набора, а дуги соответствуют вызовам функций. По мере осуществления анализа граф модифицируется, поскольку возможны вызовы функций по указателям, а информация о возможном значении таких указателей недоступна изначально.
Любой межпроцедурный анализ, который принимает в расчет пути продвижения атрибутов в графе потока управления, должен иметь начальный список функций, которые являются начальными точками анализа. Здесь возможно несколько типичных вариантов: - анализ начинается со всех функций main - анализ начинается со всех «корневых», то есть таких, которые ниоткуда не вызываются, вершин графа вызовов; - со всех специально указанных вершин графа вызовов.
Наличие различных режимов анализа обусловлено тем, что анализируемая программа может являться отдельным приложением, библиотекой и т.д., и информация об этом доступна только разработчику, осуществляющему анализ.
Построение графа вызовов происходит в два этапа. На первом этапе для каящой функции программы в графе вызовов создастся соответствующая вершина графа. На втором этапе для всех точек вызова в программе добавляются соответствующие ребра в граф вызовов. Построение контекстно-независимого графа вызовов требует линейного времени от количества функций.
Для организации процесса анализа программы необходимо определить порядок, в котором будут анализироваться функции. Приведем те соображения, которые влияют на выбор стратегии обхода графа вызовов.
Договоримся рассматривать только те ірафьі вызовов, построенные для программы, которые не содержащей рекурсии. Если анализируемая программа все-таки содержит циклы в графе вызовов, будем разрывать их удалением произвольного ребра цикла и считать соответствующий вызов несуществующим. В этом случае в графе вызовов будут отсутствовать обратные дуги, и он будет представлять собой дерево. На первый взгляд может показаться, что такой граф можно обойти за один рекурсивный обход «в глубину», переходя к анализу вершины на следующем уровне дерева в соответствующей точке вызова, а после окончания её анализа, продолжая анализ вершины предыдущего уровня с инструкции, следующей за точкой вызова. В этом случае алгоритм обхода имел бы линейную сложность от числа вершин в графе вызовов. Однако такой подход применить невозможно, так как при наличии в программе операторов цикла и указателей, изменения в атрибутах одной переменной на некотором этапе анализа могут потребовать перевычисления атрибутов для других переменных в тех вершинах графа вызова, которые уже были проанализированы ранее. Пример на рисунке 16 иллюстрирует этот случай. После выполнения анализа функции g необходимо будет снова выполнить анализ функции main (), а также функции f, так как новые атрибуты, вычисленные для указателя р в ходе анализа функции g () должны повлечь изменения в атрибутах переменной у.
Как видно па примере вызова функции д, показанного на рис. 16, атрибуты, вычисленные на этапе впутрипроцедурного анализа, должны распространяться через точки вызова функции не только из вызывающей функции в вызываемую, но и в обратном направлении. Этот факт приводит к тому, что, возможно, для достижения большей эффективности следует чередовать прямое и обратное направления обхода графа вызовов, чтобы обеспечить более эффективное распространение атрибутов в обоих направлениях. Эффективность этой стратегии чередования направлений обхода была подтверждена экспериментально.
Эффективность алгоритма межпроцедурного анализа зависит от порядка, в котором происходит анализ вершин графа вызовов. Например, для контекстно-независимого графа было бы логичным «отложить» анализ вершин, имеющих несколько входящих ребер, до того момента, пока не будут проанализированы все вершины, из которых эти ребра исходят. Это необходимо для того, чтобы результаты вычислений в вершинах, из которых исходят эти ребра, были учтены уже па текущей итерации.