Translated ['src/banners/hacktricks-training.md', 'src/pentesting-ci-cd/

This commit is contained in:
Translator
2025-01-02 01:22:11 +00:00
parent 5a62f6b0a3
commit b43d62ebcb
237 changed files with 2953 additions and 2957 deletions

View File

@@ -34,7 +34,7 @@ handler: handler.hello
A **Function** inawakilisha kazi moja isiyo na seva, kama kazi ya AWS Lambda. Inajumuisha msimbo unaotekelezwa kama jibu kwa matukio.
Imeainishwa chini ya sehemu ya `functions` katika `serverless.yml`, ikitaja mpangilio, mazingira ya utekelezaji, matukio, mabadiliko ya mazingira, na mipangilio mingine.
Imeainishwa chini ya sehemu ya `functions` katika `serverless.yml`, ikitaja mpangilio, muda wa utekelezaji, matukio, vigezo vya mazingira, na mipangilio mingine.
```yaml
functions:
hello:
@@ -50,7 +50,7 @@ method: get
<summary>Event</summary>
**Matukio** ni vichocheo vinavyosababisha kazi zako zisizo na seva. Vinabainisha jinsi na lini kazi inapaswa kutekelezwa.
**Matukio** ni vichocheo vinavyosababisha kazi zako zisizo na seva. Vinabainisha jinsi na wakati kazi inapaswa kutekelezwa.
Aina za matukio za kawaida ni pamoja na maombi ya HTTP, matukio ya ratiba (kazi za cron), matukio ya hifadhidata, upakuaji wa faili, na mengineyo.
```yaml
@@ -96,9 +96,9 @@ WriteCapacityUnits: 1
<summary>Mtoa huduma</summary>
The **Provider** object specifies the cloud service provider (e.g., AWS, Azure, Google Cloud) and contains configuration settings relevant to that provider.
Obje **Mtoa huduma** inaelezea mtoa huduma wa huduma za wingu (kwa mfano, AWS, Azure, Google Cloud) na ina mipangilio ya usanidi inayohusiana na mtoa huduma huyo.
Inajumuisha maelezo kama vile runtime, eneo, hatua, na akreditivu.
Inajumuisha maelezo kama vile muda wa utekelezaji, eneo, hatua, na ithibati.
```yaml
yamlCopy codeprovider:
name: aws
@@ -112,12 +112,12 @@ stage: dev
<summary>Hatua na Eneo</summary>
Hatua inawakilisha mazingira tofauti (kwa mfano, maendeleo, uanzishaji, uzalishaji) ambapo huduma yako inaweza kuwekwa. Inaruhusu usanidi na uwekaji wa mazingira maalum.
Hatua inawakilisha mazingira tofauti (kwa mfano, maendeleo, uanzishaji, uzalishaji) ambapo huduma yako inaweza kuwekwa. Inaruhusu mipangilio na uwekaji maalum wa mazingira.
```yaml
provider:
stage: dev
```
Mkoa unaelezea eneo la kijiografia ambapo rasilimali zako zitawekwa. Ni muhimu kwa sababu za ucheleweshaji, kufuata sheria, na upatikanaji.
Eneo linaelezea eneo la kijiografia ambapo rasilimali zako zitawekwa. Ni muhimu kwa masuala ya ucheleweshaji, kufuata sheria, na upatikanaji.
```yaml
provider:
region: us-west-2
@@ -140,7 +140,7 @@ plugins:
<summary>Tabaka</summary>
**Tabaka** zinakuwezesha kufunga na kusimamia msimbo au utegemezi wa pamoja tofauti na kazi zako. Hii inakuza matumizi tena na kupunguza ukubwa wa pakiti za kutekeleza. Zin定义在`layers` sehemu na kutajwa na kazi.
**Tabaka** zinakuwezesha kufunga na kusimamia msimbo au utegemezi wa pamoja tofauti na kazi zako. Hii inakuza matumizi tena na kupunguza ukubwa wa pakiti za kutekeleza. Zin defined chini ya sehemu ya `layers` na kutajwa na kazi.
```yaml
layers:
commonLibs:
@@ -155,11 +155,11 @@ layers:
<details>
<summary>Variables and Custom Variables</summary>
<summary>Variables na Mabadiliko ya Kijamii</summary>
**Variables** zinawezesha usanidi wa dinamik kwa kuruhusu matumizi ya nafasi za kubadilisha ambazo zinatatuliwa wakati wa kutekeleza.
- **Syntax:** `${variable}` syntax inaweza kurejelea mazingira ya mazingira, maudhui ya faili, au vigezo vingine vya usanidi.
- **Syntax:** `${variable}` syntax inaweza kurejelea mabadiliko ya mazingira, maudhui ya faili, au vigezo vingine vya usanidi.
```yaml
functions:
@@ -169,7 +169,7 @@ environment:
TABLE_NAME: ${self:custom.tableName}
```
* **Custom Variables:** Sehemu ya `custom` inatumika kufafanua vigezo na usanidi maalum wa mtumiaji ambavyo vinaweza kutumika tena katika `serverless.yml`.
* **Mabadiliko ya Kijamii:** Sehemu ya `custom` inatumika kufafanua mabadiliko na usanidi maalum wa mtumiaji ambao unaweza kutumika tena katika `serverless.yml`.
```yaml
custom:
@@ -181,9 +181,9 @@ stage: ${opt:stage, 'dev'}
<details>
<summary>Outputs</summary>
<summary>Matokeo</summary>
**Outputs** zinafafanua thamani ambazo zinarejeshwa baada ya huduma kutekelezwa, kama vile ARNs za rasilimali, maeneo ya mwisho, au taarifa nyingine muhimu. Zinabainishwa chini ya sehemu ya `outputs` na mara nyingi hutumiwa kufichua taarifa kwa huduma nyingine au kwa ufikiaji rahisi baada ya kutekelezwa.
**Matokeo** yanafafanua thamani ambazo zinarejeshwa baada ya huduma kutekelezwa, kama vile ARNs za rasilimali, maeneo ya mwisho, au taarifa nyingine muhimu. Yanabainishwa chini ya sehemu ya `outputs` na mara nyingi hutumiwa kufichua taarifa kwa huduma nyingine au kwa ufikiaji rahisi baada ya kutekeleza.
```yaml
¡outputs:
ApiEndpoint:
@@ -202,9 +202,9 @@ Fn::Join:
<details>
<summary>IAM Roles and Permissions</summary>
<summary>Majukumu ya IAM na Ruhusa</summary>
**IAM Roles and Permissions** zinaelezea sifa za usalama na haki za ufikiaji kwa kazi zako na rasilimali nyingine. Zinapaswa kusimamiwa chini ya mipangilio ya `provider` au mipangilio ya kazi binafsi ili kubainisha ruhusa zinazohitajika.
**Majukumu ya IAM na Ruhusa** yanafafanua sifa za usalama na haki za ufikiaji kwa kazi zako na rasilimali nyingine. Yanadhibitiwa chini ya mipangilio ya `provider` au mipangilio ya kazi binafsi ili kubainisha ruhusa zinazohitajika.
```yaml
provider:
[...]
@@ -226,7 +226,7 @@ Resource: arn:aws:dynamodb:${aws:region}:${aws:accountId}:table/${self:service}-
<summary>Vigezo vya Mazingira</summary>
**Vigezo** vinakuruhusu kupitisha mipangilio na siri kwa kazi zako bila kuzihardcode. Vimewekwa chini ya sehemu ya `environment` kwa mtoa huduma au kazi binafsi.
**Vigezo** vinakuwezesha kupitisha mipangilio na siri kwa kazi zako bila kuzitunga kwa nguvu. Vinapangwa chini ya sehemu ya `environment` kwa mtoa huduma au kazi binafsi.
```yaml
provider:
environment:
@@ -241,9 +241,9 @@ TABLE_NAME: ${self:custom.tableName}
<details>
<summary>Dependencies</summary>
<summary>Mahusiano</summary>
**Dependencies** husimamia maktaba na moduli za nje ambazo kazi zako zinahitaji. Kwa kawaida zinashughulikiwa kupitia wasimamizi wa pakiti kama npm au pip, na kufungwa na kifurushi chako cha kutekeleza kwa kutumia zana au nyongeza kama `serverless-webpack`.
**Mahusiano** yanashughulikia maktaba na moduli za nje ambazo kazi zako zinahitaji. Kwa kawaida yanashughulikiwa kupitia wasimamizi wa pakiti kama npm au pip, na kufungwa na kifurushi chako cha kutekeleza kwa kutumia zana au plugins kama `serverless-webpack`.
```yaml
plugins:
- serverless-webpack
@@ -254,7 +254,7 @@ plugins:
<summary>Hooks</summary>
**Hooks** hukuruhusu kuendesha skripti au amri maalum katika hatua maalum za mzunguko wa maisha ya kutekeleza. Zinapangwa kwa kutumia plugins au ndani ya `serverless.yml` ili kutekeleza vitendo kabla au baada ya kutekeleza.
**Hooks** zinakuruhusu kuendesha skripti au amri za kawaida katika hatua maalum za mzunguko wa maisha ya kutekeleza. Zinapangwa kwa kutumia plugins au ndani ya `serverless.yml` ili kutekeleza vitendo kabla au baada ya kutekeleza.
```yaml
custom:
hooks:
@@ -264,7 +264,7 @@ before:deploy:deploy: echo "Starting deployment..."
### Tutorial
Hii ni muhtasari wa mafunzo rasmi [**kutoka kwenye hati**](https://www.serverless.com/framework/docs/tutorial):
Hii ni muhtasari wa mafunzo rasmi [**kutoka kwenye nyaraka**](https://www.serverless.com/framework/docs/tutorial):
1. Unda akaunti ya AWS (Serverless.com inaanza katika miundombinu ya AWS)
2. Unda akaunti katika serverless.com
@@ -284,7 +284,7 @@ serverless #Choose first one (AWS / Node.js / HTTP API)
## Create A New App
## Indicate a name like "tutorialapp)
```
Hii inapaswa kuwa imetengeneza **app** inayoitwa `tutorialapp` ambayo unaweza kuangalia katika [serverless.com](serverless.com-security.md) na folda inayoitwa `Tutorial` yenye faili **`handler.js`** inayokuwa na baadhi ya msimbo wa JS wenye msimbo wa `helloworld` na faili **`serverless.yml`** ikitangaza kazi hiyo:
Hii inapaswa kuwa imeunda **app** inayoitwa `tutorialapp` ambayo unaweza kuangalia katika [serverless.com](serverless.com-security.md) na folda inayoitwa `Tutorial` yenye faili **`handler.js`** inayokuwa na baadhi ya msimbo wa JS wenye msimbo wa `helloworld` na faili **`serverless.yml`** ikitangaza kazi hiyo:
{{#tabs }}
{{#tab name="handler.js" }}
@@ -323,9 +323,9 @@ method: get
{{#endtab }}
{{#endtabs }}
4. Unda mtoa huduma wa AWS, ukitembea kwenye **dashibodi** katika `https://app.serverless.com/<org name>/settings/providers?providerId=new&provider=aws`.
1. Ili kutoa `serverless.com` ufikiaji wa AWS itahitaji kuendesha stack ya cloudformation ikitumia faili hii ya usanidi (wakati wa kuandika hii): [https://serverless-framework-template.s3.amazonaws.com/roleTemplate.yml](https://serverless-framework-template.s3.amazonaws.com/roleTemplate.yml)
2. Kiolezo hiki kinaunda jukumu linaloitwa **`SFRole-<ID>`** lenye **`arn:aws:iam::aws:policy/AdministratorAccess`** juu ya akaunti yenye Kitambulisho cha Kuamini kinachoruhusu akaunti ya `Serverless.com` ya AWS kufikia jukumu hilo.
4. Unda mtoa huduma wa AWS, ukitembea kwenye **dashboard** katika `https://app.serverless.com/<org name>/settings/providers?providerId=new&provider=aws`.
1. Ili kutoa `serverless.com` ufikiaji wa AWS itahitaji kuendesha cloudformation stack ikitumia faili hii ya usanidi (wakati wa kuandika hii): [https://serverless-framework-template.s3.amazonaws.com/roleTemplate.yml](https://serverless-framework-template.s3.amazonaws.com/roleTemplate.yml)
2. Hii template inazalisha jukumu linaloitwa **`SFRole-<ID>`** lenye **`arn:aws:iam::aws:policy/AdministratorAccess`** juu ya akaunti yenye Kitambulisho cha Kuamini kinachoruhusu akaunti ya `Serverless.com` ya AWS kufikia jukumu hilo.
<details>
@@ -377,7 +377,7 @@ Type: String
<details>
<summary>Uhusiano wa Kuamini</summary>
<summary>Uhusiano wa Kuaminiana</summary>
```json
{
"Version": "2012-10-17",
@@ -399,7 +399,7 @@ Type: String
```
</details>
5. Mafunzo yanahitaji kuunda faili `createCustomer.js` ambayo kimsingi itaunda kiunganishi kipya cha API kinachoshughulikiwa na faili mpya ya JS na yanahitaji kubadilisha faili `serverless.yml` ili kufanya iweze kuunda **meza mpya ya DynamoDB**, kufafanua **kigezo cha mazingira**, jukumu ambalo litakuwa likitumia lambdas zilizozalishwa.
5. Mafunzo yanahitaji kuunda faili `createCustomer.js` ambayo kimsingi itaunda kiunganishi kipya cha API kinachoshughulikiwa na faili mpya ya JS na yanahitaji kubadilisha faili `serverless.yml` ili kuifanya izalisha **meza mpya ya DynamoDB**, kufafanua **kigezo cha mazingira**, jukumu ambalo litakuwa likitumia lambdas zilizozalishwa.
{{#tabs }}
{{#tab name="createCustomer.js" }}
@@ -481,19 +481,19 @@ TableName: ${self:service}-customerTable-${sls:stage}
{{#endtab }}
{{#endtabs }}
6. Tumia **`serverless deploy`**
1. Utekelezaji utafanywa kupitia CloudFormation Stack
6. Tumia **`serverless deploy`** kupeleka
1. Upelekaji utafanywa kupitia CloudFormation Stack
2. Kumbuka kwamba **lambdas zinapatikana kupitia API gateway** na si kupitia URLs za moja kwa moja
7. **Jaribu**
1. Hatua ya awali itachapisha **URLs** ambapo kazi za lambda za mwisho wa API zako zimewekwa
1. Hatua ya awali itachapisha **URLs** ambapo kazi za lambda za mwisho wa API zako zimepelekwa
## Mapitio ya Usalama wa Serverless.com
### **Mifumo na Ruhusa za IAM Zilizokosewa**
Mifumo ya IAM iliyo na ruhusa nyingi inaweza kutoa ufikiaji usioidhinishwa kwa rasilimali za wingu, na kusababisha uvujaji wa data au upotoshaji wa rasilimali.
Mifumo ya IAM yenye ruhusa nyingi sana inaweza kutoa ufikiaji usioidhinishwa kwa rasilimali za wingu, na kusababisha uvujaji wa data au upotoshaji wa rasilimali.
Wakati hakuna ruhusa zilizotajwa kwa kazi ya Lambda, mfumo wenye ruhusa za kuzalisha tu kumbukumbu utaundwa, kama:
Wakati hakuna ruhusa zilizotajwa kwa kazi ya Lambda, mfumo utaundwa na ruhusa za kuzalisha tu kumbukumbu, kama:
<details>
@@ -525,7 +525,7 @@ Wakati hakuna ruhusa zilizotajwa kwa kazi ya Lambda, mfumo wenye ruhusa za kuzal
```
</details>
#### **Mikakati ya Kupunguza**
#### **Mikakati ya Kupunguza Hatari**
- **Kanuni ya Haki Ndogo:** Panga ruhusa zinazohitajika tu kwa kila kazi.
@@ -545,15 +545,15 @@ Action:
Resource: arn:aws:dynamodb:${aws:region}:${aws:accountId}:table/${self:service}-customerTable-${sls:stage}
```
- **Tumia Majukumu Mbalimbali:** Tofautisha majukumu kulingana na mahitaji ya kazi.
- **Tumia Majukumu Tofauti:** Tofautisha majukumu kulingana na mahitaji ya kazi.
---
### **Siri zisizo Salama na Usimamizi wa Mipangilio**
### **Siri na Usimamizi wa Mipangilio Usio Salama**
Kuhifadhi taarifa nyeti (mfano, funguo za API, akidi za database) moja kwa moja katika **`serverless.yml`** au msimbo kunaweza kusababisha kufichuliwa ikiwa hifadhi zitashambuliwa.
Kuhifadhi taarifa nyeti (k.m., funguo za API, akidi za database) moja kwa moja katika **`serverless.yml`** au msimbo kunaweza kusababisha kufichuliwa ikiwa hifadhi za data zitashambuliwa.
Njia **iliyopendekezwa** ya kuhifadhi mabadiliko ya mazingira katika faili ya **`serverless.yml`** kutoka serverless.com (wakati wa kuandika hii) ni kutumia watoa huduma wa `ssm` au `s3`, ambao unaruhusu kupata **maadili ya mazingira kutoka vyanzo hivi wakati wa kutekeleza** na **kuunda** mabadiliko ya mazingira ya **lambdas** na **maandishi yasiyo na maadili**!
Njia **iliyopendekezwa** ya kuhifadhi mabadiliko ya mazingira katika faili ya **`serverless.yml`** kutoka serverless.com (wakati wa kuandika hii) ni kutumia watoa huduma wa `ssm` au `s3`, ambao unaruhusu kupata **maadili ya mazingira kutoka vyanzo hivi wakati wa kupeleka** na **kuunda** mabadiliko ya mazingira ya **lambdas** na **maandishi yasiyo na maadili**!
> [!CAUTION]
> Hivyo, mtu yeyote mwenye ruhusa ya kusoma mipangilio ya lambdas ndani ya AWS ataweza **kufikia mabadiliko haya yote ya mazingira kwa maandiko wazi!**
@@ -564,10 +564,10 @@ provider:
environment:
DB_PASSWORD: ${ssm:/aws/reference/secretsmanager/my-db-password~true}
```
And even if this prevents hardcoding the environment variable value in the **`serverless.yml`** file, the value will be obtained at deployment time and will be **added in clear text inside the lambda environment variable**.
Na hata hii inazuia kuweka thamani ya mabadiliko ya mazingira katika faili ya **`serverless.yml`**, thamani itapatikana wakati wa kutekeleza na itakuwa **imeongezwa kwa maandiko wazi ndani ya mabadiliko ya mazingira ya lambda**.
> [!TIP]
> Njia inayopendekezwa ya kuhifadhi mabadiliko ya mazingira kwa kutumia serveless.com ingekuwa **kuhifadhi katika siri ya AWS** na kuhifadhi tu jina la siri katika mabadiliko ya mazingira na **kodhi ya lambda inapaswa kukusanya hiyo**.
> Njia inayopendekezwa ya kuhifadhi mabadiliko ya mazingira kwa kutumia serveless.com ingekuwa **kuhifadhi katika siri ya AWS** na kuhifadhi tu jina la siri katika mabadiliko ya mazingira na **kod ya lambda inapaswa kuikusanya**.
#### **Mikakati ya Kupunguza**
@@ -577,13 +577,13 @@ And even if this prevents hardcoding the environment variable value in the **`se
---
### **Msimbo na Kazi Zenye Ukatili**
### **Msimbo na Mtegemeo Wenye Ukatili**
Kazi au utegemezi zisizokuwa na usalama zinaweza kuleta udhaifu, wakati usimamizi mbaya wa ingizo unaweza kusababisha mashambulizi ya kuingiza msimbo.
Mtegemeo wa zamani au usio salama unaweza kuleta udhaifu, wakati usimamizi mbaya wa ingizo unaweza kusababisha mashambulizi ya kuingiza msimbo.
#### **Mikakati ya Kupunguza**
- **Usimamizi wa Utegemezi:** Sasisha mara kwa mara utegemezi na scan kwa udhaifu.
- **Usimamizi wa Mtegemeo:** Sasisha mara kwa mara mtegemeo na scan kwa udhaifu.
```yaml
plugins:
@@ -597,28 +597,28 @@ plugins:
---
### **Kukosa Kurekodi na Kufuata**
### **Kukosekana kwa Usajili na Ufuatiliaji Sahihi**
Bila kurekodi na kufuatilia vizuri, shughuli za uhalifu zinaweza kukosa kugunduliwa, kuchelewesha majibu ya tukio.
Bila usajili na ufuatiliaji sahihi, shughuli za uhalifu zinaweza kukosa kugunduliwa, kuchelewesha majibu ya tukio.
#### **Mikakati ya Kupunguza**
- **Kurekodi Kati:** Punguza kumbukumbu kwa kutumia huduma kama **AWS CloudWatch** au **Datadog**.
- **Usajili wa Kati:** Punguza kumbukumbu kwa kutumia huduma kama **AWS CloudWatch** au **Datadog**.
```yaml
plugins:
- serverless-plugin-datadog
```
- **Washa Kurekodi Kwa Kina:** Pata taarifa muhimu bila kufichua data nyeti.
- **Weka Arifa:** Sanidi arifa kwa shughuli au tofauti za kushangaza.
- **Kufuata Mara kwa Mara:** Fuata mara kwa mara kumbukumbu na vipimo kwa matukio ya usalama yanayoweza kutokea.
- **Washa Usajili wa Kina:** Pata taarifa muhimu bila kufichua data nyeti.
- **Weka Arifa:** Sanidi arifa kwa shughuli za kushangaza au tofauti.
- **Ufuatiliaji wa Mara kwa Mara:** Fuata mara kwa mara kumbukumbu na vipimo kwa matukio ya usalama yanayoweza kutokea.
---
### **Mikakati ya API Gateway Isiyo Salama**
APIs zilizo wazi au zisizo salama zinaweza kutumika kwa ufikiaji usioidhinishwa, mashambulizi ya Denial of Service (DoS), au mashambulizi ya tovuti.
APIs zilizo wazi au zisizo salama zinaweza kutumika kwa ufikiaji usioidhinishwa, mashambulizi ya Denial of Service (DoS), au mashambulizi ya cross-site.
#### **Mikakati ya Kupunguza**
@@ -635,7 +635,7 @@ method: get
authorizer: aws_iam
```
- **Kukataza Kiwango na Kuchelewesha:** Zuia matumizi mabaya kwa kupunguza viwango vya maombi.
- **Kikomo cha Kiwango na Throttling:** Zuia matumizi mabaya kwa kupunguza viwango vya maombi.
```yaml
provider:
@@ -645,7 +645,7 @@ burstLimit: 200
rateLimit: 100
```
- **Sanidi CORS Salama:** Punguza asili, mbinu, na vichwa vinavyoruhusiwa.
- **Usanidi wa CORS Salama:** Punguza asili, mbinu, na vichwa vinavyoruhusiwa.
```yaml
functions:
@@ -661,11 +661,11 @@ headers:
- Content-Type
```
- **Tumia Firewalls za Programu za Mtandao (WAF):** Chuja na fuatilia maombi ya HTTP kwa mifumo ya uhalifu.
- **Tumia Firewalls za Programu za Mtandao (WAF):** Chuja na ufuatilie maombi ya HTTP kwa mifumo ya uhalifu.
---
### **Kukosa Kutengwa kwa Kazi**
### **Kukosekana kwa Kutengwa kwa Kazi**
Rasilimali zinazoshirikiwa na kutengwa kwa kutosha kunaweza kusababisha kupanda kwa mamlaka au mwingiliano usio na makusudi kati ya kazi.
@@ -673,7 +673,7 @@ Rasilimali zinazoshirikiwa na kutengwa kwa kutosha kunaweza kusababisha kupanda
- **Tenga Kazi:** Panga rasilimali tofauti na majukumu ya IAM ili kuhakikisha uendeshaji huru.
- **Kugawanya Rasilimali:** Tumia hifadhidata tofauti au ndoo za kuhifadhi kwa kazi tofauti.
- **Tumia VPCs:** Weka kazi ndani ya Mifumo ya Kibinafsi ya Mtandao kwa kutengwa kwa mtandao iliyoimarishwa.
- **Tumia VPCs:** Weka kazi ndani ya Mifumo ya Kibinafsi ya Wingu kwa kutengwa kwa mtandao iliyoimarishwa.
```yaml
provider:
@@ -684,17 +684,17 @@ subnetIds:
- subnet-xxxxxx
```
- **Punguza Ruhusa za Kazi:** Hakikisha kazi haziwezi kufikia au kuingilia rasilimali za kila mmoja isipokuwa inahitajika wazi.
- **Punguza Mamlaka ya Kazi:** Hakikisha kazi haziwezi kufikia au kuingilia rasilimali za kila mmoja isipokuwa inahitajika wazi.
---
### **Kukosa Ulinzi wa Data**
### **Kukosekana kwa Ulinzi wa Data**
Data isiyosimbwa katika hali ya kupumzika au katika usafiri inaweza kufichuliwa, ikisababisha uvunjaji wa data au uharibifu.
Data isiyosimbwa iliyohifadhiwa au katika usafirishaji inaweza kufichuliwa, ikisababisha uvunjaji wa data au kubadilishwa.
#### **Mikakati ya Kupunguza**
- **Simbua Data Katika Hali ya Kupumzika:** Tumia vipengele vya usimbaji vya huduma za wingu.
- **Simbua Data iliyohifadhiwa:** Tumia vipengele vya usimbaji wa huduma za wingu.
```yaml
resources:
@@ -706,19 +706,19 @@ SSESpecification:
SSEEnabled: true
```
- **Simbua Data Katika Usafiri:** Tumia HTTPS/TLS kwa usafiri wote wa data.
- **Simbua Data katika Usafirishaji:** Tumia HTTPS/TLS kwa usafirishaji wote wa data.
- **Wasiliana kwa API Salama:** Lazimisha itifaki za usimbaji na kuthibitisha vyeti.
- **Simamisha Funguo za Usimbaji kwa Usalama:** Tumia huduma za funguo zinazodhibitiwa na kubadilisha funguo mara kwa mara.
---
### **Kukosa Usimamizi wa Makosa Sahihi**
### **Kukosekana kwa Usimamizi Sahihi wa Makosa**
Ujumbe wa makosa wa kina unaweza kufichua taarifa nyeti kuhusu miundombinu au msingi wa msimbo, wakati makosa yasiyoshughulikiwa yanaweza kusababisha kuanguka kwa programu.
#### **Mikakati ya Kupunguza**
- **Ujumbe wa Makosa ya Jumla:** Epuka kufichua maelezo ya ndani katika majibu ya makosa.
- **Ujumbe wa Makosa wa Kijeni:** Epuka kufichua maelezo ya ndani katika majibu ya makosa.
```javascript
javascriptCopy code// Mfano katika Node.js
@@ -735,78 +735,78 @@ body: JSON.stringify({ message: 'Internal Server Error' }),
};
```
- **Usimamizi wa Makosa Kati:** Simamia na safisha makosa kwa njia ya kawaida katika kazi zote.
- **Fuatilia na Kurekodi Makosa:** Fuata na changanua makosa ndani bila kufichua maelezo kwa watumiaji wa mwisho.
- **Usimamizi wa Kati wa Makosa:** Simamia na safisha makosa kwa njia ya kawaida katika kazi zote.
- **Fuata na Weka Kumbukumbu za Makosa:** Fuata na kuchambua makosa ndani bila kufichua maelezo kwa watumiaji wa mwisho.
---
### **Mikakati ya Utekelezaji Isiyo Salama**
### **Mikakati Isiyo Salama ya Kutekeleza**
Mikakati ya utekelezaji iliyofichuliwa au ufikiaji usioidhinishwa kwa mabomba ya CI/CD inaweza kusababisha utekelezaji wa msimbo wa uhalifu au mipangilio isiyo sahihi.
Mikakati ya kutekeleza iliyofichuliwa au ufikiaji usioidhinishwa kwa mabomba ya CI/CD inaweza kusababisha kutekelezwa kwa msimbo wa uhalifu au mipangilio isiyo sahihi.
#### **Mikakati ya Kupunguza**
- **Salama Mabomba ya CI/CD:** Tekeleza udhibiti mkali wa ufikiaji, uthibitishaji wa hatua nyingi (MFA), na ukaguzi wa mara kwa mara.
- **Hifadhi Mipangilio kwa Usalama:** Hifadhi faili za utekelezaji bila siri zilizofichwa na data nyeti.
- **Hifadhi Mabomba ya CI/CD kwa Usalama:** Tekeleza udhibiti mkali wa ufikiaji, uthibitishaji wa hatua nyingi (MFA), na ukaguzi wa mara kwa mara.
- **Hifadhi Mipangilio kwa Usalama:** Hifadhi faili za kutekeleza bila siri zilizowekwa na data nyeti.
- **Tumia Zana za Usalama za Miundombinu kama Msimbo (IaC):** Tumia zana kama **Checkov** au **Terraform Sentinel** kutekeleza sera za usalama.
- **Utekelezaji Usio Badilika:** Zuia mabadiliko yasiyoidhinishwa baada ya utekelezaji kwa kupitisha mazoea ya miundombinu isiyobadilika.
- **Mikakati Isiyobadilika:** Zuia mabadiliko yasiyoidhinishwa baada ya kutekeleza kwa kupitisha mbinu za miundombinu isiyobadilika.
---
### **Udhaifu katika Plugins na Nyongeza**
Kutumia plugins za tatu zisizokaguliwa au zenye uhalifu kunaweza kuleta udhaifu katika programu zako za serverless.
Kutumia plugins za tatu zisizopitiwa au zenye uhalifu kunaweza kuleta udhaifu katika programu zako za serverless.
#### **Mikakati ya Kupunguza**
- **Kagua Plugins kwa Kina:** Kadiria usalama wa plugins kabla ya kuingizwa, ukipendelea zile kutoka vyanzo vinavyoaminika.
- **Pitia Plugins kwa Kina:** Kadiria usalama wa plugins kabla ya kuingizwa, ukipendelea zile kutoka vyanzo vinavyoaminika.
- **Punguza Matumizi ya Plugins:** Tumia tu plugins zinazohitajika ili kupunguza uso wa shambulio.
- **Fuatilia Sasisho za Plugins:** Hifadhi plugins zikiwa na sasisho ili kufaidika na patches za usalama.
- **Tenga Mazingira ya Plugins:** Endesha plugins katika mazingira yaliyotengwa ili kudhibiti hatari zinazoweza kutokea.
- **Fuata Sasisho za Plugins:** Hifadhi plugins zikiwa za kisasa ili kufaidika na patches za usalama.
- **Tenga Mazingira ya Plugins:** Endesha plugins katika mazingira yaliyotengwa ili kudhibiti makosa yanayoweza kutokea.
---
### **Kufichua kwa Mipangilio Nyeti**
### **Kufichuliwa kwa Mipangilio Nyeti**
Kazi zinazopatikana kwa umma au APIs zisizo na mipaka zinaweza kutumika kwa shughuli zisizoidhinishwa.
Kazi zinazopatikana hadharani au APIs zisizo na kikomo zinaweza kutumika kwa shughuli zisizoidhinishwa.
#### **Mikakati ya Kupunguza**
- **Punguza Ufikiaji wa Kazi:** Tumia VPCs, vikundi vya usalama, na sheria za moto ili kupunguza ufikiaji kwa vyanzo vinavyoaminika.
- **Tekeleza Uthibitishaji Thabiti:** Hakikisha kwamba mipangilio yote iliyofichuliwa inahitaji uthibitishaji na uidhinishaji sahihi.
- **Tumia Mabango ya API kwa Usalama:** Sanidi Mabango ya API kutekeleza sera za usalama, ikiwa ni pamoja na uthibitishaji wa ingizo na kukataza kiwango.
- **Zima Mipangilio Isiyotumika:** Kagua mara kwa mara na zima mipangilio yoyote ambayo haitumiki tena.
- **Tumia API Gateways kwa Usalama:** Sanidi API Gateways kutekeleza sera za usalama, ikiwa ni pamoja na uthibitishaji wa ingizo na kikomo cha kiwango.
- **Zima Mipangilio Isiyotumika:** Pitia mara kwa mara na zima mipangilio yoyote ambayo haitumiki tena.
---
### **Ruhusa Kupita Kiasi kwa Wajumbe wa Timu na Washirikishi wa Nje**
### **Mamlaka Mengi kwa Wajumbe wa Timu na Washirikishi wa Nje**
Kutoa ruhusa kupita kiasi kwa wajumbe wa timu na washirikishi wa nje kunaweza kusababisha ufikiaji usioidhinishwa, uvunjaji wa data, na matumizi mabaya ya rasilimali. Hatari hii inaongezeka katika mazingira ambapo watu wengi wana viwango tofauti vya ufikiaji, ikiongeza uso wa shambulio na uwezekano wa vitisho vya ndani.
Kutoa mamlaka mengi kwa wajumbe wa timu na washirikishi wa nje kunaweza kusababisha ufikiaji usioidhinishwa, uvunjaji wa data, na matumizi mabaya ya rasilimali. Hatari hii inaongezeka katika mazingira ambapo watu wengi wana viwango tofauti vya ufikiaji, ikiongeza uso wa shambulio na uwezekano wa vitisho vya ndani.
#### **Mikakati ya Kupunguza**
- **Kanuni ya Ruhusa Ndogo:** Hakikisha kwamba wajumbe wa timu na washirikishi wana ruhusa tu zinazohitajika kutekeleza majukumu yao.
- **Kanuni ya Mamlaka ya Chini:** Hakikisha kwamba wajumbe wa timu na washirikishi wana mamlaka tu yanayohitajika kutekeleza majukumu yao.
---
### **Usalama wa Funguo za Ufikiaji na Funguo za Leseni**
**Funguo za Ufikiaji** na **Funguo za Leseni** ni ithibati muhimu zinazotumika kuthibitisha na kuidhinisha mwingiliano na CLI ya Serverless Framework.
**Funguo za Ufikiaji** na **Funguo za Leseni** ni ithibati muhimu zinazotumika kuthibitisha na kuidhinisha mwingiliano na Serverless Framework CLI.
- **Funguo za Leseni:** Ni vitambulisho vya kipekee vinavyohitajika kwa uthibitishaji wa ufikiaji kwa Serverless Framework Toleo la 4 ambalo linaruhusu kuingia kupitia CLI.
- **Funguo za Ufikiaji:** Ithibati zinazoruhusu CLI ya Serverless Framework kuthibitisha na Dashibodi ya Serverless Framework. Wakati wa kuingia na `serverless` cli funguo ya ufikiaji itaundwa na **kuhifadhiwa kwenye laptop**. Unaweza pia kuiseti kama mabadiliko ya mazingira yanayoitwa `SERVERLESS_ACCESS_KEY`.
- **Funguo za Leseni:** Ni vitambulisho vya kipekee vinavyohitajika kwa uthibitishaji wa ufikiaji wa Serverless Framework Toleo la 4 ambalo linaruhusu kuingia kupitia CLI.
- **Funguo za Ufikiaji:** Ithibati zinazoruhusu Serverless Framework CLI kuthibitisha na Dashibodi ya Serverless Framework. Wakati wa kuingia na `serverless` cli funguo ya ufikiaji itakuwa **imeundwa na kuhifadhiwa kwenye laptop**. Unaweza pia kuipanga kama mabadiliko ya mazingira yanayoitwa `SERVERLESS_ACCESS_KEY`.
#### **Hatari za Usalama**
1. **Kufichuliwa Kupitia Hifadhi za Msimbo:**
- Kuweka au kwa bahati mbaya kupeleka Funguo za Ufikiaji na Funguo za Leseni kwenye mifumo ya kudhibiti toleo kunaweza kusababisha ufikiaji usioidhinishwa.
- Kuweka au kwa bahati mbaya kupeleka Funguo za Ufikiaji na Funguo za Leseni kwenye mifumo ya udhibiti wa toleo kunaweza kusababisha ufikiaji usioidhinishwa.
2. **Hifadhi Isiyo Salama:**
- Kuhifadhi funguo katika maandiko wazi ndani ya mabadiliko ya mazingira au faili za mipangilio bila usimbaji sahihi kunaongeza uwezekano wa kufichuliwa.
3. **Usambazaji Mbaya:**
- Kushiriki funguo kupitia njia zisizo salama (k.m., barua pepe, gumzo) kunaweza kusababisha kukamatwa na wahalifu.
4. **Kukosa Mzunguko:**
- Kutokuzungusha funguo mara kwa mara kunaongeza kipindi cha kufichuliwa ikiwa funguo zitavunjwa.
5. **Ruhusa Kupita Kiasi:**
- Funguo zenye ruhusa pana zinaweza kutumika kufanya vitendo visivyoidhinishwa katika rasilimali nyingi.
- Kushiriki funguo kupitia njia zisizo salama (k.m., barua pepe, mazungumzo) kunaweza kusababisha kukamatwa na wahalifu.
4. **Kukosa Kubadilisha:**
- Kutobadilisha funguo mara kwa mara kunapanua kipindi cha kufichuliwa ikiwa funguo zitakamatwa.
5. **Mamlaka Mengi:**
- Funguo zenye mamlaka pana zinaweza kutumika kufanya vitendo visivyoidhinishwa katika rasilimali nyingi.
{{#include ../banners/hacktricks-training.md}}