|                   ശീർഷകം                    | വെയ്റ്റ് |
| :-----------------------------------------: | :---: |
| ഉപേക്ഷിച്ച സിസ്റ്റം കോൾ ഇവൻറുകൾക്കായുള്ള പ്രവർത്തനങ്ങൾ |   3   |



# **ആമുഖം**

v0.15.0 ൽ അവതരിപ്പിച്ച മെച്ചപ്പെടുത്തലുകൾക്കൊപ്പം, ഉപേക്ഷിച്ച സിസ്റ്റം കോൾ ഇവൻറുകൾ ബുദ്ധിപരമായി കണ്ടെത്താനും, ഫാൽക്കോയെ അലേർട്ട് ചെയ്യുകയോ അല്ലെങ്കിൽ പൂർണ്ണമായും എക്സിറ്റ് ചെയ്യുകയോ പോലെയുള്ള പരിഹാരനടപടികൾ കൈക്കൊള്ളാനും ഫാൽക്കോക്ക് ഇപ്പോൾ കഴിയും. സിസ്റ്റം കോൾ ഇവൻറുകൾ ഉപേക്ഷിക്കപ്പെട്ടുകഴിയുമ്പോൾ, പ്രക്രിയകൾ, ഫയലുകൾ, കണ്ടെയ്നറുകൾ, കൂടാതെ ഉപയോഗത്തിലുള്ള ഓർക്കസ്ട്രേററർ മെറ്റാഡാറ്റ എന്നിവയുടെ ആന്തരിക കാഴ്ച്ച നിർമ്മിക്കുന്നതിൽ ഫാൽക്കോ പ്രശ്നങ്ങൾ നേരിടാൻ സാധ്യതയുണ്ട്, അത് പിന്നെ ആ മെറ്റാഡാറ്റയെ ആശ്രയിച്ചിരിക്കുന്ന നിയമങ്ങളെ ബാധിക്കാനും സാധ്യതയുണ്ട്. ഉപേക്ഷിച്ച സിസ്റ്റം കോൾ ഇവൻറുകൾ കണ്ടെത്തുന്നതിന് ഫാൽക്കോ ഇപ്പോൾ നൽകുന്ന വ്യക്തമായ സിഗ്നലുകൾ കൂടുതൽ എളുപ്പമാക്കുന്നു.

ഈ സവിശേഷതയെ കൂറിച്ചുള്ള കൂടുതൽ വിവരങ്ങൾക്കായി, [CVE-2019-8339](https://sysdig.com/blog/cve-2019-8339-falco-vulnerability/) എന്നതിലെ ഞങ്ങളുടെ ബ്ലോഗ് പോസ്റ്റ് കാണുക.

## **നടപ്പാക്കൽ**

ഓരോ സെക്കൻറിലും, കേർണൽ മൊഡ്യൂൾ / eBPF പ്രോഗ്രാമുകൾ പോപ്യുലേറ്റ് ചെയ്ത സിസ്റ്റം കോൾ ഇവൻറ് എണ്ണങ്ങൾ ഫാൽക്കോ വായിക്കുന്നു. പ്രോസസ്സ് ചെയ്ത സിസ്റ്റം കോളുകളുടെ എണ്ണവും, ഏറ്റവും പ്രധാനമായി, കേർണലിനും യൂസർ സ്പേസിനും ഇടയിലുള്ള പങ്കുവെക്കപ്പെട്ട ബഫറിലേക്ക് സിസ്റ്റം കോൾ വിവരങ്ങൾ എഴുതിച്ചേർക്കാൻ കേർണൽ ശ്രമിക്കുകയും പക്ഷേ ബഫർ നിറഞ്ഞിട്ടുണ്ടെന്ന് കണ്ടെത്തുകയും ചെയ്ത തവണകളുടെ എണ്ണവും ഈ വായനയിൽ ഉൾപ്പെടുന്നു. ഈ പരാജയപ്പെട്ട എഴുത്ത് ശ്രമങ്ങൾ *ഉപേക്ഷിച്ച* സിസ്റ്റം കോൾ ഇവൻറുകളായി കണക്കാക്കപ്പെടുന്നു.

ഉപേക്ഷിച്ച ഒരു ഇവൻറെങ്കിലും കണ്ടെത്തുമ്പോൾ, ഫാൽക്കോ ഇനിപ്പറയുന്ന നടപടികളിലൊന്ന് എടുക്കുന്നു:

* `ignore`: ഒരു നടപടിയും എടുത്തിട്ടില്ല. ഒരു ശൂന്യമായ ലിസ്റ്റാണ് നൽകിയിട്ടുള്ളതെങ്കിൽ, അവഗണിക്കുക എന്നതാണ് അനുമാനിക്കേണ്ടത്.
* `log`: ബഫർ നിറഞ്ഞിരുന്നുവെന്ന് അറിയിക്കുന്ന ഒരു നിർണ്ണായകമായ സന്ദേശം ലോഗ് ചെയ്യുക.
* `alert`: ബഫർ നിറഞ്ഞിരുന്നുവെന്ന് വ്യക്തമാക്കിക്കൊണ്ട് ഒരു ഫാൽക്കോ അലേർട്ട് പുറപ്പെടുവിക്കുക.
* `exit`: പൂജ്യം അല്ലാത്ത ഒരു rc ഉപയോഗിച്ച് ഫാൽക്കോയിൽ നിന്നും പുറത്തുകടക്കുക.

താഴെ തന്നിരിക്കുന്നത് ഒരു ലോഗ് സന്ദേശം, ഒരു അലേർട്ട്, ഒരു പുറത്തുകടക്കൽ സന്ദേശം എന്നിവക്കുള്ള ഒരു ഉദാഹരണമാണ്:

```
Wed Mar 27 15:28:22 2019: Falco initialized with configuration file /etc/falco/falco.yaml
Wed Mar 27 15:28:22 2019: Loading rules from file /etc/falco/falco_rules.yaml:
Wed Mar 27 15:28:24 2019: Falco internal: syscall event drop. 1 system calls dropped in last second.
15:28:24.000207862: Critical Falco internal: syscall event drop. 1 system calls dropped in last second.(n_drops=1 n_evts=1181)
Wed Mar 27 15:28:24 2019: Falco internal: syscall event drop. 1 system calls dropped in last second.
Wed Mar 27 15:28:24 2019: Exiting.
```

## **പ്രവർത്തന നിരക്ക് ത്രോട്ട്ലിങ്**

ലോഗ് സന്ദേശങ്ങളുടെ/ അലേർട്ടുകളുടെ ഒരു ആധിക്യസാധ്യത കുറക്കുന്നതിന്, പ്രവർത്തനങ്ങൾ നിയന്ത്രിക്കാൻ ഒരു ടോക്കൺ ബക്കറ്റ് നൽകിയിരിക്കുന്നു. പത്ത് സന്ദേശങ്ങളുടെ വരെ അനുവദിക്കപ്പെട്ട ബേർസ്റ്റോടുകൂടിയുള്ള, ഓരോ 30 സെക്കൻറിനും ഒരു അലേർട്ട് എന്ന നിരക്കാണ് ടോക്കൺ ബക്കറ്റിൻറെ ഡീഫോൾട്ട് പാരാമീറ്റർ.

## **ക്രമീകരണം**

ഒരു ഉപേക്ഷിച്ച സിസ്റ്റം കോൾ ഇവൻറ് ഏറ്റെടുക്കാനുള്ള നടപടികളും, ടോക്കൺ ബക്കറ്റിന് വേണ്ടിയുള്ള ത്രോട്ട്ലിങ് പാരാമീറ്ററുകളും `falco.yaml` എന്നതിൽ ക്രമീകരണയോഗ്യമാണ്, അവ [syscall_event_drops](https://github.com/falcosecurity/falco-website/blob/master/content/en/configuration) എന്നതിൽ വിവരിച്ചിരിക്കുന്നു.
