Jednym z największych przyjaciół każdego programisty jest automatyzacja. Komputery z natury rzeczy nie robią pomyłek i jeżeli tylko zostaną prawidłowo skonfigurowane, mogą wykonywać za nas powtarzalne zadania, oszczędzając nam pracy, ale też równolegle ograniczając prawdopodobieństwo powstania w czasie tego procesu niepożądanych błędów. Generowanie kodu źródłowego to jedno z takich zadań; warto przyjrzeć się bliżej temu rozwiązaniu, bo ma ono wszystkie zalety kopiowania kodu, ale jest pozbawione jego wad.
Smartwatche dla wielu są już elementem codzienności. Każde takie urządzenie to mały komputer pełen funkcjonalności, jak komunikacja ze smartfonem, monitorowanie tętna czy GPS. Niewiele z nich oferuje jednak użytkownikom dostęp do pełni swojego potencjału. Wyjątkiem pozostają tu zegarki firmy Garmin (opisywane w jednym z poprzednich wydań magazynu Programista), a także urządzenia z serii Bangle.js będące częścią otwarto źródłowego projektu Espruino – interpretera języka JavaScript na mikrokontrolery.
Przez ostatnie lata bezpieczeństwo cyfrowe urządzeń IoT zależało od dobrej woli producentów. Ponieważ żadne przepisy nie wymuszały konkretnych standardów ochrony, do domów konsumentów trafiało mnóstwo urządzeń z poważnymi podatnościami. Problem w końcu dostrzegła Unia Europejska i rozwiązała go jednym rozporządzeniem. Wkrótce produkty, które nie zapewnią odpowiedniego poziomu zabezpieczeń, będą… nielegalne. I choć brzmi to jak temat dla prawników, w praktyce to programiści systemów wbudowanych będą mieli ręce pełne roboty.
W poprzednim artykule przedstawiony został Ludus. Dla przypomnienia, Ludus to otwartoźródłowy system do budowania i zarządzania środowiskami typu cyber range, czyli izolowanymi, powtarzalnymi laboratoriami cyberbezpieczeństwa przeznaczonymi do testów, badań, szkoleń, developmentu, ćwiczeń red team, blue team oraz purple team, a jego główna wartość polega na tym, że zamiast ręcznie konfigurować wiele maszyn wirtualnych, sieci, domen Active Directory, hostów linuksowych, stacji roboczych, segmentów sieciowych i mechanizmów dostępu, użytkownik opisuje oczekiwane środowisko w sposób zautomatyzowany, a Ludus zajmuje się jego utworzeniem, wdrożeniem i utrzymaniem na bazie Proxmox, Packer oraz Ansible.
Współczesne systemy coraz częściej opierają się na automatyzacji procesów i integracji wielu usług w jedną spójną całość. Narzędzia takie jak n8n pozwalają w prosty sposób łączyć różne systemy, przetwarzać dane i budować zaawansowane workflow bez konieczności pisania dużej ilości kodu. Taki poziom integracji niesie jednak za sobą istotne ryzyko – pojedyncza luka bezpieczeństwa może prowadzić do przęjęcia całego środowiska. W tym artykule przeanalizujemy krytyczną podatność w n8n, której skutkiem może być nieautoryzowany dostęp do systemu oraz wykonanie dowolnego kodu.
Komisja UE zapewnia wsparcie techniczne, doradztwo i narzędzia do celów ustanowienia i działania piaskownic regulacyjnych w zakresie sztucznej inteligencji. Obowiązek może również zostać spełniony poprzez uczestnictwo w istniejącej piaskownicy w zakresie, w jakim udział ten stwarza równoważny poziom zasięgu krajowego dla uczestniczących państw członkowskich.
W numerze 113 (3/2024) „Programisty” ukazał się mój artykuł pt. „Ile kosztuje >>darmowe<< oprogramowanie”. Przedstawiłem w nim przegląd ukrytych kosztów i ryzyk, związanych z używaniem wolnego i otwartego oprogramowania we własnych projektach. Choć mogą być one niemałe, to ich znajomość i zrozumienie pozwala na podejmowanie świadomych decyzji i sprawiać, że stanie się ono atutem, a nie obciążeniem dla naszej organizacji. Niniejszy artykuł stanowi niejako uzupełnienie poprzedniego – tym razem skupię się nie na kosztach i ryzykach związanych z używaniem, lecz samym wytwarzaniem oprogramowania open source.
W latach burzliwego rozwoju polskiej techniki komputerowej pojawiały się różnorodne konstrukcje. Niektóre z nich były bardziej znane, ze względu na nowatorskie podejście, znane nazwiska projektantów, wielkość budżetu czy rozmach i poziom zaangażowania aparatu państwowego. Nie zawsze taka sława była zasłużona. Równolegle powstawało wiele konstrukcji prototypowych lub produkowanych w większych ilościach, ale z różnych przyczyn mniej znanych.