| ശീർഷകം         | വെയ്റ്റ് |
| -------------- | ----- |
| ഫാൽക്കോ ഡ്രൈവറുകൾ | 1     |

ഫാൽക്കോ ഒരു യന്ത്രത്തിലെ സിസ്റ്റം കോളുകളുടെ സ്ട്രീമിലേക്ക് ടാപ്പ്  ചെയ്യുകയും ആ സിസ്റ്റം കോളുകളെ യൂസർ സ്പേസിലേക്ക് കൈമാറുകയും ചെയ്യുന്ന ഒരു ഡ്രൈവറിനെ ആശ്രയിച്ചിരിക്കുന്നു.

 `falco` എന്ന കേർണൽ മൊഡ്യൂളാണ് ഡീഫോൾട്ട് ഡ്രൈവർ. പകരമായി, ഒരു eBPF പ്രോബ് ഉപയോഗിക്കാവുന്നതാണ്.

ഫാൽക്കോ പ്രോജക്റ്റിന് മൂന്ന് വ്യത്യസ്ത തരത്തിലുള്ള ഡ്രൈവറുകൾ ഉണ്ട്.

- കേർണൽ മൊഡ്യൂൾ 
- eBPF പ്രോബ് 
- യൂസർസ്പേസ് ഇൻസ്ട്രുമെൻറേഷൻ

## **കേർണൽ മൊഡ്യൂൾ**

ഫാൽക്കോ [debian/rpm](https://github.com/falcosecurity/falco-website/blob/master/docs/getting-started/installation) പാക്കേജ് ഇൻസ്റ്റാൾ ചെയ്യുമ്പോഴോ, [binary package](https://github.com/falcosecurity/falco-website/blob/master/docs/getting-started/installation#linux-binary) എന്നതിനുള്ളിൽ അയച്ച `falco-driver-loader` സ്ക്രിപ്റ്റ് റൺ ചെയ്യുമ്പോഴോ,അല്ലെങ്കിൽ `falcosecurity/falco-driver-loader` ഡോക്കർ ചിത്രം (മുകളിൽ പറഞ്ഞ സ്ക്രിപ്റ്റ് ഉൾക്കൊള്ളുന്നത്) റൺ ചെയ്യുമ്പോഴോ ഡീഫോൾട്ട് ആയി കേർണൽ മൊഡ്യൂൾ ഇൻസ്റ്റാൾ ചെയ്യപ്പെടും.
കേർണൽ മൊഡ്യൂൾ ഇൻസ്റ്റാൾ ചെയ്യുന്നതിന്, ദയവായി [installation](https://github.com/falcosecurity/falco-website/blob/master/docs/getting-started/installation/#install-driver) പേജ് പരിശോധിക്കുക.

ഫാൽക്കോ ഡീഫോൾട്ട് ആയി കേർണൽ മൊഡ്യൂൾ ഡ്രൈവർ ഉപയോഗിക്കാൻ ശ്രമിക്കുന്നു.

## **eBPF പ്രോബ്**

മുകളിൽ വിവരിച്ചിരിക്കുന്നതിന് പകരമായുള്ളതാണ് eBPF പ്രോബ്. സമീപകാല കേർണലുകളാൽ മാത്രം പിന്തുണക്കപ്പെടുന്ന ഒരു സവിശേഷതയാണ് eBPF എന്നത് ശ്രദ്ധിക്കുക.
eBPF പ്രോബ് ഇൻസ്റ്റാൾ ചെയ്യുന്നതിന്, ദയവായി [installation](https://github.com/falcosecurity/falco-website/blob/master/docs/getting-started/installation/#install-driver) പേജ് പരിശോധിക്കുക.
ഫാൽക്കോയിലെ eBPF പിന്തുണ പ്രവർത്തനക്ഷമമാക്കുന്നതിന്, `FALCO_BPF_PROBE` പരിതസ്ഥിതി വാരിയബിളിനെ ഒരു ശൂന്യമൂല്യമാക്കി സജ്ജീകരിക്കുക.(അതായത്, `FALCO_BPF_PROBE=""`), അതല്ലെങ്കിൽ eBPF പ്രോബ് സ്ഥിതിചെയ്യുന്ന പാതയിലേക്ക് അത് വ്യക്തമായി സജ്ജീകരിക്കുക.

## **യൂസർസ്പേസ് ഇൻസ്ട്രുമെൻറേഷൻ**

മറ്റ് ഡ്രൈവറുകളിൽ നിന്ന് വ്യത്യസ്തമായി, പേര് സൂചിപ്പിക്കുന്നത് പോലെ, യൂസർസ്പേസ് ഇൻസ്ട്രുമെൻറേഷനുകൾ 100% യൂസർസ്പേസിൽ ആണ് സംഭവിക്കുന്നത്.

ഫാൽക്കോ കമ്മ്യൂണിറ്റി, 0.24.0 ൽ യൂസർസ്പേസ് ഇൻസ്ട്രുമെൻറേഷൻ സവിശേഷതയെ ഫാൽക്കോയിൽ ഉൾപ്പെടുത്തുന്നതിനായി [official support](https://github.com/falcosecurity/evolution#official-support) എന്നതിലേക്ക് പ്രൊമോട്ട് ചെയ്തു.

എന്നിരുന്നാലും, യൂസർസ്പേസ് ഇൻസ്ട്രുമെൻറേഷനും മറ്റ് ഡ്രൈവറുകളും തമ്മിൽ ഒരു വ്യത്യാസമുണ്ട്. എഴുതുന്ന സമയത്ത്, ഫാൽക്കോ പ്രോജക്റ്റിന് ഔദ്യോഗികപിന്തുണയുള്ള ഒരു യൂസർസ്പേസ് ഇൻസ്ട്രുമെൻറേഷൻ നടപ്പാക്കലും ഇല്ല.

ചുരുക്കത്തിൽ: ഫാൽക്കോയിൽ യൂസർസ്പേസ് ഇൻസ്ട്രുമെൻറേഷൻ ചെയ്യാനുള്ള കരാറുകളെ നിർവചിക്കുന്ന കോഡ് തന്നെ സ്ഥിരവും [official support](https://github.com/falcosecurity/evolution#official-support) എന്നതിന് കീഴിലും ആണ്. [official support](https://github.com/falcosecurity/evolution#official-support) എന്ന നിലവാരത്തിലെത്തിയ ഒരു നടപ്പാക്കലും ഇതുവരെ ഇല്ല.

നിങ്ങൾക്ക് [falcosecurity/pdig](https://github.com/falcosecurity/pdig) എന്നതിൽ കണ്ടെത്താനാകുന്ന PTRACE(2) അടിസ്ഥാനമാക്കിയുള്ള ഒരു നടപ്പാക്കലിലാണ് കമ്മ്യൂണിറ്റി പ്രവർത്തിക്കുന്നത്.

ഫാൽക്കോയിൽ യൂസർസ്പേസ് ഇൻസ്ട്രുമെൻറേഷൻ എങ്ങനെ പ്രവർത്തനക്ഷമമാക്കാം:

- `--userspace` ഫ്ലാഗ് ഉപയോഗിച്ച് ഫാൽക്കോ ആരംഭിക്കുക. ഇത് ഫാൽക്കോയോട് കേർണൽ മൊഡ്യൂളിലേക്ക് (ഡീഫോൾട്ട്) നോക്കുന്നതിന് പകരം യൂസർസ്പേസ് ഇൻസ്ട്രുമെൻറേഷനിലേക്ക് നോക്കാനായി പറയും.
- നിങ്ങൾക്ക് ഉപയോഗിക്കേണ്ട യൂസർസ്പേസ് ഇൻസ്ട്രുമെൻറേഷൻ നടപ്പാക്കൽ തിരഞ്ഞെടുക്കുക. ( ഇപ്പോൾ ലഭ്യമായ ഒരേ ഒരെണ്ണം [pdig](https://github.com/falcosecurity/pdig) ആയതിനാൽ അത് എടുക്കാം)
- ഇപ്പോൾ, pdig ഇപ്പോഴും [incubating](https://github.com/falcosecurity/evolution#incubating) - വളരെ പൂർവഘട്ടത്തിൽ ആയതിനാൽ, അത് ഞങ്ങളുടെ [release process](https://github.com/falcosecurity/falco/blob/master/RELEASE.md) എന്നതിൽ ഉൾപ്പെടുത്തിയിട്ടില്ല. ഇത്, നിങ്ങൾക്കായി അർത്ഥമാക്കുന്നത് ഇത് ഇൻസ്റ്റാൾ ചെയ്യാനാണ്, നിങ്ങൾ സ്വയം ഇത് സമാഹരിക്കേണ്ടതുണ്ട്. [here](https://github.com/falcosecurity/pdig#instructions) എന്നതിലുള്ള നിർദ്ദേശങ്ങൾ പിന്തുടരുക.
- ഇപ്പോൾ നിങ്ങൾ pdig ഇൻസ്റ്റാൾ ചെയ്തതിനാൽ, അത് നിങ്ങൾ ആരംഭിക്കേണ്ടതുണ്ട്.ഓർമ്മിക്കുക, pdig ൻറെ കാര്യത്തിൽ, നിങ്ങൾക്ക് വേണ്ടപോലെ റൂട്ട് പ്രോസസ്സ് ട്രീ സ്വയം ഇൻസ്ട്രുമെൻറ് ചെയ്യാൻ അതിന് അറിയില്ല. നിങ്ങൾ `-p` ഫ്ലാഗ് വഴി അത് വ്യക്തമാക്കുകയോ, pdig ഉപയോഗിച്ച് തന്നെ പ്രക്രിയ ആരംഭിക്കുകയോ ചെയ്യേണ്ടതാണ്. അത് ഒരു ബൈനറിക്കെതിരെ ഒരു ഡീബഗ്ഗർ റൺ ചെയ്യുന്നതിനോട് വളരെ സാമ്യമുള്ളതാണ്. നിങ്ങൾക്ക് ഒരു പ്രക്രിയ നേരിട്ട് ഉപയോഗിച്ചുകൊണ്ടോ, നിലവിലുള്ള ഒരു പ്രക്രിയ ഇൻസ്ട്രുമെൻറ് ചെയ്തുകൊണ്ടോ റൺ ചെയ്യാവുന്നതാണ്. പൂർണ്ണ നിർദ്ദേശങ്ങൾ [here](https://github.com/falcosecurity/pdig#how-to-run-it) എന്നതിൽ.

ഇൻസ്റ്റാളേഷൻ പ്രക്രിയ കൂടുതൽ എളുപ്പമാക്കുന്നതിനുള്ള ശ്രമങ്ങൾ നടക്കുന്നുണ്ട്, കമ്മ്യൂണിറ്റി ഇതുവരെ ഒരെണ്ണം തിരഞ്ഞെടുത്തിട്ടില്ല, കൂടാതെ നിരവധി ആവർത്തനങ്ങൾ താഴെയുള്ള ഏതെങ്കിലുമൊരു GA നിർമ്മിക്കാൻ സാധ്യതയുണ്ട്. ഏതായാലും, നിങ്ങൾക്ക് Kubernetes ൽ യൂസർസ്പേസ് ഇൻസ്ട്രുമെൻറേഷൻ ഉള്ള ഫാൽക്കോ ലഭിക്കണമെന്നുണ്ടെങ്കിൽ, നിങ്ങൾക്ക് നോക്കാവുന്ന പ്രോജക്റ്റുകളുടെ ഒരു പട്ടിക ഇതാ.

- [Falco Trace](https://github.com/krisnova/falco-trace) - നിങ്ങളുടെ ചിത്രങ്ങളിലേക്ക് യൂസർസ്പേസ് ഇൻസ്ട്രുമെൻറേഷൻ ചേർക്കുന്നതിന് ഒരു അടിസ്ഥാനമായി ഉപയോഗിക്കാനുള്ള ഒരു സൌകര്യപ്രദമായ കണ്ടെയ്നർ ചിത്രം.
- [Falco Inject](https://github.com/fntlnz/falco-inject) - kubernetes API വഴി നിങ്ങളുടെ കണ്ടെയ്നറുകളിലേക്ക് ഫാൽക്കോയും യൂസർസ്പേസ് ഇൻസ്ട്രുമെൻറേഷനും ഇൻജക്റ്റ് ചെയ്യുന്നതിന് ഫാൽക്കോ ട്രേസ് ആർട്ടിഫാക്റ്റുകൾ ഉപയോഗിക്കുന്ന ഒരു ഉപകരണം.

നിങ്ങൾ ഒരുപക്ഷേ ഇതിനകം മനസ്സിലാക്കിയതുപോലെ, യൂസർസ്പേസ് ഇൻസ്ട്രുമെൻറേഷൻ ഡ്രൈവറുകൾ ഒരൽപ്പം വ്യത്യസ്തമാണ്. ശ്രദ്ധയോടെ കൈകാര്യം ചെയ്യുക!



