Systemy bazodanowe
Prowadząc dochodzenia związane z informatyką śledczą. Coraz częściej zetkniemy się z potrzebą zabezpieczenia systemów bazodanowych. Jest to pojęcie szerokie i o nieostrych granicach. Mam tu głównie na myśli systemy księgowe, finansowe, systemy do zarządzania projektami i dokumentami, ERP-y, CMS-y itd.
Systemy te mają zwykle podobną architekturę. Jeżeli ktoś zetknął się z architekturą LAMP (Linuks, Apache, MySQL, PHP) bez trudu spostrzeże podobieństwa.
Tego typu systemy składają się bowiem z:
- Bazy danych zawierającej wszystkie przetwarzane informacje. Zwykle bazą danych jest MSSQL, Oracle, Postgres lub MySQL.
- Oprogramowanie serwera, które zapewnia warstwę logiczną dla danych bazodanowych, przeprowadza autoryzację i udostępnia dane.
- Oprogramowanie klienta, które służy do połączenia się z systemem i pracy na nim.
Kilka przykładów.
W przypadku LAMP:
- Bazą danych jest MySQL,
- Oprogramowaniem serwera są skrypty PHP i serwer Apache,
- Klientem jest przeglądarka internetowa.
Dla niewtajemniczonych w tę dziedzinę wiedzy, cały nowoczesny internet, czyli większość stron które na co dzień oglądasz, oparty jest na architekturze LAMP lub na alternatywnych rozwiązaniach tego typu.
SharePoint, Document Managment System z Microsoftu:
- Baza: MSSQL,
- Serwer: skrypty ASP udostępniane przez serwer IIS,
- Klient: również przeglądarka
SAP – rozbudowany system ERP służący do zarządzania przedsiębiorstwem:
- Baza- MSSQL lub Oracle.
- Serwer – napisany i udostępniany w całości przez SAP. Zawiera rozbudowaną warstwę logiczną.
- Klient – typowa aplikacja Windows udostępniana przez SAP jako cześć pakietu. Rozbudowany interfejs użytkownika.
Zabezpieczając dowód na potrzeby informatyki śledczej należy zawsze mieć na uwadze sposób w jaki będzie on później przetworzony. Zwykle nie będzie sensu zabezpieczać czegoś, czego nie będziemy w stanie później przeanalizować. W przypadku systemów bazodanowych ma to szczególne znaczenie, gdyż są to systemy niestandardowe i różnorodne.
Podstawową opcją będzie zabezpieczenie samej bazy danych. Dzięki temu będziemy posiadali wszystkie informacje zawarte w systemie, na przykład cały system księgowy. Jest to dobra opcja jeżeli baza nie jest zbyt skomplikowana. Zetkniemy się jednak z przypadkami, takimi jak SAP kiedy baza danych posiada tysiące tabel z dziesiątkami kolumn każda. Zrozumienie struktury be oryginalnego oprogramowania będzie niezwykle pracochłonne i trudne. Zwłaszcza, że nazwy tabel i pól są w tym przypadku niezbyt pomocne.
Zaradzić możemy sobie w różny sposób:
- Poprzez zabezpieczenie pozostałych elementów – bazy, serwera, a czasami klienta (nie ma potrzeby zabezpieczania przeglądarki oczywiście) i późniejsze odtworzenie całego środowiska. Można w tym celu użyć maszyny wirtualnej lub skompletować środowisko ręcznie. Pamiętajmy jednak o wymaganiach licencyjnych danego oprogramowania.
- Użycie aplikacji klienckiej do zabezpieczenia dowodów – systemy księgowe będą często miały opcję eksportu danych. W wielu innych przypadkach możemy być zmuszeni do ręcznego kopiowania lub zrzutów ekranu.
Czasami, na przykład w przypadku SharePoint’a będą istniały dedykowane aplikacje do zabezpieczania dowodów, na przykład Nuix lub SharePoint Collector firmy PinPoint Labs. Jest to jednak raczej wyjątek niż reguła. W pozostałych przypadkach tylko dogłębna wiedza na temat danego systemu pomoże nam w podjęciu właściwej decyzji w sprawie zabezpieczenia.