# GitHub Denetim Günlüklerinin İzlenmesi

<span>Kurumsal yöneticiler, kuruluşları içindeki üyeler tarafından gerçekleştirilen eylemleri incelemek için proaktif olarak GitHub denetim günlüklerini kullanır. Eylemi gerçekleştiren kullanıcı, eylemin niteliği ve yürütme zaman damgası gibi ayrıntıları içerir. GitHub için Wazuh modülü, API'si aracılığıyla GitHub'dan denetim günlüklerinin toplanmasını sağlar. Wazuh, denetim günlüklerini toplamak için GitHub API uç noktasına bir HTTP GET isteği başlatır . Daha fazla ayrıntı için [GitHub REST API](https://docs.github.com/en/rest)</span>`<span class="pre">/orgs/{org}/audit-log</span>`<span> belgelerine başvurabilirsiniz .</span>

<section id="bkmrk-github-denetim-g%C3%BCnl%C3%BC">### <span>GitHub Denetim Günlüklerinin İzlenmesine İlişkin Gereksinimler</span>

<span>Wazuh ile denetim günlüklerine erişebilmek için GitHub'da aşağıdaki gereksinimlere sahip olmanız gerekir.</span>

- **<span>GitHub organizasyonu</span>**<span> : Yalnızca GitHub organizasyonlarına ait denetim günlüklerini görüntüleyebilirsiniz.</span>
- **<span>GitHub Enterprise Cloud aboneliği</span>**<span> : Yalnızca GitHub Enterprise Cloud aboneliği olan kuruluşlar GitHub denetim günlüğü REST API'sini kullanabilir.</span>

<section id="bkmrk-github%27da-ki%C5%9Fisel-er">#### <span>GitHub'da Kişisel Erişim Belirteci Oluşturma</span>

<span>Gerekli kişisel erişim belirtecini oluşturmak için GitHub'da aşağıdaki adımları izleyin:</span>

1. <span>Kuruluş sahibine ait bir hesapla GitHub'a giriş yapın.</span>
2. [<span>Yeni bir kişisel erişim belirteci oluşturmak için https://github.com/settings/tokens/new</span>](https://github.com/settings/tokens/new)<span> adresine gidin .</span>
3. <span>Kişisel erişim belirteci için açıklayıcı bir not ekleyin ve bir son kullanma tarihi seçin.  
      
    </span>
    
    <div class="wazuh-image-wrapper align-center">![GitHub yeni kişisel erişim belirteci](https://documentation.wazuh.com/current/_images/github-new-personal-access-token1.png)  
    </div>
4. <span>Aşağı kaydırın, </span>**<span>audit\_log</span>**<span> öğesini seçin ve </span>**<span>Jeton oluştur öğesine</span>**<span> tıklayın.  
      
    </span>
    
    <div class="wazuh-image-wrapper align-center">![GitHub token üret](https://documentation.wazuh.com/current/_images/github-generate-token1.png)  
    </div>
5. <span>Yeni oluşturulan kişisel erişim belirtecini kopyalayın.  
      
    </span>
    
    <div class="wazuh-image-wrapper align-center">![GitHub kopyası oluşturulan belirteç](https://documentation.wazuh.com/current/_images/github-copy-generated-token1.png)</div>

</section></section><section id="bkmrk-wazuh%27u-github-g%C3%BCnl%C3%BC">### <span>Wazuh'u GitHub Günlüklerini Çekecek Şekilde Yapılandırın</span>

<span>Wazuh'un GitHub denetim günlüklerini izlemesine, toplamasına ve analiz etmesine izin vermek için aşağıdaki adımları gerçekleştirin. Wazuh modülünü GitHub için Wazuh sunucusunda veya Wazuh aracısında yapılandırabilirsiniz.</span>

1. <span>Aşağıdaki yapılandırmayı </span>`<span class="pre">/var/ossec/etc/ossec.conf</span>`<span>Wazuh sunucusundaki dosyaya ekleyin.</span>
    
    ```
    <ossec_config>
      <github>
        <enabled>yes</enabled>
        <interval>1m</interval>
        <time_delay>1m</time_delay>
        <curl_max_size>1M</curl_max_size>
        <only_future_events>yes</only_future_events>
        <api_auth>
          <org_name><ORG_NAME></org_name>
          <api_token><API_TOKEN></api_token>
        </api_auth>
        <api_parameters>
          <event_type>all</event_type>
        </api_parameters>
      </github>
    </ossec_config>
    ```
    
    <span>Nerede:</span>
    
    
    - `<span class="pre"><enabled></span>`<span>: GitHub için Wazuh modülünü etkinleştirir. İzin verilen değerler </span>`<span class="pre">yes</span>`<span>ve 'dir </span>`<span class="pre">no</span>`<span>.</span>
    - `<span class="pre"><interval></span>`<span>: GitHub için Wazuh modülünün her yürütülmesi arasındaki zaman aralığını tanımlar. Varsayılan değer 'dir </span>`<span class="pre">10m</span>`<span>ve izin verilen değer, s (saniye), m (dakika), h (saat) ve d (gün) gibi bir zaman birimini belirten bir sonek karakteri içeren herhangi bir pozitif sayıdır.</span>
    - `<span class="pre"><time_delay></span>`<span>: Taramanın geçerli zamana göre gecikme süresini belirtir. Varsayılan değer 'dir </span>`<span class="pre">30s</span>`<span>ve izin verilen değer, s (saniye), m (dakika), h (saat) ve d (gün) gibi bir zaman birimini belirten bir sonek karakteri içeren herhangi bir pozitif sayıdır.</span>
    - `<span class="pre"><curl_max_size></span>`<span>: GitHub API yanıtı için izin verilen maksimum boyutu belirtir. Varsayılan değer 'dir </span>`<span class="pre">1M</span>`<span>ve izin verilen değer, b/B (bayt), k/K (kilobayt), m/M (megabayt) ve g/G (gigabayt) gibi bir boyut birimini belirten bir sonek karakteri içeren herhangi bir pozitif sayıdır.</span>
    - `<span class="pre"><only_future_events></span>`<span>: Evet olarak ayarlandığında, GitHub için Wazuh modülü yalnızca Wazuh yöneticisini başlattıktan sonra oluşturulan olayları toplar. olarak ayarlandığında </span>`<span class="pre">no</span>`<span>, Wazuh yöneticisini başlatmadan önce oluşturulan önceki olayları toplar. Varsayılan değer 'dir </span>`<span class="pre">yes</span>`<span>ve izin verilen değerler </span>`<span class="pre">yes</span>`<span>ve ' dir </span>`<span class="pre">no</span>`<span>.</span>
    - `<span class="pre"><api_auth></span>`<span>: Bu blok, GitHub REST API ile kimlik doğrulama için kimlik bilgilerini yapılandırır. Aşağıdaki etiketler </span>`<span class="pre"><org_name></span>`<span>ve </span>`<span class="pre"><api_token></span>`<span>, içindeki yapılandırma etiketleridir </span>`<span class="pre"><api_auth></span>`<span>.</span>
        
        
        - `<span class="pre"><org_name></span>`<span>: GitHub organizasyonunuzun adı. İzin verilen değer herhangi bir dizedir.</span>
        - `<span class="pre"><api_token></span>`<span>: GitHub API ile kimlik doğrulaması yapmak için kişisel erişim belirteci. İzin verilen değer herhangi bir dizedir.</span>
    - `<span class="pre"><api_parameters></span>`<span>: Bu blok GitHub REST API'sindeki dahili seçenekleri yapılandırır. İçindeki bir alt yapılandırma </span>`<span class="pre"><api_parameters></span>`<span>bloğu </span>`<span class="pre"><event_type></span>`<span>.</span>
        
        
        - `<span class="pre"><event_type></span>`<span>: Wazuh'un toplaması gereken olay türlerini belirtir. Kullanılabilir olay türleri web ve git olaylarıdır. Bu yapılandırma bloğu için varsayılan değer </span>`<span class="pre">all</span>`<span>, hem web hem de git olaylarını toplamaktır. İzin verilen değerler </span>`<span class="pre">all</span>`<span>, </span>`<span class="pre">web</span>`<span>, ve 'dir </span>`<span class="pre">git</span>`<span>.</span>
    
    <span>Yapılandırma seçenekleri hakkında daha fazla bilgi edinmek için GitHub referansı </span><span class="doc"><span>için Wazuh modülüne bakın.  
      
    </span></span>
2. <span>Değişiklikleri uygulamak için Wazuh yöneticisini veya aracı hizmetini yeniden başlatın:  
      
    </span>
    
    
    - **<span>Wazuh yöneticisi</span>**
        
        ```
        systemctl restart wazuh-manager
        ```
    - **<span>Wazuh temsilcisi</span>**
        
        ```
        systemctl restart wazuh-agent
        ```

<section id="bkmrk-birden-fazla-github-">#### <span>Birden Fazla GitHub Organizasyonunu İzleyin</span>

<span>Wazuh ile birden fazla GitHub kuruluşunu, kuruluş kimlik bilgilerini ayrı bölümlerde belirterek izleyebilirsiniz </span>`<span class="pre"><api_auth></span>`<span>. Örneğin, aşağıdaki yapılandırma </span>`<span class="pre">organization1</span>`<span>ve adlı iki kuruluşu izler </span>`<span class="pre">organization2</span>`<span>.</span>

```
<github>
  <enabled>yes</enabled>
  <interval>1m</interval>
  <time_delay>1m</time_delay>
  <curl_max_size>1M</curl_max_size>
  <only_future_events>no</only_future_events>

  <api_auth>
    <org_name>organization1</org_name>
    <api_token><API_TOKEN></api_token>
  </api_auth>

  <api_auth>
    <org_name>organization2</org_name>
    <api_token><API_TOKEN></api_token>
  </api_auth>

  <api_parameters>
    <event_type>git</event_type>
  </api_parameters>
</github>
```

<span>Nerede:</span>

- `<span class="pre"><API_TOKEN></span>`<span>kapsam dahilinde oluşturulan GitHub kişisel erişim belirtecidir </span>`<span class="pre">admin:org</span>`<span>.</span>

</section></section><section id="bkmrk-kullan%C4%B1m-durumu-gere">### <span>Kullanım Durumu</span>

<section id="bkmrk-gereksinimler-github">#### <span>Gereksinimler</span>

- <span class="doc"><span>GitHub aktivite izleme</span></span><span> dokümanlarına göre Wazuh'u GitHub ile entegre edin .</span>
- <span>Curl yüklü bir Ubuntu 23.10 uç noktası.</span>

</section><section id="bkmrk-github-admin%3Aorg%2C%C2%A0re">#### <span>GitHub</span>

`<span class="pre">admin:org</span>`<span>, </span>`<span class="pre">repo</span>`<span>, ve kapsamları içinde bir GitHub kişisel erişim belirteci oluşturun </span>`<span class="pre">delete_repo</span>`<span>. Bu belirteci, Wazuh'ta uyarıları tetikleyen kuruluşta eylemler gerçekleştirerek kullanım durumlarını test etmek için GitHub REST API'siyle kullanacağız. Belirteci oluşturmak için aşağıdaki adımları izleyin:</span>

1. [<span>https://github.com/settings/tokens/new</span>](https://github.com/settings/tokens/new)<span> adresine gidin , token için bir not ekleyin, istediğiniz son kullanma tarihini seçin ve ardından </span>`<span class="pre">repo</span>`<span>ve </span>`<span class="pre">admin:org</span>`<span>kapsamlarını seçin.  
      
    </span>
    
    <div class="wazuh-image-wrapper align-center">![GitHub yeni kişisel erişim belirteci](https://documentation.wazuh.com/current/_images/use-case-github-new-personal-access-token1.png)  
    </div>
2. <span>Sayfanın en altına gidin, ardından </span>`<span class="pre">delete_repo</span>`<span>kapsamı seçin ve </span>**<span>Jeton oluştur</span>**<span> düğmesine tıklayın.  
      
    </span>
    
    <div class="wazuh-image-wrapper align-center">![GitHub Jeton oluştur](https://documentation.wazuh.com/current/_images/use-case-github-generate-token1.png)  
    </div>
3. <span>Yeni oluşturulan kişisel erişim belirtecini kopyalayın.  
      
    </span>
    
    <div class="wazuh-image-wrapper align-center">![Oluşturulan belirteci kopyala](https://documentation.wazuh.com/current/_images/use-case-github-copy-generated-token1.png)</div>

</section><section id="bkmrk-ubuntu-u%C3%A7-noktas%C4%B1-%C3%96r">#### <span>Ubuntu Uç Noktası</span>

<section id="bkmrk-%C3%96rg%C3%BCt-%C3%9Cyelerinin-man">##### <span>Örgüt Üyelerinin Manipülasyonlarını Tespit Edin</span>

<section id="bkmrk-bir-%C3%9Cyeyi-davet-et-k">**Bir Üyeyi Davet Et**

<span>Kuruluşunuza bir üye davet etmek için aşağıdaki adımları izleyin.</span>

1. <span>Ubuntu uç noktasında aşağıdaki komutu çalıştırın:</span>
    
    ```
    # curl -L \
      -X POST \
      -H "Accept: application/vnd.github+json" \
      -H "Authorization: Bearer <API_TOKEN>" \
      -H "X-GitHub-Api-Version: 2022-11-28" \
      https://api.github.com/orgs/<ORG_NAME>/invitations \
      -d '{"email":"<USER_EMAIL>","role":"direct_member"'
    ```
    
    <span>Nerede:</span>
    
    
    - `<span class="pre"><API_TOKEN></span>`<span>kapsam dahilinde oluşturulan GitHub kişisel erişim belirtecidir </span>`<span class="pre">admin:org</span>`<span>.</span>
    - `<span class="pre"><ORG_NAME></span>`<span>kuruluşunuzun adıdır.</span>
    - `<span class="pre"><USER_EMAIL></span>`<span>davet etmek istediğiniz kullanıcının e-posta adresidir.</span>
2. <span>Davet edilen üyenin posta kutusuna gidin ve daveti kabul edin.</span>

</section><section id="bkmrk-bir-%C3%9Cyeyi-y%C3%B6netici-o">**Bir Üyeyi Yönetici Olarak Terfi Ettir**

<span>Kuruluşunuzdaki bir üyeyi yönetici rolüne yükseltmek için aşağıdaki komutu çalıştırın:</span>

```
# curl \
  -u <ADMIN_USERNAME>:<API_TOKEN> \
  -X PUT \
  -H "Accept: application/vnd.github.v3+json" https://api.github.com/orgs/<ORG_NAME>/memberships/<MEMBER_USERNAME> \
   -d '{"role":"admin"}'
```

<span>Nerede:</span>

- `<span class="pre"><ADMIN_USERNAME></span>`<span>geçerli bir yöneticinin kullanıcı adıdır. Örneğin, kuruluşun sahibinin kullanıcı adı.</span>
- `<span class="pre"><API_TOKEN></span>`<span> kapsam dahilinde oluşturulan GitHub kişisel erişim belirtecidir </span>`<span class="pre">admin:org</span>`<span>.</span>
- `<span class="pre"><ORG_NAME></span>`<span>kuruluşunuzun adıdır.</span>
- `<span class="pre"><MEMBER_USERNAME></span>`<span>terfi ettirmek istediğiniz kullanıcının kullanıcı adıdır.</span>

</section><section id="bkmrk-yeni-bir-ekip-olu%C5%9Ftu">**Yeni Bir Ekip Oluştur**

<span>Kuruluşunuzda yeni bir ekip oluşturmak için aşağıdaki komutu çalıştırın:</span>

```
# curl -X POST \
     -H "Authorization: Bearer <API_TOKEN>" \
     -d '{"name": "<NEW_TEAM_NAME>"}' \
     "https://api.github.com/orgs/<ORG_NAME>/teams"
```

<span>Nerede:</span>

- `<span class="pre"><NEW_TEAM_NAME></span>`<span>yeni takımın adı.</span>
- `<span class="pre"><API_TOKEN></span>`<span>kapsam dahilinde oluşturulan GitHub kişisel erişim belirtecidir </span>`<span class="pre">admin:org</span>`<span>.</span>
- `<span class="pre"><ORG_NAME></span>`<span>kuruluşunuzun adıdır.</span>

<span>Aşağıdaki görsel, izlenen GitHub organizasyonunda yukarıdaki eylemleri gerçekleştirdikten sonra Wazuh panosunda oluşan uyarıları göstermektedir.</span>

<div class="wazuh-image-wrapper align-center">![GitHub üyeleri izleme uyarı panosu](https://documentation.wazuh.com/current/_images/use-case-github-members-monitoring-alerts-dashboard1.png)  
</div></section></section><section id="bkmrk-bir-depoda-yap%C4%B1lan-d">##### <span>Bir Depoda Yapılan Değişiklikleri Algıla</span>

<section id="bkmrk-yeni-bir-depo-olu%C5%9Ftu">**Yeni Bir Depo Oluştur**

<span>Yeni bir depo oluşturmak için aşağıdaki komutu çalıştırın:</span>

```
# curl -L \
  -X POST \
  -H "Accept: application/vnd.github+json" \
  -H "Authorization: Bearer <API_TOKEN>" \
  -H "X-GitHub-Api-Version: 2022-11-28" \
  https://api.github.com/orgs/<ORG_NAME>/repos \
  -d '{"name":"<NEW_REPO_NAME>"}'
```

<span>Nerede:</span>

- `<span class="pre"><API_TOKEN></span>`<span>kapsam dahilinde oluşturulan GitHub kişisel erişim belirtecidir </span>`<span class="pre">repo</span>`<span>.</span>
- `<span class="pre"><ORG_NAME></span>`<span>kuruluşunuzun adıdır.</span>
- `<span class="pre"><NEW_REPO_NAME></span>`<span>oluşturmak istediğiniz deponun adıdır.</span>

</section><section id="bkmrk-deponuza-bir-tak%C4%B1m-e">**Deponuza Bir Takım Ekleyin**

<span>Takımları listelemek ve deponuza bir takım eklemek için aşağıdaki komutları çalıştırın:</span>

1. <span>Organizasyonunuzdaki takım kimliklerini listeleyin.</span>
    
    ```
    # curl -H "Authorization: Bearer <API_TOKEN>" "https://api.github.com/orgs/<ORG_NAME>/teams"
    ```
2. <span>Deponuza eklemek istediğiniz takımın ID'sini girin.</span>
    
    ```
    # curl -X PUT \
         -H "Authorization: Bearer <API_TOKEN>" \
         -d '{"permission": "push"}' \
         "https://api.github.com/teams/<TEAM_ID>/repos/<ORG_NAME>/<REPO_NAME>"
    ```
    
    <span>Nerede:</span>
    
    
    - `<span class="pre"><TEAM_ID></span>`<span>Takım ID'sidir.</span>
    - `<span class="pre"><API_TOKEN></span>`<span>kapsam dahilinde oluşturulan GitHub kişisel erişim belirtecidir </span>`<span class="pre">admin:org</span>`<span>.</span>
    - `<span class="pre"><ORG_NAME></span>`<span>kuruluşunuzun adıdır.</span>
    - `<span class="pre"><REPO_NAME></span>`<span>Bir takımı eklemek istediğiniz deponun adıdır.  
          
        </span>

</section><section id="bkmrk-ayr%C4%B1cal%C4%B1klar%C4%B1-y%C3%B6net-">**Ayrıcalıkları Yönet**

<span>Ekibinizdeki üyelere depoda yönetici ayrıcalıkları vermek için aşağıdaki komutu çalıştırın:</span>

```
# curl \
-u <ADMIN_USERNAME>:<API_TOKEN> \
-X PUT \
-H "Accept: application/vnd.github.v3+json" https://api.github.com/orgs/<ORG_NAME>/teams/<TEAM_NAME>/repos/<ORG_NAME>/<REPO_NAME> \
 -d '{"permission":"admin"}'
```

<span>Nerede:</span>

- `<span class="pre"><ADMIN_USERNAME></span>`<span>bir kullanıcıyı yönetici olarak yükseltme iznine sahip kullanıcının kullanıcı adıdır</span>
- `<span class="pre"><API_TOKEN></span>`<span>kapsam dahilinde oluşturulan GitHub kişisel erişim belirtecidir </span>`<span class="pre">admin:org</span>`<span>.</span>
- `<span class="pre"><ORG_NAME></span>`<span>kuruluşunuzun adıdır.</span>
- `<span class="pre"><REPO_NAME></span>`<span>Ekibinin erişimini yönetmek istediğiniz deponun adıdır.</span>
- `<span class="pre"><TEAM_NAME></span>`<span>deponuzdaki belirli takımın adıdır.</span>

</section><section id="bkmrk-depoyu-sil-kurulu%C5%9Fun">**Depoyu Sil**

<span>Kuruluşunuzdaki bir deponun silinmesi için aşağıdaki komutu çalıştırın:</span>

```
# curl -L \
  -X DELETE \
  -H "Accept: application/vnd.github+json" \
  -H "Authorization: Bearer <API_TOKEN>" \
  -H "X-GitHub-Api-Version: 2022-11-28" \
  https://api.github.com/repos/<ORG_NAME>/<REPO_NAME>
```

<span>Nerede:</span>

- `<span class="pre"><API_TOKEN></span>`<span>kapsam dahilinde oluşturulan GitHub kişisel erişim belirtecidir </span>`<span class="pre">delete_repo</span>`<span>.</span>
- `<span class="pre"><ORG_NAME></span>`<span>kuruluşunuzun adıdır.</span>
- `<span class="pre"><REPO_NAME></span>`<span>kuruluşunuzdan silmek istediğiniz deponun adıdır.</span>

</section><section id="bkmrk-tak%C4%B1m%C4%B1-sil-olu%C5%9Fturdu">**Takımı Sil**

<span>Oluşturduğunuz takımı silmek için aşağıdaki komutu çalıştırın:</span>

```
# curl -L \
  -X DELETE \
  -H "Accept: application/vnd.github+json" \
  -H "Authorization: Bearer <API_TOKEN>" \
  https://api.github.com/orgs/<ORG_NAME>/teams/<TEAM_NAME>
```

<span>Nerede:</span>

- `<span class="pre"><API_TOKEN></span>`<span>kapsam dahilinde oluşturulan GitHub kişisel erişim belirtecidir </span>`<span class="pre">admin:org</span>`<span>.</span>
- `<span class="pre"><ORG_NAME></span>`<span>kuruluşunuzun adıdır.</span>
- `<span class="pre"><TEAM_NAME></span>`<span>deponuzdaki belirli takımın adıdır.</span>

<span>Aşağıdaki görsel, izlenen GitHub organizasyonunda yukarıdaki eylemleri gerçekleştirdikten sonra Wazuh panosunda oluşan uyarıları göstermektedir.  
  
</span>

<div class="wazuh-image-wrapper align-center">![GitHub deposu izleme uyarıları panosu](https://documentation.wazuh.com/current/_images/use-case-github-repository-monitoring-alerts-dashboard1.png)</div></section></section></section></section>