32
WEB-ПРИЛОЖЕНИЯ Построение программы безопасности

WEB-ПРИЛОЖЕНИЯ · 2 Web- h. _ a h i Z k g h k l b содержание еинедевВ 3 обоснование для бизнеса 6 Web-приложения другие

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: WEB-ПРИЛОЖЕНИЯ · 2 Web- h. _ a h i Z k g h k l b содержание еинедевВ 3 обоснование для бизнеса 6 Web-приложения другие

WEB-ПРИЛОЖЕНИЯПостроение программы безопасности

Page 2: WEB-ПРИЛОЖЕНИЯ · 2 Web- h. _ a h i Z k g h k l b содержание еинедевВ 3 обоснование для бизнеса 6 Web-приложения другие

2

Web-приложения. Построение программы безопасности

содержание

Введение 3обоснованиедлябизнеса 6Web-приложениядругие 8жизненныйцикл 10Безопаснаяразработка 13Безопасноеразвертывание 16Безопасноеиспользование 21Подводимитоги 25онас 32

ПереводиподготовкаматериалапроведеныкомпаниейAkKamalSecurity.автороморигинальногоматериалаподназванием“BuildingaWebApplicationSecurityProgram”являетсякомпанияSecurosis(www.securosis.com).

Page 3: WEB-ПРИЛОЖЕНИЯ · 2 Web- h. _ a h i Z k g h k l b содержание еинедевВ 3 обоснование для бизнеса 6 Web-приложения другие

3

Web-приложения. Построение программы безопасности

ВВедение

современныеweb-приложениясуществуютвсреде,котораязаметноотличаетсяоттой,котораябыла на заре существования сети интернет. они стали важными инструментами работыкомпаний, но, при этом, их функционирование зачастую не очень соответствует тому на чторассчитаны браузеры, движки которых, зачастую, создавались много лет назад. Причем рости расширение функциональности web-приложений происходили столь быстро, что не всегдаудавалосьдобитьсявсего,чегохотелось.Этоособенноочевидновтомслучае,еслиречьидетоб обеспечении безопасности web-приложений. и хотя большинство компании используетопределенные механизмы защиты своих web-приложений, только некоторые из них имеютдействительносерьезные,комплексныепрограммыобеспечениябезопасностиweb-приложений.Этотфактпорождаетдвепроблемы.Во-первых,отсутствиеполноценнойпрограммызначительноповышаетрискиисерьезноухудшаетпоследствияпотенциальныхатак.аво-вторых,отсутствиеединой программы значительно увеличивает стоимость поддержания приемлемого уровнябезопасности web-приложения, при котором риски и последствия потенциальных атак будутминимальными.

В данном отчете представлена информация о том, как построить прагматичную программубезопасностиweb-приложениязаразумнуюстоимость,но,приэтом,обеспечивегоэффективнуюзащиту.Вместотого,чтобыуглублятьсявконкретныедеталикакой-либооднойтехнологии,мывыделимосновныесоставляющиесистемыбезопасностиитокаконидолжнывзаимодействоватьмежду собой. начнем с того, что расскажем о том, чем отличаются web-приложения откоммерческих и других приложений. Затем мы предложим основные обоснования, которыеможно использовать для получения бюджета для данной задачи. а также сосредоточимвниманиенаспецифическихпотребностяхвобластибезопасностиweb-приложений,углубимсявдеталиосновныхкомпонентовбезопасностии,врезультате,объединимихвобщуюпрограммубезопасностиweb-приложений,основаннуюнатипичныхпримерахиспользования.

Проблема безоПасности web-Приложений

Коммерческиеweb-приложения развивались такимобразом, что стали головоломкой с точкизрениябезопасности.несмотрянато,чтовсевиБнаблюдализаихпоявлениемразвитием,напервыхэтапахихотносиликприложениямснеоченьвысокимуровнемриска.новкороткоевремяweb-приложениявырослиизэкспериментальныхпрограммвкритическиважныебизнес-приложения. спросите у любого разработчикаweb-приложений и он расскажет вамисториюотом,какихмаленькийвнутреннийпроектвдругсталважнейшейчастьюбизнеса,кактолькоонисделалиошибку,расхваливегобизнес-подразделениюсвоейкомпании.Врезультате,сейчаснетвозможностипрерватьразвитиеweb-приложенийивернутьсякосновам,чтобыучестьвсеважныемоменты,которыебылиупущеныназарестановления,чтовитогепривелоктекущейситуациивпланебезопасности:

• до начала активного использования web-приложений, лишь малое число компанийорганизовали взаимодействие своих внутренних систем с внешним миром. и даже те,кто сделали это, предоставляли доступ лишь бизнес-партнерам, а с широким кругомпользователейработалиивовсе–единицы.

• Web-приложения выросли самостоятельно – ониначинали с информационных сайтов,которыебылилишьчутьбольше,чемкаталоги.азатемчерезбазовыесервисыонибыли

Page 4: WEB-ПРИЛОЖЕНИЯ · 2 Web- h. _ a h i Z k g h k l b содержание еинедевВ 3 обоснование для бизнеса 6 Web-приложения другие

4

Web-приложения. Построение программы безопасности

связаныскритическиважнымибэк-ендсистемами.

• Те приложения, что разрабатывались достаточно долго и не менее долго насыщалисьфункционалом, зачастую вызывают к себе излишнее доверие, хотя по факту могут бытьтакжеуязвимы,каките,чтоделалисьвпопыхах.Вданномслучаесрабатываетклассическийпринцип “лягушка в кастрюле” – если лягушку закинуть в горячую воду, то она сразувыпрыгнет,аеслиподогреватьводупостепенно,тосварится,даженезаметивэтого.

• Протоколы web-приложений разработаны с целью обеспечить простоту и гибкостьвзаимодействия,ноприэтом,взначительнойстепениуязвимы.

• инструменты и методы разработки web-приложений очень быстро развиваются, но по-прежнемуполагаютсянабольшоеколичествоунаследованногокода.

• Угрозы для web-приложений развиваются также быстро, как и сами web-приложения, акрометого,регулярнопоявляютсяугрозывотношениитого,чтобылосделановпрошлом.Webизначальнонепредназначалсядлябезопасногозапускакритическихприложений,аэтозначит,чтовсеразработанныеприложенияфактическииспользуютнеподходящуюдляэтогоплатформу.

• Тольконекоторыеприложенияразработаныснулясучетомвсехтребованийбезопасности,атакжеподдерживаютсявактуальномсостояниидостаточнодолго.

• Когда случаются инциденты безопасности, имеются проблемы с их обнаружением ианализом.

Всветевсехэтихфакторов,стоитотметить,чтофинансированиеразработкиweb-приложений,как правило, является недостаточным. Кроме того, как и все разработчики, создатели web-приложенийнаходятсяподпостояннымпрессингом,жесткоограниченыв срокахи, зачастую,вынужденызакрыватьглазананекоторыенесовсемправильныесточкизрениябезопасностимоментывугодубизнес-задачам.Мыкатегорируемпроблемыбезопасностиweb-приложенийследующимобразом:

• Лишьнекоторыеприложенияразработанысучетомтребованийбезопасности.

• Приложениезависитотиспользуемогоweb-браузера,которыйнеявляетсянибезопасной,нидовереннойсредой.

• Web-приложения развивались с целью обеспечения доступа к самым чувствительнымсистемамбэк-ендаизпубличнойсетибездолжногоуровнябезопасности.

• Web не был разработан как безопасная платформа и, соответственно не соответствуеттривиальнымправиламбезопасности–конфиденциальность,целостность,доступность.

• Лишь небольшое количество нарушений безопасности обнаруживаются и позволяютпроанализировать потери компании и, соответственно, привести к усилению внимания кпроблемесостороныруководства.

• Унасестьогромныйобъемстарогокода,которыйпостоянноисправляется,но,втожевремя,постояннодописываетсявсеновыйиновыйкод.

• Web-приложение – это комплекс платформ, инструментов и сервисов от множествапровайдеров,каждыйсосвоимивызовамибезопасности.

• Многие web-приложения имеют критическое значение, но разработаны без учета этого

Page 5: WEB-ПРИЛОЖЕНИЯ · 2 Web- h. _ a h i Z k g h k l b содержание еинедевВ 3 обоснование для бизнеса 6 Web-приложения другие

5

Web-приложения. Построение программы безопасности

факта.

• еслиWeb-приложениеразработановнутрикомпании,тоименновнутрикомпаниидолжныотслеживатьсяуязвимостиивыпускатьсяисправления–никтодругойэтуработунесделает.

• Требования безопасности зачастую вступают в конфликт с требованиями, выдвигаемымибизнесом,вчастности,еслиэтокасаетсяпростотыиспользованияискоростиработы.

• ниодининструментбезопасностиweb-приложенийнеобеспечитэффективнуюзащитуводиночку.

Чтобыподытожитьнаписанное,предлагаеттакуюаналогию:приобеспечениибезопасностиweb-приложений,мыкакбудтопытаемсязащититьистребительнаходящийсявцентревоздушногобоя с постоянно меняющимися функциональными требованиями, деталями, топливом изаконамифизики.иэтопритомчтовэтомпроцессеистребительпостоянноатакуютмиллионыразнообразныхвражескихобъектов,окоторыхмыпрактическиничегонезнаем.

Page 6: WEB-ПРИЛОЖЕНИЯ · 2 Web- h. _ a h i Z k g h k l b содержание еинедевВ 3 обоснование для бизнеса 6 Web-приложения другие

6

Web-приложения. Построение программы безопасности

оБосноВаниядЛяБиЗнеса

обеспечение безопасности приложений традиционно страдает от недофинансирования иубедитьруководствовнеобходимостиновыхзатратнаулучшениеихзащитыдостаточносложно,ведь оно и так отлично работает. Конечно, это касается не только приложений, а фактическиявляется общей проблемой для всей иБ, когда дополнительные меры по улучшению уровнязащищенностиневызываютпозитиваубизнеса,таккакугрозыипоследствияинцидентовплохоподдаются количественной оценке. Построение полной модели обоснования инвестиций вбезопасностьweb-приложенийвыходитдалекозарамкиданногоматериала,номынеможемговорить о создании программы безопасности без, по крайней мере, некоторых основныхинструментов,которыепозволятопределитьскольконеобходимоинвестироватьикакубедитьруководство поддержать вас. следующий список не является исчерпывающим обоснованиембизнес-модели, но включает в себя основные драйверы, которые можно использовать дляобоснованиянеобходимостиинвестицийвбезопасностьweb-приложений:

Соблюдение требований.нравитсянамэтоилинет,информационнаябезопасностьявляетсяобъектомконтролясостороныгосударства,атакжерегулируетсяиндустриальнымистандартамиидругимитребованиями.намхотелосьбыразделитьобоснованиевэтомнаправлениинатриотдельные части: собственно сами требования; дополнительные требования, которые могутвозникнуть(защитаперсональныхданныхит.д.);снижениезатратнасоответствиетребованиямиаудит.Всреднеморганизацияиспользуетвсетрифакторадляоценкиинвестицийвбезопасностьweb-приложения.

Борьба с мошенничеством.есливыможетедостаточноточнооценитьпотенциальныйущерботмошенничества,этоможетбытьоднимизважныхдрайверовприобоснованииинвестицийв безопасность. а в некоторых случаях вы можете получить конкретные данные о случаяхмошенничества и показать каким способом их можно избежать с помощью тех или иныхнеобходимыхрешений.Такжеимейтеввиду,чтовыможетенеиметьправильнойинфраструктурыдляобнаруженияиоценкислучаевмошенничества,чтосамопосебеможетстатьдостаточнымобоснованием. Тесты на проникновение также могут быть хорошим шансом на получениеинвестицийдлясниженияколичестваслучаевмошенничества–тестможетпоказатьнеизвестныепутидляиспользованияэксплойтов,активнуюатакуиливозможностидлябудущихатак.Выможетеиспользоватьрезультатытестанапроникновениедляоценкипотенциальныхвозможностейдлямошенничестваисоставитьплан,которыйпозволитснизитьрискидоприемлемогоуровня.

Экономия. Какмыужеупоминаливсекцииособлюдениитребований,контрольбезопасностиможет снизить расходы на аудит, но это лишь дополнительная возможность для экономии.использование средств безопасности web-приложений при разработке и в процессеиспользования позволит снизить затраты на ручной контроль безопасности и устранениевыявленныхуязвимостей, а такжевобщемповысить эффективностьработыweb-приложения.Мытакжеможемрассчитыватьнаэкономиюотсокращенияколичестваинцидентов,атакжепривосстановленииработоспособностиweb-приложенияпослених.

Доступность.Приработе сweb-приложениямимыоцениваемкаквремяобщейдоступностисервиса, так и доступность услуг (есть вероятность потери части функционала приложенияиз-за атаки или устранения ее последствий). например, крайне редкоможно увидеть полноеотключение сайта вследствие проблем с безопасностью web-приложений, в то время какотключениечастифункций,втомчислеплатежнойсистемывстречаетсягораздочаще.Крометого, часто бывают случаи, когда при атаке приходится самостоятельно отключать некоторые

Page 7: WEB-ПРИЛОЖЕНИЯ · 2 Web- h. _ a h i Z k g h k l b содержание еинедевВ 3 обоснование для бизнеса 6 Web-приложения другие

7

Web-приложения. Построение программы безопасности

функциидляобеспечениязащитыпользователейиихданных,дажевтомслучае,еслиатаканезадеваетвозможностиданнойуслугинапрямую.

Защита пользователей.Хотяэтотпараметринеподдаетсяпрямомуподсчетуинеможетбытьвыражен какой-либо суммой денег, главным стимулом для инвестиций в безопасность web-приложения является необходимость защиты пользователей и их конфиденциальных данных,таккакневниманиекэтомумоментуможетнегативносказатьсянаихдоверииккомпаниии,соответственно,наееимидже.Злоумышленникивообщедостаточночастоненаносятникакогоущербаскомпрометированномусайту,ноиспользуютегодляатакнапользователей.Тоестьдажеесливыничегонетеряетеврезультатеатакинавашуорганизацию,этоостаетсяпроблемой,таккаквашеweb-приложениеможетстатьплощадкойдляатакнавашихпользователей.Большаячасть компаний получает прямой или косвенный доход от данных пользователей и это ужесоздаетобязательствоонеобходимостизащитыэтихданных.

Защита репутации. Втовремякакмножествомоделейпытаютсядатьколичественнуюоценкурепутации и оценить потенциальные потери от ее ухудшения, реальность такова, что все этимодели фикция – точного метода измерения потенциального ущерба для репутации из-заатак злоумышленников не существует. несмотря на многочисленные прогнозы, относительновероятныхпоследствийутечкиинформацииипоследствияэтогособытиядлярепутации,большаяихчастьнесбывается.абываетинаоборот.Кпримеру,послетого,каккрупныйритейлерTJXдопустилаоднуизкрупнейшихутечекданныхвисториииэтотфактбылобнародован,продажипошливверх.нотолькототфакт,чтоневозможноточнопросчитатьрепутационныериски,неозначает,чтоэтонеявляетсяважнымфакторомприобоснованиинеобходимостиинвестицийв безопасность web-приложений. Просто спросите себя (или менеджмент компании) о томнаскольковажноприложениедляимиджакомпанииинасколько готовыкрискамсвязаннымс потерей информации клиентов. доверие пользователей, инвесторов и партнеров вашейкомпанииисервисамхотьинезависитнапрямуюотзащищенностиweb-приложения,новсежеэтотмоменточеньважениможетсказатьсянаобщейценностибизнеса.

Прямые потери от инцидентов. Кромепотерьотмошенничества, такжеимеютместобытьипрямыефинансовыепотери.дажееслимынебудемобращатьвниманиянарепутационныепотери бизнеса, а также стоимости компании, а сосредоточимся только на потерях, которыевыражаются конкретными цифрами, то выясниться, что и они есть. К примеру, на рассылкууведомленийпользователям,восстановлениеработоспособностииоплатуперсоналаcall-центра.

Выпойметекакаякомбинацияизэтихработлучше,основываясьнапотребностяхвашейкомпаниии приоритетах менеджмента, но вы должны объединить качественные и количественныеоценки для того чтобы верно расставить приоритеты при инвестициях. если вы работаете сперсональнымиданными (финансы/розница/медицина) токонтрольбезопасностииснижениерасходов будут лучшими доводами. дляweb-приложений общего назначения важными будутзащитапользователяирепутации,снижениерисковмошенничестваиобеспечениедоступности.и давайте не будем забывать о том, что все эти доводы также применимыи для внутреннихприложений.независимоотсферыприменения,недостаткавобоснованиядлябизнеса(вотличиеоттехническойстороны)впользуинвестицийвбезопасностьweb-приложенийнет.

Page 8: WEB-ПРИЛОЖЕНИЯ · 2 Web- h. _ a h i Z k g h k l b содержание еинедевВ 3 обоснование для бизнеса 6 Web-приложения другие

8

Web-приложения. Построение программы безопасности

WeB-ПриЛожениядрУгиеМы много лет потратили на изучение вопросов безопасности сетей и хостов и построилипрограммыбезопасностивобластиинформационныхтехнологийсосредоточившисьнабазовойинфраструктуре.но, какмыужеотмечали,безопасностьweb-приложенийзаметноотличаетсяотвсегоэтогоитребуетсовершенноиногоподхода.Безопасностьweb-приложенийотличаетсяи от защиты традиционного По, хотя и имеет с ним гораздо больше общего. В предыдущейсекциимысфокусировалисьнабизнесе,атеперьперейдемктехническойчастиипоговоримоспецифическихтехническихинетехническихотличияхвбезопасностиweb-приложений,передтемкакдадимнаширекомендациипожизненномуциклузащитыweb-приложений.

Почему защиты web-Приложений отличается от защиты сетей и хостов

При обеспечении безопасности сети или хоста мы сосредоточены на блокированиипользовательских возможностей в пределах программного обеспечения, устройств и систем.Такжеприобеспечениибезопасностикорпоративныхприложениймывосновномзанимаемсяблокированием платформ, защитой коммуникаций, аутентификацией пользователей иосуществляем контроль безопасности посредством средств, предоставляемых платформойприложения. но в случае с web-приложениями мы сталкиваемся не только со всеми этимивопросами,ноиимеетделосостороннимилисобственнымкодом.Взависимостиоттого,являетсяприложениедоступнымизвнеилипредназначеннымтолькодлявнутреннегоиспользования,ониимеютсущественныеотличия:

UIбраузера:Вбольшинствеприложениймысоздаемпользовательскийинтерфейс.новслучаесweb-приложениями,мыполагаемсянастороннийпросмотрщик(браузер),которыйнеможемполностьюконтролироватьикоторыйможетконтактироватьисдругимиприложениямиводинмоментвремени.

собственныйкодпорождаетсобственныеуязвимости:Вслучаевweb-приложениямивыобычносамостоятельнопишитекод(используяприэтомплагиныифреймворки).Этозначит,чтобольшаячасть уязвимостейв вашемприложениибудет уникальная. есливынебудете контролироватьсвоеприложение, тониктоне сообщитвамокаких-либоимеющихсяуязвимостяхиниктонепредложитпатч,позволяющийихзакрыть.

Выразработчик:Когдапоявитсяуязвимость,уваснебудетразработчика,которыйподготовитпатч(выдолжны,конечно,установитьпатчидлявсехинфраструктурныхкомпонентов,фреймворкови скриптов, которые вы используете). если вы обслуживаете клиентов, то вам необходимопридерживатьсяпунктадоговораобуровнесервисаиобеспечиватьнеобходимуюдоступностьсервиса.

Межсетевыеэкраныводиночкунемогутзащититьweb-приложение:КогдамыобнаруживаемуязвимостивнашемкорпоративномПо,операционныхсистемах,приложениях,базахданныхит.д.,мыиспользуеминструментывродемежсетевыхэкрановилиIPSдляблокированиявозможностейдля потенциальной атаки на время ожидания выпуска патча для уязвимого программногообеспечения.Такая“блокировкадопатча”имеетлишьограниченнуюэффективность.аWebAp-plicationFirewall(WAF)несможетзащититьвасотлогическихошибок.ХотяWAFможетпомочьснекоторымиклассамиатак,но“изкоробки”онинезнаютилинепонимаютвышеприложение,апотомунесможет“прикрыть”пользовательскиеуязвимости.WAFбезусловноявляетсяважнойчастьюзащитыweb-приложений,нолишьвтомслучае,еслионявляетсячастьюкомплексной

Page 9: WEB-ПРИЛОЖЕНИЯ · 2 Web- h. _ a h i Z k g h k l b содержание еинедевВ 3 обоснование для бизнеса 6 Web-приложения другие

9

Web-приложения. Построение программы безопасности

программы,окотороймыпоговоримпозже.

Вечная бета-версия: При разработке традиционного приложения проводится полный циклпроверки: контроль на стадии разработки, внутреннее тестирование, а также, зачастую,дополнительное тестирование с привлечением сторонних пользователей – бета-тестеров. ивсе этодо того, какприложениеперейдет в эксплуатацию.Былобы здорово, еслибыиweb-приложения проходили этот последовательный цикл, но, как уже было сказано, так бываеткрайне редко. Большая часть web-приложений, даже рассматриваемых разработчиками какнеокончательная, в действительности уже запущена в эксплуатациюи даже стали ключевымирешениямикритическиважнымидлябизнеса.другиеприложенияивовсенаходятсяврежимепостоянного изменения и их разработчики даже не придерживаются формального цикларазработки. Постоянно меняющиеся приложения – это непростая задача для существующихсредствконтролябезопасности,такихкакWAF.

опоранафреймворки/платформы:Web-приложенияредкостроятсяснуля,радуя“вылизанным”кодомнаC.Чащевсегоэтосмесьразнообразныхфреймворковисредствразработкииплатформ,которые не всегда разработаны для совместной работы. Задача разработчиков обеспечитьвзаимодействие всех этих частей, а также собственного кода. Такой подход, зачастую, создаетсерьезные проблемы безопасности из-за неправильного использования компонентов, ихвзаимодействиямеждусобой,атакжессобственнымкодом.

Унаследованныйкод:дажееслиновыйкодпишетсясчистоголистаидействительнобезопасен,тонестоитзабывать,чтовбольшинствеслучаевестьещеогромныймассивстарогокода,которыйтакже имеет огромное число уязвимостей, а потому подлежит анализу и исправлению. еслистарыйкоднаходитсявактивномиспользовании,тоондолженбытьстольжебезопасен,какиновый.Зачастую,именноустаревшийкодстановитсявиновникоматакнаweb-приложение.

динамический контент: Большая часть web-приложений имеет чрезвычайно динамичныйхарактер,создаваябольшуючастьконтента“налету”,нередкосиспользованиемданных(втомчислекода),предоставленныхпользователем.абраузерпытаетсявсеэтообработать,создавая,темсамым,новыеклассыпроблембезопасности.

новые классы уязвимостей: Как и в случае с классическими приложениями, исследователии злоумышленники постоянно открывают новые классы уязвимости web-приложений. Такихпримеровмножество.апотомунужнопомнить,чтодажеидеальныйсточкизрениясегодняшнегоднякодвовсенегарантируетто,чтоонвсегдабудетбезопасен.

Мы перечислили ряд причин по которым следует смотреть на web-приложения иначе, чемна классические. Внедрение программы безопасности web-приложений требует достиженияконсенсуса в компании. Вносить изменения будет трудно и рискованно. В перспективе этоприведеткснижениюрасходов,нооплатитьвсеизмененияпридетсясразу,незнаявкакоймереэти инвестиции оправдаются. То есть для того, чтобы убедить руководство в необходимостиинвестиций,вампонадобятсявескиепричины.иесливысопоставитестоимостьспреимуществами,описаннымивэтомразделе,выполучитевполнеобъективныйответнатокакданныерасходынабезопасностьповлияютнавашукомпанию.

Page 10: WEB-ПРИЛОЖЕНИЯ · 2 Web- h. _ a h i Z k g h k l b содержание еинедевВ 3 обоснование для бизнеса 6 Web-приложения другие

10

Web-приложения. Построение программы безопасности

жиЗненныйциКЛЗащиТыWeB-ПриЛоженияВ оставшейся части материала вы найдете рекомендации по действенным шагам, которыеспособствуютповышениюуровнябезопасностиweb-приложений.Учитываямасштабызадачи,мынесможемдатьподробнуюинформациюпокаждойсоставляющейпрограммыбезопасности,арассмотримихвобщихчертах.Втовремякакweb-приложенияставятотличныеотпривычныхзадачи,дополнительныешагидлязащитынеотличаютсяоттех,чтовыделаетесейчас.Упрощеннуюсхемуцикларазработкиииспользованиямыразложилина3шагаи7зон:

безоПасная разработка

Процессиобучение: В этомразделемы сфокусируемсянапостроениибезопасности вциклеразработки программного обеспечения. Это включает, в том числе, подготовку людей,занимающихсяразработкойиулучшениепроцессаразработки.обучениеразработчиковдолжнобытьориентированонаобеспечениебезопасностифункциональныхвозможностейприложения.Мы также рассмотрим инструменты, которые помогут автоматизировать часть работы:статистический анализ на поиск уязвимостей в коде и динамический анализ для выявленияаномальногоповеденияприложения.

• Безопасная разработка:Внедрениепрактикбезопаснойразработкивпроцессесозданиеweb-приложения.

• Статический анализ: инструментдлясканированияисходногокодаприложениянаошибкибезопасности.Такжеэтиинструментыназывают“whitebox”.

• Динамический анализ:инструментыисследующиенеисходныйкод,асамозапущенноеприложениеприпопыткахатаки.Этиинструментычастоназывают“blackbox”.

Page 11: WEB-ПРИЛОЖЕНИЯ · 2 Web- h. _ a h i Z k g h k l b содержание еинедевВ 3 обоснование для бизнеса 6 Web-приложения другие

11

Web-приложения. Построение программы безопасности

безоПасное развертывание

наэтапе,когдаразработкаприложенияужезаконченаили,какминимум,онодоведенодотакойстадии, когда возможно использовать его для тестирования, приходит время проверить, чтоприложениесвободноотизвестныхпроблембезопасностиинастроенонужнымобразом.Вэтожевремяможноначинатьоцениватьуязвимостьприложенияипроводитьтестынапроникновение,нарядустрадиционныманализомконфигурацииипровероксогласованностивзаимодействияссистемами.

• Оценка уязвимости: удаленное сканирование web-приложения, как с учетной записью,так и без. оценка уязвимости web-приложения концентрируется на самом приложении,в то время как стандартнаяоценка уязвимости сосредотачиваетсянаисследовании хост-платформы.

• Тестирование на проникновение: Тестированиенапроникновение являетсяфактическипопыткой взлома, которая позволяет выявить уязвимости в системе безопасности и териски,которыеонинесут.Тестированиенапроникновениепозволяетоценитьнедостаткиприложения,классифицироватьихиправильнорасставитьприоритеты.

Большая часть людей не уделяет должного внимания тестированию собственного кода, асосредоточены исключительно на расширении функционала, добавлении новых функциии достижению стабильной работы web-приложения. Это все, безусловно, важно и для этогособирается серьезная команда разработчиков. Таким же серьезным должен быть и подходк безопасности, когда код тщательно проверяется и каждая новая функция, добавляемая вприложение,подвергаетсятотальномуанализусточкизрениябезопасности.

безоПасное исПользование

Вэтомразделемыперейдемотинструментовипроцессов,которыепозволяютсделатьприложениезащищеннымнаэтаперазработке,ктем,которыеобеспечиваютвозможностиобнаруженияатакиреагированиенаних.основнойакцентздесьделаетсянавозможностяхWAF,которыйдолжензащищатьweb-приложениеот несанкционированных действийпользователей, а также другихинструментах,которыесканируютзапросыивыявляютнеприемлемуюактивностьвотношенииweb-приложения и других связанных с ним компонентов. Последние разработки в областисредствобнаружения способствуют соблюдениюполитик, адекватнореагируютна события, атакжеобъединяютнесколькосервисоввкооперативнуюгибриднуюмодель.

• Web Application Firewall: сетевойинструмент, который занимается контролем трафикакweb-приложениюисообщаетеобизвестныхатакахи/илиблокируетих.

• Мониторинг активности приложения и базы данных:инструмент,которыйконтролируетактивность приложения и базы данных (с помощью различных методов) для аудита игенерациипредупрежденийбезопасности,основанныхнанарушениизаданныхправил.

Посколькумногиеорганизациитольконачинаютсоздаватьправилабезопасностиприложений,мыпопытаемсянаметитьрамкиипроиллюстрироватьвозможности,чтопозволитрассмотретьобщуюкартинуорганизацииwebразработки.стоитподчеркнуть,чтомылишьпредоставляемобзоримеющихсявозможностей,атакжебазовуюинформациюотомкакэтоработаетикакэтоинтегрировать.Болееподробно,особенноотом“как”,написатьврамкахматериаланевозможно– эта тема заслуживает нескольких полноценных книг. специфика модификации процессов,применения различных методик и связанных с ними нюансов тоже выходят за рамки этого

Page 12: WEB-ПРИЛОЖЕНИЯ · 2 Web- h. _ a h i Z k g h k l b содержание еинедевВ 3 обоснование для бизнеса 6 Web-приложения другие

12

Web-приложения. Построение программы безопасности

документа.

Безопасностьweb-приложенийпретерпеваеточеньбыстрыеизменения–меняясьтакжебыстро,как злоумышленники находят новые способы атак. Мы обсудим передовые инструменты ибудущеерынка,атакжеконкретныеинструменты,используемыедляидентификацииизащитыотновыхвидоватак.В товремякакинструментыоченьважны,онинемогутиспользоватьсяв одиночку. Вам нужны правильные инструменты в правильных руках как часть правильногопроцесса.Темнеменее,мыбудемуделятьзначительноеколичествовремениинструментам,последующимпричинам:

• Многие инструменты автоматизируют большую часть передовых подходов к оценкебезопасности

• Ваширазработчикиисотрудникислужбыконтролямогутбытьневсостоянииидтивногус постоянно меняющимися тенденциями информационной безопасности, а также иметьнедостаточную компетенцию в данной области, а инструменты помогут в значительнойстепенинивелироватьэтинедостатки.

• объем работ по тестированию на безопасность для обеспечения должного качестватребуетавтоматизации.соотношениетребования/ресурсыдлялюбойрабочейгруппыбезавтоматизациибудеточеньиоченьплохим.

• инструментыобеспечиваютплатформудлянастройкиитестированияполитикиявляютсярезультатомисследованийиогромногоопыта,чтоделаетихнезаменимыминавсехэтапахразработкиииспользованияweb-приложения.

Вдальнейшеммыразберемкаждуюизописанныхчастейипокажем, каконивписываютсявобщуюпрограммубезопасностиweb-приложения,атакжеукажемихдостоинстваинедостатки.естественно,полногоописаниямыдатьнесможем,таккаккаждыйизразделовдостоинотдельнойкниги,апотомусосредоточимсянаосновныхмоментах.

Page 13: WEB-ПРИЛОЖЕНИЯ · 2 Web- h. _ a h i Z k g h k l b содержание еинедевВ 3 обоснование для бизнеса 6 Web-приложения другие

13

Web-приложения. Построение программы безопасности

БеЗоПаснаяраЗраБоТКа

В безопасности web-приложений зачастую уделяется недостаточно внимания процессаммодификации, обучения и выбору средств разработки. Безопасностью очень часто начинаютзаниматьсяужепослеокончанияосновнойразработки,аневовремяее.аведьвнимательностькэтимвопросамприразработкепозволяетсделатьприложениеболеебезопаснымприменьшихрасходах. В этом разделемы обсудим лучшие варианты для интеграции безопасности вweb-приложениенаэтаперазработки.

безоПасность web-Приложений: Подготовка и жизненный цикл разработки Приложений

Большаячастьсегодняшнихweb-приложенийбылиспроектированы,разработаныиразвернутыдотогокакпоявилисьнормыипринципыбезопасностиweb-приложений.Безопасныеметодыразработки в командах web-разработки зачастую входят в сознание только после того, какслучаютсякакие-либоинциденты.Менеджментже,зачастуюзадумываетсяобезопасноститольковрамкахимеющихсятребований,исполнениекоторыхобязательно.новостичастопривлекаютвниманиекатакамспомощьюSQL-инъекций,нобольшинстворазработчиковнепредставляеткакотражаютсяатакисиспользованиеммежсайтовогоскриптинга,иещеменьшезнаетотом,как защититьсяот них.Практикабезопаснойразработкиприложенийнаходится в зачаточномсостоянииидалекадозрелости.Конечно,значительныезнанияуженакоплены,ноонипокаещеневсеобъемлющиидоведеныдалеконедокаждогоразработчика.

независимооттого,чтовамидвижет,образованиеимодификацияпроцессовявляютсясамымиважнымипервымишагамидлясозданиябезопасногоweb-приложения.есливыразрабатываетеновоеилимодернизируетестароеприложение,томенеджерыпроекта,разработчикиидругиеспециалистыдолжныбытьосведомленыопотенциальныхпроблемахбезопасностирешения,атакже о методах безопасного проектирования и написания кода. Учебная программа должнаохватыватькакобщиеугрозы,такиизвестныеметоды,которыезлоумышленникииспользуютдляатакнасистемы.специализированнаяподготовканужнадлясотрудниковкаждойсубдисциплины,включаявозможностимодификациипроцессов,безопаснуюмодельразвертыванияплатформы,инструменты безопасности и методологию тестирования. если ваша команда не знает, какобеспечитьдолжныйуровеньбезопасности,товыбудетезависетьвэтомвопросеоттретьихлиц(поставщикиуслугилихакеры),аэтообходитсягораздодороже.

Менеджеры проектов должны знать, какие типы угроз могут быть применимы кразрабатываемомуweb-приложению,икакминимизироватьимеющиесяриски,обеспечивприэтомтребуемыйфункционал.разработчикидолжныпониматьпринципыработыэксплойтов,токакихпротестироватьи,конечноже,способыустранениянедостатков.Понимание–этоключксозданиюбезопасныхприложений,поэтомуоченьхорошо,есливашакомпанияинвестируетвобразование сотрудников, организуя внутренний учебныйпроцесс, проводя образовательныемероприятия, или оплачивает обучение в сторонних учебных центрах.Моделирование угроз,принципы безопасной разработки , снижение поверхности атак, требованияфункциональнойбезопасностиитестированиеявляютсяядромпринциповбезопаснойразработкиприложенийилегкоинтегрируютсявовсепроцессыиэтапыразработки.

Процесстакжеиграетважнуюрольвразработкеприложенияивлияетнабезопасностьтакжекак на производительность сотрудников и качество продукта. если спецификации продукта

Page 14: WEB-ПРИЛОЖЕНИЯ · 2 Web- h. _ a h i Z k g h k l b содержание еинедевВ 3 обоснование для бизнеса 6 Web-приложения другие

14

Web-приложения. Построение программы безопасности

не содержит требований к безопасности, вы не можете надеяться на то, что продукт будетбезопасным. Продукт, который не подвергается тестированию на безопасность, также как ипродукт,которыйнепроходиттестированиефункциональности,будетстрадатьотнедостатковиошибок.Модификацияжизненногоцикларазработкиприложений(SoftwareDevelopmentLifecy-cle)включающаятребованиябезопасностиназываетсяSecureSDLCивключаетвсебяпростыепроверки на протяжении всего процесса разработки для того чтобы выявлять проблемы какможнораньше.SecureSDLC-достаточносерьезнаятемадляуглубленногообсуждения,носамоеглавное,чтомыхотелибыдонести–этонеобходимостьвнедрениятребованийбезопасностивкаждыйэтапразработки.

инструменты и тестовые случаи, которые мы обсудим позже, могут быть использованы дляавтоматизациитестированияиконтроля,нознанияиобразованиеимеютважноезначениедляихправильногоиспользования.сихпомощьюможноулучшитьпроцессразработкиитестирования,а также снизить расходы по сравнению с наложенной безопасностью, одновременно снижаяколичествоуязвимостейвкоде.Членыкоманды,имеющиеобразованиевсферебезопасностиспособнысоздаватьбиблиотекитестов,которыепомогаютвыявитьтипичныеуязвимостивновыхверсияхкода.Причем,пригодныхнетолькодлявнутреннеготестированиянаэтаперазработки,но и полезных при тестировании уже работающего приложения. Экстремальные методикипрограммированиямогутпомочьподтвердить,чтомодулиикомпонентыотвечаюттребованиямбезопасности в рамках тестирования, наряду с проверкойфункциональными возможностями,неотносящимисякбезопасностинапрямую.Помните:выразработчикивашакомандадолжназнатькодлучше,чемкто-либоещевключаяегонедостатки.

инструменты статического анализа

есть целый ряд специально разработанных инструментов сторонних разработчиков, которыепомогаютпроверитькоднабезопасность,статическийанализанализируетисходныйкодweb-приложения для выявления распространенных уязвимостей, ошибок и упущений в пределахконструкций самого языка программирования. Это своего рода, автоматизированный аналогэкспертной оценки. Помимо всего прочего, эти средства в основном используются длясканированиянеобработанныхусловийошибок,наличияобъектаи/илиопределенияразмера,атакжепотенциальновозможногопереполнениябуфера.

Эти инструменты используются на стадии разработки для того чтобы выявить недостатки доперехода к более формализованным процедурам тестирования. Ведь чем раньше становитсяизвестноопроблеме, темпрощеееисправить.статическийанализкодавыполняетсясамимиразработчиками, что значительно ускоряет поиск ошибок и делает это заметно дешевле, чемеслибыанализомзанималисьотдельныелюди.Этиинструментымогутбытьинтегрированысуправлениемисходнымкодомдляавтоматизированноговыполненияанализа,опятьже.длятогочтобывыявитьнедостаткивкодекакможнораньше.

статистический анализ эффективен для обнаружения проблем связанных непосредственно сошибкамивкоде,которыедопускаютпрограммисты.Лучшиеинструментыхорошоинтегрируютсяс разными средами разработки (предоставление дополнительной информации о выявленныхнедостатках кода и предоставление вариантов их исправления), расставляют приоритетыобнаруженныхуязвимостейнаосновезаданныхкритериев,предлагаютподробнуюотчетностьи отслеживание тенденций, а также способны взаимодействовать с группой безопасности,участвующейвпроцессеразработки,неотвлекаядругихразработчиков.

ноинструментыстатическогоанализанеучитываютвсепутивкоде,атакженеможетвыявить

Page 15: WEB-ПРИЛОЖЕНИЯ · 2 Web- h. _ a h i Z k g h k l b содержание еинедевВ 3 обоснование для бизнеса 6 Web-приложения другие

15

Web-приложения. Построение программы безопасности

некоторыетипыуязвимостей,которыепроявляютсятолькововремяиспользованияприложения.Чтобывосполнитьэтотпробел,впоследниенескольколетсталиактивноразвиватьсяинструментыдлядинамическогоигибридногоанализа.

инструменты динамического анализа

динамический анализ используется для выявленияпроблеми уязвимостей, которыенемогутбытьвыявленыприанализеисходногокодаиликоторыенамногопрощезаметитьвтотмомент,когдаприложение запущено.одиниз типов анализаназывается “fuzzers” которыенаправляетприложению заведомо вредные или фиктивные материалы для приложения и отслеживаетрезультаты этих действий, а также сбои в работе приложения. на рынке предлагается многоразныхвариаций,новцеломихможноразделитьнатригруппы:

White Box или Black Box. Тестовое приложениеможет не иметь никаких начальных знанийо приложении и изучает его в качестве “черного ящика” (Black Box) и с соответствующимподходом. но в большинстве случаев используется подход “White Box”, когда тестированиепроводится по поиску подходящих уязвимостей в соответствии с особенностями приложенияизвестных авторизованному пользователю. Тестирование методом “Black Box” является болеепредставительным,таккаконоповторяетпринципыработывнешнегохакера,которыйнезнакомс внутренней организацией приложения. но при тестировании web-приложений важны обаподхода. Ведьмногие уязвимостимогут быть не виднынеавторизованному пользователю, нопрекрасновиднытому,ктопрошелавторизацию.

Отправка запросов. Запросымогутбытьслучайными,генерироватьсяналетунаосновеответов,а также быть целевыми. случайные запросы являются хорошей возможностью для проверкиэффективностипроверкицелостностиипоискаобщихнедостатковвкоде,ацелевыемогутбытьиспользованыдляпроверкинаналичиеужеизвестныхуязвимостей.

Выходные данные и действия по окончании тестирования. После тестированияметодамиWhiteBoxиBlackBoxтребуетсяэкспертизарезультатовтестовспециалистами,которыевыделятвнихреальныенедостаткииложныесрабатывания.Условияпоявленияошибокнайтидостаточнолегкоибольшаячастьинструментовдлядинамическогоанализаобнаруживаетисообщаетобихналичии.некоторыесредствамониторинганетольковыявляютошибки,ноиуказываютнато,вкакойименночастикодаонинаходятся.Подобноотладчикам,динамическийанализаторможетконтролироватьвнутренниересурсыприложения,когдаононаходитсявпроцессетестирования,наблюдаязапамятью,указателями,очередямизапросовипеременными.Тестымогутвыявитьспецифическиеэффектымоделииспользованиясистемыипроблемныеобласти.

отчастииз-заэтихпеременныхинструментыдлядинамическогоанализаотличаютсяпоскорости,эффективности и автоматизации. Так как они сфокусированы на поведении приложения, онидают конкретные результаты для сценариев “а что если…”, чего статические инструменты немогут.динамическийи статический анализ являются взаимодополняющими технологиями, нопредназначеныдляразныхаудиторий.некоторыевендорыпредлагаютобевозможностиводноминструменте,чтопозволяетполучитьболеевсеобъемлющуюоценку.

Хорошоструктурированнаяпрограммабезопасностиweb-приложенийначинаетсяс хорошегообразования и интеграции безопасности в жизненный цикл разработки приложений – смоделированиемугроз,безопаснымдизайном,учетомбезопасностифункциональныхтребований,надлежащимиспользованиемстатическогоидинамическогоанализа,использованиембезопасныхметодовкодирования,непрерывнымобучениемиформализованнымтестированием.

Page 16: WEB-ПРИЛОЖЕНИЯ · 2 Web- h. _ a h i Z k g h k l b содержание еинедевВ 3 обоснование для бизнеса 6 Web-приложения другие

16

Web-приложения. Построение программы безопасности

БеЗоПасноераЗВерТыВание

сохраняяпоследовательностьповествования,мыпереводимфокуснашеговниманиясразработкина развертывание web-приложения. на стадии развертывания, после проверки качества ибезопасностиприложения,мыпереходимкоценкеуязвимостиитестированиюнапроникновениедлятогочтобыубедитсявсоответствиинашегоприложениясовременнымтребованиямиегоустойчивости к атакам. Помните, что мы смотрим на безопасность web-приложений как нанепрерывныйпроцесссперекрывающимисяэтапами.Хотямыиделимпроцесснаотдельныеэтапы, чтобы сделать повествование более понятным и структурированным, это совсем незначит,чтоодинэтапзаканчивается,когданачинаетсядругой.Кпримеру,выдолжныпродолжатьиспользовать динамический анализ на этапе развертывания, а также продолжать поискуязвимостейитестынапроникновениенавсехэтапах.Такжепомните,чтомыпоказываемвамобщуюкартинуиимеющиесявозможности.Приоритезациюимоменты,накоторыхстоитособосфокусироваться,есливашбюджетограничен,мыобсудимчутьпозже–ведьмыненастольконаивны,чтобыдумать,чтовыможетепозволитьсебевсерешения,которыеестьнарынке.

оценка уязвимости

Приоценкеуязвимости,мысканируемweb-приложениедляидентификациилюбыхмоментов,которыепотенциальномогутбытьиспользованыпротивнасатакующими(такжемыоцениваемсоответствие требования и стандартам, но фокусируемся именно на поиске уязвимостей).сканированиеможетбытьвыполненопосредствоминструментов,сервисовилиихкомбинации.

оценка уязвимости web-приложений очень отличается от стандартной оценки уязвимости,котораяфокусируетсянасетяхихостах.Втомслучаемыфокусируемсянасканированиипортов,подключениях к сервисам и используем другие методы для сбора информации и выявленияуровнейпатчей.Какмыужеговорили,даже“стандартные”web-приложениявомногомявляютсясамописными, а потомунамнеобходимоизучатьихболее внимательно, проверяяфункцииилогикуприложения,атакжеиспользоватьиндивидуальныепроверки,чтобывыявитьуязвимостиweb-приложения.Прибольшомколичествесамописногокодамыдолжныменьшеполагатьсянапоискстандартныхуязвимостейистаратьсяпроводитьбольшетестовпутематаки.Какмыужеговорили,пользовательскийкодсоздаетпользовательскиеуязвимости.

Приоценкеуязвимостиweb-приложениймыпропускаемтрадиционныетестыхостовисетейифокусируемсянастороннихweb-приложенияхифреймворках,атакженатехническихибизнеснедостаткахпользовательскихприложений.

рынок решений для оценки уязвимости web-приложений предлагает как специальныеинструменты,такисервисы.есливывыберетепустьсамостоятельноготестирования,то,кромеподбораправильныхинструментов,выдолжныбытьуверены,чтоониокажутсяврукахопытногооператора,которыйсможетправильноинтерпретироватьрезультатытестов.Важныиспользоватьобеметодикитестирования,когдаоператоримеетразныеуровнидоступакweb-приложениюинеимееттаковыхвообще.

инструменты и решения

имеетсяцелыйряд коммерческих, бесплатныхиоснованныхнаоткрытомкодеинструментов

Page 17: WEB-ПРИЛОЖЕНИЯ · 2 Web- h. _ a h i Z k g h k l b содержание еинедевВ 3 обоснование для бизнеса 6 Web-приложения другие

17

Web-приложения. Построение программы безопасности

и решений для оценки уязвимости web-приложений с широким функционалом. некоторыеинструментыиспользуюточеньограниченныйнаборэксплойтов,апотомуопытныетестировщикииспользуютнеодин,ацелыйнаборинструментов,дополняяегоручнымиметодамипроверок.например, есть приложения сфокусированные на поиске и тестировании только уязвимостейсвязанных с SQL-инъекциями. инструменты корпоративного класса должны быть болеемногофункциональными и включать ряд критически важных для web-приложения классовуязвимостей, такихкакSQL-инъекции,межсайтовоеисполнениескриптови т.д.OWASPTop10является отличным базовым списком основных уязвимостей, но приложения корпоративногоклассанедолжныограничиватьсяпроверкойтолькопоодномуспискуиликатегорииуязвимостей.решение корпоративного класса также должно иметь возможность проверки несколькихприложений, поддерживать отслеживание в течение длительного времени и обеспечиватьадекватнойотчетностью(особенновтойчасти,чтокасаетсяисполнениятребований),атакжебытьнастраиваемымдляоценкивыполнениялокальныхтребований.

инструментыдляоценкиуязвимостей,какправило,являютсяпрограммными,номогутиметьиаппаратнуючасть.Такжеонимогутработатьлибоподконтролемоператора,либопроводитьсканированиевавтоматическомрежимепорасписанию.Таккакweb-приложенияизменяютсядостаточноактивно,тооченьважносканироватьихпослевнесениялюбыхизмененийилиновыеверсиипередразвертыванием,атакжеконтролироватьдействующиеприложениянапостояннойоснове.

услуги

невсеорганизацииимеютресурсы (включаяэкспертизу)дляоценкиуязвимостисобственныхприложений.Втакомслучаеестьдваварианта–покупканеобходимыхинструментовиливнешняяоценка.

существуеттриосновныекатегорииуслугпооценкеуязвимостиweb-приложений:

Полностью автоматическое сканирование.Полностьюавтоматизированноесканированиебезучастияоператора.ценатакойоценкиминимальна,ноонадаетгораздобольшеошибок.Такиепроверкидостаточноэффективныдляпостоянногомониторинга,ноихвозможностидовольноограниченыдляпроверокпередразвертыванием.

Автоматическое сканирование с обработкой результатов оператором. Вданномвариантебольшая часть проверок проводится в автоматическом режиме, после чего результатырасшифровываются человеком, которые, по необходимости проводит дополнительные тесты.По сравнению с полностью автоматической проверкой, данный вариант дает более глубокоеисследованиеиболееточныерезультаты,ностоит,естественнодороже.

Ручное обследование. В данном варианте оценку проводят подготовленные специалисты,которые используют свои собственные инструменты для поиска уязвимостей и их проверки,послечегопредоставляютразвернутыеотчеты.Этотвариантсамыйэффективныйипозволяетвыявитьбольшеуязвимостей,чемпредыдущие,ноонисамыйдорогой.

тестирование на Проникновение

цельюоценкиуязвимостиявляетсяпоискпутей,которыепотенциальныезлоумышленникимогутиспользовать,атестнапроникновениеэтоещеболееглубокоеисследование,котороепозволяетпонять–действительнолинайденныеуязвимостинесутрискидлякомпаниивслучаеатаки.В

Page 18: WEB-ПРИЛОЖЕНИЯ · 2 Web- h. _ a h i Z k g h k l b содержание еинедевВ 3 обоснование для бизнеса 6 Web-приложения другие

18

Web-приложения. Построение программы безопасности

тестенапроникновениемыпытаемсяатаковатьнашиприложенияаналогичнозлоумышленнику,чтобыпонятькакиемогутбытьпоследствияуданныхдействий.

оценка уязвимостей и тесты на проникновение отлично дополняют друг друга и частоиспользуютсявместе,таккакпервыйшагвлюбойатаке–этопоискуязвимостей,которыеможнобыло бы эксплуатировать. целью на этапе оценки уязвимостей является поиск недостатковweb-приложения, а при тестированиина проникновение эти недостаткипроверяются с точкизрениявозможностиихиспользовать,оценитьпотенциальныйущербкаждойизнихирасставитьприоритетыпоисправлениюэтихнедостатков.

Ключеваяценностьтестанапроникновениевтом,чтобыопределитьсвязьмеждууязвимостьюирисками,котораяонанесетипринятьобоснованноерешениеонеобходимостиисрочностиееустранения.оценкауязвимостидаеттолькоинформациюоналичиипробеловвбезопасности,нонепозволяетпредставитьобщуюкартинупотенциальныхпоследствийихэксплуатации.например,припоискеуязвимостейвывыявили,чтоweb-приложениеуязвимодляSQL-инъекций,ноприпопыткеэксплуатацииэтоуязвимостиможетоказаться,чтосеепомощьюзлоумышленникможетполучить конфиденциальную информацию, изменить функциональность или и вовсе вывестиweb-приложениеизстроя.Можетоказаться,чтонезначительныеуязвимостимогутпривестиктому,чтозлоумышленникполучитполныйконтрольнадвсемweb-приложением.

некоторые эксперты считают, что тесты на проникновение важны, так как используют те жеметодыипреследуюттежецели,чтоиреальныйзлоумышленник,номысчитаем,чтоэтитестыочень полезны как инструмент определения приоритетности рисков. Впрочем, обе этих целитестовявляютсяважнымиинельзяотказыватьсяотоднойизних,отдаваяприоритетдругой.

Какивслучаесоценкойуязвимости,тестынапроникновениямогунеограничиватьсятолькоweb-приложением,но,такжевключатьпроверкууязвимостейокружения–операционныхсистем,сетей,пользовательскихприложенийит.д.инструментыиуслугиэтогонаправлениядоступнынарынке.но,учитывая,чтомыговоримоweb-приложениях,мынебудемуглублятьсявокружениеи инфраструктуру, и ограничимся обсуждением аспектов тестирования на проникновениехарактерныхдляweb-приложений.

инструменты и решения

решениядлятестовнапроникновениедаютвозможностьвыявленияипроверкивозможностиэксплуатации уязвимостей web-приложения, а также оценки возможных последствий атакс их использованием. специалисты по тестам на проникновение используют множестворазныхинструментовприработе,нобольшаяихчастьявляетсяузкоспециализированнойинепредоставляетширокогофункционала.они запускаются доразвертыванияweb-приложения сиспользованиемтестовыхданных,таккакэксплуатациянекоторыхуязвимостейможетпривестикповреждениюхранящихсяданныхили самогоприложения. решениякорпоративного классаимеет дополнительные функции, которые помогают более эффективно управлять рисками иимеютвнутреннююсистемуоценокуязвимостей,чтопозволяетснизитьзатратыприпроведениивнутреннихтестовнапроникновение.Такжеониобычноимеютболееширокийохватклассовуязвимости,поддерживают “безопасные”дляданныхиweb-приложенияметодыпроверки,чтопозволяет использовать их в действующих приложениях, а также предоставляют обширнуюотчетностьиавтоматизациютекущихоценок.однимизпреимуществрешенийдлятестированияна проникновения является возможность их использования не только для проверки ужедействующегоприложения,ноинаразныхэтапахразработкииразвертыванияweb-приложения.

инструменты и решения всегда поставляются в виде программного обеспечения и должны

Page 19: WEB-ПРИЛОЖЕНИЯ · 2 Web- h. _ a h i Z k g h k l b содержание еинедевВ 3 обоснование для бизнеса 6 Web-приложения другие

19

Web-приложения. Построение программы безопасности

использоватьсятолькоподготовленнымиспециалистами.Ведь,несмотрянато,чтозначительнаячасть процесса автоматизирована, только хорошо подготовленный и опытный специалистможетпроанализироватьрезультатыавтоматическоготестированияиэффективноисследоватьуязвимость,сделаввыводыопоследствияхевозможнойэксплуатации.

При использовании инструментов для тестирования на проникновение (также как и в случаес инструментами для поиска уязвимостей) у вас есть возможность запускать их в безопасномрежиме,чтозаметноснижаетрисквозникновенияпроблемсработающимweb-приложением.ноеслиприложениедействительноработаетв“боевом”режиме,тобудьтеосторожныдажеприработевбезопасномрежиме,таккакивэтомслучаеимеетсяопределенныйрискперебоеввработеweb-приложения,атакжезахламлениябазданных.Поэтомутакоетестированиенужнопроводитьподмаксимальнымконтролем.

услуги

Вотличиеоттого,чтомывиделиприизучениипоискауязвимостей,полностьюавтоматизированныхсервисовпотестированиюнапроникновениенет.из-загибкойипостоянноменяющейсяприродыweb-приложений,тестынапроникновениевсегдатребуютконтролясосторонычеловека.Услугипотестированиюнапроникновенияпредлагаютсялибовкачестверазовыхуслуглибовкачествеподписки,котораяподразумеваетпроведениетестовсопределеннойпериодичностью.Частотатестирования варьируется в зависимости от потребностей бизнеса, критичности и задачweb-приложений.Внутренниеприложениямогутпроверятьсявсегоразвгодврамкахрегулярноготестированияинфраструктуры.

Перед использованием услуг тестирования на проникновение, необходимо внимательноизучить опыт знания и возможности поставщика услуг. некоторые компании предлагаютнемногобольше,нежелиудаленноесканирование,ноневсостояниипредоставитьадекватныерезультаты,которыевысможетеэффективноиспользоватьврискменеджменте.другиепростоостанавливаются после того, как получают доступ, к приложениюиспользуя одну уязвимость,непроводяполнуюпроверку.Поэтомупривыборепоставщикауслугвыдолжныпредпочтениеорганизациямсотработаннымпроцессам,которыемогутпредоставитьобразцыотчетовибудутсоответствоватьвашиможиданиям.Большаячасть тестовнапроникновения структурированыиимеютфиксированноевремяиглубинуисследования.Вслучаесфиксированнымвременем(самый распространенный вариант) тестировщики пытаются найти такмного уязвимостей какмогутвпределахограниченногоповзаимнойдоговоренностивремени.работатакжеможетбытьразбитанафазы,кпримеру:слепойпоиск,поискподаккаунтомавторизованногопользователяи т.д. Тестирование с фиксированной глубиной подразумевает остановку тестирования толькопридостиженииопределеннойцели(например,получениеправадминистратораилидоступкномерамплатежныхкарт)инезависитотзатраченноговремени.

интеграция оценки уязвимости и тестирования на проникновение в безопасное развертывание

несмотрянато,чтобольшаячастькомпанийфокусируетсянаоценкеуязвимостиитестированиина проникновении уже действующих внешних web-приложений, на самом деле этот процессдолжен начинаться на этапе развертывания и не должны ограничиваться только теми web-приложениями,которыедоступныизвне.оченьважнопровестипроверкуприложениядотого,каквыпредоставитедоступкнемувнешнимиилидажевнутреннимпользователям.Такженетникакихпричин,кроме,пожалуй,ресурсов,чтобыневнедритьоценкурисковитестированиена

Page 20: WEB-ПРИЛОЖЕНИЯ · 2 Web- h. _ a h i Z k g h k l b содержание еинедевВ 3 обоснование для бизнеса 6 Web-приложения другие

20

Web-приложения. Построение программы безопасности

проникновениевпроцессразвитияприложениянаосновныхэтапах.

Перед развертыванием web-приложения создается тестовая среда, которая аналогична той,в которой будет работать “боевая” система. Все ее элементы, включая версии продуктов иподключенияквнешнимсервисамдолжнобытьидентичным.Затемпроводитсяоценкауязвимостиитестированиенапроникновение.есливыиспользуетесобственныеинструменты,тоувасдолженбытьиобученныйперсонал, которыйумеет этиинструментыприменять. есливыпользуетесьуслугамистороннейкомпании,вамнеобходимообеспечитьудаленныйдоступктестовойсреде– изучить и выполнить требования доступа имеющиеся у подрядчиков. не каждая компанияможетобеспечитьполноеивсеобъемлющеетестированиекаждогосвоегоприложения,поэтомунеобходимо приоретизировать список ваших web-приложений, основываясь на критичностиприложениядлябизнес-операций,использованииприложениемконфиденциальныхданныхит.д.

длянекоторыхкрупныхиособоважныхweb-приложений,вымоглибыпровестиоценкууязвимостии тестированиенапроникновениеу стороннихкомпанийещедоначаларазвертывания. еслижевашеweb-приложениекритичнодлябизнесаилирассчитанонапубличныйдоступ,тотакаяпроверкапростонеобходима.

После того как web-приложение уже развернуто, вашей задачей будет выполнение хотя быосновныхпроверокпривнесениикаких-либоизмененийвегокод,ещедотого,какобновлениебудет установлено на “боевую” систему. для критически важных приложений периодическипользуйтесь услугами по внешней оценке уязвимости и тестированию на проникновение (покрайнеймере, раз в год, илипривыпуске крупныхобновлений) в дополнение кпроведениюсобственныхтестов.

Мы знаем, что у разных компаний имеются разные ресурсы на содержание актуальныхинструментовдлятестированияиуслугистороннихкомпаний,апотомувамнужноадаптироватьэти рекомендации к реалиям вашей организации.Мы предоставили лишь достаточно общиеданные в расчете на достижение лучшего результата и некоторые данные, которые позволятправильнорасставитьприоритеты.

Page 21: WEB-ПРИЛОЖЕНИЯ · 2 Web- h. _ a h i Z k g h k l b содержание еинедевВ 3 обоснование для бизнеса 6 Web-приложения другие

21

Web-приложения. Построение программы безопасности

БеЗоПасноеисПоЛьЗоВание

Впредыдущихчастяхмырассказывалиобезопаснойразработкеибезопасномразвертывании,а теперь настала пора переходить к безопасному использованию. Этот этап настает, когдаразработка и тестирование уже полностью законченыиweb-приложение переходит в режимактивногоиспользования.Помните,чтобольшаячастьтого,очеммыговорилинапредыдущихэтапах, пригодится вам и на этом, так что не торопитесь выбрасывать использовавшиесяинструментыи забывать полученныенавыки.обновления дляweb-приложенияпо-прежнемудолжныбезопасноразрабатыватьсяипроходитьвсестороннеетестированиепередустановкой,оценкауязвимостиитестынапроникновениятакжедолжныбытьрегулярными,ауправлениеконфигурациейипостоянныйконтрольбезопасностистановятсядажеболееважными,чембылидоэтого.

Вфазебезопасногоиспользованиямыдобавимдвеновыхкатегориитехнологийдляподдержкидвух новых процессов –WebApplication Firewall (WAF) в качествещита отражающего разныетипыатакирешенияпомониторингуweb-приложенияи/илибазыданных,котороеобеспечитконтрольиинформированиеобугрозахбезопасности.

web ApplicAtion FirewAll (wAF)

ЗадачаWAFсостоитвтом,чтобынаходясьпередweb-приложениемиливстороне,обеспечиватьмониторингактивностиприложенияипредупреждатьобугрозахбезопасностиилиблокироватьих. Таким образом WAF выполняет две функции –контроль активности в web-приложении ипревентивныйконтрольбезопасности.

WAF – это межсетевой экран (Firewall), который изначально спроектированный с прицелом наконтрольHTTP-запросовиблокированиетехизних,которыемогутбытьпотенциальноопаснымиили не соответствуют заданнымправилам. ЗадачаWAF в том, что перехватывать SQL-инъекции,межсайтовый скриптинг (XSS), попытки обхода каталогов и другие попытки атак посредствомHTTP-запросов, включая их подмену, то есть пресекать любые попытки несанкционированногоиспользования web-приложения. Правила и политики задаваемые WAF позволяют эффективнообеспечить контроль HTTP-трафика в соответствии с функционалом web-приложения. WAFпредупреждает или блокирует подозрительную активность на основе имеющихся сигнатур (ужеизвестныхатак)илинаосновеспецифическихтребованийweb-приложения.

современныеWAFизучаютвходящиеиисходящиезапросы,сравниваетихсзаданнымиправиламии выдает оповещения в случае обнаружения какого-либо отклонения. По итогам анализаподозрительных запросов, WAF выбирает один из четырех вариантов действий: 1) пропуститьзапрос,2)пропустить,нозафиксироватьфактнестандартногоповедения,3)заблокироватьпередачузапроса,4)сброситьсоединение.

WAF – это, обычно, сетевое устройство. Как правило, его размещают непосредственно передприложением(режимпрокси)иливсторонеотприложения,зеркалируянанеготрафик,которымобмениваетсяweb-приложение.Впервомвариантеустановкивсевходящиеиисходящиезапросыперехватываютсяипроверяютсядотогокаконипопадуткweb-приложениюилипользователю,чтопозволяетснизитьнагрузкунаweb-приложение.Втомслучае,еслидлясвязисweb-приложениемиспользуется SSL-соединение, установленный перед ним WAF должен иметь возможность егорасшифровкиианализа.ПриустановкеWAFв сторонеотприложения,проблемаработысSSL-

Page 22: WEB-ПРИЛОЖЕНИЯ · 2 Web- h. _ a h i Z k g h k l b содержание еинедевВ 3 обоснование для бизнеса 6 Web-приложения другие

22

Web-приложения. Построение программы безопасности

трафикомрешаетсяпосредствомвыдачиемукопиисерверногосертификата,либоустановкойпослеSSL-концентратора.некоторыеразработчикитакжепредлагаютWAFввидеплагиновдляконкретныхплатформ,тоестьнеимеющихсвоейаппаратнойбазы.

Эффективность некоторыхWAF ограничена качеством политик. Политики являются важными нетолькодлявыявленияиблокированияизвестныхтиповатак,ноидлягибкогорешениявслучаевыявлениянеизвестныхтиповатак,сохраняяприэтомфункциональностьдлянормальныхзапросов.сложностьweb-приложенийв комбинации с необходимостьюпостоянногообновленияполитикиразнымивариантамиразвертывания,являютсянепростойзадачейдлявсехразработчиковWAF.ПриэтомпростоустановкаWAFпередweb-приложениемиактивациявсехеговозможностей–этоверныйрецепткатастрофы.нетникакихшансов,чтоWAFсампойметвсеособенностивашегоweb-приложения,апотомуприегоразвертываниитребуетсятщательнаяивнимательнаянастройкадлясохранениявозможностипропуска“хороших”запросовиэффективнойблокировки“плохих”.

КогдаWAFразворачиваетсяврежимемониторинга,тоонфункционируетпотомужепринципу,чтоисистемаобнаружениявторжений(IDS).ВданномрежимеWAFиспользуетсятолькодляанализаактивностиивыдачипредупрежденийонарушениях.ВтакомрежимеобычноразворачиваетсяWAFдажевтомслучае,есливыпланируетеиспользоватьвозможностьблокированиязапросов.ЭтодаетвозможностьнастроитьWAFилучшепонятьособенностифункционированияweb-приложениядотогокаквыперейдетекпопыткамблокированиязапросов.Преимуществаэтогорежимазаключаетсяввозможностинаблюдатьзаширокимкругомпотенциальныхатакнебеспокоясьотом,чтоложныесрабатыванияприведуткнеадекватнойблокировке.Кнедостаткамданногорежимаможноотнестито,чтовашисотрудникибудуттратитьбольшевременинарешениепоявляющихсяинцидентовиложныхсрабатываний,атакжето,что“плохая”будетблокироватьсбольшейзадержкой.

ВрежимеблокированияWAFбудетостанавливатьсоединения,разрываяих(врежимепрокси)илиотправляяпакетысбросаTCP(еслиустановленвстороне).ПослесбросасоединенияWAFможетзаблокироватьIPвременноилипостояннодлятогочтобыпредотвратитьповторныеатаки.режимблокировкиявляетсясамымэффективнымвтомслучае,еслиимеетсяизвестнаяуязвимостьввашемприложении,нообновлениесисправлениемэтойуязвимостиещенеготово.

Когдауязвимостьнайденаввашемприложении,выможетесоздатьспецифическоеправилодляблокированияатакиспользующихэтууязвимостьвWAF.Этозащититвашеприложениеотатак,покавыбудетеисправлятькодприложенияилидожидатьсявыходапатчаотразработчикапрограммногообеспечения.даннаястратегияпозволяетдостаточноэффективнозащищатьприложение,сохраняяегофункциональностьиповышаяпроизводительность,ноонасработаеттольковтомслучае,еслиувасестьотлаженныепроцессыповыявлениюианализууязвимостей.

Учитывая все вышесказанное, стоит отметить, что отношение к WAF у профессионаловинформационной безопасности остается неоднозначным. Хотя WAF очень эффективны противизвестныхугроз,онигораздоменееэффективнывборьбесновымиугрозамииневсегдаадекватнообрабатываютсомнительныезапросы.некоторыепродуктыклассаWAFрешаютэтупроблемузасчетболееплотнойинтеграциисинструментамиоценкиуязвимостей.независимооттоговкакомрежимеиспользуетсяWAFи как эффективнонастроеныполитики, выдолжныпомнить, чтовампотребуютсядополнительныеинвестициивэтуобласть.

мониторинг

Мониторингвосновномпредназначендляконтроляиспользованияweb-приложенияреальнымипользователями, а также для выявления нестандартных запросов, которые могу оказаться“плохими”. Принципиальная ценность мон6иторинга в возможности узнать те особенности

Page 23: WEB-ПРИЛОЖЕНИЯ · 2 Web- h. _ a h i Z k g h k l b содержание еинедевВ 3 обоснование для бизнеса 6 Web-приложения другие

23

Web-приложения. Построение программы безопасности

приложения,скоторымивынезнакомы–этоважнонетолькодляправильногоиспользованияWAF,ноидляобщейстратегиибезопасностиприложения.ХотяWAFиобеспечиваетопределенныйконтроль, есть три дополнительных пути мониторинга web-приложений, каждый из которыхпозволяетпо-новомувзглянутьнаактивностьприложения:

• сетевой мониторинг. Мониторинг сетевой активности между пользователями и web-сервером. Эта категория включают WAF, системы обнаружения вторжений, анализаторыпакетов и другие внешние инструменты. инструменты общей сетевой безопасности идругиеинструментыдлясниффингамогутперехватыватьвесьсетевойтрафик,ноониимеютнебольшуюсовместимостьинемогутвыделитьизобщеготрафикаспецифическиепакетыweb-приложения. Просто просмотра трафика недостаточно для того, чтобы понять, чтопользователипытаютсясделатьвприложении–требуетсяинтерпретация.еслижерешениеумеет анализировать специфический трафик web-приложений и способно проводитьаудит активности сети, томы называем такое решениеWebApplicationMonitoring (WAM– Мониторинг web-приложения). Мониторинг сети легко интегрировать, так как он нетребуетвнесенияизмененийвприложение,ионможеттолькопросматриватьисходящийивходящийтрафикприложения.Этоможетбытьполезнодлявыявлениятрадиционныхатакстекаприложений,но гораздоменееполезно,когдатрафиккоррелируетсясоперациямиболеевысокогоуровня.

• аудитприложенийисборлогов.сборианализлоговивнутреннейактивностиприложения.Приложениясобственнойразработки,равнокакисторонней,чащевсегоимеютвозможностиповнутреннемуаудитуисборулогов,новсеониотличаютсяпопринципусбора,принципуописаниясобытийиформатузаписей.Приэтомвывсеравноможетенеполучатьполнойкартинытого,чтопроисходитвприложении,таккаквыограниченылишьтемиданными,которые были добавлены в механизм логирования программистами. для крупных ираспространенных корпоративных приложений, таких как SAP,мы уже видели сторонниеинструменты,которыепозволяютдобавитьвнихмониторингилимеханизмыинтерпретациивнутреннихлогов.общиеинструментылогированияиSIeMтакжемогутбытьиспользованыдля сбораиинтерпретации событий (сопределеннымиограничениями) активностиweb-приложений,приусловиигенерациижурналовсобытий.

• DatabaseActivityMonitoring(DAM–мониторингактивностибазыданных).DAMиспользуютразныеметодыдлярегистрациисобытийсвязанныхсобращениямивбазуданныхигенерациипредупрежденийпринарушенииполитик.Благодарямониторингуактивностимеждуweb-приложением и базой данных (или внутри нее) DAM может обеспечить более точноеизучение и использование данных, а также предоставить дополнительную информациюовзаимодействииврамкахсистемыпримногоступенчатыхтранзакцияхврамкахбизнес-процессов.некоторыеDAMимеютплагиныдляосновныхтиповприложений(например,SAPиPeopleSoft)дляинтерпретациисобытийбазыданныхвсобытияактивностиприложения.Учитываяактивноевзаимодействиеподавляющегобольшинстваweb-приложенийсбазамиданных, этот подход к мониторингу является достаточно эффективным для отслеживанияактивностиипоисканарушенийполитикбезопасности.

WAFможетиспользоватьсядлямониторинга,носпециализированныесредствапредоставляютбольшевозможностейпоконтролюактивностейипозволяютвыявитьнедостаткиинарушения,которыенеявляютсяочевиднымитолькоприконтролеHTTP-трафика.ФокусWAMсосредоточенна источниках данных, их анализе, регистрации активности и генерации предупреждений оподозрительныхсобытиях,втовремякакWAFбольшенаправленнавыявлениеиблокированиеуже известных атак.имеются значительные отличиямеждуWAF иWAMв таких областях какхранениеактивностей, агрегированиеданныхизразличныхисточниковиих анализ, апотому

Page 24: WEB-ПРИЛОЖЕНИЯ · 2 Web- h. _ a h i Z k g h k l b содержание еинедевВ 3 обоснование для бизнеса 6 Web-приложения другие

24

Web-приложения. Построение программы безопасности

выбор лучшего решения зависит от специфических требований. Также стоит отметить, чторешенияпомониторингуweb-приложенийпокаещетрудноназватьзрелыми–большаяихчастьнаходитсянараннемэтапеэволюции.

wAF + оценка уязвимости

некоторые вендоры уже начали предлагать гибридные решения, которые объединяют в себефункционал продуктов для оценки уязвимости иWAF. Как уже упоминалось ранее, одной изсложностейпривременномблокированииопределенныхуязвимостейспомощьюWAF,являетсявыявлениеэтойуязвимостисозданиесигнатурыдляееблокирования.объединивинструментыдляоценкисWAFмыможемавтоматизироватьпроцесссозданияипримененияновыхполитикпривыявленииновойуязвимости.ТакаямодельподразумеваетвыявлениеуязвимостиимгновеннуюпередачуданныхWAFдлятого,чтобытотмогзаблокироватьопределенныевозможности.

Page 25: WEB-ПРИЛОЖЕНИЯ · 2 Web- h. _ a h i Z k g h k l b содержание еинедевВ 3 обоснование для бизнеса 6 Web-приложения другие

25

Web-приложения. Построение программы безопасности

ПодВодиМиТоги

Вэтомразделемыпопытаемсяобъединитьвсечастикасающиесябезопасностиweb-приложенийи сделать некую инструкцию, которая позволит вам разработать программу безопасностиподходящуюдлявашейорганизации.Безопасностьweb-приложений–этонетотслучай,когдаестьуниверсальныйрецепт.риски,размерисложностьприложенийувсехразные,равнокакиинформированностьовопросахбезопасностипользователейисотрудников,асамоеглавноецелииспользованияweb-приложенийукаждойорганизациисвои.

длятогочтобыдатькакие-топрактическиерекомендации,мыдолжныподходитькразработкеweb-приложениясточкизрениянекихтипичныхзадач.Поэтомумывыбралитрисценариядляпредставления общих проблем с безопасностью web-приложений, с которыми сталкиваютсякомпании,ирассмотримкаждыйихнихчерезпризмупрограммыбезопасности.Мыобсудимweb-приложениябольшойкорпорации,ориентированныенаработусвнешнимипользователями,первое приложение средней по размеру компании, а также организации больше среднегоразмера, задачакоторойсостоитвобеспечениизащищенностивнутреннегоweb-приложения.сначала мы опишем среду для каждого приложения, а затем опишем общую стратегию иконкретныерекомендации.

круПная комПания с web-Приложениями ориентированными на взаимодействие с внешними Пользователями.

Впервомсценариимырассмотримкрупнуюкомпаниюснесколькимиориентированныминавнешнихпользователейweb-приложениями.ониразрабатывалисьдлятогочтобыстатьединойточкойвзаимодействиясклиентами,сотрудникамиибизнес-партнерами.основнымидрайверамибезопасности в данном случае являются: противодействие мошенничеству, соответствиетребованиямрегуляторовиобеспечениеотказоустойчивостидляобеспечениянепрерывностибизнес-процессов.Вторичныедрайверы:сохранениерепутации,готовностькатакам,сохранениеактивов и данных, а также снижение расходов на содержание. главный вопрос здесь не внеобходимостиобеспечениябезопасности,автомкакимисредствамиэтогодобиваться.Большаячастькорпоративныхприложенийимеютсерьезныенедостаткивкодеи,еслибытьполностьючестными,тоосновныезадачивданномсценариивтом,чтобыминимизироватьриски,которыенесутэтинедостатки.ниодинпродукт“сприлавка”,разработанныйстороннимиспециалистами,не сможет волшебным образом решить все имеющиеся проблемы безопасности, поэтомувам необходимо инвестировать не только, но и в совершенствование собственные процессыразработки,чтобыскаждымновымрелизомприложениястановилисьвселучшесточкизрениябезопасности.

Предположим, что наша выдуманная крупная компания имеет существующую программубезопасности, командуразработчиковснекоторойстепеньюзрелостивпониманиивопросовбезопасности,новопросрешенияпроблемдажевтакойситуациинебесспорен.Укомпанииужеможетбытьспециалистпобезопасностивштате,новпроцессеразработкеещеневыстроеныпроцессыоценкибезопасностииидентификациипроблем.Типичныйспециалистпобезопасностичащевсегоисходитизсвоегоопытазащитысетейинеимеетопытабезопаснойразработкиинеуделяетособоговниманиякодуweb-приложений.Будемсчитать,чтопрограммабезопасностивключаетиспользованиеинструментовпооценкеуязвимости,ионипроверяюткоднабазовыеатакисиспользованиемSQL-инъекцийиатакнапереполнениебуфера.Вцеломбезопасностьобеспечивается силами пары сторонних продуктов и усилиями специалиста по безопасности,

Page 26: WEB-ПРИЛОЖЕНИЯ · 2 Web- h. _ a h i Z k g h k l b содержание еинедевВ 3 обоснование для бизнеса 6 Web-приложения другие

26

Web-приложения. Построение программы безопасности

указывающегонанедостаткивбезопасности,которыеисправляютсявбудущихобновлениях.

рекомендации

стратегия в данном случае сводится к необходимости включения вопросов безопасности науровнеразработки, сместивакцентсвнешнихпродуктовнавнутренниепродуктыиобучениеперсонала. инструменты выбираются и приобретаются для решения конкретных недостатковвнавыках командыразработчиковиорганизационныхпроцессах.WAFиспользуетсядля того,чтобыобеспечиватьбезопасностьнавремяразработкиобновлении,закрывающихвыявленныеуязвимости.

Обучение и отладка процессов.область,котораядастмаксимальныйэффектввидеповышенияуровня безопасности – это улучшение знаний и навыков команды разработчиков. главныенедостатки,отмечаемыеOWASP,атакжедругимиисточниками,указываютнапроблемы,которыемогутбытьрешеныпутемнадлежащегонаписаниякодаитестирования…нотольковтомслучае,есликомандаразработчиковзнаетчтоикакнужноделать.обучениепомогаетразработчикамвыявлятьошибкиипроблемывкодеиэффективноснижаетколичествонедостатковвкаждомпоследующемциклеразработки.Вразвитииперсоналаможнососредоточитьсянаповышениинавыков всех разработчиков, а не полагаться на одного или двух выделенных специалистов,которыебудутсосредоточенынаанализебезопасности.

Безопасный цикл разработки приложений.долженстатьоднимизприоритетныхтребованийпри разработке приложения, включая в себя определенные требования к коду, проверке итестированию на разных этапах разработки web-приложения. В противном случае добитьсядолжногоуровнябудетневозможно,таккаквсесилыбудутброшенынадоработкувозможностейифункционала.Безопасностьдолжныбытьчастьюспецификациипродуктаитребованийкнему,а каждаяфазаразработкидолжны завершатьсяпроверкойна соблюдение этих требованийисоответствие спецификации. Это означает, что тесты на безопасности в процессе разработкидолжновыполнятьсятакже,какитестированиепередвыпускомрелиза.обученныеразработчикивполне могут обеспечить анализ кода и разработать тестовые сценарии для проверки, нодополнительныеинструментыдляавтоматизациипроцессовтестированияизадачпопроверкевсеженеобходимы.

Наследуемый код приложения. есть решение проблемы наследуемого кода. одной изсерьезных проблем – это наследуемый код, который, вполне вероятно, имеет проблемы сбезопасностью. есть несколько вариантов решения этой проблемы, но основными шагами влюбомслучаебудут:1)Выявлениенедостатковипроблемвкоде (сканированиекода,оценкауязвимости и тестирование на проникновение), 2) расстановка приоритетов по исправлениювыявленных недостатков, 3) Планирование по устранению каждой найденной уязвимости.общие методы исправления уязвимостей включают: 1) Переписывание сегментов кода, 2)методы инкапсуляции (например, интерфейс), 3) дополнение существующего кода путемсоздания процедур проверки путей/методов во время исполнения, 4) временное защита припомощинастройкиполитикWAF,5)ПеремещениеSQL-процессовипровероквбазуданных,и6)прекращениеиспользованиянебезопасныхфункций.Мырекомендуемиспользоватьстатическиеилидинамическиеинструментыдляпервоначальнойпроверкикода.Этиинструментыявляютсяэкономическицелесообразными,подходятдлясканированиябольшихобъемовкодаипозволяютдостаточно эффективно выявить ошибки. они обнаруживают и приоретизируют недостатки,позволяяизбежатьпользовательскихошибок, которыенеизбежныприручномсканировании.инструменты для анализа также позволяют персоналу получить некоторые дополнительныезнанияоб уязвимостях, в томчисле спримераминаразныхязыках.Полученныеврезультате

Page 27: WEB-ПРИЛОЖЕНИЯ · 2 Web- h. _ a h i Z k g h k l b содержание еинедевВ 3 обоснование для бизнеса 6 Web-приложения другие

27

Web-приложения. Построение программы безопасности

аргументыо16тысячахнебезопасныхвхожденийIFRAMe–это,конечно,невесело,нопридетсяпринятьипонятьпроблему,преждечемонабудетрешена.

Внешние проверки.Периодическиевнешниепроверки–оценкауязвимости,тестированиенапроникновениеипроверкаисходногокода–настоятельнорекомендуются.опытныенепредвзятыеспециалисты, имеющие опыт в анализе угроз, могут выявить те недостатки, которые былипропущенывовремявнутреннихсканирований,атакжемогутпомочьвобученииразработчиковинымвектораматак.Запланируйтевнешнеетестированиенапроникновениеодинразвкварталили полугодие – знания и опыт хороших консультантов выходит далеко за рамки основныхугроз, а потому их работа с приложением поможет выявить даже неочевидные уязвимости,которыемогут быть использованы злоумышленниками.Мы также рекомендуем использоватьинструменты статического анализа для внутренней проверки кода в рамках прохождениятестов контроля качества и внутренним тестированием на проникновение непосредственноперед развертыванием – это позволит провести стресс-тесты приложения без страха вывестииз строя “боевое” приложение. Крупные обновления также должны пройти внешний тест напроникновениедотогокакбудутустановлены.

Блокирование.Этооднаизобластей,необходимостьвкоторойнапрямуюзависитотспецификивашей организации. В случае с корпоративным приложением в использованииWAF являетсяоченьважнойчастьюсистемыбезопасности.онобеспечиваетбазовуюзащитуидаетсотрудникамвозможностьспокойноибезпаникиразбиратьсясвыявленнымиуязвимостямивдействующейсистеме. Конечно, возможен вариант, что объем кода вашего приложения не очень велик иособойпотребности вWAFнет, но длябольших компанийWAF это неопция, а обязательнаячастисистемызащитыweb-приложения.циклыразработкииобновленияприложениявтакихкомпаниях слишком долгие, чтобыможно было обеспечить быструю реакцию на найденнуюновуюуязвимость.Мырекомендуемиспользовать гибридныемодели, которыеобеспечиваютфункции WAF и оценки уязвимости, потому что такая комбинация позволяет значительнооблегчитьразработкуивнедрениеновыхполитикдляWAF.WAF– этонедешево,поэтомумынеможемрекомендоватьегоиспользованиевсем.новсеже,именноэтотинструментобладаетгибкостьюипозволяетборотьсянетолькоссуществующими,ноибудущимиугрозами.

Вобщем,мырекомендуемвампринятьмерыдляповышенияуровнябезопасностивкаждойчасти процесса разработки и развития приложения. Фокусировка на совершенствованииначальныхэтаповразработкиприложения(выработкатребований,архитектура,дизайн)принесутнаибольшее количество пользы с точки зрения безопасности. для приложений, которые ужеэксплуатируются, мы рекомендуем введение внешних проверок и, если бюджет позволяет,использованиеWAF.оценкауязвимостиитестированиенапроникновениеимеютнаиважнейшеезначение,независимооттого,новоеэтоприложениеилинет,аWAFоченьважендлябыстройреакциина выявлениеновой уязвимости. Учитывая, чториски крупныхпредприятий выше, арешениелюбойпроблемысложнее,важнопонимать,чтоиинвестициивбезопасностьдолжныбыть серьезными. Требованиябезопасности, а такжеих изменения должныбытьофициальнозафиксированыдлякаждойстадиижизненногоциклаприложения–апроверкавыполненияэтихтребованийпроводитсянакаждомзначимомэтапе.

комПания среднего размера и соответствие требованиям pci

еслимыговоримобезопасностиweb-приложенийиналичиикаких-либотребований,тостоитобратитьсякPaymentCardIndustry’sDataSecurityStandard(PCI-DSS).Фактическиэтоединственныйстандарт, определяющий специфические требования к безопасности web-приложений. Мы,конечно, можем ворчать о неоднозначности этих требований и способах их улучшить, но не

Page 28: WEB-ПРИЛОЖЕНИЯ · 2 Web- h. _ a h i Z k g h k l b содержание еинедевВ 3 обоснование для бизнеса 6 Web-приложения другие

28

Web-приложения. Построение программы безопасности

можемнепризнать, чтоPCI вданныймомент является главнымдрайверомдлябезопасностиweb-приложений на сегодняшний день. Поэтому в качестве второго сценария мы взяликомпаниюсреднихразмеров,которойнеобходимообеспечитьсоответствиеихweb-приложениятребованиямданногостандарта.

Профильэтойнашейкомпании–торговля.Большаячастьприбылигенерируетсяпосредствомонлайн-продаж. Коммерческий web-сайт относительно новый (менее 3 лет), а командаразработчиковдостаточномалаинеимеетдостаточноспецифическихнавыковвинформационнойбезопасности. То есть понимание ньюансов хакерских атак не является их сильной стороной.соответствие PCI является основной задачей, хотя понятно, что кроме выполнения основныхтребований есть необходимость и в защите от некоторых видов атак. Позитивные моменты:объемкодаweb-приложенияневелики, таккакбольшаячастьприбылигенерируетсяименнопосредствомweb-приложения,руководствовсяческиподдерживаетинициативыпоповышениюуровнязащищенности.

В двух словах, стандарт PCI-DSS – это стандарт безопасности для компаний, обрабатывающихтранзакцииплатежныхкартврамкахинтернет-коммерции.сточкизренияправилбезопасности– это самыеоднозначныеипонятные требования, включающие специфические требования ксредствамобеспечениябезопасностиипроцессамработысданнымиплатежныхкарт.Приэтомимеетсяустандартаиопределеннаягибкость,котораявыражаетсявнеобходимостисоответствиядуху требований. То есть, если ваши решения и отличаются от рекомендованных PCI-DSS, ноони обеспечивают должный уровень безопасности, то они имеют право на одобрение. Мысосредоточимся на выполнении требований указанных в пунктах 6.6 и 11.3, но также будетобращатьсякразделу10икомпенсирующимэлементамуправления.

рекомендации

нашастратегиябудетсфокусировананаобразованиииизменениипроцессовразработкидлятогочтобывключитьбезопасностьвциклразработки.дополнительномыпредлагаемиспользоватьуслугу тестирования на проникновение, что позволит быстрее выявить проблемные областиweb-приложения. дляначаласфокусируйтесьнавыполнениитребований,аужезатемможноподумать о вариантах развития защиты на случай роста компании. не бойтесь пользоватьсястороннейпомощьюдлярешенияразныхзадач,этокасаетсяивыполнениятребованийPCI,иобщихвопросовбезопасностиприложений.

Тренинги, образование и улучшение процессов.опятьже,максимальный упормы делаемна образование и тренинги для персонала, в том числе для менеджмента проекта. несмотрянато,чтоэтотребуетдостаточносолидныхвременныхзатрат,онпозволяетощутимоповыситьуровеньбезопасностииявляетсяэффективнымсэкономическойточкизрения(засчетулучшениякачествакода,чтоснижаетзатратынадоработкувперспективе).Правильнонаписанныйкоднетребуетисправленийвдальнейшем.Крометого,процессулучшениякодабудетпостоянным,чтопозитивноскажетсянетольконабезопасности,ноинакачествеприложениявцелом.Вобщем,есликоданемного,тоименнообразованиеитренингиявляютсялучшимпутемдляотносительнонебольшойкомпанииипринесутмаксимумпреимуществ.

Внешняя помощь.Подружитесьсаудиторомилинаймитееговкачествеконсультанта,которыйпоможет подготовить и провести проверку на соответствие PCI-DSS. аудитор не просто дастспецифическиерекомендациипоотдельнымтребованиямPCI,онпредоставитэкспертнуюоценку,поможет в толковании некоторых неоднозначных моментов, окажет содействие в разработкестратегиииубережетотнеобдуманныхинеэффективныхтрат.

Page 29: WEB-ПРИЛОЖЕНИЯ · 2 Web- h. _ a h i Z k g h k l b содержание еинедевВ 3 обоснование для бизнеса 6 Web-приложения другие

29

Web-приложения. Построение программы безопасности

раздел11.3.2.11.3Тестированиенапроникновениесетииweb-приложения.Вданномсценариимы рекомендуем внешнее тестирование на проникновение – не только потому, что этотребованиестандартаDSS,нотакжепотому,чтонезависимыйэкспертизучитвашеприложениепозиции максимально близкой к хакерской. Тем более в дальнейшем ограниченный бюджетнаверняка заставит выбирать между WAF и анализом кода в пункте 6.6, и тестирование напроникновениепоможетсделатьвамправильныйвыбор.еслижеанализкодаужепроводится,то можно утверждать (возможно, безосновательно), что он является некой компенсирующеймерой, позволяющей выполнить требования данного раздела, номы все равно рекомендуемиспользовать тестирование на проникновение. Внешнее тестирование дает гораздо больше,чемсписокспецифическихуязвимостей,предлагаятакжеидентификациюрисковивыявлениесомнительногоповеденияприложения.

раздел 6.6. наши самые большие споры касаются рекомендации использования WAF илианализакодадляудовлетворениятребованийPCI,указанныхвразделе6.6.Фактическистандартрекомендуетиспользоватьитоидругое,ноширокоизвестно,чтоэтовесьмадорого.ПокупкаWAF–этобыстрыйпутьудовлетворитьтребованияраздела6.6,обеспечивбазовыймониторингибазовуюплатформудляблокированияатаквбудущем.ноконтраргументовуэтоговариантадостаточно – это и уже упомянутая и цена и достаточно сложную и кропотливую работу понастройке политик. с другой стороны, анализ кода квалифицированным специалистом побезопасностипоможетвыявитьслабыеместавкодеприложения,атакжепомочьвобучениикомандыразработчиковуказываянаконкретныенедостатки.Внешнийанализпозволяетбыстрооценитьситуацию,вкоторойвынаходитесь,ипонятьчтовамнужнодлятого,чтобыэтуситуациюулучшить.Кнедостаткаманализакодаможноотнестистоимостьработ,времянеобходимоедлявыявленияиисправлениянедостатков, а кроме того, постояннуюизменяемость кода, котораятребуетповторныхпроверок.

ивсежемырекомендуемвыбратьWAF.Привлечениекомандыпрофессионаловпобезопасностидля анализа кода – это, конечно, эффективный путь выявления недостатков, но его ценностьзаметноснижается,ведьвомногомсхожиеданныедаютпериодическиетестынапроникновение,необходимость проведения которых, как мы помним, отражена в разделе 11.3.2. Кроме того,даже при относительно небольшом или среднем количестве кода, время на коррекцию всехнедостатков может оказаться достаточно большим, что не позволит пройти аттестацию насоответствие требованиям PCI в достаточно сжатые сроки. обратите внимание, что даннаярекомендация действительна только для данного сценария. При других исходных данных, кпримеру,приналичииболееопытногоперсоналаиизначальнолучшегокачествакода,мымоглипойтисовсемподругомупутидлядостижениянеобходимогорезультата.

Мониторинг.Мониторингактивностибазыданных(DAM)–этохорошийвыбордляудовлетворениятребованийраздела10,всоответствиискоторымнеобходимообеспечитьполныймониторингдоступакданнымплатежныхкарт.Web-приложенияиспользуютреляционнуюбазуданныхдляхраненияномеровплатежныхкарт,транзакцииидругиесвязанныеснимиданные. ПродуктыклассаDAMохватывают всю сетевую и консольную активность на платформе базы данных иобеспечивают целенаправленный и экономически эффективный контроль на всех уровнядоступакданнымкредитныхкарт.рассмотритеименноэтотвариант,которыйбудетхорошкакдляаудиторов,такидляспециалистовпобезопасности.

разработка внутреннего web-Приложения

Внашемпоследнемсценариимырассмотримвнутреннееweb-приложение,предназначенноедляпартнеровисотрудниковврамкахсреднегоиликрупногобизнеса.Хотяэтоиневыглядиткак

Page 30: WEB-ПРИЛОЖЕНИЯ · 2 Web- h. _ a h i Z k g h k l b содержание еинедевВ 3 обоснование для бизнеса 6 Web-приложения другие

30

Web-приложения. Построение программы безопасности

серьезнаяпроблема,нодажедлякомпаниисоштатомв100человек,внутреннееweb-приложениеможетбытьвесьмакритичнойточкойсточкизрениябизнеса.используяданныерабочегопроцесса,HR,бухгалтерскогоучета,продажидругихкритичныхIT-систем,этиприложенияобеспечиваютэффективную поддержку сотрудников и партнеров компании. Учитывая доступность из web-приложенияпочтивсехданныхкомпании,обеспечениеихконфиденциальностиицелостностиявляетсяоченьважнойзадачей.общеемнениеотносительнозащитытакихсистемчащевсегосводятсяктому,чтоонинаходятсявнутрипериметра,апотомунеподверженытипичныматакам,ноэтомнениедовольночастиприводитккатастрофе.Ведьвтомслучае,еслизлоумышленникпреодолеет внешний барьер (или окажется инсайдером), то приложение будет практическибеззащитным.Тоесть,нестоитполагатьсялишьнасетевуюбезопасность,необходимообеспечитьхотябыбазовыйуровеньзащитысамогоweb-приложенияиконтрольдоступа.

рекомендации

определитьбазовыйуровеньзащитыприложения,исправитьсерьезныеуязвимости,максимальноиспользовать преимущества обучения, тренингов и усовершенствования процесса написаниякода,длятогочтобыповыситьегокачество.

Оценка уязвимости и тестирование на проникновение. сканированиеweb-приложенийдляоценкиуровнязащищенности,проверкиустановкиобновленийинедостатковвконфигурации– это первый из рекомендованных шагов, который позволит выявить основные уязвимости.инструменты оценки защищенности являются самым экономически эффективным путем дляопределениябазовойбезопасностиивыводаеенаприемлемыйуровень.Тестынапроникновение,традиционно могут помочь в оценке потенциальных рисков и расстановке приоритетов приисправлениивыявленныхуязвимостей.

Образование тренинги и совершенствование процессов.Вданномсценарииэтивозможностистанут, пожалуй, дажеболее актуальными, чемв других, хотябыпотому, чтобизнесу труднеенайти обоснования для инвестиций в безопасность приложения, чем в случае с внешнимиприложениями.

Мониторинг. Контрольивыявлениеподозрительнойактивности–этодоступный,ноэффективныйспособ выявления проблем. Мы считаем, что WAF в таком случае будет слишком дорогимрешением,апотомунастоятельнорекомендуемболееэкономическиэффективныйспособсбораи анализа активности. Программное обеспечение для мониторинга, которое подключается кweb-приложению,зачастуюможетбытьоченьэффективнымистоитьвполнеразумныхденег,нобремяанализавсехсобираемыхданныхвданномслучаеляжетнавашукомандуразработчиков.Мониторингактивностибазданныхможетбытьэффективендлязащитыкритическойинформациивбэк-ендеиэтоболееразумныйвыбор,нежелиWAM.

выводы

наши рекомендации на самом деле весьма специфичны и сильно зависят от особенностейорганизации и ситуации с web-приложениями. Мы выбрали сценарии для того чтобыпродемонстрироватьмотивирующиефакторывсочетаниистекущимсостояниемзащищенностиweb-приложения и руководством по выбору инструментов услуг и изменением внутреннихпроцессов. но так как приложения поддерживают значительное количество бизнес-функций,процесспоповышениюуровнюзащищенностидолженпроходитьприсодействииимаксимальномвниманиисосторонынетолькотехническогоперсонала,ноиответственныхзабизнес-процессов,

Page 31: WEB-ПРИЛОЖЕНИЯ · 2 Web- h. _ a h i Z k g h k l b содержание еинедевВ 3 обоснование для бизнеса 6 Web-приложения другие

31

Web-приложения. Построение программы безопасности

атакжеменеджерапроектов.Это,безсомненияосложнитпроцесс,нодвижениевпереддолжнопроисходитьтолькоприпониманиииподдержкевсехзаинтересованныхлиц.

Влюбомслучаемыдолжныпомнить,чтобезопасностьэточастьобщегопроцессаразвития,инаша главная рекомендация для любого сценария – это стремится обеспечитьмаксимальнуюэкономическуюэффективностьистаратьсяминимизироватьрискисбояилилюбогоотклоненияотнормальнойработы.Такжеважнопомнить,чтопреобразованиеweb-приложениянепроизойдетв одночасье.Мынеможем себепозволить такуюроскошь, какостановка всехобновленийвожидании момента, когда команда разработчиков исправит все недостатки в безопасности, апотомуненужнозабывать,чтосторонниепродуктыиуслугимогутоказатьнеоценимуюпомощьдлярешениянасущныхпроблем.

Page 32: WEB-ПРИЛОЖЕНИЯ · 2 Web- h. _ a h i Z k g h k l b содержание еинедевВ 3 обоснование для бизнеса 6 Web-приложения другие

32

Web-приложения. Построение программы безопасности

онас

Компания Ak Kamal Security, основанная в 2006 году, специализируется на разработке,поставках, внедрении и сопровождении средств криптографической защиты информации.Продукция компании, а также наших партнеров, среди которых крупные игроки на рынкеинформационнойбезопасности,покрываетпрактическивесьспектрзадачпообеспечениюбезопасности, стоящих перед бизнесом и другими структурами, для которых критичносохранениеконфиденциальностиданныхиобеспечениебезопасностибизнес-процессов.

одним из важнейших преимуществ компании является географическая близость к нашимклиентам, знание специфики казахстанского рынка и особенностей законодательства всфере информационной безопасности. Кроме того, это позволяет нам быстро реагироватьнавсезапросыклиентовкасающихсянашихразработок–будьтообеспечениетехническойподдержки, или пожелания по улучшению и расширению функционала в соответствии соспецификойихпользованиявкаждомконкретномслучае.

обратившись в Ak Kamal Security, Вы найдете в нашем лице надежного и компетентногопартнера и консультанта по вопросам информационной безопасности. накопленный опыт ипрочныепартнерскиеотношения с ведущимипроизводителями средств защитыинформации,профессиональныйподходкрешениюлюбыхвопросоввэтойсфере,атакжевнимательностькзапросамклиента–гарантиявысокогокачестванашейработы.

КонТаКТыТоо«AkKamalSecurity», г. Алматы, ул. Каблукова, 257Тел: +7 (727) 381-05-26, +7 (727) 222-00-92 Факс: +7 (727) 381-00-39Mail: [email protected]: www.akkamal.kz, www.e-security.kz, www.mysign.kz