DOU Labs: Infopulse створили Standards Compliance Manager – додаток для дотримання стандартів

У рубриці DOU Labs ми запрошуємо IT-компанії ділитися досвідом власних цікавих розробок і внутрішніх технологічних ініціатив. Питання і заявки на участь надсилайте на [email protected] .

Привіт, мене звати Ірина Сигова. Я — Product Manager в Infopulse . Разом зі своєю командою ми займаємося розвитком, розробкою і продажем продукту Infopulse Standards Compliance Manager . Це інструмент, який дозволяє організаціям оцінювати свій поточний рівень безпеки і спрощує дотримання вимог безпеки та конфіденційності. У цій статті розповім, чому, навіщо і як ми його створювали.

Проблема

Наша компанія надає ІТ-послуги вже багато років. І ми робимо це системно і якісно. Але що таке «системно і якісно»? Не можна просто прийти до клієнта і сказати: «Ми постараємося написати хороший код» або «Ми будемо надійно зберігати і обробляти ваші дані». Це непереконливо. Набагато краще працюють фрази на кшталт: «Ми гарантуємо інформаційну безпеку на рівні ISO 27001 ». Більш того — деякі організації і розмовляти з вами не почнуть, поки ви не скажете цього.

І ось перед нами постає завдання реально відповідати цим (та деякими іншими) стандартам. У нас в компанії працюють люди, які пам'ятають ще часи, коли стандартів було настільки мало, а самі вони були настільки простими, що для їх реалізації (та складання звітності з них) вистачало, загалом, текстового редактора та поштового клієнта. Хороші були часи, але вони давно пройшли.

Сучасні стандарти — величезні. В тому ж стандарті безпеки ISO 27001 — близько 1700 різноманітних вимог, які застосовуються до всіх аспектів діяльності компанії. Все це потрібно реалізувати, перевірити, задокументувати і лише після цього можна сподіватися пройти аудит і отримати заповітну межу:

Очевидно, що простих інструментів, на зразок текстового редактора і поштового клієнта, для виконання завдань такого масштабу вже недостатньо. Люди починають «тонути» в паперовій роботі. Підтримання порядку в розрізненому наборі документів вимагає колосальних зусиль. Файли зберігаються в різних місцях, мають кілька версій. Що існує тільки на папері, щось в електронному вигляді. Втрачається контроль над ситуацією. Створити на основі всього цього правильний і актуальний звіт з безпеки стає надзавданням.

Це була реальна ситуація, в якій ми опинилися. І усвідомили, що з цим терміново треба щось робити. Нам потрібен був правильний інструмент, який би гарантував правильний результат.

Ідея

Наш відділ безпеки витратив деякий час на огляд ринку вже існуючих рішень — дещо справді існувало, наприклад Microsoft (Compliance Manager), або продукт RSA (Archer). Ми читали опису продуктів, пробували їх демоверсії. Перебрали все, що вдалося знайти. І нічого не підійшло: де-то не було підтримки всіх потрібних нам стандартів, десь- можливостей кастомізації, деякі продукти морально застаріли, інші не підтримувалися.

Вибору не залишалося — інструмент потрібно було створювати самим. Так народилася ідея написання Infopulse Standards Compliance Manager . Ми хотіли зробити інструмент, який дозволив би зібрати і впорядкувати всі процеси і дані, пов'язані з підтримкою різноманітних стандартів в компанії. Зробити неможливими неправильні дії, рассинхронизацию, втрату інформації, неоптимальні шляхи вирішення проблем.

Користувач повинен бути впевнений у тому, що, якщо все робити так, як того вимагає інструмент, — в результаті буде отримано повністю придатний для проходження сертифікації (наприклад, ISO) набір документів.

Вимоги і вибір технологій

Ми вирішили робити web-додаток. Для Backend були обрані Java 8 Spring Boot 1.5. Класичне надійне enterprise-рішення. У нас в таких речах великий досвід. Над клієнтською частиною думали, було зроблено кілька proof-of-concept. Зупинилися на Angular , друга версія якого тоді ще була в Beta (але ми її все одно взяли) і бібліотеки компонентів для нього під назвою PrimeNG .

Однією з причин вибору Angular було бажання команди працювати над Backend та Frontend в одному, об'єктно-орієнтованому стилі (багато розробники прийшли з Java), а Angular дозволяв писати на Typescript. Крім того, ми відразу вирішили створювати Single-page application — а це те, в чому Angular ну дуже гарний. Плюс до нього є величезна кількість доповнень і розширень — ризик не знайти чогось потрібного був мінімальний.

Що стосується баз даних — нам було поставлено завдання підтримувати як мінімум Oracle, MySQL і MSSQL. Більше того, ми повинні були дати можливість використання безкоштовних версій цих продуктів (Oracle XE і ms sql Express ). Якщо якісь наворочені можливості БД не потрібні — навіщо за них платити?

Процес розробки

У команді розробки у нас близько 12 осіб (включаючи продакт-оунера і скрам-майстра) При цьому з нами постійно працюють 3 UX-спеціаліста, які аналізують користувальницьке поведінку. Важливо не тільки зробити, що користувач «хоче», а що йому «треба», що насправді вирішить його болі і проблеми. Результати таких інвестицій не змушують себе довго чекати, ми часто отримуємо позитивні відгуки про сучасність і інтуїтивності нашого продукту (особливо в порівнянні з подібними продуктами на ринку).

Команда Infopulse Standards Compliance Manager

З точки зору розробки і запуску продукту на ринок, його продажів, ми працюємо як справжній стартап, з дуже гнучкими підходами, постійно експериментуємо і міняємо процеси, всі відчуваємо на власному досвіді. Не так давно все ж вирішили звернутися до теорії і best practices, щоб ще покращити ефективність наших процесів. Працюємо по scrum, в розвитку продукту спираємося на основи Lean startup. Наприклад, перш ніж інвестувати час у велику розробку чогось нового, робимо прототип, тестуємо на користувачів, отримуємо зворотній зв'язок і вже розробляємо, що користувачеві потрібно. Так ми, наприклад, розробили наші дашборды, зробили прототип веб - і мобільної версії і показали на виставці в Німеччині (отримали багато корисної зворотного зв'язку).

Що стосується інструментів, які підтримують нас у нашій гнучкому підході, для планування роботи і підтримки процесу розробки, використовуємо Microsoft TFS . Це не зовсім типово для scrum і Java-стека, але наша компанія — партнер Microsoft, досвід використання її продуктів у нас великий. Так що якщо є корпоративний (і добре налаштований) TFS-сервер, то чому б його не використовувати? Тим більше він вже давно нормально підтримує і Agile-розробку, і Git в якості сховища коду. Там у нас все — спринти, завдання, баги. Налаштований Continuous Integration — при злитті кожного pull request запускається збірка на білд-агента, проганяються тести. До речі, що стосується коду і пул-реквестов — є певні вимоги щодо їх якості. Наприклад, кожен pull request повинен бути схвалений мінімум трьома розробниками. Чим більше очей побачить код — тим менше шансів пропустити у ньому помилку.

Код пишемо тести (і юніт, і авто). Тестові методи аннотируются, що дозволяє Maven'у при складанні проекту автоматично вибрати і виконати всі тести.

Використання бази даних

У проекті використовується такий інструмент, як Liquibase . Додаток зберігає всю історію змін структури бази даних і сама оновлює БД при необхідності. Це дуже зручно — не потрібно підтримувати ніяких зовнішніх скриптів, ми завжди точно знаємо, що база даних цілісною, а код відповідає її структурі.

Адаптація нових технологій

Продукт починався і продовжує розвиватися з наміткою на використання останніх доступних технологій. Той же регулярний перехід на нові версії Angular дозволяє нам, з одного боку, гарантувати більш високу безпеку (багато в оновленнях цього продукту сфокусована саме на цьому), а з іншого — підтримувати інтерес розробників до продукту. Аналогічно і з Backend — ми переходимо на Java 11 Spring boot 2.1. Ще один момент — більш сучасний стек технологій, який виділяє нас серед інших продуктів. Коли ми беремо участь на профільних виставках, перше, що нам кажуть (ще до знайомства з функціоналом), — це наскільки сучасно візуально виглядає продукт.

Deploy

Передбачається, що продукт буде розгортатися на серверах замовника. Оскільки Backend написаний на Java, ми маємо можливість запускати його і на Linux, і Windows-машинах. Також незабаром плануємо розпочати його поширення через Azure (зараз йде підготовка образу з останньою версією продукту та його тестування). Також ми можемо зробити для замовника образ віртуальної машини, Docker-контейнер або розглянути будь-які інші варіанти установки, які підійдуть для його інфраструктури.

Навантаження і масштабованість

Спочатку у системи було одне бачення (підтримка лише стандартів інформаційної безпеки), але зараз наша материнська компанія EVRY , яка має величезні масиви інформації, ставить перед нами більш високі вимоги. Нещодавно ми зробили навантажувальне тестування: результати показали, що ми нормально «тримаємо» навантаження до 100 000 вимог в одному стандарті. Оскільки на практиці максимум, що нам зустрічалося, це стандарт на 1700 вимог, можна сказати, що у нас є дуже великий запас по навантаженні на систему. Але потрібно розуміти, що цифра в 100 000 взята «зі стелі» — якщо взяти таку компанію, як EVRY, і зібрати абсолютно всі вимоги абсолютно всіх стандартів, що використовуються в різних департаментах, то десь стільки і вийде. Звичайно, нікому не знадобиться використовувати їх одночасно, але ми потенційно готові навіть до такого сценарію.

З приводу кількості користувачів — спочатку передбачалося, що це рішення тільки для Security Officers. Навіть у великих організаціях їх не так багато — одиниці або максимум десятки. Але потім почали говорити про те, що ми хочемо підтримувати і інші стандарти, не тільки в області безпеки. Сам продукт перейменувався з Security Compliance Manager в Standards Compliance Manager. І виходить, що теоретично дуже багато фахівці компанії можуть мати необхідність попрацювати в такому інструменті в тих аспектах, які стосуються стандартів їх професійної сфери.

Тут, звичайно, навантаження будуть зовсім іншими. Ми використовуємо Tomcat в якості сервера додатків, він нормально тримає до 1000 клієнтських з'єднань в базовій конфігурації. Цього вже вистачить для більшості клієнтів. Якщо потрібно більше, ми пропонуємо горизонтальне масштабування. Оскільки сама програма розроблялася як stateless, можна додати скільки завгодно серверів додатків (а при необхідності — і баз даних), і все буде добре працювати. При цьому у нас дуже скромні системні вимоги до заліза — чогось типу Intel Core i5 + 8 Гб ОЗУ вже достатньо для нормальної роботи.

Робота з системою

Частина роботи Security Officer полягає в оцінці вимог стандартів або законодавств на відповідності. Приклад того, як це здійснюється, в нашій системі виглядає так: у нас є певна структура стандарту — це вимоги, загрози та заходи щодо запобігання загроз (Safeguards). Під кожним вимогою може бути багато загроз, під кожною загрозою — багато заходів по запобіганню. Для кожного вузла на основі заповнених для нього даних ми розраховуємо його статус, він відображається певним кольором. Колір самого нижнього «листа» дерева буде зеленим тільки тоді, коли за нього заповнена вся інформація, і її достатньо, щоб закрити цей аспект повністю. Колір батьківського вузла буде зеленим тільки тоді, коли зеленими є всі його діти. Таким чином, відкривши дерево, ми відразу бачимо поточний стан справ: де все вже добре, де ще належить робота, а де у нас поки що є проблеми.

Звіти

Одним з найбільш важливих для кінцевого користувача модулів є наша система звітів — саме вона створює ті документи, які будуть використані при аудиті. Зараз звіти у нас вбудовані, і їх список фіксований згідно з підтримуваними стандартами. Але ми йдемо до того, щоб дати користувачу можливість створювати і завантажувати нові шаблони звітів, які точно будуть необхідні для повноцінної підтримки нових стандартів. Наші звіти побудовані на фреймворку JasperReports (ідеологічно він дуже схожий на добре відомий Crystal Reports ). Він дозволяє для кожного звіту зробити XML-шаблон, описує його структуру. Можливі прості варіанти, заповнюють звіт готовими даними, можна писати обробники, передають управління в код, і що-то розраховувати на льоту. У підсумку генеруються звіти у форматах PDF або XLS.

Додавання нових видів звітів зажадає додаткової функціональності — нам будуть потрібні не тільки функції створення і редагування шаблону звіту, але і можливості розділення прав доступу між користувачами або їх групами. Ми плануємо зробити щось на зразок конструктора нових звітів. Такий конструктор вже існує для JasperReports у вигляді десктопної утиліти, її вже зараз можна використовувати, але нам цей шлях не подобається. Це вимагає від користувача установки, додає системі платформену залежність, і цей шлях точно буде джерелом проблем для нас-хоча б тому, що вимагає від користувача знання структури нашої внутрішньої бази даних. А от якщо ми дамо можливість створити звіт прямо всередині нашого інструменту, то зможемо надати користувачеві набір примітивів, яким будемо можна користуватися без глибокого знання внутрішньої структури нашої програми і бази даних.

Додавання нових стандартів

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

Практичне застосування

Що стосується внутрішнього використання продукту відділом безпеки Infopulse, то воно вже давно перестало бути «внутрішнім». З 2017 року, коли почалася розробка першої версії продукту (який, до речі, називався ще Security Compliance Manager), ми розширили область застосування інструменту, і тепер користувачі SCM не обмежені тільки правилами та фреймворками безпеки, а можуть застосовувати наш інструмент в різних областях (безпека, контроль якості процесів тощо) та індустрії (IT, фармацевтика, автомобілебудування тощо); можуть оцінити свою компанію, її активи і процеси на відповідність (compliance) певним стандартам і правилам. Розширивши призначення галузі використання продукту, ми також зробили ребрендинг і змінили назву продукту на Standards Compliance Manager. Слоганам продукту стали слова «Any standard, any process».

Сьогодні ми використовуємо SCM не тільки для себе, але і надаємо послуги нашим клієнтам. Комусь потрібно підготуватися до сертифікації ISO, комусь підтримувати GDPR, комусь Secure Software Development Lifecycle (SDLC). Маючи можливість створити в SCM багато профілів організацій, ми можемо надати всі ці послуги. Або клієнт може купити наш продукт і займатися цим вже особисто, на своїх серверах.

За відгуками Security Officers Infopulse, які застосовують SCM на практиці кожен день, вони нарешті отримали реальну систему для реальних людей і реальних завдань. Інструмент відповідає поточним потребам і продовжує розвиватися.

Подальші плани

На даний момент в продукті заплановано досить великий відсоток стратегічної розробки нових модулів і функцій. Така розробка значно розширить можливості і додасть цінності нашого рішення і кінцевому користувачеві. В той же час постійно з'являються конкретні запити, які ми беремо в розробку.

Детальніше почитати про продукт і реалізацію можна подивитися на відео.

Опубліковано: 21/03/19 @ 11:00
Розділ Різне

Рекомендуємо:

Програмування без негативу: як виконувати поточну роботу й зберігати спокій
DOU Проектор: ReSell – безпечна купівля та продаж вживаної електроніки
Як просувати сайт послуг на західному ринку: 5 методів
Як визначити і оцінити цінність розроблюваного ПО
PHP дайджест #19: реліз xDebug, нові RFC, робимо сайти швидкими