Thursday, August 27, 2015

Дыра в безопасности...


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



Технически он сгенерировал selfsigned сертификат и импортировал его в бразуер. Почему приложение не делает никаких проверок никто не знает. И уже не узнает.  Самое интересное, что  данная проблема не только у СЕБ банка. Какое-то время назад точно такая же проблема была и у другого крупного банка нашей станы. Студентом был проведен большой анализ  и кому интересно есть целая научная статья на эту тему http://kodu.ut.ee/~arnis/tlscca.pdf с полным техническим описание проблемы, почему она есть и как ее решить. А также как правильно настроить ваш Апач, чтоб избежать подобных проблем. Мой совет - если у вас важная инфраструктура,  то не пожалейте денег на penetration test. 


Ну и немного интересного из статьи:
A client certificate that is issued by a trusted CA is required only in cases where the client has no account on a server and where the server would be required to know the user’s government issued identity for opening such an account.  Most service providers only care about a user’s identity established after the registration process. Therefore, in the process of account registration or after that, any service provider can register a client’s certificate, and this can be used to authenticate the user thereafter. 
....
Recent incidents involving the compromise of trusted CAs DigiNotar [28] and Comodo [29] and reported misbehavior of the CAs Trustwave [30] and TURKTRUST [31] show that MITM attacks using fraudulent certificates issued by trusted CAs are very realistic. Even if an attacker is not powerful enough to obtain a certificate issued by a trusted CA, he can perform a MITM attack using a self-generated certificate and if the victim clicks through browser security warnings, can achieve successful impersonation of the legitimate server.

Thursday, May 2, 2013

Сервис рассылки СМС сообщений

В этом посте я хотел бы рассказать о другом проекте знакомых, которые занимаются рассылкой СМС сообщений по всему миру, а заодно и о СМС бизнесе. 
Каждый из Вас хоть раз получал информационное сообщение.Они бывают различного характера: из магазина где Вы постоянный клиент, реклама различных служб или услуг, информирование о рекламных акциях, информацию об СМС заёме и тд. Но мало кто задумывается как эти сообщения посылаются. Если Вы думаете, что сидит команда с телефонами, которая строчит СМСки, то вы ошибаетесь, технология ушла далеко вперед оставив такие дедовские методы позади. Для отсылки массовых СМС сообщений используют сторонние фирмы с API решениями. 
Самое простое - это посылать по HTTP протоколу, вставляя свои данные прямо в URL. Вот один из примеров такого URLа 
http://panel.smspm.com/gateway/52248aec022c6d53eabe30/api.v1/send?phone=37254515400&sender=SMSPM.com&message=This+is+a+test+message&output=json 
где 52248aec022c6d53eabe30 - hash ключ 
37254515400 - номер получателя СМС 
SMSPM.com - номер отправителя или название организации 
This+is+a+test+message - текст сообщения 
Такое решение очень просто интегрировать на свой сайт или в свою систему и посылать автоматические СМС после какого-то определенного действия. 

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

Другой мунус бизнеса, то что операторы не очень рады таким СМСкам "издалека". Они считают что могли бы заработать на них больше и поэтому, когда трафик через один канал становится достаточно большим, то этот канал может просто быть заблокирован. Решение одно - постоянный мониторинг статистики и готовность переключить на другои канал. 

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

Тут можно посмотреть как:

Friday, February 22, 2013

Немного о такси в нашей любимой стране.

Не первый раз добираясь на такси домой задумываюсь - живу в стране, которая далеко не на последнем месте по технологиям и IT, но почему то поездки в такси доставляют совсем уж мало удовольствия. На весь салон машины "кричит и шипит рация". когда хочется тишины и покоя, чтобы расслабиться и подумать о своем. Сегодня расскажу о проекте-стартапе знакомых, благодаря которым в такси будет тихо, и, как они утверждают, машины будут приезжать быстрее, чем раньше. Сейчас у большого количества таксистов продвинутые телефоны на андроиде, именно они и заменят рации. Оператор не будет ничего кричать в эфир, у него будет программа для диспетчеров, где он будет вводить заказы. Дальше заказы будут перекидываться в специальное андроид-приложение на телефоне, и уже оттуда водитель сможет сам выбирать заказы которые он хочет выполнять. 
В соседних странах удачно практикуют похожую систему, но там используют старые телефоны и соответственно Java приложение. У таких телефонов есть существенные минусы: 
1). Маленький экран, информация сокращена и помещается полностью на экран, шрифт маленький. 
2) Экран не сенсорный, это не удобно и в пути пользоваться опаснее.  
3). Нет GPS, соответственно никто не знает где находится такси  
4). Нет стандартных андройдовских вещей, например Maps API от Google.


Немного о технических сторонах проекта. 
Для более удобной работы и диспетчера и таксиста используются сервисы Google. Например, вводя адрес клиента запрос проверяется Google Places API и возвращается правильный адрес вместе с координатами. Координаты передаются в программу для таксистов, где клиент отображается на карте вместе с положением таксиста. Зум у карты динамический, то есть по мере приближения таксиста к клиенту зум будет увеличиваться и карта будет всё подробнее и подробнее. Вполне можно использовать как альтернативу GPS навигатора :) 

Tuesday, February 12, 2013

Настройка HP iLO в Linux

iLO - HP Integrated Lights-Out (iLO) сервис на HP серверах, позволяющий менджерить сервера. Это отдельный чип на самом сервере, который имеет веб интерфейс. Можно, например перезапустить сервер. Или, посмотреть состояние железа. Даже, если ОС повисла. iLO автономен. 
Настроить iLO можно, перезапустив компьютер, нажав F8. Это можно также сделать без перезагрузки. Для этого есть свои утилиты. Первым делом, меняем sources.list файл. Добавляем туда репозиторий HP
vi /etc/apt/sources.list
Добавим
deb http://downloads.linux.hp.com/SDR/downloads/ProLiantSupportPack/ lucid current/non-free  

и запустим
apt-get update  
После чего надо поставить утилиту от HP
[root@somewhere ~]# apt-get install hponcfg
После этого экспортируем существующие настройки iLO  в файл этой утилитой
 [root@somewhere ~]# hponcfg -a -w iloconfig.cfg  
 Firmware Revision = 2.05 Device type = iLO 2 Driver name = hpilo  
 RILOE II/iLO configuration successfully written to file "iloconfig.cfg"  
Открываем файл iloconfig.cfg  и меняем настройки, например отключаем DHCP
<dhcp_enable value="N">
настраиваем IP
<ip_address value="192.168.0.244">
<subnet_mask value="255.255.255.0">
<gateway_ip_address value="192.168.0.1">
Далее прописываем назад в iLO измененный XML файл с новыми настройками
[root@somewhere ~]# hponcfg -f iloconfig_new.cfg  
Firmware Revision = 2.05 Device type = iLO 2 Driver name = hpilo  
Integrated Lights-Out will reset at the end of the script
А теперь заходим в iLO через браузер - https://192.168.0.244 :)

Friday, February 8, 2013

Задержка при записи на диски. Проблема с кэшем на HP Smart Array P411

Имеется следующая система: сервер и к нему подключен disc enclosure через HP Smart Array P411 - SAS/SCSI  с 256 мегами кэша райд контроллер. Система (Линукс) видит накопитель, видит файловую систему. Если мы копируем файл с винта на сторедж, даже простой командой  
cp /home/las97/test.txt /usr/storage/ 
возникает задержка в несколько секунд, прежде чем файл будет скопирован. Причем, если данных много, все то, что не скопировалось идет в буфер, и загрузка системы достигает 100%.

Решение такое: надо было поиграть с настройками кэша. Включил кэш на жестких дисках и  поменял cache ration на контроллере. По умолчанию было 50% write, 50% read. Поставил 10% write и 90% read. Все забегало!



Производитель также советует поставить следующую конфигурацию в системе:
echo "noop" > /sys/block/cciss\!c0d0/queue/scheduler 
blockdev --setra  4096 /dev/cciss/c0d0
echo 512 > /sys/block/cciss\!c0d0/queue/nr_requests
echo 2048 > /sys/block/cciss\!c0d0/queue/read_ahead_kb



Friday, January 18, 2013

Настройка UID/GID в NFS Client в Windows

Есть проблема: надо примонтировать сетевой NFS диск с пользователем у которого UID=1003.

Работает в Windwos с NFS Client. По умолчания в Windows нигде нет такого поля. Команда
net use или mount тоже не позволяют это сделать. Зачем это надо? Нужно, что бы у созданных пользователем файлов были правильный владелец (для Linux/Unix систем). Иначе не будет корректно работать инфосистема. Открываем regedit.exe
Ищем ключ Locate HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\ClientForNFS \CurrentVersion\Default 
Добавляем новые ключи DWORD ключи AnonymousUid и AnonymousGid
Даем им нужный UID/GID. Далее монтируем диск:

C:\Windows\system32>mount -o sec=sys anon \\192.168.0.11\manager Z:
Z: is now successfully connected to \\192.168.0.11\manager
 Работает, ура


Не запускается NFS Client for Windows

Столкнулся с проблемой: остановил NFS Client сервис и больше он не поднялся.
Выдает ошибку:
"The Client for NFS service on local computer started and then stopped. Some services stop automatically if they are not in use by other services or programs" 

Если запускать из Services for Network File System (NFS) тоже ругается:
unknown error 8004101d

В ивнет логе такая запись:
  Windows(R) failed a request to initialize the Network File System (NFS) redirector <[d:\w7rtm\base\fs\remotefs\nfs\client\nfsclient\service.c:199] : 0: The operation completed successfully.

Решение проблемы : открываем cmd.exe

C:\Windows\system32>sc stop NfsRdr

SERVICE_NAME: NfsRdr
        TYPE               : 2  FILE_SYSTEM_DRIVER
        STATE              : 1  STOPPED
        WIN32_EXIT_CODE    : 0  (0x0)
        SERVICE_EXIT_CODE  : 0  (0x0)
        CHECKPOINT         : 0x0
        WAIT_HINT          : 0x0

C:\Windows\system32>nfsadmin client start

The service was started successfully.
Работает, ура

Saturday, January 12, 2013

Добавляем startup скрипты в MAC OS X

Понадобилось мне примонтировать жесткие сетевые диски в Мак оси. Делается это как и в Линукск командой mount. Усложним задачу - сделаем монтирование при загрузке системы. У меня MAC OS 10.6 (Snow Leopard).
В Линукс это делается просто - fstab. В MAC OS X нет fstab. Точнее файл есть, но не используется. Сделать просто shell script и поставить его при загрузке не так уж и тривиально.
Рассмотрим, как все сделать из консоли. Первым делом, пишем шелл скрипт:

cat mountdrv.sh
#!/bin/bash
mount -o soft,intr,rsize=8192,wsize=8192 192.168.0.11:/data/arch /usr/arch

Монтируем \\192.168.0.11\data\arch в /usr/arch
Даем права на запуск, 644, например.
chmod 644 mountdrv.sh

Далее нам надо поставить скрипт на загрузку. Для этого надо создать plist файл. Это проперти файл для системного агента launchctl. 


cat test1.plist




Что надо знать:
RunAtLoad когда грузить
ProgramArguments что грузить
UserNameroot кем грузить

Кладем файл в /Library/LaunchDaemons для буут скрипта, в /Library/LaunchAgents для логин скрипта. Для буут скрипта owner - root, для login скрипта   - user

Далее надо зарегистрировать скрипт командой launchctl load test1.plist

Перед эти надо дать нужные права файлу. Например с 777 работать не будет

root# ls -lt
-rwxrwxrwx  1 root  wheel  449 Jan 12 10:28 test1.plist
root#launchctl load test1.plist
launchctl: Dubious permissions on file (skipping): test1.plist nothing found to load
Работает только с 644.
root# chmod 644 test1.plist
root# ls -lt
-rw-r--r--  1 root  wheel  449 Jan 12 10:28 test1.plist
root#df -h

Filesystem                          Size   Used  Avail Capacity  Mounted on

192.168.0.11:/data/arch      20Ti  2.9Ti   17Ti    15%    /usr/arch

Что касается папок для launchctl , нашел такую справку
Applications that run on Startup:
/Library/StartupItems
plist items running on startup:
/Library/LaunchDaemons
/System/Library/LaunchDaemons
Applications that launch on User Login:
* First check your “Login Items” for that user account within the Account settings of System Preferences
~/Library/LaunchAgents
/Library/LaunchAgents/
/System/Library/LaunchAgents/

Если кто-то знает проще метод, дайте знать.

Sunday, December 30, 2012

А вы делаете code review?

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

Недавно ковырялся с FireBugo-ом и нашел в JS комментарии, которые не убрали (или не убирали, или оставили). Вроде все работает, но это показывает, что код скорее всего не просматривали перед релизом. Скрин взят с известного сайта. :)


Еда и сгоревший киоск

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

Saturday, December 1, 2012

Как я правил SWF файл.

После переезда сервера надо было поменять некоторые ссылки. В том числе и во одном флеш ролике. Это несложно, но надо иметь софт. А такой софт обычно стоит денег. Что же делать? 
Я использовал утлиту flasm. Она бесплатная и  есть в репозитороии Debiana. Даже в Lenny. Ставим
apt-get install flasm
Затем этой утлитой распаковываем swf
flasm -x test.swf
Получаем бинарник. Ссылка хранится теперь в файле plain текстом. Тут можно уже поменять  простым редактором.
Собираем назад
flasm -z test.swf



Flasm 1.62 build Apr 26 2008

(c) 2001 Opaque Industries, (c) 2002-2007 Igor Kogan, (c) 2005 Wang Zhen
All rights reserved. See LICENSE.TXT for terms of use.

Usage: flasm [command] filename

Commands:
   -d     Disassemble SWF file to the console
   -a     Assemble Flasm project (FLM)
   -u     Update SWF file, replace Flasm macros
   -b     Assemble actions to __bytecode__ instruction or byte sequence
   -z     Compress SWF with zLib
   -x     Decompress SWF



Ну или напишем скрипт, например на питоне (спасибо коллеге за идею):


#!/usr/bin/python

import os

OLD = 'https://192.168.1.27/test.cgi'
NEW = 'https://192.168.1.17/test.cgi'

assert len(OLD) == len(NEW)

with open('test.swf','rb') as f:
    d = f.read()

q=d.replace(OLD, NEW)

with open('test.modified.swf','wb') as f:
    f.write(q)



Monday, September 24, 2012

Linux: как стереть из папки файлы старше 24 часов

Сейчас поднимал маленький кеш сервер. Надо хранить билды, но те, что  не старше 24 часов. Как это сделать?

Сервак простой Apache (с LDAP - см. далее). Как идет синхронизация не так важно. Как стереть ненужные файлы? Можно сделать шелл-скрипт. Но это все делается одной строкой:

find /var/www/* -mmin +1440 -exec rm {} \;

Что делает эта команда?

Найти в  папке /var/www/ все файлы и директории, которые были изменены как минимум 1440 минут назад (сутки), и для каждой найденной исполнить удаление. {} означает имя найденного файла, а \; - конец команды. Без него не работало у меня.

Все можно найти на man find
  Measure  times  (for  -amin,  -atime,  -cmin, -ctime, -mmin, and
       -mtime) from the beginning of today rather than  from  24  hours
       ago.   This  option only affects tests which appear later on the
       command line.
-exec command {} + This variant of the -exec option runs the specified command on the selected files, but the command line is built by appending each selected file name at the end; the total number of invoca- tions of the command will be much less than the number of matched files. The command line is built in much the same way that xargs builds its command lines. Only one instance of '{}' is allowed within the command. The command is executed in the starting directory.


/var/www/  - папка моего Апача. А скрипт надо вставить в CRON.
crontab -e

и вставляем последней строчкой 

0 1 * * * find /var/www/* -mmin +1440 -exec rm {} \;

Все просто.

Tuesday, August 14, 2012

WSUS console не видит HyperV машины

Столкнулся с проблемой, что консоль WSUS сервера не видит виртуальные компьютеры.

Немного о проблеме. Имеется несколько хостов с HyperV ролью. На них я с одного VHD поставил около 10ти идентичных машин (Windows XP). Добавил машины в домейн, настроил в GPO Windows Update. В домейне есть отдельно свой WSUS сервер. Так вот этот WSUS сервер видел только один компьютер из 10ти. Причем имена рандомным образом менялись. 



Первая мысль, что пришла в голову - поменять SID у компьютеров. Но тут меня ждал облом. Во-первых SID был разный, а во-вторых WSUS не использует его для идентификации. Так же не использует они MAC, IP, PC name. Прочитал тонну материала. В каждом виртуальном компе есть ключи

  •  HKLM\Software\Microsoft\Windows\CurrentVersion\WindowsUpdate


SusClientId
SusClientIDValidation

Они то и оказались одинаковыми. Почему так, это отдельная история. Стер ключи из реестра.
Дальше надо запустить команду
wuauclt /resetauthorization /detectnow
Ждем, и чудо

Friday, August 10, 2012

Event Forwarding. Part 1

Представим, у вас десятки Win машин в домейне. Как получить со всех Event Logs?
Существует возможность смотреть логи централизованно в одном месте.

Что для этого надо? Для этого надо на одном из серверов настроить Windows Event Collector Service.
Запустите этот сервис на своем сервере.

Теперь надо открыть Event viewer и там настроить подписку. Правый щелчёк, Create subscription
Если вы не включили сервис, появится сообщение
Настраиваем ивенты, выбираем компьютеры и порт, по которому будет проходить общение.
А после чего надо настроить клиенты. Проще всего это сделать через GPO. Об этом скоро.


I am back

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

Буду дальше писать. По части техническое -  сменил работу и есть о чем рассказать.

Wednesday, February 1, 2012

Logoff для RDP сессии

Я балда! Сделал последний раз не LogOff в RDP сессии, а просто закрыл окошечко. Такие ошибки недопустимы. В итоге такое вот сообщение:
У меня есть только один пользователь - админ (к счастью). Сервер не виртуальный, так что добрые утилиты не помогут. Сервер в другом конце города, а ну улице -19. Ехать так лениво.
Есть выход. Можно зайти утилитой mstsc с ключом /admin.


И магия. мы попали в наш сервер. Идем в taskmanager и "убиваем" всех юзеров :)


Monday, January 30, 2012

Страх быть одному.

Прочел одну статью. Из-за соображений копирайта, помещаю ссылку на нее.

http://www.snob.ru/selected/entry/45522

Суть такова, что люди в наше время не могут быть сами с собой. Без интернета и ТВ. Люди начинают сходить с ума, даже после 5ти часов одиночества. Людям не чем заняться. И это пугает на самом деле. А ведь в мире столько интересного помимо Фейсбука и Ютуба :)

Думаю попробую провести один день без телефона и компа (телек я не смотрю практически).

Tuesday, January 24, 2012

Shopping online is meant to be easy

Забавный ролик, который показывает нам, как происходит покупка в интернете :)

Monday, January 23, 2012

Очерки будущего компьютера. 1982 год.

Поистине пророческое высказывание, принадлежащее В. М. Глушкову, было написано в книге «Основы безбумажной информатики» (1981—1982):
Безбумажная информатика развивается исключительно быстрыми темпами <…> Наиболее рьяные апологеты телематики предсказывают, что уже недалёк тот день, когда исчезнут обычные книги, газеты и журналы. Взамен каждый человек будет носить с собой «электронный» блокнот, представляющий собой комбинацию плоского дисплея с миниатюрным радиопередатчиком. Набирая на клавиатуре этого «блокнота» нужный код, можно (находясь в любом месте на нашей планете), вызвать из гигантских компьютерных баз данных, связанных в сети, любые тексты, изображения (в том числе и динамические), которые и заменят не только современные книги, журналы и газеты, но и современные телевизоры

Saturday, October 29, 2011

NOIZE SUPPRESSOR!!!!

И снова про тусовку, и снова гость c Qlimax-a. На этот раз потяжелее - NOIZE SUPPRESSOR, кто играют hardcore.
Все будет происходить 12.11.2011 в Club Überblingen.
Цена 9€, на месте 11€
ВИП 20€