UNITSДопустим, что программист — полный олух и никакне фильтрует и не экранирует значение $fname.Таким образом, имеем стандартную уязвимостьSQL Injection. Но если использовать приемInterpolique, то даже при таком раскладе у атакующегоничего не выйдет. Посмотрим почему:$conn->query(eval(b('select * fromtable where fname=^^fname;')));Здесь функция b — это функция-обертка дляподстановки операций base64-кодированиядля переменных, отмеченных символами ^^.После несложных преобразований к базе данныхформируется следующий запрос:Продвинутая векторная графика на чистом JavaScriptselect * from table wherefname=b64d("Veh.....=")символ: то ли это l, то ли 1, то ли I. Получается,разрабатывая свою капчу, лучше вообще вовремяисключить эти символы?Q: За основу лучше всего взять следующийдиапазон символов: [A-Z][a-z][0-9] и дальшеисключать из него проблемные элементы.Многое зависит от алгоритма и, в частности,от используемого шрифта: он может быть сзасечками или без них, и это сильно повлияетна читаемость. Главная проблема в том, чтопосле деформаций, искажений и накладыванияшумов многие буквы сложно однозначноидентифицировать. Например:•«l», «1», «I» — все символы слишком похожидруг на друга;•«W», «w» —«w» очень просто спутать с «v» или «vv»;• «O»,«0», «Q» — очень похожи, особенно еслина капче добавляются шумы;•«g», «9» — практически один символ, особеннопосле деформации;•«3», «8» — могут быть спутаны друг с другом и «B»;•«4» — часто похожа на «A»;•«5» — при наклоне неотличим от «S»;•«L» — после наклона может быть спутан с «V»;•«r» — может быть перепутан с «n»;•«h» — после скручивания похоже на «n»;•«Y», y», «v» — часто неотличимы последеформаций.Но даже если вообще исключить эти символы,построить надежную капчу более чемвозможно.Q: Мне очень понравилась ваша статья про взломCAPTCHA. Но все-таки, если не писать самомунейронную сеть и не обучать ее, не реализовыватьсложные алгоритмы, ковыряясь впремудростях OCR, есть ли какие-нибудь движкидля распознавания, которые могли бы помочь вовзломе CAPTCHA?A: По большому счету, нужно то же самое, чтои для оцифровки обычного текста, то есть эффективноеOCR-решение. Технологий, которыеоткрыты, бесплатны и при этом даже работают,не так много.GOCR (jocr.sourceforge.net) — предельно простойи открытый OCR-пакет, которому не нужно142обучение. Работает очень быстро, но не такточно, как другие более сложные движки.Tesseract (code.google.com/p/tesseract-ocr)— другой бесплатный OCR-движок, которыйразрабатывался компанией HP с 1985 по 1995год. Для того, чтобы начать распознавание,потребуется более сложная настройка, но ирезультат будет намного точнее, чем у GOCR.ocropus (code.google.com/p/ocropus) — а этоуже основанная на Tesseract система для распознаваниятекста, но от любимого и одновременнонелюбимого Google :). Проект еще молодой,но уже сейчас легко интегрируемый в своихрешениях, который очень неплохо работают.Gamera (ldp.library.jhu.edu/projects/gamera) —это не просто движок, а целый фреймворк длянаписания систем эффективного распознаваниясложных образов (в том числе CAPTCHA),который несложно заставить работать.Q: Подскажи простой, но надежный способ защититьсяот SQL-инъекций.A: Один из самых эффективных способов (ну, крометолковой головы программиста) являются такназываемые файерволы для веб-приложений. Унас был подробный материал о WAF в одном изномеров ][ (www.xakep.ru/magazine/xa/130/056/1.asp). Но если говорить о надежном и, в тожевремя, простом способе уберечь свои разработкиот SQL-инъекций, то следует отметить приемInterpolique. Не так давно он был представленДеном Каминским, который стал известен послеобнаружения серьезной уязвимости в технологииDNS. Общая идея Interpolique заключается втом, чтобы при передаче пользовательских данныхв запросе к СУБД фигурировали не открытыеданные, а зашифрованная в base64 строка.Что это дает? Очень просто — в хеше строки поумолчанию отсутствуют специальные символы,которые могут привести к инъекции. Что быхакер ни передавал, в запросе будет валиднаястроковая переменная. Для примера посмотримна самый простейший запрос:$conn->query("select * from tablewhere fname=^^fname;");Здесь-то и видна самая главная фишка этогоприема. Какое бы значение не было у переменнойfname (даже если оно никак не фильтруется,и хакер туда поставил спецсимволы), приобращении к СУБД она всегда будет представленабезобидной строкой-хешем, а значит, возможностьинъекции исключена. Оригинальнаяпрезентация от автора подхода с более подробнымописанием доступна на www.scribd.com/doc/33001026/Interpolique. Оттуда, в частности,можно почерпнуть функции для обработки строкbase64 в MySQL. В другой популярной СУБД —PostgreSQL — поддержка base64 реализованачерез штатные функции encode/decode.Q: Что такое SHSH, если говорить об iPhone/iPad,и почему рекомендуют его сохранять? Как этосделать?A: Apple — это очень умная компания, которая думаетне только о качестве своей продукции, но и отом, как ее защитить. Любой девайс можно обновить,но при этом по умолчанию нет возможностивернуть прошивку назад. Это может сыграть злуюшутку, если в новой firmware Apple реализуеткакую-нибудь хитрую защиту, предотвратив возможностьсделать Jailbreak (доступ к системнымфайлам и полная свобода действия на устройстве).При попытке прошить iPhone, iPod Touch илиiPad, программа iTunes обращается на серверкомпании Apple, передавая так называемыйномер ECID (уникальный идентификатор чипадевайса) и номер текущей прошивки. Сервер всвою очередь отправляет в отчет тот самый SHSH— специальный идентификатор для модуляiBoot, который отвечает за загрузку устройства. Взависимости от идентификатора iBoot либо разрешаетпрошить девайс, либо не разрешает. Такзачем нужно бэкапить SHSH? Резон есть: какуюбы новую защиту не придумала Apple, отключиввозможность добраться до системных файловдевайса (то есть сделать Jailbreak), пользовательвсегда может откатить прошивку до той версии,где такая возможность имеется. Но это возможнотолько в том случае, если у него есть правильныйSHSH, который когда-то был выдан Apple. Сделатьбэкап SHSH позволяет утилита TinyUmbrella(thefirmwareumbrella.blogspot.com).zXÀÊÅÐ 08 /139/ 10
x№ 08(139)АВГУСТ 2010>>WINDOWS>DevelopmentAdobe AIR 2.0Diffuse 0.4.3Eclipse 3.6Enterprise Architect 8.0Geany 0.19Mockups For DesktopGoogle App Engine SDK for JavaGoogle App Engine SDK for PythonHttpWatch 7.0Inno Setup 5.3.10jQueryPadLINQPadMySQL Community Server 5.1.48MySQL Workbench 5.2.25NetBeans 6.9Python 2.7WebStorm-RC-95.298>Dailysoft7-Zip 4.65DAEMON Tools Lite 4.35.6Download Master 5.7.2.1217Far Manager v2.0 build 1420 x86FileZilla Client 3.3.3Firefox 3.6.6foobar2000 1.0.3K-Lite Mega Codec Pack 6.10Miranda 0.8.27Nodepad++ 5.7Opera 10.60PuTTY 0.60Skype 4.2SysinternalsSuite (Ёо м)Total Commander 7.50aUnlocker 1.8.9<strong>Xakep</strong> CD DataSaver 6.0XnView 1.97.6>MiscBatteryBar Free 3.4.1CLCL 1.1.2Folder Bookmarks 1.6.5.1gMote 1.41Launchy 2.5ListaryOnTopReplicaPilesPreme 0.92TimeSheet 1.1.5TriX 0.0.11.17USB Stick Watcher 1.5Windows 7 Shortcuts 0.4.2>MultimediaAshampoo Snap 4.0.0Evernote 3.5.4Flashcards 2.2.5Fotobounce 3.0.3Foxit Reader 4.0GameSave ManagerGimp 2.6.9Google Earth 5.2Gramps 3.2.3iTunes 9.2Lotus Symphony 3 BetaRainmeter 1.2Songbird 1.7.3Zoner Photo Studio Free>NetFortitude HTTP 1.0.1.8GarenaLogMeIn HamachiOpera 10.60Swish 0.4.0TightVNC 2.0Trillian 4.2.0Tunngle 4.3.1.4VodBurner 1.0.2Vuze 4.4.0.6aWeezo 2.1>SecurityAutoIt 3.3.6BotHunter 1.5.0EXEForger (SignsImitator) 1.0.40.10Free Netsparker Community EditionHexjector 1.0.7.4JBroFuzz 2.3MDD 1.3PenTBox 1.3.2Poet 1.0.0PyLoris 3.0RainbowCrack 1.41Sikuli 0.10.1Snorby Spsa 1.4Tinc 1.0.13USBdumperWireshark 1.2.9>SystemAcronis Drive Monitor FreeAVG Free Edition 9.0.839BatteryCare 0.97Beep Codes Viewer 0.0.1Cobian Backup 10DriveImage XML 2.14FileSeek 1.9.8HashMyFiles 1.68HashTab 3.0Ketarin 1.1Monitor Asset Manager 2.5RAMDisk 3.5Sandboxie 3.46Security Essentials 1.0.1963SpyShelter FreeSSD Tweak UtilityUNetbootin 4.71USB Safeguard 1.3USB WriteProtector 1.1VirtualBox 3.2.6Watch 4 Folder 2.0>>UNIX>DesktopDjVuSmooth 0.2.7DockbarX 0.39.4Enlightenment 1.0.2Flashcards 2.2.5F-Spot 0.7.0Furius ISO Mount 0.11.2.1Gimp 2.6.9Gnucash 2.2.9Gramps 3.2.3Inkscape 0.48K3b 2.0.0Kaffeine 1.0LilyPond 2.13.2Mathomatic 15.1.4OpenOffice.org 3.2.1Pcmanfm 0.9.7Remind 3.1.9SimpleBurn 1.5.1SnowIsh 2StarDict 3.0.2VLC 1.1.0>DevelAdobe AIR 2.0Android 2.2CodeBlocks 10.5Eclipse 3.6Geany 0.19Gnat GPL 2010Hancock 2.0.2HSQLDB 2.0libpng 1.4.3Meld 1.3.2MonoDevelop 2.4MySQL Workbench 5.1.18NetBeans 6.9Python 2.7Paco 2.0.8Qt Creator 2.0Ruby Enterprise Edition 1.8.7Tcl 8.5.8xTests 0.15.2ZinjaI 20100624>GamesWormux 0.9.2>NetAdobe flash player 10.1Aria2 1.9.5CrossFTP 1.65aEiskaltDC++ 2.0.3Emesene 1.6.2Empathy 2.30.2Google Chrome 5.0.375.86Googlecl 0.9.8Googsystray 1.2.0KDropbox 0.3.0LimeWire 5.5.10Mozilla Firefox 3.6.6Mozilla Thunderbird 3.1Opera 10.60qBittorrent 2.2.10SeaMonkey 2.0.5Transmission 2.00Twit BetaUget 1.5.9.2XTelnet 0.4.4>SecurityAgentsmith 0.1ArpON 2.0AVG Anti-Virus Free Edition 8.5.0812Beltane 1.0.17Ctm 0.2.0Editor shellcodeJohn the Ripper 1.7.6Poet 1.0.0PyLoris 3.0Samhain 2.7.1Simplefuzz 0.6.2Snare 1.5.1Snort2Pf 4.4SpiderpigSuricata 0.9.2THC-Hydra 5.7THC-IPv6 1.2Tinc 1.0.13Tmac 1.0Tor 0.2.1.26>Server389 Directory Server 1.2.5Amavisd-new 2.6.4Anti-Spam SMTP Proxy Server1.7.5.5Apache 2.2.15BIND 9.7.0Cherokee 1.0.3Courier-IMAP 4.8.0CUPS 1.4.3DHCP 4.1.1Dovecot 1.1.12Mail Avenger 0.8.1Monkeyd 0.10.3Music Player Daemon 0.15.9OpenLDAP 2.4.22OpenSSH 5.5OpenVPN 2.1.1Samba 3.5.4Simon 0.2TeamSpeak3Xorg server 1.8.1>SystemEncFS 1.6.0Linux Kernel 2.6.34Logstalgia 1.0.0Pacman 3.4.0PCSX2 0.9.7 Betardup 1.1.7SynCE 0.15Syslinux 3.86Sysstat 9.1.3Tracker 0.8.13VirtualBox 3.2.6Wine 1.0.1WineGame 0.1Zen-kernel 2.6.34ВЗЛОМ АУТЕНТИФИКАЦИИ НА САЙТЕ НАТО СТР. 50РЕКОМЕНДОВАННАЯЦЕНА: 210 р.АВГУСТ 08 (139) 2010MALWAREÍÎÂÀß ÐÓÁÐÈÊÀÎ ÂÈÐÓÑÀÕСЕРВЕРНЫЙJAVASCRIPTÐÀÇÁÈÐÀÅÌÑß Ñ NODE.JSÑÒÐ. 30ÒÅÑÒ ÍÅÒÒÎÏÎÂWARDIVING Â ÍÀØÅÌ ÂÅÊÅÊÐÀØ-ÒÅÑÒ ÐÎÑÑÈÉÑÊÈÕÀÍÒÈÂÈÐÓÑÎÂÏÐÎÁÐÀÑÛÂÀÅÌ ÏÎÐÒÛÂ ÎÊÍÀÕ, ÍÈÊÑÀÕ È ÖÈÑÊÀÕСВОЙVIRUSTOTALÑÎÇÄÀÅÌ ÑÅÐÂÈÑÄËß ÏÐÎÂÅÐÊÈ ÔÀÉËÀÍÅÑÊÎËÜÊÈÌÈ ÀÍÒÈÂÈÐÓÑÀÌÈÑÒÐ. 74